J'étais un peu surpris de cette réflexion à propos des différentes méthodes de consensus de la blockchain :
Le projet fait DPOS ça a l'air bien même si j'ai aucune idée de ce que ça veut dire.
Alors voilà une petite mise au point qui pourra peut-être servir à certains. Puis après tout, ça changera un peu de parler de blockchain plutôt que de smerits et d'airdrop.
La
technologie de la blockchain permet d'échanger des données (informations, monnaies, ...) de façon décentralisée et sans intermédiaire.
-
Décentralisée signifie répartie sur tout le réseau et supportée par chacun (ou au moins une grande partie) des participants.
-
Sans intermédiaire signifie que l'on supprime le besoin d'une entreprise, d'une banque centrale, ou d'un État en tant que garant des transactions effectuées.
Mais voilà, puisque l'on supprime l'intermédiaire, comment assurer et garantir la validité et la légitimité des échanges entre les participants ?
C'est ce qu'on appelle
le problème des généraux byzantins.
Pour tenter de résoudre ce problème, différentes formes de consensus ont été adoptées. Je vais détailler ici les 2 principales méthodes, plus une variante qu'on retrouve souvent :
PoW, PoS, et
DPoS. Il en existe d'autres et même certaines méthodes hybrides (PoW + PoS), mais le but n'est pas d'écrire un livre, juste d'éclaircir un peu les fondements de ce qu'est une blockchain.
La
méthode de consensus est le moyen qui permet à tous les acteurs du réseau de reconnaître les transactions comme valides et légitimes. Toutes ces transactions, mises bout à bout (ou bloc à bloc), forment une blockchain. La blockchain en elle-même n'étant jamais qu'un
registre distribué (
distributed ledger) répertoriant l'ensemble des blocs et donc l'ensemble des transactions, qui ont eu lieu sur cette blockchain.
- La première et principale forme de consensus est la Proof of Work (PoW), ou Preuve de Travail. (Bitcoin, Ethereum, Litecoin, Monero, …)
Cette méthode consiste à utiliser une puissance de calcul informatique pour traiter les transactions. Si l'on prend l'exemple de Bitcoin, cela fonctionne plus ou moins de la manière suivante :
1/ Toutes les dernières transactions effectuées sont regroupées dans un memory pool (le mempool).
2/ Les mineurs (ceux qui possèdent de la puissance de calcul) vérifient que chaque transaction du mempool est légitime en résolvant un puzzle mathématique.
3/ Le premier mineur à résoudre ce puzzle est récompensé par un montant en bitcoin (la récompense de bloc) et par les frais de transaction du réseau.
4/ Le mempool vérifié est désormais appelé bloc. Il est rajouté à la blockchain. Et ainsi de suite.
La théorie de cette méthode existe depuis une vingtaine d'années. En pratique, elle a fait ses preuves avec bitcoin depuis bientôt 10ans. Elle est de loin la méthode de consensus la plus performante en terme de sécurité de la blockchain. Le principal risque de cette méthode est l'attaque des 51%. Il faudrait que quelqu'un arrive à regrouper plus de 51% de l'ensemble de la puissance de calcul pour pouvoir créer une seconde blockchain. Disposant de la majorité de la puissance de calcul, l'attaquant pourrait légitimer les blocks de lui-même et ainsi falsifier la blockchain à son avantage. Ce risque devient relativement faible dès que le réseau devient suffisamment développé et important.
Mais la PoW pose également un problème écologique puisqu'elle requiert une quantité d'énergie (électricité) constante pour fonctionner. Et plus le réseau bitcoin se développe, plus la quantité d'énergie requise est importante. En l'état actuel et dans le cas d'une adoption massive de bitcoin, la consommation électrique du réseau est condamnée à augmenter de façon exponentielle. C'est clairement une limite qu'il faudra résoudre pour espérer voir les crypto-monnaies se généraliser.
- La seconde grande méthode de consensus est la Proof of Stake (PoS) ou la Preuve d'Enjeu. (Waves, stratis, Okcash, …)
Ici, plus besoin de puissance de calcul informatique. On utilise à la place des Enjeux. Les mineurs de PoS (que j’appellerai stakers à défaut de meilleur nom) doivent détenir un certain montant de crypto-monnaies pour staker. Ces enjeux servent à vérifier et valider les transactions. Les stakers forment les nœuds du réseau. Ce mécanisme repose sur l'idée que plus l'enjeu est gros, plus le staker a intérêt à maintenir la sécurité du réseau. Ici l'attaque des 51% nécessiterait de disposer d'au moins 51% des coins en circulation ce qui représente des montants considérables et rend la chose hautement improbable.
La méthode PoS est beaucoup plus récente que la PoW. En plus de son avantage écologique évident, elle permet aussi des vitesses de transaction beaucoup plus rapide que la PoW. Mais elle pose encore des problèmes de sécurité. Contrairement à la PoW, les stakers ne sont pas particulièrement dissuadés de "forker" (scinder une blockchain en deux) la blockchain. En cas de fork, les mineurs de PoW doivent diviser leur puissance de calcul, ou bien choisir de ne soutenir qu'une des deux chaînes. Ce n'est pas le cas des stakers, qui eux peuvent soutenir les deux chaînes de manière identique si un fork se produit, puisqu'ils n'ont "rien à y perdre". On parle d'ailleurs de l'attaque "nothing at stake" qui pourrait se traduire par "rien à perdre".
Une solution propose de bloquer les enjeux pendant une certaine période pour remédier à ce problème. Ainsi, en cas d'attaque, les fonds bloqués seraient automatiquement confisqués. Cela permet d'éviter les tentatives de manipulation de la blockchain puisque cela impliquerait d'y laisser son enjeu. C'est par exemple la solution que prévoit la prochaine mise à jour d'Ethereum : Casper.
Il est parfois avancé que la PoS serait aussi plus équitable que la PoW puisque tous les participants au réseau peuvent théoriquement devenir des stakers. Mais c'est un point discutable puisque les plus gros holders ont beaucoup plus de poids que les petits porteurs. De même que les grosses fermes de minage face au mineur récréatif.
- Il existe une variante assez répandue de la PoS: La Delegated Proof of Stake (DPoS) ou la Preuve d'Enjeu Déléguée. (Eos, Ark, Lisk...)
Je lui accorde une place ici car cette méthode est utilisée par certaines des crypto-monnaies les plus connues. Un peu à la manière d'une démocratie représentative, la DPoS consiste à voter pour élire des délégués / témoins qui vont représenter les participants au réseau. Ils sont en charge de la vérification des transactions sur la blockchain. Bien sûr, étant donné leur grande responsabilité, ils peuvent aussi être démis de leur fonction.
Certains estiment que cette méthode est la plus décentralisée car tout le monde peut voter même en ne disposant que de petits montants de crypto-monnaies, alors que même si la PoS est théoriquement accessible à tous, il faut, en pratique, détenir des montants conséquents pour staker.
D'autres considèrent en revanche que la DPoS est beaucoup plus centralisée que la PoS puisqu'elle ne repose que sur quelques délégués, et non sur l'ensemble du réseau.
En somme, on en est encore à une phase d'expérimentation et aucune solution miracle n'a été trouvée. Pour ceux qui cherchent la pépite qui les rendra riche, c'est sûrement une bonne idée d'essayer de dénicher la crypto qui mettra au point LA méthode ultime de consensus et résoudra définitivement le problème des généraux byzantins.
Ajout : Pour les mots chinois, voilà
le lien vers le lexique de Becassine.
Voilà un petit résumé incomplet mais que j'espère suffisamment simple pour être accessible à tous. N'hésitez pas à me corriger ou à compléter si besoin.