Preuve d'enjeu
La preuve d'enjeu[1], preuve de participation[1] ou preuve d’intérêt[1] (en anglais : proof of stake, PoS) est une méthode par laquelle une chaîne de blocs d'une crypto-monnaie vise à atteindre un consensus distribué[2].
Alors que la preuve de travail (en anglais : proof of work, PoW) demande aux utilisateurs d'exécuter plusieurs fois les algorithmes de hachage ou de calculer des puzzles mathématiques selon des algorithmes pour valider les transactions électroniques[3], la preuve d'enjeu demande à l'utilisateur de prouver la possession d'une certaine quantité de crypto-monnaie (leur « participation » dans la crypto-monnaie) pour prétendre à pouvoir valider des blocs supplémentaires dans la chaîne de bloc et de pouvoir toucher la récompense, s'il y en a une, à l'addition de ces blocs. Peercoin[4] a été la première crypto-monnaie à utiliser la preuve d'enjeu. D'autres implémentations ont été tentées selon différentes méthodes dont BitShares, Gridcoin, ShadowCash, Nxt, BlackCoin, NuShares/NuBits et Qora. La blockchain Ethereum a effectué sa transition de la preuve de travail (PoW) vers une preuve d'enjeu (PoS) en septembre 2022[5](évènement connu sous le nom The Merge). Peercoin et Decred[6] utilisent une méthode hybride PoW/PoS pour tenter de tirer avantage des deux systèmes et de créer un consensus plus robuste.
Validation d'un nouveau bloc dans la chaîne de blocs
modifierLa preuve d'enjeu doit utiliser une méthode pour définir la validation d'un nouveau bloc dans la chaîne de blocs. La sélection par le solde des comptes des utilisateurs entraînerait une conséquence (indésirable) de centralisation : le plus riche membre aurait en permanence un avantage. Pour éviter cela, plusieurs méthodes de pondération ont été mises au point.
Sélection du compte responsable de la validation d'un nouveau bloc
modifierLes crypto-monnaies Nxt et BlackCoin utilisent une méthode de répartition aléatoire des comptes qui seront responsables de la validation des blocs futurs dans la chaîne de blocs en tenant compte, par l'intermédiaire d'une formule, de la plus faible valeur de hachage et la taille de l'enjeu du compte sélectionné[7],[8],[9]. Les enjeux des comptes étant publics, chaque nœud peut prédire avec une précision raisonnable quel compte va gagner le droit de forger un bloc additionnel sur la chaîne de blocs.
Méthode de sélection du validateur de bloc supplémentaire en fonction de la durée de possession de ses pièces et de la taille de ses enjeux
modifierLa crypto-monnaie Peercoin qui utilise la preuve d'enjeu combine un système de répartition aléatoire tenant compte de « l'âge de la pièce. » Dans ce système un nombre est généré en multipliant le nombre de pièces par le nombre de jours où cette pièce est détenue par l'utilisateur : plus ce dernier conserve longtemps un nombre important de pièces et plus ce dernier est susceptible d'être sélectionné aléatoirement pour valider la création additionnelle d'un bloc dans la chaîne de blocs. Seules les pièces qui n'ont pas été dépensées pendant au moins 30 jours peuvent prétendre entrer dans la compétition pour la validation d'un prochain bloc. Lorsque l'enjeu en pièces d'un compte a été utilisé pour valider l'addition d'un bloc nouveau sur la chaîne de blocs, le compteur temporel est remis à zéro et l'utilisateur du compte devra attendre une période de 30 jours pour prétendre valider, avec une certaine probabilité, un nouveau bloc dans la chaîne de blocs. La probabilité de trouver le prochain bloc atteint un maximum au bout de 90 jours, afin de prévenir toute dominance des utilisateurs qui conservent pendant très longtemps leur crypto-monnaie ou qui en possèdent de grandes quantités[4],[10],[11]. Ce processus, qui est spécifique à chaque crypto-monnaie utilisant la méthode de preuve d'enjeu pour valider un bloc supplémentaire sur la chaîne de blocs, permet de sécuriser le réseau et, progressivement, produit de nouvelles pièces de monnaie au fil du temps sans consommer une importante puissance de calcul; ce qui le différencie de la méthode de preuve de travail dont la consommation énergétique ne cesse de croître dans le temps[réf. souhaitée]. Les développeurs de cette méthode allèguent qu'une attaque malveillante sur le réseau est plus difficile pour deux raisons principales :
- d'une part dans la méthode de preuve d'enjeu, la validation des blocs supplémentaires sur la chaîne de blocs ne requiert pas de regroupement des mineurs en bassins de minage pour mutualiser la puissance de calcul, comme c'est le cas pour la méthode par preuve de calcul (PoW) ;
- d'autre part, le coût économique pour acheter un maximum de pièces est bien supérieur pour un attaquant que d'acheter plus de 51 % de la puissance de calcul afin de réaliser une attaque par déni de service dans la méthode par preuve de calcul[12].
Méthode de sélection du validateur de bloc supplémentaire en fonction de la vélocité
modifierLa crypto-monnaie ReddCoin utilise la méthode de preuve d'enjeu en fonction de la vélocité (PoSV)[13]. Dans ce système de validation des blocs supplémentaires sur la chaîne de blocs, ce sont les utilisateurs qui utilisent le plus de transactions qui peuvent être aléatoirement choisis selon un processus défini pour valider l'addition de blocs sur la chaîne de blocs. Cette méthode se distingue de la précédente dans la mesure où elle écarte les utilisateurs qui thésaurisent leur monnaie.
Méthode de sélection du validateur de bloc supplémentaire en fonction de votes
modifierLa crypto-monnaie BitShares utilise un système dans lequel le validateur de bloc supplémentaire sur la chaîne de blocs est sélectionné aléatoirement parmi un groupe de 101 délégués qui possèdent les enjeux les plus importants[14]. Cette méthode utilise certains avantages que l'on retrouve dans un vote d'actionnaires où le compte sélectionné doit agir de manière responsable. Néanmoins la méthode réintroduit la dangereuse attaque Sybil dans laquelle l'identité d'un utilisateur peut être piratée et utilisée à mauvais escient[15].
Avantages et inconvénients
modifierAvantages
modifierLa validation par preuve de travail repose sur de puissants calculs algorithmiques pour valider les blocs supplémentaires supposant une consommation d'énergie importante. En 2014, la consommation d'énergie a totalisé 240 kWh par bitcoin (soit l'équivalent de 61 litres d'essence par bitcoin)[16]. Ces coûts en énergie sont presque toujours payés à des utilisateurs n'utilisant pas de crypto-monnaie ce qui entraîne une forte pression baissière sur le prix de la monnaie (les mineurs doivent vendre la crypto-monnaie sur les marchés d'échange en échange de monnaie fiduciaire pour payer leurs fournisseurs d'énergie).
Le système utilisant la validation de blocs supplémentaires sur la chaîne de blocs par preuve d'enjeu est elle beaucoup plus rentable et n’entraîne pas de « fuite » de valeur vers les monnaies fiduciaires[17].
Les incitations de comportement des mineurs fonctionnent aussi différemment : dans la méthode de validation par preuve de travail, le mineur a intérêt à vendre la récompense obtenue pour chaque bloc miné notamment pour payer ses frais de consommation énergétique ; alors que dans le système de validation par preuve d'enjeu, le mineur a intérêt à conserver ses pièces pour maximiser ses chances futures de pouvoir valider les blocs.
Les participants à la création des nouveaux blocs d'une monnaie utilisant la validation par preuve d'enjeu ne subissent pas son inflation. Une masse monétaire doit être créée et distribuée au préalable pour pouvoir commencer le processus.
Inconvénients
modifierCertains auteurs[18],[19] soutiennent que la preuve d'enjeu n'est pas une option idéale pour un protocole de consensus distribué. Un des problèmes identifiés est par exemple celui où un compte n'a « rien en jeu » (« nothing at stake »). S'il est sélectionné pour valider un bloc supplémentaire, il peut par exemple valider en même temps plusieurs versions valides de chaîne de blocs rendant impossible la validation par consensus.
En effet, dans le système de validation d'un bloc supplémentaire par preuve de travail, le mineur doit faire le choix entre toutes les branches possibles de la chaîne de blocs (ou à défaut en commencer une nouvelle) et choisir celle pour laquelle il a le plus de chances de calculer la bonne solution de l'algorithme. L'option est exclusive car s'il en choisit plusieurs, cela n'est pas rentable puisqu'il divise sa capacité de calcul et réduit en conséquence la probabilité de calculer les bonnes solutions par rapport à ses rivaux.
Dans le système de validation d'un bloc supplémentaire par preuve d'enjeu, la situation est différente : le vote est libre et ne coûte rien. Chaque pièce qu'un mineur possède a une certaine chance par seconde d’être utilisable pour signer un bloc. Dans le cas de branches multiples, la stratégie optimale est de voter sur toutes les branches en même temps dans l'espoir de pouvoir valider quelque part le bloc et toucher la récompense. C’est le concept où il n'y a « rien en jeu » (« nothing at stake »).
Par ailleurs, n'importe qui peut abuser de ce problème pour réaliser une double dépense (dans le cas d'une réorganisation de la chaîne de blocs)[20].
Une blockchain PoS ne peut structurellement pas offrir le même niveau de sécurité qu’une PoW car elle ne demande pas de travail de calcul en contrepartie de ses validations. Beaucoup d'informaticiens ont tenté de résoudre ces problèmes :
- La crypto-monnaie Peercoin utilise de manière centralisée la diffusion des points de contrôle (signée avec la clé privée du développeur). Ainsi, la réorganisation de la chaîne de blocs n'est pas possible plus profondément que le dernier point de contrôle. Cela a pour inconvénient de donner au développeur une autorité centrale sur le contrôle de la chaîne de blocs.
- Le protocole de la crypto-monnaie Nxt's ne permet que de réorganiser les derniers 720 blocs[21]. Néanmoins, cela ne résout pas tous les problèmes : un client peut suivre une branche de 721 blocs, indépendamment du fait que c'est la plus avancée dans la chaîne de blocs et qui, conséquemment, préviendrait l'obtention d'un consensus.
- La crypto-monnaie Ethereum a suggéré d'utiliser le protocole Slasher qui permet aux utilisateurs de « punir » le tricheur qui minerait plus qu'une branche de chaîne de blocs[22]. Cette proposition suppose une double signature pour créer une fourche (branche) et d'être puni si cette branche est créée sans enjeu. Le protocole Slasher n'a cependant jamais été adopté et les développeurs d'Ethereum ont conclu que la preuve d'enjeu était « non triviale[23] ». À la place ils ont développé un protocole utilisant un algorithme de preuve-de-travail nommé Ethash[24], avant de finalement utiliser un algorithme de preuve d'enjeu depuis la série de mise à jour Ethereum 2.0.
- Méthode hybride combinant « preuve de graver » et « preuve d'enjeu ». Dans cette méthode, l'utilisateur, sélectionné en fonction d'une méthode d'enjeu, obtient une récompense plus grande lorsqu'il valide un point de contrôle plus sûr mais qui est aussi plus coûteux.
- Méthode hybride combinant « preuve de travail » et « preuve d'enjeu ». Dans cette méthode, les blocs validés par preuve de travail agissent comme points de contrôle. Ces blocs ne contiennent pas de transactions mais permettent d'ancrer les autres blocs obtenus par la méthode de la preuve d'enjeu.
Des simulations statistiques ont montré que le forgeage simultané de plusieurs chaînes de blocs est possible et rentable. Les défenseurs de la méthode par preuve d'enjeu croient que la plupart des scénarios d'attaque sont impossibles ou si imprévisibles qu'ils ne restent que théoriques[25],[26].
Options
modifierPreuve de possession « proof of hold » (PoH)
modifierDans ce système, un algorithme donne plus de droits de validation aux utilisateurs qui possèdent des pièces pendant une durée plus longue. Au début de la diffusion de ce type de pièce, les résultats sont assez uniformes car les utilisateurs possèdent ces dernières pendant une durée à peu près similaire mais au fur et à mesure que le temps s'écoule, les compteurs évaluant le temps de possession sont remis à zéro pour les pièces qui sont échangées alors que du temps et des droits de validation s'accumule pour les utilisateurs qui les conservent. L'inconvénient de ce système est qu'il récompense les utilisateurs qui ne dépensent pas la monnaie en question alors que sa fonction première est de favoriser les échanges.
Preuve d'utilisation « proof of use » (PoU)
modifierCette méthode utilise un algorithme qui donne plus de droits de validation aux utilisateurs qui échangent la monnaie. Les critiques de cette méthode de preuve estiment que cela favorise les utilisateurs qui spamment la chaîne de blocs en envoyant de petits montants (pour augmenter leurs droits de validation). Pour se prévenir de cela, il faudrait des frais de transaction plus élevés mais cela pénaliserait les échanges. Par ailleurs, les utilisateurs qui thésaurisent la monnaie sont pénalisés.
Preuve d'enjeu/temps « proof of stake/time » (PoST)
modifierCe système multiplie selon un algorithme l'enjeu ou participation par une fonction mathématique qui tient compte du temps de possession de la pièce pour définir une probabilité d'être choisi pour valider le prochain bloc de la chaîne de bloc.
La crypto-monnaie PeerCoin utilise cette méthode. Une autre monnaie, VeriCoin, utilise aussi cette méthode avec un algorithme différent qui tend soit à récompenser les utilisateurs qui ont le plus de pièces en jeu, soit les utilisateurs pauvres plus tard dans le temps, laissant place à toutes les catégories d'utilisateurs la possibilité de valider des blocs supplémentaires sur la chaîne de blocs.
Preuve enjeu minimum/temps « proof of minimum aged stake » (PoMAS)
modifierLa méthode confère des probabilités de droits de validation de blocs supplémentaires aux utilisateurs qui ont un enjeu minimum de pièces en jeu sans proportionnalité de la taille de leur participation, en tenant compte d'une fonction mathématique qui tient compte de la durée de possession. Les critiques de la méthode estiment cependant que les utilisateurs les plus riches peuvent multiplier leurs comptes avec un enjeu au-dessus du minimum requis pour augmenter leurs probabilités d'être désignés comme les validateurs du bloc supplémentaire ajouté à la chaîne de bloc. Par ailleurs, la multiplication de ces comptes augmenterait le nombre de compte inactifs, qui influerait sur l'algorithme qui tient compte de la durée de possession (ces comptes ont plus de chances d'être désignés puisqu'il n'y a pas de mouvements).
Preuve d'importance « proof of importance »
modifierLe système de validation des blocs par preuve d'enjeu récompense les utilisateurs qui ont le plus d'enjeu dans la crypto-monnaie : les plus riches deviennent encore plus riches.
La crypto-monnaie NEM tente de modérer, dans son protocole, le poids de ces utilisateurs les plus fortunés en introduisant la notion de réputation qui tient compte, en plus de l'enjeu, des sorties nettes de monnaie du compte d'utilisateur et la réputation des personnes qui envoient de la monnaie sur le compte utilisateur. L'algorithme de calcul annule les tentatives d'augmenter l'importance des utilisateurs qui transfèrent de la monnaie entre leurs comptes et augmente progressivement la réputation des personnes qui n'ont pas été sélectionnées pour valider le bloc afin d'augmenter leurs chances de valider le bloc futur.
Notes et références
modifier- « preuve d’enjeu », Grand Dictionnaire terminologique, Office québécois de la langue française (consulté le ).
- Preuve d'enjeu. Proof-of-Stake Algorithmic Methods: A Comparative Summary (anglais) Social Science Research Network (SSRN), 11 mars 2018.
- (en) « Proof-of-Work vs Proof-of-Stake » (version du sur Internet Archive).
- (en) Sunny King, « PPCoin: Peer-to-Peer Crypto-Currency with Proof-of-Stake » [PDF] (consulté le ).
- « « The Merge » : transition réussie pour la blockchain Ethereum », Le Monde, (lire en ligne, consulté le )
- (en) Christina Jepson, « DTB001: Decred Technical Brief » [PDF] (consulté le ).
- (en) « Nxt Whitepaper (Blocks) », sur nxtwiki (consulté le )
- (en) mthcl (pseudonymous), « The math of Nxt forging » [PDF], sur docdroid.net (consulté le ).
- (en) Pavel Vasin, « BlackCoin’s Proof-of-Stake Protocol v2 »
- Vitalik Buterin, « What Proof of Stake Is And Why It Matters », Bitcoin Magazine (consulté le )
- Danny Bradbury, « Third largest cryptocurrency peercoin moves into spotlight with Vault of Satoshi deal », CoinDesk (consulté le )
- (en) Karl Whelan, « So What's So Special About Bitcoin? », Forbes, (lire en ligne)
- Larry Ren, « Proof of Stake Velocity: Building the Social Currency of the Digital Age »
- (en) « Carbon Foodprint of Bitcoin », sur coindesk.com (consulté le )
- (en) « Nxt Network Energy and Cost Efficiency Analysis » (consulté le )
- Andrew Poelstra, « Distributed Consensus from Proof of Stake is Impossible »
- (en) Vitalik Buterin, « On Stake »
- « Hard Problems of Cryptocurrencies »
- « Nxt Whitepaper: History Attack », sur Nxtwiki (consulté le )
- Vitalik Buterin, « Slasher: A Punitive Proof-of-Stake Algorithm »
- Vitalik Buterin, « Slasher Ghost, and Other Developments in Proof of Stake » (consulté le ) : « one thing has become clear: proof of stake is non-trivial »
- Gavin Wood, « Ethereum: A Secure Decentralised Generalised Transaction Ledger » (consulté le ) : « Ethash is the planned PoW algorithm for Ethereum 1.0 »
- (en) Alexander Chepurnoy, « PoS forging algorithms: multi-strategy forging and related security issues », sur github.com (consulté le )
- (en) Alexander Chepurnoy, « PoS forging algorithms: formal approach and multibranch forging », sur scribd.com (consulté le )
- (en) « The Inevitable Failure of Proof-of-Stake Blockchains and Why a New Algorithm is Needed (Op-Ed) » (consulté le )