À quoi sert un mécanisme de consensus sur la blockchain ?
Pour qu'un registre distribué puisse fonctionner correctement, il doit disposer d'un moyen convenu de valider les transactions. Ce processus est appelé consensus, et la logique utilisée pour y parvenir est connue sous le nom de mécanisme de consensus ou algorithme de consensus. Chaque blockchain a ses propres conditions spécifiques pour l'approbation des transactions dans un bloc. Les mécanismes les plus connus sont : le Proof of Work (PoW), le Proof of Stake (PoS), le Delegated Proof of Stake (DPoS) et le Proof of Autority (PoA).
Un algorithme de consensus est un mécanisme qui détermine qui peut ajouter de nouveaux blocs à une blockchain et comment les nœuds complets parviennent à un accord sur le prochain bloc à ajouter à la blockchain. Par ailleurs, tous ces mécanismes de consensus sont importants pour le bon fonctionnement d'une blockchain, notamment dans le domaine des crypto monnaies. Si celui-ci n'est pas approprié, alors cette chaîne pourrait s'exposer à de nombreuses attaques.
Nous allons examiner dans cet article les différentes façons dont les registres distribués (blockchain / DAG) approuvent les transactions.
En savoir plus sur la définition d'un algorithme de consensus : Qu’est-ce qu’un algorithme de consensus sur la blockchain ?
Les différents mécanismes de consensus sur la blockchain
Proof of Work ou Preuve de travail (PoW)
La preuve de travail (PoW) est le consensus le plus célèbre dans le domaine des crypto monnaies, mais beaucoup moins utilisé dû à son fonctionnement coûteux en énergie et en matériel. C'est le premier algorithme de consensus utilisé par Satoshi Nakamoto, pour la création de Bitcoin. Le mécanisme consensus Proof of Work a donc besoin de beaucoup d'énergie et de matériel pour fonctionner, il est considéré pour beaucoup comme la solution la plus sécurisée pour un réseau et mais aussi pour résister à la censure.
Contrairement à de nombreux mécanismes (PoS, DPoS, PoA etc.), on ne peut pas “dupliquer” de la puissance de calcul d'un simple clic gauche, il faut forcément ajouter du matériel au réseau.
Pour ajouter un bloc à une blockchain, vous devez résoudre un puzzle cryptographique sous forme d'un calcul “complexe”. Ce puzzle est spécifiquement conçu de manière à ce qu'il soit très difficile à résoudre, mais très facile à vérifier par les différents nœuds du réseau.
La résolution de cette énigme est connue sous le nom de minage (mining), et c'est le processus qui valide les transactions sur une blockchain et les ajoute à la chaîne. L'algorithme de consensus le plus courant pour y parvenir est connu sous le nom de Proof of Work.
Dans l'algorithme Proof of Work, un réseau de nœuds dédiés au minage (mineurs) est en compétition pour résoudre un puzzle cryptographique, le premier nœud à la résoudre est récompensé par une “récompense de bloc”.
Lors de la création du bloc contenant les transactions, le mineur ajoute une première transaction “coinbase” avec la récompense de bloc, cette récompense est envoyée sur l'adresse de réception définie par le mineur.
Ce mécanisme était notamment utilisé par Ethereum avant son changement en Proof of Stake.
En savoir sur le Proof of Work : Qu’est-ce que la preuve de travail (Proof of Work ou PoW) ?
Proof of Stake ou Preuve d'enjeu (PoS)
La preuve d'enjeu (PoS) est le deuxième consensus le plus répandu dans le domaine des crypto monnaies. En effet, il est le plus utilisé grâce à son coût en énergie et matériel souvent moins élevé. La preuve d'enjeu a été introduite en 2011 afin de résoudre les limites des réseaux PoW, la première crypto monnaie a implémenter le Proof of Stake a été le Peercoin.
On peut remarquer que la preuve d'enjeu utilise une manière différente de valider les blocs par rapport à la preuve de travail. En effet, sur les réseaux Proof of Stake (PoS), les mineurs n'existent pas. Ce sont des noeuds validateurs* qui se chargent afin de valider un bloc.
*Il existe plusieurs types de noeuds sur un réseau distribué. Les noeuds validateurs et les mineurs sont des noeuds qui se chargent de créer de nouveaux blocs, ils sont récompensés en crypto monnaies pour ce travail. Il existe également des noeuds qui se chargent uniquement de stocker l'intégralité de la blockchain pour en vérifier l'intégrité, ce sont des nœuds complets, les noeuds complets ne sont généralement pas rémunérés pour ce travail.
Contrairement à la preuve de travail, la preuve d'enjeu fonctionne avec peu de puissance de calcul, mais grâce à un certain nombre de jetons mis en jeu (stakés) dans un “smart contract” afin de sécuriser le réseau distribué (blockchain). On parle alors de “staking“. Les validateurs sont choisis aléatoirement afin de valider les blocs et être récompensés en cryptomonnaie.
En résumé, les nœuds mettant en jeu leurs cryptomonnaies, participent à la sécurisation du réseau, et sont récompensés à hauteur de leur risque.
En savoir plus sur le Proof of Stake : Qu’est-ce que le Proof of Stake ? (Preuve d’Enjeu ou PoS)
La preuve d’autorité ou Proof of Authority (PoA) a été proposé en 2017 par Gavin Wood, co-fondateur d’Ethereum. Celui-ci a proposé une nouvelle solution pratique et efficace afin de faire fonctionner et sécuriser la blockchain.
En effet, la preuve d’autorité ne s’effectue pas sur la puissance de calcul, ou encore le nombre de jetons qu’un nœud possède, mais bien sur la réputation des validateurs, que nous appelons “entités de confiance”. La validation des blocs est effectuée par les validateurs qui ont été autoritairement sélectionnés.
De ce fait, ce type de consensus est souvent utilisé et apprécié sur des réseaux privés puisqu’il permet aux entreprises de structurer leur chaîne de production. Enfin, en utilisant ce type de mécanisme, les transactions sont effectuées très rapidement, et permettent d’avoir un meilleur taux de transaction par seconde.
La preuve d'enjeu déléguée (DPoS)
Développé en 2014 par Daniel Larimer, l'algorithme de consensus de preuve d'enjeu déléguée est également une alternative à l'algorithme de consensus Proof of Work. Il est particulièrement apprécié par la communauté du fait que cet algorithme a été présenté comme une version plus efficace et démocratique des algorithmes précédents.
La première crypto monnaie a intégrer le DPoS est BitShares, en 2015. BitShares est un exchange décentralisé.
La manière spécifique dont cet algorithme de consensus fonctionne est que les personnes qui possèdent une “certaine quantité de pièces” peuvent déléguer des jetons aux noeuds validateurs qui ajoutent de nouveaux blocs à la chaîne. Un peu à la manière d'une démocratie liquide.
Dans ce modèle, les nœuds validateurs et les personnes qui délèguent des jetons (délégateurs) sont tous les 2 récompensés en crypto monnaies.
Une fois que les délégués ont été désignés par les participants du réseau, nous allons voir comment un bloc est validé grâce au consensus DPoS.
En utilisant cette méthode, le système de validation est plus rapide, et permet de traiter plus de transactions à la seconde. Par ailleurs, l'exécution des transactions et smarts contracts est souvent moins coûteuse que les autres consensus que nous avons pu évoquer précédemment.
Néanmoins, la centralisation est un risque majeur de l'utilisation de ce système. En effet, lorsque le nombre de délégués est insuffisant ou qu'un nombre restreint de délégués possède la majeure partie des jetons, cela peut leur permettre de prendre le contrôle du consensus, et créer alors une cartellisation de la validation de blocs.
C'est à dire : appliquer de la censure en refusant l'ajout de certaines transactions aux blocs ou encore en priorisant certaines transactions plutôt que d'autre ce qui peut créer un un avantage aux utilisateurs proches du cartel qui peuvent réaliser un arbitrage sur leurs transactions afin de réaliser du profit.
En savoir plus sur la preuve d'enjeu déléguée : Qu’est-ce que la preuve d’enjeu déléguée (DPoS) ?
Conclusion
En résumé, l’algorithme de consensus de la blockchain est la logique qui détermine qui peut ajouter de nouveaux blocs à une blockchain et comment les nœuds parviennent à un accord sur la prochaine transaction à ajouter à la chaîne. Il existe plusieurs grandes catégories principales d’algorithmes de blockchain : Proof of Work, Proof of Stake, Delegated Proof of Stake et Proof of Authority.
Ces algorithmes déterminent comment un réseau atteint le consensus, ou comment définir un réseau où tous les participants sont d’accord sur l’état du réseau. Ce sont les règles qui font fonctionner une blockchain. Chaque blockchain a ses propres exigences spécifiques pour approuver les transactions et valider les nouveaux blocs, mais il existe de multiples façons de structurer ces procédures.