Quels sont les algorithmes de consensus dans la blockchain ?

Introduction

Un algorithme de consensus est un mécanisme fondamental qui permet la coordination entre utilisateurs ou machines dans un environnement distribué. Sa fonction principale est de garantir que tous les agents du système parviennent à un accord sur une unique source de vérité, même lorsque certains composants échouent. Ce concept, connu sous le nom de tolérance aux pannes, est essentiel au fonctionnement des réseaux blockchain.

Dans les systèmes centralisés, une seule entité contrôle et alimente le réseau, pouvant apporter des modifications à sa guise sans avoir besoin de systèmes de gouvernance complexes. Cependant, dans les systèmes décentralisés, la situation change radicalement. En travaillant avec des bases de données distribuées, se pose la question : comment établir des accords sur les données à incorporer ?

Surmonter ce défi dans un environnement où les participants ne se font pas confiance a probablement constitué l'avancée la plus cruciale qui a ouvert la voie aux blockchains. Cet article explore pourquoi les algorithmes de consensus sont vitaux pour le fonctionnement des cryptomonnaies et des registres distribués.

Algorithmes de consensus et cryptomonnaies

Dans l'écosystème des cryptomonnaies, les soldes des utilisateurs sont enregistrés dans une base de données appelée blockchain. Il est essentiel que tous les nœuds conservent une copie identique de cette base de données, car l'apparition d'informations contradictoires pourrait compromettre l'intégrité de l'ensemble du réseau.

La cryptographie à clé publique garantit que les utilisateurs ne peuvent pas dépenser les pièces des autres. Cependant, il doit exister une source unique de vérité sur laquelle les participants peuvent s'appuyer pour déterminer si les fonds ont déjà été utilisés.

Satoshi Nakamoto, créateur de Bitcoin, a proposé le système Proof of Work (PoW) pour coordonner les participants. Nous analyserons son fonctionnement plus tard, mais d'abord, nous identifierons les caractéristiques communes entre divers algorithmes de consensus existants.

Initialement, il est demandé aux utilisateurs souhaitant ajouter des blocs ( validateurs ) de fournir une garantie ou "stake". Cet élément représente une valeur que le validateur doit engager pour le dissuader d'agir de manière malveillante. S'il tente de tromper le système, il perdra sa garantie, qui peut consister en puissance de calcul, en cryptomonnaies ou en sa réputation.

Pourquoi risqueraient-ils leurs propres ressources ? La réponse est simple : il y a une récompense en jeu. En général, cette récompense se matérialise sous la forme de la cryptomonnaie native du protocole, basée sur les frais payés par les utilisateurs, sur de nouvelles cryptomonnaies générées, ou sur les deux sources.

Le dernier exigence fondamentale est la transparence. Il est nécessaire de pouvoir identifier quand quelqu'un essaie de tromper le système. Idéalement, il devrait être coûteux pour les validateurs de produire des blocs, mais économique pour tout utilisateur de les vérifier. Cela garantit que les validateurs sont également supervisés par des utilisateurs ordinaires.

Types d'algorithmes de consensus

Preuve de travail (PoW)

Le Proof of Work (PoW) est l'algorithme de consensus blockchain par excellence. Il a été initialement mis en œuvre avec Bitcoin, bien que le concept existait depuis bien plus longtemps. Dans ce système, les validateurs (appelés mineurs) appliquent des fonctions de hachage aux données qu'ils souhaitent ajouter jusqu'à produire une solution spécifique.

Un hachage est une séquence apparemment aléatoire de caractères générée en exécutant une fonction de hachage. Si les données d'entrée sont identiques, les résultats seront les mêmes. Cependant, la moindre altération génère un hachage complètement différent.

Les données de sortie ne permettent pas de déterminer les données d'entrée, transformant cette fonction en une méthode efficace pour prouver qu'une donnée était connue pendant un certain temps. Le hash peut être fourni à un tiers et, en révélant les données, cette personne peut vérifier que la sortie correspond en les exécutant dans la fonction.

Dans le PoW, le protocole définit les conditions qui rendent un bloc valide. Par exemple, il pourrait établir qu'un bloc dont le hash commence par "00" est valide. La seule façon pour un mineur de créer un bloc valide est par force brute, en modifiant un paramètre dans ses données pour produire différents résultats jusqu'à ce qu'il trouve le bon.

Sur les principales blockchains, le niveau de difficulté est extrêmement élevé. Pour rivaliser efficacement, des installations équipées d'ASICs, du matériel spécifiquement conçu pour augmenter les chances de produire un bloc valide, sont nécessaires.

Dans le minage, l'investissement correspond au coût de ces machines et à l'énergie électrique nécessaire à leur fonctionnement. Les ASICs sont conçus exclusivement pour le minage, sans utilité en dehors de ce domaine. La seule façon de récupérer l'investissement initial est de miner et de gagner des récompenses en ajoutant avec succès de nouveaux blocs à la blockchain.

La vérification d'un bloc par le réseau est simple : une seule exécution de la fonction permet de vérifier les résultats. Si les données génèrent un hash valide, le bloc sera accepté et le mineur recevra sa récompense. Dans le cas contraire, le réseau l'invalidera, entraînant une perte de temps et d'électricité.

Preuve de participation (PoS)

Le Proof of Stake (PoS) a été proposé dans les premiers jours de Bitcoin comme alternative au Proof of Work. Dans PoS, il n'y a pas de mineurs, de matériel spécialisé ni de consommation massive d'énergie. La seule chose nécessaire est un ordinateur ordinaire.

Et un élément supplémentaire fondamental : l'investissement dans les monnaies du système. En PoS, au lieu d'utiliser des ressources externes (matériel et électricité), on utilise des ressources internes (cryptomonnaies). Les règles varient selon le protocole, mais en général, une valeur minimale est requise pour participer au staking.

Les fonds doivent être bloqués dans un portefeuille ( et ne peuvent pas être déplacés pendant la période de staking ). Habituellement, les validateurs conviennent des transactions qui passeront au bloc suivant. D'une certaine manière, on parie sur quel bloc sera sélectionné, laissant le protocole décider du reste.

Si le bloc proposé est sélectionné, le validateur reçoit une partie des frais de transaction, proportionnelle à son stake. Plus la quantité bloquée est importante, plus les chances de gagner sont élevées. Cependant, essayer de tromper le système en proposant des transactions invalides entraînerait une perte partielle ou totale du stake. Ainsi, un mécanisme similaire à celui du PoW est établi : agir honnêtement est plus rentable que d'agir frauduleusement.

En général, les cryptomonnaies nouvellement créées ne font pas partie des récompenses du validateur. La monnaie native de la blockchain doit donc être émise différemment. Cela peut se faire par le biais d'une distribution initiale ( par exemple, un ICO ou IEO ) ou en utilisant PoW aux étapes initiales du protocole avant la transition vers PoS.

Jusqu'à présent, le Proof of Stake pur est principalement mis en œuvre dans des cryptomonnaies de moindre capitalisation. Par conséquent, il n'est pas entièrement prouvé qu'il puisse constituer une alternative viable au PoW à grande échelle. Bien qu'il semble théoriquement valide, la mise en œuvre pratique présente différents défis.

Lorsque le PoS est mis en œuvre dans des réseaux avec un grand volume d'informations, le système devient un parfait terrain d'expérimentation pour les incitations financières et la théorie des jeux. Ceux qui possèdent les connaissances pour "hacker" un système PoS n'essaieront de le faire que s'il existe une possibilité d'en tirer parti, c'est donc en le testant directement sur le réseau que l'on peut évaluer sa vulnérabilité.

Bientôt, nous verrons des tests à grande échelle de PoS avec la mise en œuvre de Casper dans le cadre des mises à jour du réseau Ethereum ( également connu sous le nom d'Ethereum 2.0).

Autres algorithmes de consensus

La preuve de travail et la preuve d'enjeu sont les algorithmes de consensus les plus courants, mais il existe de nombreuses autres variantes, chacune avec ses avantages et inconvénients :

  • Preuve de travail différé
  • Preuve de Participation Louée
  • Preuve d'Autorité
  • Preuve de destruction
  • Preuve de participation déléguée
  • Consensus hybride PoW/PoS

Conclusion

Les mécanismes pour atteindre le consensus sont vitaux pour le fonctionnement des systèmes distribués. Beaucoup considèrent que la plus grande innovation de Bitcoin réside dans l'utilisation de la preuve de travail pour permettre aux utilisateurs de convenir d'un ensemble partagé de faits.

Actuellement, les algorithmes de consensus soutiennent non seulement des systèmes de monnaie numérique, mais aussi des blockchains qui permettent aux développeurs d'exécuter du code sur des réseaux distribués. Ils constituent un pilier fondamental de la technologie blockchain et sont essentiels à la viabilité à long terme des diverses réseaux existants.

Parmi tous les algorithmes de consensus, le Proof of Work reste le plus utilisé. En fait, aucune alternative plus fiable et sécurisée n'a encore été proposée. Cependant, il existe une intense recherche et développement en cours pour remplacer le PoW, il est donc très probable que de nouvelles solutions de consensus émergent dans les prochaines années.

Voir l'original
Cette page peut inclure du contenu de tiers fourni à des fins d'information uniquement. Gate ne garantit ni l'exactitude ni la validité de ces contenus, n’endosse pas les opinions exprimées, et ne fournit aucun conseil financier ou professionnel à travers ces informations. Voir la section Avertissement pour plus de détails.
  • Récompense
  • Commentaire
  • Reposter
  • Partager
Commentaire
0/400
Aucun commentaire
  • Épingler
Trader les cryptos partout et à tout moment
qrCode
Scan pour télécharger Gate app
Communauté
Français (Afrique)
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)