Comment se mettre d’accord : Différents types de consensus pour la blockchain

Il existe bien d’autres types de consensus que la preuve de travail et la preuve d’enjeu. Nous présentons ici les alternatives les plus importantes.

Jun 09, 2022
|

Différents types de consensus pour la blockchain

En termes simples, une blockchain est constituée de données traitées et enregistrées par un groupe d’ordinateurs, qui travaillent ensemble pour garantir l’authenticité et la sécurité de ces transactions de données.

Mais comment s’assurer que ces transactions sont effectivement vérifiées et sécurisées ? Les blockchains sont, par nature, décentralisées et distribuées, ce qui signifie qu’il n’y a pas d’autorité centrale pour exercer une gouvernance sur le système. Pour garantir le respect des règles du protocole et prévenir tout comportement contraire à l’éthique, les blockchains appliquent divers algorithmes pour parvenir à ce que l’on appelle un consensus entre des entités sans confiance.

Définition rapide du consensus

Le consensus peut être défini comme l’accord d’un groupe d’agents sur leurs états communs par le biais d’une interaction locale.

Dans le contexte de la blockchain, le consensus est une procédure par laquelle les pairs d’un réseau blockchain parviennent à un accord sur l’état actuel des données dans le réseau. Ce sont ces algorithmes de consensus qui établissent la fiabilité et la confiance dans les systèmes Blockchain.

Si le consensus est relativement facile à atteindre dans les réseaux centralisés où une autorité dirigeante est chargée de valider les transactions et de sauvegarder les enregistrements, il est beaucoup moins évident dans le cas des systèmes décentralisés.

Le consensus dans la blockchain

La blockchain fonctionne en ajoutant des blocs de données et l’essence du consensus est de garantir que chaque bloc ajouté à la chaîne est la seule et unique version de la vérité acceptée par tous les nœuds du système. Il s’agit d’une caractéristique essentielle de la nature décentralisée de la blockchain.

Les règles de base du consensus dans la blockchain sont les suivantes :

  • L’objectif d’un accord
  • Collaboration, coopération et droits égaux pour chaque nœud/pair, et
  • Participation obligatoire de chaque nœud au processus

Il existe de nombreuses approches différentes pour parvenir à un consensus sur les systèmes décentralisés. Nous examinons ici différentes façons de se mettre d’accord et de former un consensus.

Consensus de Nakamoto

Le protocole de consensus de Nakamoto a été conçu par Satoshi Nakamoto en 2009 comme un nouveau moyen de vérifier l’authenticité d’un réseau blockchain et d’empêcher la double dépense. Il s’agit d’un algorithme de consensus byzantin tolérant aux fautes qui fonctionne en conjonction avec la preuve de travail (PoW) pour régir la blockchain Bitcoin.

La tolérance aux fautes byzantines (BFT) est une condition dans laquelle un système distribué peut rester tolérant aux fautes en présence d’acteurs malveillants et d’imperfections du réseau.

Le PoW fait référence au mécanisme cryptographique par lequel les mineurs s’affrontent pour résoudre des énigmes informatiques extrêmement complexes (et coûteuses) afin de gagner le droit de valider un nouveau bloc et d’obtenir une “récompense de bloc”. Cette récompense monétaire incite les mineurs à suivre les règles et à rester honnêtes, tandis que les coûts de participation les dissuadent économiquement d’attaquer le réseau Bitcoin, ce qui sécurise davantage la blockchain.

En combinant BFT et PoW, Nakamoto a cherché à contourner certains des problèmes d’évolutivité inhérents à BFT, tout en dissuadant les mauvais acteurs. En créant une mesure standard de la validité de la blockchain – en l’occurrence, la quantité de ressources informatiques (ou “puissance de hachage”) qui y sont consacrées – Nakamoto a ouvert une nouvelle voie pour la résolution du problème général byzantin dans une configuration sans autorisation. Un algorithme qui conduirait à l’émergence de nombreux nouveaux algorithmes de consensus, y compris la preuve d’enjeu (PoS), la preuve d’autorité (PoA), la preuve de réputation (PoR) et la preuve d’importance (PoI).

Preuve de X

L’idée sous-jacente à ce consensus de preuve de quelque chose (PoX) est d’utiliser certaines ressources rares X que les attaquants malveillants ne peuvent pas obtenir facilement. Ce faisant, le système peut rester sûr de manière décentralisée et sans autorisation. Voici comment cela se passe généralement.

Pour obtenir le privilège de valider des transactions et d’extraire de nouvelles pièces, les nœuds d’un réseau PoX doivent prouver qu’ils ont rempli avec succès X critères. Souvent, ce processus implique une sorte de sacrifice. Par exemple, la puissance de calcul et l’effort dans le cadre du PoW, et les pièces mises en jeu dans le cadre du PoS. De différentes manières, ces mesures incitent les mineurs à rester honnêtes.

En général, PoX appartient à la catégorie du consensus de Nakamoto. Le consensus de Nakamoto s’appuie normalement sur les choix de conception suivants :

  • Tolérance aux pannes byzantines – les réseaux peuvent continuer à fonctionner même si certains nœuds tombent en panne ou agissent de manière malveillante.
  • Synchrone – les messages sont délivrés dans un délai fixe
  • Probabiliste – les nœuds s’accordent sur la probabilité que la valeur soit correcte
  • Basé sur les leaders – les leaders sont élus pour valider les transactions

Il peut donc présenter les caractéristiques suivantes :

  • Les pairs peuvent se joindre à l’équipe et la quitter quand ils le souhaitent
  • Se concentre sur la rapidité (c’est-à-dire qu’un pair peut toujours produire de nouveaux blocs) au détriment de la sécurité (c’est-à-dire que la décision prise peut être annulée).
  • Autonome – les pairs sont incités à maintenir le réseau.

Il existe trop de protocoles PoX pour les présenter tous. Les lecteurs intéressés peuvent lire notre guide du débutant sur les mécanismes de consensus pour un résumé des consensus PoX les plus connus aujourd’hui.

Consensus classique

Le consensus classique, quant à lui, est obtenu par le biais d’un vote. Ces protocoles confirment les transactions plus rapidement que les types de consensus de Nakamoto décrits ci-dessus, car la taille du réseau de consensus est fixe et des progrès peuvent être réalisés dès que les votes requis sont constatés.

Voici quelques exemples importants de consensus classique :

Tolérance pratique aux fautes byzantines (pBFT)

Introduite à la fin des années 90 par Barbara Liskov et Miguel Castro, la tolérance pratique aux fautes byzantines (pBFT) vise à résoudre bon nombre des problèmes associés aux solutions de tolérance aux fautes byzantines (BFT) susmentionnées.

Le pBFT utilise une machine d’état à trois phases et une élection par blocs pour sélectionner le chef de file. Les trois phases de la pBFT sont la préparation, la préparation et l’engagement. Dans le cas habituel, le consensus est obtenu par l’échange de messages entre les nœuds qui apportent une transition progressive à leur état local. Sinon, en cas de défaillance d’un nœud, un “changement de vue” sera déclenché, ce qui entraînera une nouvelle sélection du chef de file selon le principe du tour de rôle. pBFT est capable de gérer moins de ⅓ des fautes byzantines, ce qui peut être considéré comme 3f+1= Total des nœuds où f=nombre de fautes byzantines.

Elle présente toutefois certains inconvénients :

  • Leadership faible – les nœuds peuvent rejeter les demandes du leader et proposer une réélection, mais il faut des services d’autorité pour la sélection du leader.
  • Tolérance aux pannes byzantines – 33 % des nœuds peuvent être malveillants.
  • Faible évolutivité du réseau – en raison de l’importance des frais généraux de communication et de la latence des multiples cycles de messages, l’augmentation du nombre de nœuds entraînerait également une augmentation quadratique de la complexité du système.
  • Débit de transaction – jusqu’à 50 000 tx par seconde avec un temps de confirmation d’une seconde.
  • Cas d’utilisation – blockchain de consortium avec un validateur autorisé limité.

Tolérance aux fautes byzantine déléguée (dBFT)

La tolérance aux fautes byzantines déléguées (dBFT) a été proposée par le projet NEO en 2014. Contrairement à pBFT, qui nécessite des services d’autorité pour sélectionner le leader, le système de vote de dBFT permet une participation à grande échelle, à l’instar de la preuve d’enjeu déléguée (DPoS).

La procédure globale de consensus est très similaire à celle du pBFT, la différence résidant dans la manière dont les votes sont comptés. Dans le dBFT, le poids du vote est proportionnel au nombre de jetons que les participants détiennent au moment du vote. Les participants peuvent déléguer leurs jetons (votes) à des représentants de confiance. Cela améliore les performances, mais signifie également que le système pourrait devenir plus centralisé au fil du temps en raison de cette couche supplémentaire de représentation. L’inconvénient de cette méthode est que les délégués élus ne peuvent plus être anonymes. Sur la blockchain NEO, les délégués travaillent sous une identité réelle.

Accord byzantin fédéré (ABF)

L’accord byzantin fédéré (ABF) est un algorithme qui prend en charge l’adhésion ouverte, permettant aux validateurs de rejoindre librement le réseau. Il se distingue par son débit élevé, son évolutivité et ses faibles coûts de transaction.

Le FBA peut être considéré comme un BFT sans permission. Toutefois, une transaction doit être signée par un groupe spécifique de signataires. Dans un système FBA, les validateurs peuvent choisir les autres validateurs auxquels ils font confiance et, à partir de là, ils forment ce que l’on appelle une tranche de quorum. Dans un système comportant de nombreux validateurs, il peut y avoir plusieurs tranches de quorum et avec de multiples tranches de quorum, il y a un chevauchement, certains nœuds étant approuvés dans plusieurs tranches. Ces chevauchements se rejoignent pour former le quorum global. Cette méthode est utilisée pour parvenir à un consensus dans le cadre de la FBA. Les projets notables qui utilisent la FBA sont Ripple(XRP) et Stellar(XLM).

Les avantages du FBA sont les suivants :

  • Faible barrière à l’entrée car l’adhésion est ouverte à condition d’être digne de confiance et d’adhérer à une tranche de quorum.
  • Tout le monde peut adhérer au système et le quitter à tout moment, sans que le système ne cesse de fonctionner.

Radeau

Développé par Diego Ongaro et John Ousterhout en 2014, Raft est basé sur le protocole Paxos et a été conçu pour être plus facile à comprendre et à mettre en œuvre. Comparé à de nombreux autres algorithmes de consensus, Raft est plus dépendant du leader. Les nœuds feront confiance au leader une fois que des chronomètres aléatoires l’auront élu, et il ne sera réélu que si le leader actuel échoue.

Cela a considérablement amélioré les choses :

  • Un leadership fort – les nœuds ne rejetteraient pas les demandes du leader, pas de réélection jusqu’à ce que le leader soit indisponible.
  • Tolérance aux pannes – 49 % des nœuds peuvent tomber en panne ou devenir indisponibles.
  • Grande évolutivité du réseau – La complexité de cet algorithme de consensus est linéairement proportionnelle au nombre de nœuds.

Exemples :

Exemples de consensus

Consensus sans chef

Le dernier type de consensus que nous présenterons est une nouvelle orientation émergente : le consensus sans chef.

Comme nous l’avons vu précédemment, le consensus est l’accord d’un groupe d’agents sur leurs états communs par le biais d’une interaction locale.

Dans un problème de consensus sans chef, aucun chef virtuel n’est nécessaire, tandis que dans un problème de consensus avec suivi du chef, un chef virtuel qui spécifie l’objectif pour l’ensemble du groupe est nécessaire. Plus précisément, le consensus avec un leader virtuel statique est appelé problème de régulation du consensus, et le consensus avec un leader virtuel dynamique est appelé problème de suivi du consensus.

Parmi les exemples de projets de consensus sans chef, on peut citer Avalanche, IOTA et NKN. Nous présenterons ici Avalanche et IOTA à un niveau élevé.

Avalanche

Le livre blanc Avalanche a été publié anonymement à la mi-mai 2018 par une équipe s’identifiant uniquement comme la Team Rocket. Plus tard, AVA Labs a été fondé pour développer le jeton Avalanche (AVA), et l’on pense qu’un groupe d’informaticiens de l’université de Cornell (Emin Gün Sirer, Kevin Sekniqi, Ted Yin) est étroitement associé au projet.

La Team Rocket a qualifié le protocole de consensus de “nouvelle famille de protocoles de consensus métastables pour les crypto-monnaies” et l’a décrit comme “une nouvelle famille de protocoles byzantins de tolérance aux pannes sans chef, construits sur un mécanisme métastable”.

Avalanche utilise un sous-échantillonnage aléatoire répété pour le vote afin de parvenir à un consensus. Chaque nœud doit échantillonner un certain nombre de voisins pour vérifier leur état et voir s’il s’aligne sur la majorité. Si ce n’est pas le cas, ils changeront d’état en suivant la majorité. Le processus se répétera encore et encore, de sorte qu’à terme, l’ensemble du réseau aboutira à une conclusion omniprésente.

Avalanche

Avalanche affirme que son mécanisme de consensus peut atteindre 1 300 tps avec un temps de latence de 4 secondes.

Selon l’équipe, le réseau principal d’Avalanche devrait être lancé en septembre 2020.

IOTA

IOTA a été fondé en 2015 par David Sonstebo, Sergey Ivancheglo, Dominik Schiener et Dr. Serguei Popov. IOTA est l’une des premières monnaies à proposer d’utiliser un graphe acyclique dirigé (DAG) comme structure de données sous-jacente pour une technologie de registre distribué (DLT) au lieu d’une chaîne de blocs.

La version actuelle de IOTA utilise un protocole appelé Tangle. Le Tangle possède les propriétés suivantes, différentes de celles du bitcoin :

  • Il utilise une structure de données basée sur le DAG pour former le graphe de transactions au lieu de regrouper les transactions en blocs enchaînés.
  • Elle supprime le rôle des mineurs et exige de l’utilisateur qu’il vérifie deux transactions antérieures (non confirmées) s’il souhaite envoyer de nouvelles transactions sur le réseau.
  • Le consensus/vote est basé sur des informations locales et ne nécessite pas d’interaction avec l’ensemble du réseau. Elle est obtenue par un processus de marche aléatoire pondéré appelé chaîne de Markov de Monte-Carlo (MCMC).
  • Toutefois, le livre blanc ne précise pas clairement comment un consensus peut être atteint dans un environnement distribué. Le réseau repose donc jusqu’à présent sur un “coordinateur” centralisé, ce qui a été largement critiqué par la communauté cryptographique.
Enchevêtrement (DAG/Graphe acyclique dirigé)

Récemment, la Fondation IOTA a présenté sa feuille de route intitulée “Coordicide”, qui vise à réorganiser le protocole et à supprimer le coordinateur. Deux consensus ont été proposés : le consensus probabiliste rapide (CPR) et le consensus cellulaire (CC). Ces deux solutions appartiennent à la catégorie des consensus sans chef.

Consensus et mise à l’échelle de la blockchain

Et voilà, un aperçu des mécanismes de consensus les plus couramment utilisés. Comme tous les éléments qui assurent le fonctionnement d’une blockchain, nous pouvons constater une évolution distincte ici aussi, du concept original à des versions plus rapides et plus agiles permettant de faire évoluer les blockchains vers des vitesses plus rapides et des réseaux plus vastes. Si vous souhaitez en savoir plus sur les fonctions de base de la blockchain, consultez également nos articles sur les sidechains et sur la manière dont elles permettent de construire bien plus qu’un simple système de paiement sur la chaîne.

Tags

advanced crypto

Blockchain

crypto

Partager avec des amis

Prêt à commencer votre aventure crypto ?

Obtenez votre guide étape par étape pour ouvrir un compte sur Crypto.com

En cliquant sur le bouton "Commencer", vous reconnaissez avoir lu l'Avis de confidentialité de Crypto.com dans lequel nous expliquons comment nous utilisons et protégeons vos données personnelles.
Mobile phone screen displaying total balance with Crypto.com App

Common Keywords: 

Ethereum / Dogecoin / Dapp / Tokens