Preuve d'enjeu

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
Ce modèle est-il pertinent ? Cliquez pour en voir d'autres.
La mise en forme de cet article est à améliorer (juin 2016).

La mise en forme du texte ne suit pas les recommandations de Wikipédia : il faut le « wikifier ». Découvrez comment faire.

La typographie, les liens internes ou externes, les conventions de style, la présentation des sourcesetc. sont autant de points qui peuvent ne pas convenir voire être absents. Les raisons de la pose de ce bandeau sont peut-être précisées sur la page de discussion. Si seules certaines sections de l'article sont à wikifier, pensez à les indiquer en utilisant {{section à wikifier}}.

La preuve d'enjeu ou preuve de participation ou Proof-of-stake (PoS) en anglais est une méthode par laquelle une chaîne de blocs d'une crypto-monnaie vise à atteindre un consensus distribué. Alors que la preuve de travail (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[1], 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[2] 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 dans BitShares, ShadowCash, Nxt, BlackCoin, NuShares/NuBits et Qora. La crypto-monnaie Ethereum a prévu une transition de la preuve de travail (PoW) vers une preuve d'enjeu (PoS) lors de son déploiement final. Peercoin et Decred[3] utilisent une méthode hybride PoW/PoS pour tenter de tirer avantage des deux systèmes et de créer un plus robuste consensus.

Validation du bloc nouveau dans la chaîne de blocs[modifier | modifier le code]

La 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 du bloc nouveau[modifier | modifier le code]

Les 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é[4],[5],[6]. 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[modifier | modifier le code]

La 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 multiplié par le nombre de jours que 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 a été utilisé, 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-monnaies ou qui possèdent de larges quantités[2],[7],[8]. 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[9]. 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[10].

Méthode de sélection du validateur de bloc supplémentaire en fonction de la vélocité[modifier | modifier le code]

La crypto-monnaie RedCoin utilise la méthode de preuve d'enjeu en fonction de la vélocité (PoSV)[11]. 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[modifier | modifier le code]

La 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[12]. 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[13].

Avantages et inconvénients[modifier | modifier le code]

Avantages[modifier | modifier le code]

La 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[précision nécessaire])[14]. 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 devises fiat 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 devises fiat[15].

Les incitations de comportement des mineurs fonctionne 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 a conserver ses pièces pour maximiser ses chances futures de pouvoir valider les blocs.

Une monnaie utilisant la validation par preuve d'enjeu n’a pas d’inflation (elle est déflationniste). La masse monétaire est créée au début et les mineurs validant les blocs supplémentaires sont récompensés en touchant le montant des frais de transfert.

Inconvénients[modifier | modifier le code]

Certains auteurs[16],[17] soutiennent que la preuve d'enjeu n'est pas une option idéale pour un protocole de consensus distribué. Un des problèmes identifié 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 fois cela n'est pas rentable puisqu'il divise sa capacité de calcul et réduit en conséquences la probabilité de calculer les bonnes solution par rapport à ses rivaux.

Stratégie de validation par PoW

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 ou il n'y a « rien en jeu » (« nothing at stake »).

Stratégie de validation par PoS

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)[18].

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[19]. 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[20]. 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 négligeable[21] ». À la place ils ont développé un protocole utilisant un algorithme de preuve-de-travail nommé Ethash[22].
  • 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ées 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[23],[24].

Alternatives[modifier | modifier le code]

Les informations suivantes proviennent principalement de : The Inevitable Failure of Proof-of-Stake Blockchains and Why a New Algorithm is Needed[25].

Preuve de possession « proof of hold » (PoH)[modifier | modifier le code]

Dans 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 sa fonction première est de favoriser les échanges.

Preuve d'utilisation « proof of use » (PoU)[modifier | modifier le code]

Cette méthode utilise un algorithme 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)[modifier | modifier le code]

Ce 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 monnaie alternative, 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)[modifier | modifier le code]

La 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 »[modifier | modifier le code]

Les informations suivantes proviennent principalement de : Proof-of-Importance : How NEM is Going to Add Reputations to the Blockchain.

Le 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 riche.

La crypto-monnaie NEM (en) 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 | modifier le code]

(en) Cet article est partiellement ou en totalité issu de l’article de Wikipédia en anglais intitulé « Proof-of-stake » (voir la liste des auteurs).

  1. (en) « Proof-of-Work vs Proof-of-Stake » (version du 20 mars 2015 sur l'Internet Archive).
  2. a et b (en) Sunny King, « PPCoin: Peer-to-Peer Crypto-Currency with Proof-of-Stake » [PDF] (consulté le 17 novembre 2014).
  3. (en) Christina Jepson, « DTB001: Decred Technical Brief » [PDF] (consulté le 1er mars 2016).
  4. (en) « Nxt Whitepaper (Blocks) », sur nxtwiki (consulté le 2 janvier 2015)
  5. (en) mthcl (pseudonymous), « The math of Nxt forging » [PDF], sur docdroid.net (consulté le 22 décembre 2014).
  6. (en) Pavel Vasin, « BlackCoin’s Proof-of-Stake Protocol v2 »
  7. Vitalik Buterin, « What Proof of Stake Is And Why It Matters », Bitcoin Magazine (consulté le 20 novembre 2013)
  8. Danny Bradbury, « Third largest cryptocurrency peercoin moves into spotlight with Vault of Satoshi deal », CoinDesk (consulté le 20 novembre 2013)
  9. (en) Jeffrey Thompson, « The Rise of Bitcoins, Altcoins—Future of Digital Currency », The Epoch Times,‎ (lire en ligne)
  10. (en) Karl Whelan, « So What's So Special About Bitcoin? », Forbes,‎ (lire en ligne)
  11. Larry Ren, « Proof of Stake Velocity: Building the Social Currency of the Digital Age »
  12. « BitShares - Delegated Proof of Stake », sur bitshares.org (consulté le 2 janvier 2015)
  13. « BitShares Sybil Attack Discussion », sur bitsharestalk.org (consulté le 2 janvier 2015)
  14. (en) « Carbon Foodprint of Bitcoin », sur coindesk.com (consulté le 2 janvier 2015)
  15. (en) « Nxt Network Energy and Cost Efficiency Analysis » (consulté le 21 décembre 2014)
  16. Andrew Poelstra, « Distributed Consensus from Proof of Stake is Impossible »
  17. (en) Vitalik Buterin, « On Stake »
  18. « Hard Problems of Cryptocurrencies »
  19. « Nxt Whitepaper: History Attack », sur Nxtwiki (consulté le 2 janvier 2015)
  20. Vitalik Buterin, « Slasher: A Punitive Proof-of-Stake Algorithm »
  21. Vitalik Buterin, « Slasher Ghost, and Other Developments in Proof of Stake » : « one thing has become clear: proof of stake is non-trivial »
  22. Gavin Wood, « Ethereum: A Secure Decentralised Generalised Transaction Ledger » : « Ethash is the planned PoW algorithm for Ethereum 1.0 »
  23. (en) Alexander Chepurnoy, « PoS forging algorithms: multi-strategy forging and related security issues », sur github.com (consulté le 30 décembre 2014)
  24. (en) Alexander Chepurnoy, « PoS forging algorithms: formal approach and multibranch forging », sur scribd.com (consulté le 22 décembre 2014)
  25. (en) « The Inevitable Failure of Proof-of-Stake Blockchains and Why a New Algorithm is Needed (Op-Ed) » (consulté le 24 juin 2016)