Les protocoles de consensus blockchain créent un système d’accord irréfutable entre différentes parties au sein d’un réseau distribué, tout en empêchant l’exploitation malveillante du système. Découvrons ensemble comment ces protocoles fonctionnent et comment ils diffèrent d’un système à un autre.
Définition d’un protocole de consensus
Les protocoles de consensus blockchain permettent de garantir la synchronisation entre tous les noeuds du réseau. Chaque consensus vise à répondre à une question précise : comment pouvons-nous nous assurer de l’authenticité de chaque transaction ? N’importe quel individu peut soumettre une information et décider de la stocker sur une blockchain. Il est donc primordial de pouvoir passer en revue cette information et décider par consensus s’il est possible de l’ajouter ou non au réseau.
Le terme de « consensus » signifie que tous les nœuds du réseau doivent se mettre d’accord sur une version identique de la blockchain. Quelque part, le mécanisme de consensus d’une blockchain est un audit interne et automatique de son réseau. Ce protocole est donc essentiel et a deux fonctions :
- Il permet à la blockchain d’être mise à jour tout en s’assurant que chaque bloc de la chaîne est valide. Les personnes participant à la validation des blocs (qu’on appelle les “noeuds” du réseau) doivent avoir une incitation à s’impliquer dans la sécurité du réseau, cette incitation prenant généralement la forme de récompense pécuniaire.
- Il empêche qu’une seule et même entité puisse contrôler l’ensemble du réseau et garantit ainsi sa décentralisation.
Les règles d’un protocole de consensus
Un consensus blockchain suit des règles spécifiques. Les nœuds du réseau devront s’assurer que chaque bloc et chaque transaction respecte un certain nombre de critères avant de pouvoir les valider. Chaque donnée devra recevoir l’acceptation unanime de l’ensemble des nœuds du réseau pour pouvoir être validée.
L’objectif principal des protocoles de consensus est de pouvoir lutter contre les attaques mettant en péril la sécurité du réseau. Un exemple très courant d’attaque est celui de la double-dépense, ou double-spending. Elle consiste à émettre deux transactions qui dépensent le même avoir. Le rôle du consensus est alors de décider laquelle de ses deux transactions peut être considérée comme validée et laquelle doit, à l’inverse, être annulée.
Les principaux mécanismes de consensus blockchain
Le consensus d’une blockchain est défini dès sa création par ses fondateurs. Le plus célèbre et le premier d’entre eux est la preuve de travail (Proof-of-Work en anglais), qu’utilise le protocole Bitcoin.
La Proof-of-Work (PoW), ou preuve de travail
Le protocole de Proof-of-Work est le plus utilisé de tous les consensus blockchain. Depuis 2009, il a pu démontrer sa résistance et sa sécurité aux différentes tentatives d’attaques.
Dans le protocole de Proof-of-Work, les différents nœuds du réseau sont appelés mineurs. Pour confirmer une transaction, les mineurs doivent résoudre un problème mathématique complexe réclamant une puissance de calcul importante.
Pour cela, ils utilisent un procédé mathématique appelé fonction de hachage. Le hachage permet d’inscrire les données de transaction dans les blocs et de les raccorder entre eux. Il en existe différents types, comme le SHA 256, utilisé sur Bitcoin. Une fois le hash inscrit dans la blockchain, celui-ci est infalsifiable.
Un mineur est récompensé pour chaque bloc qu’il parvient à approuver et confirmer. Ses revenus sont proportionnels à la puissance de calcul qu’il est à même de déployer pour répondre au problème.
Pour approfondir le sujet, nous vous invitons à lire notre définition détaillée du protocole Proof-of-Work.
La Proof-of-Stake (PoS), ou preuve d’enjeu
La Proof-of-Stake, ou preuve d’enjeu, repose sur une logique tout à fait différente que la preuve de travail et de nécessite pas de puissance de calcul particulière. Dans la Proof-of-Stake, les participants du consensus peuvent être assimilés à des actionnaires d’une entité business ayant le privilège de participer à son mécanisme de consensus.
La PoS est un consensus nettement moins onéreux que la PoW, car elle ne réclame ni dépenses énergétiques, ni matériel particulier. Concrètement, pour valider un bloc, les nœuds doivent ici prouver leur possession d’une certaine quantité de cryptomonnaie, et la mettre en gage sur le réseau. Plus cette quantité est importante, plus un nœud aura de chances d’être choisi pour mettre à jour le registre d’une blockchain. Le consensus de PoS considère en effet que ces personnes sont les plus susceptibles de vouloir lutter contre une attaque du réseau, qui pourrait entièrement les ruiner.
Retrouvez davantage de détails sur la Proof-of-Stake en lisant notre article dédié à la question.
La Delegated Proof of Stake (DPoS), ou preuve d’enjeu déléguée
Emergée plus récemment, la Delegated Proof-of-Stake tend à répondre aux faiblesses de la PoS et PoW en proposant un modèle hybride.
Le consensus de DPoS fonctionne selon le même principe de base que la PoS. Toutefois, les personnes chargées de forger des blocs doivent être élues par les membres de la communauté. Le système d’élections permet de s’assurer que la blockchain ne soit pas contrôlée par une minorité de personnes, comme cela peut être le cas d’un mineur avec une grosse puissance de calcul, ou d’un forgeur PoS ayant une très grande quantité de jetons.
Lisk est un très bon exemple de protocole DPoS. Sa blockchain prévoit l’élection de 101 délégués responsables du mécanisme de consensus. Ces délégués sont élus par les détenteurs de jetons lisks, et doivent reverser à aux électeurs une partie de leurs gains.
Le protocole de DPoS présente de nombreux avantages, mais aussi quelques inconvénients. Pour en savoir plus, nous vous invitons à lire notre article dédié à l’explication de la Delegated Proof of Stake.
De nombreux consensus
La Proof of Work, Proof of Stake et Delegated Proof of Stake sont les principaux consensus blockchain. Il en existe de nombreux autres.
Parmi les consensus intéressants, on peut noter la Proof of Importance de la blockchain Nem. Chaque nœud y a un score d’importance. Son score d’importance détermine la fréquence à laquelle il peut forger du XEM. L’importance d’un nœud dépend de la durée depuis laquelle celui-ci possède des jetons, mais également de sa contribution au réseau : plus un nœud envoie des transactions à d’autres utilisateurs et utilise le réseau, plus il devient important. Une logique intéressante pour créer une blockchain vivante et dynamique.