27 septembre 2017

Pow and Pos

Wiki & Aides :

Extrait de : https://fr.wikipedia.org/wiki/Preuve_d’enjeu

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 électroniques1, 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. Peercoin2 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 Decred3 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

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

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

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és2,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 temps9. 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 calcul10.

Méthode de sélection du validateur de bloc supplémentaire en fonction de la vélocité

La crypto-monnaie ReddCoin 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

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 importants12. 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 escient13.

Avantages et inconvénients

Avantages

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 fiat15.

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

Certains auteurs16,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 blocs19. 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 blocs20. 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égligeable21 ». À la place ils ont développé un protocole utilisant un algorithme de preuve-de-travail nommé Ethash22.
  • 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éoriques23,24.