Qu’est-ce que le Proof-of-Stake ?

Home » Apprendre » Ethereum » Qu’est-ce que le Proof-of-Stake ?

Le Proof-of-Stake, ou Preuve d’enjeu en français, est une alternative au Proof-of-Work (Preuve de travail) utilisé dans Bitcoin et autres cryptomonnaies. Ce sont toutes les deux des méthodes permettant d’atteindre un consensus distribué, c’est-à-dire qu’elles permettent de sécuriser une blockchain en fournissant les bonnes incitations économiques pour pousser à une validation honnête des transactions.

Quels sont les spécificités du Proof-of-Stake ?

Le Proof-of-Stake remplace un mécanisme basé sur la puissance de calcul par un autre, basé sur l’utilisation active de son capital. Il fait usage de l’actif de la blockchain en question, par exemple les tezzies (XTZ) ou les EOS (EOS) sur les plateformes de smart-contract Tezos et EOS.

De ce fait, il n’est pas possible de simplement se brancher et commencer à miner comme avec le PoW. Il faut en acheter ou le gagner d’une quelconque façon. Ainsi, les blockchains en PoS font toujours l’objet d’une levée de fonds afin d’effectuer une première répartition de l’actif natif.

Les détenteurs de l’actif en question ont la possibilité de mettre en séquestre une partie voire la totalité de leur capital avec pour objectif de participer directement à la validation des blocs ou sinon de voter pour un acteur qui le fera pour soi selon les implémentations de ce système.

Les différentes implémentations du Proof-of-Stake

Il existe plusieurs implémentations du PoS. Nous parlerons ici des plus connues, c’est à dire des systèmes en PoS direct (je suis invité à valider les blocs si je dispose du capital nécessaire) et les systèmes délégataires (je vote pour un acteur qui validera les blocs à ma place). Il existes d’autres implémentations hybrides qui ne seront pas couvertes dans cet article.

Les Proof-of-Stake directs

Ces implémentations cherchent généralement à construire un système robuste en favorisant un niveau de décentralisation fort et en permettant à quiconque le souhaite, même des acteurs non identifiés, à participer à la validation des blocs. De ce point de vue là nous nous rapprochons de ce qui permet de qualifier le Proof-of-Work dans Bitcoin comme un système “résistant à la censure”: afin de faire tomber complètement le système par mesures répressives il faudrait une attaque généralisée sur l’intégralité des noeuds, ce qui est rendu difficile par leur nombre et le fait que certains ne soient pas identifiés.

Le mécanisme est le suivant: les détenteurs de l’actif peuvent mettent en séquestre une partie de leurs fonds. Plus la quantité de fonds mise en séquestre est importante, plus la probabilité d’être choisi pour créer un bloc spécifique dans le futur via un algorithme géré par le protocole est grande.

Le participant choisi va s’assurer de la légitimité des transactions qu’il souhaite pousser sur le réseau et créer un bloc sans avoir à trouver un hash du bloc rare pour l’ajouter à la blockchain comme dans PoW. En effet, à titre d’exemple le hash du bloc Bitcoin n°571729 est 000000000000000000110574374f4977cba59e315492589c78451cc2252b894, il s’agit d’une empreinte numérique du bloc qui “traduit” l’information contenu dans le bloc, notamment les transactions ajoutées au bloc, l’empreinte numérique du hash du bloc précédent, ainsi que de chiffres appelés Nonce qui sont changés à chaque itération de la fonction de hashage pour créer une nouvelle empreinte à chaque essai dans le but de tomber sur un hash valide. Celui-ci doit avoir une valeur plus petite que la cible donnée par la difficulté de minage, c’est ce qui fait qu’un hash valide commence par un nombre important de zéros. C’est le fait de trouver ce hash rare qui demande la puissance de calcul et garantit la sécurité du système: trouver ce type de hash pour un bloc non valide demande de dépenser beaucoup d’électricité et le bloc ne serait pas accepté par le réseau: une perte de temps et d’argent. De retour sur le PoS, si le bloc est valide le volontaire recevra en récompense la création monétaire prévue pour la création de ce bloc ainsi que les frais de transactions du bloc, exactement comme pour le consensus en PoW.

Les autres participants ont aussi la responsabilité de vérifier que les transactions sont toutes correctes et que le volontaire n’essaye pas de tricher en dépensant deux fois les mêmes actifs par exemple. Si c’était le cas, selon les implémentations le tricheur sera dénoncé, ce qui entraîne plusieurs conséquences: le bloc est invalidé, et les fonds mis sous séquestre peuvent être détruits, redistribué au dénonciateur, ou les deux. Ce système punitif porte le nom de slashing, il sera présent dans Ethereum 2.0 (Ethereum souhaite migrer de son mécanisme actuel en Proof-of-Work à un mécanisme en Proof-of-Stake) et est déjà actif dans Tezos. Cardano, une blockchain en PoS encore en devenir, se tourne vers d’autres méthodes et n’utilise pas de slashing.

Avec le slashing, chaque validateur de blocs a donc un double intérêt à faire son travail correctement: une carotte, sous la forme d’une récompense obtenue lors de la création du bloc, et un bâton, soit la menace directe de perdre les fonds sous séquestre en cas de triche avérée. On remplace ainsi un mécanisme basé sur la puissance de calcul par un autre, basé sur le risque de perdre son capital.

Les blockchains en PoS requièrent un minimum d’unités de l’actif natif à mettre en séquestre pour participer à la validation des blocs, par exemple 32 pour Ethereum 2.0 ou 10 000 pour Tezos. Certaines permettent aux plus petits détenteurs de participer en déléguant le droit de participation de leur actifs, comme Tezos. Une fois Ethereum 2.0 lancé, nous pourrons voir lequel de ces deux modèles favorise la distribution la plus saine des noeuds validateurs.

Les Proof-of-Stake délégataires

Le DPoS, pour Delegated Proof-of-Stake, que nous retrouvons dans les blockchains EOS,  Tron, ou Ark, permet également aux détenteurs de l’actif natif de ces blockchains de mettre en séquestre leurs fonds, mais cette fois-ci dans le but de voter pour un validateur de blocs identifié qui se chargera de la validation des blocs à leur place.

Ce modèle met en avant une décentralisation moins forte avec un nombre de validateurs fixe: 27 sur Tron, 21 sur EOS, et 51 sur Ark. Ce nombre limité de validateurs permet théoriquement de gérer plus de transactions que sur les alternatives, car les blocs doivent être partagés avec moins de monde et les conditions pour être élu demande des performances soutenues et du matériel sophistiqué, ainsi la blockchain peut se permettre d’être plus lourde et le temps entre les blocs plus court.  

D’autre part, le fait de pouvoir identifier les acteurs validateurs est un trade-off qui cherche aussi à lutter contre certaines attaques qui peuvent être montées contre les systèmes en Proof-of-Stake.

Les trade-off du DPoS est important à comprendre pour l’investisseur également, les acteurs détenant une part très importante des actifs peuvent facilement élire les validateurs de leur choix, voire s’élire entre eux. Un cercle assez centralisé d’entités s’accapare ainsi la quasi-totalité de la création monétaire, qui leur revient à chaque bloc validé.

Bilan de première heure

Au jour d’aujourd’hui, les blockchains faisant usage du Proof-of-Stake sont jeunes. La première implémentation était NXT en 2013, mais l’intégralité des protocoles dont nous parlons ici ont commencés à être développés à partir de l’année 2014 et sont entrés en fonction entre 2016 et 2018.

Le Proof-of-Work est donc considéré comme plus robuste car il a subit l’épreuve du temps sans accroche depuis plus de 10 ans avec Bitcoin, et ses propriétés font que même avec un colossal 51% de la puissance de calcul du réseau les attaques possibles sont très limitées.

Le Proof-of-Stake quant à lui s’agit d’un modèle intéressant et prometteur, il est très peu consommateur en électricité et présente certains avantages face au PoW selon les implémentations. Cependant ces systèmes nouveaux devront faire leurs preuves en montrant que dans la pratique les faiblesses qu’on lui reproche ne seront pas exploitées.

Une différence principale avec le Proof-of-Work est notamment la capacité pour un individu de créer de multiples versions de la blockchain à n’importe quelle hauteur de la blockchain à zéro coûts car le protocole ne demande pas ce fameux hash valide, on parle de “Nothing-at-Stake”. Choisir la chaîne la plus longue comme dans le PoW n’est alors plus une condition suffisante pour reconnaître la chaîne légitime. Cela peut se montrer problématique dans le cas de forks car le validateur n’a pas à choisir entre l’une des deux versions de la blockchain et son intérêt est de travailler sur les deux versions simultanément pour être sur d’obtenir sa récompense. Les implémentations choisissent en général des méthodes de slashing pour forcer les noeuds à choisir une unique version de la blockchain en punissant les validateurs qui pousseraient deux blocs à la même hauteur.

Cela peut aussi créer des problèmes pour les nouveaux noeuds se connectant au réseau ou les noeuds ayant été hors ligne pendant une longue période. Il doivent alors être capable de déterminer quelle blockchain est la blockchain valide, sans pouvoir faire confiance à la chaîne la plus longue. Cela présente des vecteurs d’attaque comme les “Long-Range attacks”, qui sont à prendre en considération et qu’on n’ont pas été solutionnés pour le moment.

Le Proof-of-Stake prend chaque jour une place plus prépondérante dans l’écosystème et est l’un sujet important du moment, notamment avec Ethereum qui souhaite migrer vers ce système. Cette méthode de validation pourrait à l’avenir offrir une alternative au PoW, mais il faudra plusieurs années avant que sa robustesse soit reconnue ou que d’autres modèles alternatifs émergent, sur lesquels nous reviendrons.