Proof-of-Stake vs Proof-of-Work : les mécanismes de consensus sur la blockchain
28 octobre, 2021
10 min
Des mécanismes de consensus tels que Proof-of-Work et Proof-of-Stake régulent les processus de vérification des transactions sur la blockchain. Ces mécanismes sont conçus pour résoudre les problèmes de sécurité associés aux systèmes décentralisés.
Le consensus dans la blockchain
Un système distribué et décentralisé est un ensemble de pairs (peers ou nœuds) qui ont un objectif commun. Centralisé ou non, partons du postulat qu’il est impossible d’obtenir un système sans faille.
Les blockchains qui nous intéressent, c’est-à-dire publiques et décentralisées, ont pour but de valider les transactions de cryptomonnaie et de les ajouter à la blockchain de manière correcte et fonctionnelle.
Si les systèmes de paiement tels que Visa gèrent la validation des transactions de manière centralisée, en agissant comme les principaux intermédiaires. Sur ces blockchains, il n’y a aucune autorité, c’est-à-dire un nœud de réseau avec plus de contrôle que les autres.
Pour cela, les blockchains ont dû trouver des moyens de responsabiliser tous les participants en évitant les pratiques néfastes telles que la réplication de transactions ou le vol de cryptomonnaies.
Sur la blockchain, les transactions sont contrôlées par une multitude de nœuds, c’est-à-dire des ordinateurs qui conservent une copie de l’historique de la blockchain.
Comment tous ces nœuds valident-ils une transaction de manière décentralisée sans conflit, et en maintenant la motivation pour se comporter correctement ?
En d’autres termes, comment parviennent-ils à un consensus en toute sécurité ?
Le problème des Généraux byzantins
C’est le cœur du problème des généraux byzantins, une étude de cas de la théorie des jeux.
C’est une sorte de métaphore qui permet de mieux comprendre le défi que pose le consensus.
Le problème est de permettre à 4 généraux de prendre une décision et de se déplacer de manière coordonnée.
Voici les conditions :
- Autour d’une forteresse, il y a 4 généraux byzantins (les nœuds), chacun avec sa propre armée
- Ils peuvent décider soit d’attaquer (valider), soit de se retirer (rejeter)
- La décision et l’action doivent être unanimes
- Ils ne peuvent pas changer d’avis (immuabilité)
- Ils peuvent envoyer des messages pour communiquer la décision
La difficulté vient du fait que des messages peuvent être perdus, ou qu’un ou plusieurs généraux peuvent trahir les autres et envoyer un message qui met les autres en danger.
En particulier, un système Byzantine Fault Tolerant, « Tolérant au problème des généraux byzantins » se caractérise par un mécanisme de consensus qui n’est pas entravé si un participant au réseau agit de manière préjudiciable ou ne participe pas.
Ceci est crucial pour rendre une blockchain évolutive et efficace.
Proof-of-Work : longévité
Satoshi Nakamoto a été le premier à résoudre le problème des généraux byzantins et à diffuser le consensus en appliquant les Proof-of-Work à la blockchain Bitcoin. Ce même mécanisme a ensuite été adopté par des cryptomonnaies dérivées directement ou indirectement du Bitcoin, telles que Litecoin, Bitcoin Cash, Dogecoin et initialement Ethereum.
Le Proof-of-Work est techniquement la preuve d’avoir dépensé le plus d’énergie pour décoder un code cryptographique généré par le protocole.
En effet, pour parvenir à un consensus grâce au Proof-of-Work, des nœuds appelés Miners s’affrontent pour résoudre un « puzzle » cryptographique. Ce n’est pas un casse-tête qui nécessite un raisonnement ou une logique particulière, mais pour le résoudre, il te suffit de générer le plus de solutions possibles. La génération continue de ces solutions nécessite de la puissance de calcul (CPU) et donc, de l’énergie.
Plus un Miner utilise de la puissance de calcul, plus il a de chances de résoudre le code, en obtenant ainsi le droit d’ajouter le bloc à la blockchain de Bitcoin et de recevoir les frais de transaction qu’il contient, en plus des nouveaux bitcoins frappés.
Ce procédé réalisé par les Miners est le fameux Mining.
La récompense que les Miners reçoivent est l’incitation à agir équitablement dans l’ensemble du réseau, et à ne pas tenter de voler les autres participants.
Même si un Miner parvenait à atteindre une puissance de calcul suffisante pour prendre le contrôle d’une partie suffisante du réseau (51 %) et pouvoir affecter son fonctionnement, il devrait choisir entre voler les bitcoins d’autres personnes ou valider de nombreuses transactions afin d’obtenir une récompense totale très élevée.
Dans ces cas, il est nécessaire de s’assurer que l’option légitime est la plus pratique.
Les avantages et les inconvénients du Proof-of-Work
- Avantages : avec le Bitcoin, le PoW a résisté à l’épreuve du temps, en assurant la sécurité du réseau.
- Inconvénients : le PoW ralentit le Bitcoin, avec 10 minutes pour valider chaque bloc.
- Inconvénients : en pratique, l’incitation inventée par Satoshi a provoqué la naissance de Mining Pool de Bitcoin qui contrôlent de fait la majeure partie du réseau, diminuant ainsi sa distribution.
- Inconvénients : la forte consommation d’énergie, même si elle provient de sources renouvelables, constitue une barrière à l’entrée et un coût.
Proof-of-Stake : évolutivité et efficacité
Il ne nous appartient pas de déterminer si le Proof-of-Stake est plus ou moins sûr que le PoW, mais nous savons qu’il a été créé pour être plus rapide, évolutif et moins coûteux en énergie. Polkadot et Cardano utilisent le PoS.
À la place des Miners, on trouve ici des validateurs, qui prouvent leur fiabilité en bloquant les tokens qui font office de garantie (Stake) dans un portefeuille.
En validant les transactions et en les ajoutant à la blockchain, les validateurs reçoivent des récompenses. La façon dont les validateurs sont sélectionnés est légèrement différente dans chaque blockchain, mais elle est généralement fondamentalement aléatoire. Dans certains cas, le nombre de tokens en staking a également une influence.
Avantages et inconvénients du Proof-of-Stake
- Avantages : un des avantages est que pour participer à une telle blockchain, tu as juste besoin d’un ordinateur normal qui a simplement assez de mémoire pour contenir l’historique de la blockchain.
- Avantages : l’incitation à se comporter correctement est plus forte car sinon, ton Stake est retiré du réseau par ce que l’on appelle le « Slashing ».
- Inconvénient ? La barrière à l’entrée change par rapport au Proof-of-Work car l’achat de matériel très puissant et à forte consommation énergétique n’est plus requis ; seule la disponibilité de cryptomonnaies est nécessaire.
- C’est pourquoi il s’agit d’un modèle souvent critiqué : pas tout à fait inclusif. Comme prévu, chaque système nécessite un compromis différent.
En revanche, l’incitation du PoS est peut-être cynique mais efficace : si je crois suffisamment en un projet que j’achète sa cryptomonnaie, il n’est pas dans mon intérêt de nuire à son réseau. À l’inverse, si je n’achète pas sa cryptomonnaie, je n’ai rien à perdre des comportements négatifs.
Proof-of-Stake vs Proof-of-Work selon Vitalik Buterin
Pour toutes ces raisons, Ethereum passe progressivement du mécanisme PoW au PoS en passant à la version 2.0.
Face au choix du mécanisme de consensus « correct », Vitalik Buterin rappelle que l’esprit des Cypherpunks, c’est-à-dire le mouvement qui a conduit à la naissance du Bitcoin, était idéaliste, mais aussi pratique.
Les Cypherpunks étaient essentiellement des cryptographes et des informaticiens qui croyaient à la décentralisation des systèmes. Vitalik interprète l’esprit Cypherpunk, entre autres, avec le principe qu’il vaut mieux créer des systèmes « plus faciles à défendre qu’à attaquer ».
Ce n’est pas seulement pour une question philosophique, mais comme un principe efficace d’un point de vue technique.
Le Proof-of-Work ne respecte pas ce principe, car le coût d’une attaque équivaut au coût de la défense : la perte n’est qu’en énergie.
Le Proof-of-Stake, en revanche, augmente les pertes de ceux qui vont à l’encontre du réseau : il punit par le slashing.
L’autre gros avantage du PoS est la vitesse. Vitalik Buterin lui-même met cependant en garde contre une focalisation excessive sur la vitesse, car, étant donné le trilemme de la blockchain, cela signifiera toujours sacrifier la sécurité et la décentralisation.
Delegated Proof of Stake : inclusion
Au-delà du duo habituel Bitcoin-Ethereum, PoW-PoS, commençons à réfléchir à la variété des solutions consensuelles possibles.
Le DPoS est la variante la plus connue du PoS, réitérée pour la première fois par Dan Larimer, fondateur d’Eos et de Bitshares.
Dans ce système, l’ensemble du réseau vote à qui déléguer la validation des blocs. La validation n’étant pas une activité accessible à tous, la possibilité de déléguer étend la participation à davantage de nœuds.
Les validateurs sont appelés délégués, ou Witnesses (témoins), voire Block Producers.
Pour voter, encore faut-il mettre une garantie en staking, mais il est aussi possible de le faire via une Staking Pool sur un service généralement simple d’utilisation. Même de petites sommes peuvent être déposées dans des Staking Pools.
Lorsque de nouvelles transactions arrivent, un nombre limité de délégués est choisi au hasard pour enregistrer le nouveau bloc.
Lorsqu’un délégué valide un bloc, il reçoit des commissions en récompense et donne un pourcentage à ceux qui l’ont élu.
Ce mécanisme de consensus est adopté par Eos et présente des similitudes avec le PoS de Cardano, mais il existe des différences.
Cardano applique le concept de délégation uniquement aux Staking Pools. La délégation n’est pas utilisée pour choisir initialement les validateurs, dans les modes électoraux, mais uniquement pour déléguer ses ADA aux Staking Pools. Tout producteur de bloc à Cardano peut finir par valider un bloc, et non un nombre limité élu au début du processus.