Introduction
Un algorithme de consensus est un mécanisme qui permet aux utilisateurs ou aux machines de coordonner leurs relations dans un environnement distribué. Cela nécessite de s’assurer que tous les agents du système peuvent finalement s’entendre sur une source unique de vérité (même si certains agents ne sont pas d’accord). En d’autres termes, le système doit avoir une bonne tolérance aux pannes (voir aussi « Explication de la tolérance aux pannes byzantine »).
Dans un environnement centralisé, une seule entité contrôle l’ensemble du système. Dans la plupart des cas, ces entités sont souvent capables de modifier le système à volonté car elles ne parviennent pas à créer un système de gouvernance bien défini permettant à de nombreux administrateurs de parvenir à un consensus.
Mais s’il s’agit d’un environnement décentralisé, c’est une toute autre histoire. En supposant que nous utilisons une base de données distribuée, comment pouvons-nous nous mettre d'accord sur les entrées à ajouter ?
Cet environnement est plein d'étrangers qui ne se font pas confiance. Comment surmonter ce défi peut être la clé pour résoudre les problèmes de développement et ouvrir la voie à la blockchain. Dans cet article, nous examinerons l’importance des algorithmes de consensus pour l’exécution des crypto-monnaies et des registres distribués.
Algorithmes de consensus et crypto-monnaies
Dans un environnement de crypto-monnaie, les soldes des utilisateurs sont enregistrés dans la base de données blockchain. Il est essentiel que chaque utilisateur (plus précisément chaque nœud) conserve la même copie de la base de données. Ne pas le faire entraînera en fin de compte des problèmes de conflits d’informations qui compromettront l’objectif même du réseau de crypto-monnaie.
La cryptographie à clé publique garantit que les utilisateurs ne peuvent pas dépenser les jetons d’autres utilisateurs. Mais il doit exister une source unique de vérité à laquelle les participants au réseau peuvent se fier pour savoir si les fonds ont été dépensés.
Le créateur de Bitcoin, Satoshi Nakamoto, a proposé un système de preuve de travail comme moyen de coordonner les participants. Nous reviendrons plus en détail sur le fonctionnement de la preuve de travail plus tard. Commençons par comprendre les caractéristiques communes des différents algorithmes de consensus existants.
Premièrement, nous avons besoin du jalonnement des utilisateurs qui souhaitent ajouter des blocs (également appelés validateurs). Les validateurs doivent miser sur des capitaux propres d’une certaine valeur pour les empêcher de commettre une fraude. Une fois qu’ils auront triché, ils perdront leurs droits. Par exemple, perdre de la puissance de calcul et des cryptomonnaies, voire même perdre votre réputation.
Alors pourquoi risqueraient-ils leurs propres ressources ? Parce qu’il existe également un mécanisme de récompense dans ce processus. Les récompenses sont généralement la crypto-monnaie native du protocole. Les récompenses peuvent également être des frais payés par d’autres utilisateurs, des unités de cryptomonnaie nouvellement générées, ou les deux.
Enfin, nous devons également garantir la transparence. Nous devons être en mesure de détecter rapidement les tricheries. En théorie, produire des blocs coûte cher, mais vérifier leur authenticité est assez bon marché. Grâce à ce mécanisme, les utilisateurs ordinaires peuvent facilement contraindre les validateurs.
Type d'algorithme de consensus
Preuve de travail (PoW)
La preuve de travail (PoW) est considérée comme le parrain des algorithmes de consensus blockchain. Ce mécanisme a été utilisé pour la première fois dans l’espace Bitcoin, mais le concept réel existe depuis longtemps. Dans la preuve de travail, les validateurs (appelés mineurs) hachent les données qu'ils souhaitent ajouter jusqu'à ce qu'une solution spécifique soit produite.
Un hachage est une chaîne apparemment aléatoire de lettres et de chiffres créée en exécutant des données via une fonction de hachage. L’exécution répétée des mêmes données donnera toujours le même résultat. Cependant, si vous modifiez ne serait-ce qu'un petit détail, la valeur de hachage résultante sera complètement différente.
Il n'y a aucun moyen de déduire quelles informations ont été placées dans la fonction uniquement à partir de la sortie. Par conséquent, cette méthode est efficace pour prouver que vous connaissiez une certaine donnée avant un moment précis. Vous pouvez indiquer le hachage à quelqu'un à l'avance, et lorsque vous révélez les données plus tard, cette personne peut simplement exécuter la fonction et voir que le résultat est le même.
En preuve de travail, le protocole précise les conditions qui rendent un bloc valide. Par exemple, il peut stipuler que seuls les hachages commençant par 00 sont des blocs valides. La seule façon pour un mineur de créer un bloc correspondant à cette combinaison est de forcer brutalement l'entrée. Ils ajustent les paramètres des données et testent chaque supposition avec des résultats différents jusqu'à ce qu'ils obtiennent la valeur de hachage correcte.
Pour les principales blockchains, la barre a tendance à être assez haute. Afin de rivaliser avec d'autres mineurs, vous devez préparer une grande quantité de matériel de hachage spécial (circuits intégrés spécifiques à une application) pour créer les conditions nécessaires à la production de blocs valides.
Pendant le processus de minage, la mise que vous misez comprend le coût d'achat de la machine et l'électricité nécessaire à son fonctionnement. Les circuits intégrés spécifiques à une application (ASIC) sont spécialement conçus pour l’extraction de crypto-monnaie et sont inutiles pour d’autres applications. La seule façon de récupérer votre investissement initial est de recourir au minage, et si vous réussissez à ajouter de nouveaux blocs à la blockchain, vous pouvez récolter des récompenses considérables.
Le réseau peut facilement vérifier l'authenticité des blocs que vous créez. Vous devrez peut-être essayer des milliards de combinaisons pour obtenir la bonne valeur de hachage, mais la validation des données ne nécessite qu'un seul calcul de fonction de hachage. Si vos données produisent un hachage valide, le réseau l'acceptera et vous en serez récompensé. Sinon, le réseau rejettera la valeur et tout votre temps et votre énergie seront perdus.
Preuve de participation (PoS)
Au début du Bitcoin, la preuve de participation (PoS) était considérée comme une alternative à la preuve de travail. Dans un système de preuve de participation, il n’y a pas de notion de mineurs, de matériel spécialisé ou de consommation d’énergie massive. Tout ce dont vous avez besoin est un ordinateur ordinaire.
Cependant, ce n'est pas toujours le cas. Vous avez également besoin de capital. Dans un mécanisme de preuve de participation, même si aucune ressource externe (comme l’électricité ou le matériel) ne doit être consommée, des ressources internes, à savoir la cryptomonnaie, doivent être fournies. Les règles de chaque protocole sont différentes, mais il existe généralement un montant d'investissement minimum que vous devez respecter pour pouvoir miser.
Une fois cela fait, les fonds de votre portefeuille seront verrouillés (les fonds ne pourront pas être déplacés pendant le jalonnement). De manière générale, vous devez vous mettre d'accord avec d'autres validateurs sur les transactions qui passeront dans le bloc suivant. Dans un sens, cela équivaut à parier sur le bloc qui sera sélectionné, et le protocole ne choisira qu’un seul des blocs.
Si votre bloc est sélectionné par le protocole, vous recevrez des frais de transaction proportionnels au montant de votre mise. Plus vous bloquez de fonds, plus vos rendements sont importants. Si vous tentez de tricher et proposez une transaction invalide, vous perdrez une partie (ou la totalité) de votre mise. C’est pourquoi nous utilisons un mécanisme similaire à la preuve de participation, dans lequel l’honnêteté et la fiabilité peuvent apporter plus d’avantages que la tricherie.
De manière générale, les récompenses des validateurs ne seront pas émises sous la forme de jetons nouvellement émis. Par conséquent, la monnaie native de la blockchain doit être émise d’une autre manière. Cela pourrait se faire via une offre initiale (c'est-à-dire ICO ou IEO), ou en lançant le protocole avec Proof-of-Work, puis en passant à Proof-of-Stake.
Jusqu’à présent, la preuve de participation pure n’a été déployée que dans des crypto-monnaies plus petites. Par conséquent, il n’est pas clair si cela peut constituer une alternative viable à la preuve de travail. Même si cela fonctionne en théorie, en pratique, il n’en est rien.
Une fois la preuve de participation mise en œuvre sur un réseau avec une grande valeur, l’ensemble du système devient une arène remplie de théorie des jeux et d’incitations économiques. Tant qu'il y aura un profit, ces pirates informatiques qualifiés « pirateront » le système de preuve de participation. Par conséquent, la seule façon de déterminer si cela est réalisable est de l’appliquer à un réseau en ligne.
Bientôt, Proof of Stake sera testé à grande échelle et le réseau Ethereum est sur le point de mettre en œuvre une série de mises à niveau (collectivement connues sous le nom d'Ethereum 2.0), y compris la mise en œuvre de Casper.
Autres algorithmes de consensus
La preuve de travail et la preuve de participation sont actuellement les algorithmes de consensus les plus discutés. Mais il existe de nombreux autres algorithmes, et chacun a ses propres avantages et inconvénients. Veuillez lire l'article suivant pour plus de détails :
"Explication détaillée de la preuve de charge de travail retardée"
"Explication détaillée du consensus sur la preuve d'intérêt au bail"
"Explication détaillée de la preuve faisant autorité"
"Explication détaillée du certificat de destruction"
"Explication détaillée de la preuve d'équité déléguée"
"Explication détaillée du consensus hybride preuve de travail/preuve d'enjeu"
Résumer
Les mécanismes permettant de parvenir à un consensus sont essentiels au fonctionnement des systèmes distribués. Beaucoup de gens pensent que la plus grande innovation de Bitcoin est l'utilisation de la preuve de travail, un mécanisme par lequel les utilisateurs peuvent souvent se mettre d'accord sur un ensemble de faits partagés.
Aujourd’hui, les algorithmes de consensus sont devenus le fondement des systèmes de monnaie numérique et des blockchains, permettant aux développeurs d’exécuter du code sur des réseaux distribués. Les algorithmes de consensus occupent une position fondamentale dans la technologie blockchain et jouent un rôle essentiel dans la viabilité à long terme des divers réseaux existants.
Parmi tous les algorithmes de consensus, la preuve de travail domine. Personne n’a encore proposé de solution alternative plus fiable et plus sûre. Cela dit, les professionnels développent encore un certain nombre de produits pour remplacer la preuve de travail, et on peut s’attendre à voir émerger davantage de solutions alternatives dans les années à venir.

