Aujourd'hui nous allons parler des mécanismes de validation qui donnent aux chaînes de blocs leur immuabilité. Dans mon article sur le minage, je décrivais comment la sécurité de Bitcoin se fondait sur un algorithme de preuve de travail (proof-of-work ou PoW). Cependant, ce n'est pas l'unique moyen de validation d'une chaîne : il existe également une autre méthode appelée preuve d'enjeu (proof-of-stake, PoS) qui constitue une alternative sérieuse à la preuve de travail.
La preuve de travail (proof-of-work)
Dans les cryptomonnaies, le système de validation par preuve de travail, aussi appelé minage, est un mécanisme économique permettant à un réseau pair-à-pair de parvenir à un consensus de manière décentralisée. Dans ce système, certains acteurs du réseau, les mineurs, sont incités à utiliser leur puissance de calcul pour garantir l'intégrité d'une chaîne de blocs contenant la totalité des transactions d'un jeton numérique. En échange, ils sont récompensés par la création de nouveaux jetons, d'où leur nom de mineurs.
Les mineurs résolvent un problème mathématique permettant de chaîner les blocs les uns à la suite des autres. La particularité de la solution de ce problème est qu'il faut une grande puissance de calcul pour la trouver, mais qu'il est facile de la vérifier. C'est pourquoi on appelle cette solution une preuve de travail : car elle permet à un mineur de prouver aux autres membres du réseau qu'il a bien dépensé de l'énergie.
Lorsqu'il utilise sa machine pour ajouter un bloc à la chaîne, un mineur est en concurrence avec les autres. Puisque le problème est aléatoire, sa probabilité de trouver une solution et d'obtenir la récompense est proportionnelle à sa puissance de calcul. Sur le long terme, ses revenus dépendent donc de ce qu'il représente dans la puissance totale.
Le mécanisme de la preuve de travail protège Bitcoin depuis son lancement en 2009 et est également utilisé par de nombreux autres protocoles comme Ethereum, Litecoin et Monero. Cette méthode de validation reste, jusqu'à preuve du contraire, la méthode la plus sécurisée en démontrant son efficacité depuis près d'une décennie.
La preuve d'enjeu (proof-of-stake)
Le système de validation par preuve d'enjeu est une alternative à la preuve de travail, qui a été introduit par Sunny King et Scott Nadal en 2012. Le principe de la méthode est de reproduire le processus de minage de manière virtuelle en se basant non pas sur la puissance de calcul, mais sur la possession de jetons. Ainsi, plus quelqu'un a de jetons, plus il a de chances de valider le prochain bloc et de gagner la récompense associée : c'est parce qu'il a des jetons en jeu qu'on suppose qu'il est honnête. Dans ce cas, on ne parle plus de minage mais de forgeage.
En pratique, l'application naïve de cette idée ne fonctionne pas, en particulier à cause d'un problème appelé Nothing-at-Stake (« rien à perdre »). Les systèmes de preuve d'enjeu sont donc plus complexes que cela et les règles de sélection des validateurs varient d'un jeton à l'autre. De ce fait, il existe un grand nombre de variantes de cette méthode.
La première cryptomonnaie utilisant la preuve d'enjeu est le peercoin, lancé en 2013 par Sunny King, qui se base sur un système hybride mélangeant preuve de travail et preuve d'enjeu. Le validateur est sélectionné non seulement en fonction du nombre de jetons qu'il possède, mais aussi sur l'âge de ses jetons, c'est-à-dire combien de temps ils ont été bloqués sur son adresse.
NXT, qui est l'une des premières monnaies à implémenter une forme non-hybride de preuve d'enjeu, fonctionne depuis fin 2013 grâce à un algorithme de forgeage complexe. NEM (New Economy Movement) utilise une « preuve d'importance » qui mitige la possession des jetons avec un système de réputation.
La plateforme de contrats auto-exécutables Ethereum, qui représente la deuxième capitalisation boursière du marché, fonctionne actuellement grâce à un algorithme de preuve de travail. Cependant, la plateforme compte faire transitionner son algorithme de validation vers la preuve d'enjeu avec sa prochaine mise à niveau appelée Casper.
Les systèmes impliquant des nœuds-maîtres (masternodes) comme Dash et PIVX se fondent également sur une forme de preuve d'enjeu. Les nœuds-maitres sont des membres du réseau possédant un nombre de jetons supérieur à un seuil déterminé (1000 DASH ou 10 000 PIVX) qui sont rémunérés pour participer de façon limitée au consensus et pour rendre certains services spéciaux au réseau. Ce système est couplé avec une première couche de validation : une preuve de travail dans le cas de Dash, et une preuve d'enjeu dans le cas de PIVX.
La preuve d'enjeu déléguée (delegated proof-of-stake)
La preuve d'enjeu déléguée (delegated proof-of-stake, DPoS) est une forme particulière de preuve d'enjeu qui rencontre depuis peu un grand succès dans la cryptosphère. Le mécanisme de consensus repose sur un système d'élection : les utilisateurs votent en proportion de leur possession de jetons pour désigner des représentants appelés délégués. Ces délégués se chargent ensuite de valider les blocs tour à tour contre rémunération. Ceux-ci peuvent aussi être appelés des témoins, des nœuds de consensus, des slot-leaders ou des producteurs de blocs, mais cela ne change rien à l'idée de base.
La première implémentation de la méthode de la preuve d'enjeu déléguée a été réalisée en 2014 par Dan Larimer avec la création de Bitshares, une place de marché décentralisée. Dan Larimer a également été à l'initiative de deux autres projets bâtis sur la même base : Steem, un système de blogging récompensant ses utilisateurs, et EOS, une plateforme de contrats auto-exécutables souhaitant détrôner Ethereum. D'autres plateformes de développement d'applications décentralisées reposent sur une variante de cette preuve d'enjeu déléguée : les principales sont Lisk, NEO et Cardano.
Avantages et inconvénients de la preuve d'enjeu
La preuve d'enjeu a quelques avantages par rapport à la preuve de travail. Tout d'abord, elle permet de réduire considérablement la consommation électrique du réseau, ce qui est intéressant d'un point de vue écologique. De plus, puisque les validateurs n'ont pas besoin de beaucoup d'énergie pour valider les blocs, l'émission des jetons peut être réduite, être nulle, voire être négative (destruction d'une partie des frais de transactions). Il existe également un modèle permettant d'avoir des frais de transactions nuls au prix d'une légère inflation permanente. Enfin, la preuve d'enjeu rend beaucoup plus coûteuses les attaques de la majorité qui consistent à s'approprier plus de 50 % de la puissance de décision pour un usage frauduleux. En effet, un attaquant devrait amasser plus de la moitié des jetons existants pour réaliser cette attaque et donc les acheter sur le marché, ce qui ferait mécaniquement monter le prix. À la suite de l'attaque, le prix baisserait ce qui rendrait l'opération encore moins rentable.
La preuve d'enjeu a également quelques inconvénients qui font qu'elle n'est pas considérée comme la méthode la plus sûre actuellement. On peut retenir deux reproches. Le premier est que les systèmes de preuve d'enjeu sont plutôt complexes et divers par rapport aux systèmes de preuve de travail, dont le modèle est simple. Il est donc difficile d'évaluer l'ensemble des risques liés à leur implémentation. Le second est la répartition des jetons : puisque les jetons donnent une sorte de pouvoir, une répartition initiale déséquilibrée peut être problématique à long terme.
Laquelle des deux méthodes de validation est la meilleure ? L'avenir nous le dira.
Merci d'avoir lu cet article.
Références
Proof-of-stake FAQ
Vitalik Buterin, A Proof of Stake Design Philosophy, 30 décembre 2016.
Dan Larimer, DPOS Consensus Algorithm - The Missing White Paper, 29 mai 2017.
Attention quand même.
La preuve de travail ne fonctionne que s’il y a suffisamment de hashrate. Sinon ça ne vaut rien et certains shitcoibs sont assez facilement attaquable via le cloud mining.
Pour le nothing-at-stake c’est quand même loin d’etre Simple à réaliser en pratique. D’ailleurs, est-ce que ça a déjà été réalisé par le passé ?
Oui quand je parle de preuve de travail, je pense surtout à Bitcoin qui a ses ASIC dédiés. C'est sûr que pour des petites cryptos, il est plus sûr d'utiliser une preuve d'enjeu ou un modèle hybride (tout est une question de contexte !)
Pour le nothing-at-stake, je n'en sais rien, j'ai pas assez creusé la question de la PoS. Vitalik Buterin (c'est lui qui a rédigé la FAQ sur la PoS en réf.) a l'air de dire que c'est un problème, et vu qu'il bosse sur le modèle de proof-of-stake d'Ethereum avec ses équipes depuis longtemps, je lui fais confiance.
Merci pour cet article, je comprend un peu mieux le POS. J' ai hâte de voir ce que donnera casper pour ethereum. Continu en tout cas à nous faire mieux comprendre cet univers. A plus
Merci à toi ! Oui moi aussi j'ai bien envie de voir à quoi ça ressemblera.
Excellent article avec énormément de détails et de précision ! Je connais très peu le POS mais grâce à toi je viens de comprendre un peu mieux comment celui-ci fonctionne !
Continue comme cela, tes articles sont vraiment top.
A bientôt ;-)
Merci @monsieur-tk ! Je vais continuer.
Une bonne analyse synthétique rendant ce post très intéressant à lire. Merci.
Merci !
Merci pour le upvote massif @steempress-io !