Qu'est-ce qu'un algorithme de consensus Blockchain ?
Accueil
Articles
Qu'est-ce qu'un algorithme de consensus Blockchain ?

Qu'est-ce qu'un algorithme de consensus Blockchain ?

DĂ©butant
Publié le Dec 13, 2018Mis à jour le Aug 17, 2023
7m

Introduction

Un algorithme de consensus est un mĂ©canisme permettant aux utilisateurs ou aux machines de se coordonner dans un environnement distribuĂ©. Il s'assure que tous les agents du systĂšme se mettent d'accord sur une source unique de vĂ©ritĂ©, mĂȘme en cas d'Ă©chec de certains agents. Autrement dit, le systĂšme doit ĂȘtre tolĂ©rant aux pannes (voir Ă©galement : La tolĂ©rance aux pannes byzantines expliquĂ©e).

Dans un systĂšme centralisĂ©, une seule entitĂ© alimente et contrĂŽle le rĂ©seau. Dans la plupart des cas, l'entitĂ© peut apporter des modifications comme bon lui semble – il n'existe pas de systĂšme de gouvernance complexe permettant Ă  plusieurs administrateurs de parvenir Ă  un consensus. 

Dans un systĂšme dĂ©centralisĂ©, c'est une toute autre histoire. Supposons que nous travaillions avec une base de donnĂ©es distribuĂ©e – comment faire pour se mettre d'accord sur les donnĂ©es Ă  ajouter ?

RĂ©ussir Ă  surmonter ce challenge dans un environnement oĂč les participants ne se font pas confiance a peut-ĂȘtre Ă©tĂ© le dĂ©veloppement le plus crucial qui a ouvert la voie aux blockchains. Dans cet article, nous verrons pourquoi les algorithmes de consensus sont essentiels au fonctionnement des cryptomonnaies et des registres distribuĂ©s.


Algorithmes de consensus et cryptomonnaies

Dans les cryptomonnaies, les soldes des utilisateurs sont enregistrĂ©s dans une base de donnĂ©es – la blockchain. Il est essentiel que tout le monde (chaque nƓud pour ĂȘtre prĂ©cis) conserve une copie identique de la base de donnĂ©es. Sinon, des informations contradictoires risquent de voir le jour, nuisant Ă  l'ensemble du rĂ©seau.
La cryptographie à clé publique assure que les utilisateurs ne peuvent pas dépenser les monnaies des autres. Néanmoins, il doit encore y avoir une source unique de vérité sur laquelle se basent les participants au réseau pour déterminer si les fonds ont déjà été dépensés.

Satoshi Nakamoto, le crĂ©ateur de Bitcoin a proposĂ© le systĂšme du Proof of Work pour coordonner les participants. Nous verrons sous peu comment le PoW fonctionne – pour l'instant identifions certains traits communs aux nombreux algorithmes de consensus existants.

PremiÚrement, nous demandons aux utilisateurs qui veulent ajouter des blocs (nous les appellerons validateurs) de fournir un stake. Le stake est une valeur qu'un validateur doit mettre en gage afin de le dissuader d'agir de maniÚre malveillante. Si ceux-ci trichent, ils perdront leur stake. Par exemple de la puissance de calcul, des cryptomonnaies ou leur réputation. 
Pourquoi risqueraient-ils leurs propres ressources ? Tout simplement parce qu'il y a une récompense en jeu. Celle-ci est généralement une cryptomonnaie native du protocole qui repose sur les frais payés par les utilisateurs, sur des cryptomonnaies fraichement créées ou les deux.
La derniĂšre chose dont nous avons besoin est la transparence. Nous devons pouvoir savoir quand quelqu'un triche. IdĂ©alement, il devrait ĂȘtre coĂ»teux pour eux de produire des blocs, mais bon marchĂ© pour quiconque de les valider. Cela garantit que les validateurs sont Ă©galement contrĂŽlĂ©s par les utilisateurs lambdas.


Types d'algorithmes de consensus

Preuve de travail (PoW)

Le Proof of Work (PoW) est le parrain des algorithmes de consensus de blockchain. Il a été implémenté pour la premiÚre fois avec Bitcoin, bien que son concept existe depuis longtemps. Dans le Proof of Work, les validateurs (que l'on nomme miners) hachent les données qu'ils veulent ajouter jusqu'à produire une solution spécifique.
Un hachage est une chaine aléatoire de lettres et de chiffres créée lors de l'exécution d'une fonction de hachage. Mais si les données à l'entrée sont identiques, les résultats à la sortie le seront également. Cependant, le moindre changement génÚrera un hachage complÚtement différent.

Les données à la sortie ne permettent pas de déterminer celles à l'entrée. Il s'agit donc d'une fonction trÚs efficace pour prouver que vous connaissiez une donnée depuis un certain temps. Vous pouvez donner son hachage à quelqu'un et lorsque vous révélerez les données, cette personne pourra les exécuter à travers la fonction pour s'assurer que la sortie est identique.

Dans le Proof of Work, le protocole définit les conditions qui rendent un bloc valide. Celui-ci pourra, par exemple, dire que seul un bloc dont le hachage commence par 00 est valide. La seule maniÚre pour un miner de créer un bloc valide est de procéder par force brute. Pour produire un résultat différent jusqu'à trouver le bon, les miners peuvent modifier un paramÚtre dans leurs données. 

Pour les plus grandes blockchains, le niveau est trÚs trÚs haut. Pour rivaliser avec les autres miners, vous devez disposer d'un entrepÎt rempli d'ASIC, un matériel spécifiquement conçu pour augmenter vos chances de produire un bloc valide.

Votre stake, dans le mining, correspond aux coûts de ces machines et à l'électricité nécessaire pour les faire tourner. Les ASIC sont conçus dans le seul but de miner, ils n'ont donc pas d'usages en dehors du minage de cryptomonnaies. La seule façon de récupérer votre investissement initial est de miner et d'obtenir des récompenses en réussissant à ajouter un nouveau bloc à la blockchain.

Il est trÚs simple pour le réseau de vérifier que vous avez créé le bon bloc. Une seule exécution avec la fonction permet de vérifier le fruit de vos nombreux essais. Si vos données produisent un hachage valide, il sera accepté et vous recevrez une récompense. Sinon, le réseau invalidera celui-ci et vous aurez perdu du temps et de l'électricité pour rien.


Preuve d'enjeu (PoS)

Le Proof of Stake (PoS) a été proposé au début du Bitcoin comme une alternative au Proof of Work. Dans le PoS, les concepts de miners, de matériel spécialisé et de consommation massive d'énergie n'existent pas. Il vous suffit d'avoir un ordinateur.
Et un petit quelque chose... Vous devez mettre une piÚce dans la machine. Dans le PoS, au lieu d'utiliser une ressource externe (des machines et de l'électricité), vous utiliserez une ressource interne (une cryptomonnaie). Les rÚgles diffÚrent en fonction des protocoles, mais vous devrez généralement détenir un montant minimal pour participer au staking.

Vous devrez ensuite verrouiller vos fonds dans un portefeuille (ils ne peuvent pas ĂȘtre dĂ©placĂ©s lorsque vous stakez). Vous vous mettrez gĂ©nĂ©ralement d'accord avec les autres validateurs sur les transactions qui passeront dans le bloc suivant. Dans un sens, vous pariez sur le bloc qui sera sĂ©lectionnĂ© et le protocole dĂ©cide du reste.

Si votre bloc est sĂ©lectionnĂ©, vous recevrez une partie des frais de transaction, proportionnellement Ă  votre stake. Plus vous verrouillez de fonds, plus vous avez de chances de gagner. Mais si vous essayez de tricher en proposant des transactions non valides, vous perdrez une partie (ou la totalitĂ©) de votre stake. Par consĂ©quent, nous avons un mĂ©canisme similaire au PoW – agir honnĂȘtement est plus rentable qu'agir de maniĂšre malhonnĂȘte.

En gĂ©nĂ©ral, les monnaies nouvellement crĂ©Ă©es ne font pas partie des rĂ©compenses des validateurs. La monnaie native de la blockchain doit donc ĂȘtre Ă©mise d'une maniĂšre diffĂ©rente. Cela peut se faire via une distribution initiale (ex. : une ICO ou une IEO) ou par l'utilisation du PoW au dĂ©but du protocole avant sa transition vers le PoS.

À ce jour, le Proof of Stake pur n'est employĂ© que par des petites cryptomonnaies. Par consĂ©quent, il n'est pas certain qu'il puisse servir d'alternative viable au PoW. Bien que cela semble thĂ©oriquement valable, il en sera tout autrement dans la pratique. 

Une fois le PoS dĂ©ployĂ© sur un rĂ©seau avec une grande quantitĂ© d'informations, le systĂšme devient un terrain parfait pour les incitations financiĂšres et la thĂ©orie des jeux. Quiconque dispose du savoir-faire nĂ©cessaire pour « pirater » un systĂšme PoS ne le fera que s'il est possible d'en tirer parti – c'est pourquoi le seul moyen de savoir si c'est possible est de tenter directement sur le rĂ©seau.

Nous verrons sous peu des tests Ă  grande Ă©chelle du PoS – Casper sera mis en oeuvre dans le cadre d'une sĂ©rie de mises Ă  niveau du rĂ©seau Ethereum (Ă©galement connues sous le nom d'Ethereum 2.0).


Types d'algorithmes de consensus

Le Proof of Work et le Proof of Stake sont les algorithmes de consensus les plus courants. Mais il en existe évidemment de nombreux autres, possédant tous leurs avantages et leurs inconvénients. Consultez les articles suivants :


Pour conclure

Les mécanismes pour obtenir un consensus sont vitaux pour le fonctionnement des systÚmes distribués. Nombreux sont ceux estimant que la plus grande innovation du Bitcoin est l'utilisation du Proof of Work pour permettre aux utilisateurs de se mettre d'accord sur un ensemble partagé de faits.

Les algorithmes de consensus sous-tendent aujourd'hui non seulement les systÚmes de monnaie numérique, mais aussi les blockchains, qui permettent aux développeurs d'exécuter du code sur un réseau distribué. Ils constituent une pierre angulaire de la technologie blockchain et sont essentiels à la viabilité à long terme des différents réseaux existants.

De tous les algorithmes de consensus, le Proof of Work reste toujours le plus utilisé. En effet, une alternative plus fiable et sécurisée n'a pas encore été proposée. Cela dit, il y a énormément de recherche et de développement pour remplacer le PoW et il est fort probable que nous verrons émerger davantage de consensus dans les années à venir.