Les différents algorithmes de consensus blockchain

Dans le monde du Bitcoin et de la cryptomonnaie, les algorithmes de consensus sont le coeur des différentes blockchain. Ce sont eux qui sont responsables de la sécurité et de l’intégrité des transactions du réseau.

Lors de la création du Bitcoin en 2009, c’est Satoshi Nakamoto qui a crée le premier algorithmes de consensus. Le consensus fût nommé le Proof of Work (PoW), la preuve de travail en français et qui a été mis en oeuvre sur le Bitcoin pour sécuriser le réseau.

Qu’est ce qu’un algorithme de consensus ?

En termes simples, un algorithme de consensus est le mécanisme par lequel un réseau Blockchain parvient à un consensus.

Il faut bien faire la différence avec le terme protocole qui lui est l’ensemble des règles principales d’une blockchain.

Le but de l’algorithme de consensus est de s’assurer que les règles du protocole soient respectées et que toutes les transactions aient lieu de manière fiable et sécurisé.

Les différents types d’algorithmes de consensus

Plus le temps passe, plus les algorithmes de consensus se développent et théoriquement, plus ceux-ci sont censé être sécurisé. Chaque solution présente évidemment des avantages et des inconvénients en essayant de trouver un compromis entre :

  • Sécurité
  • Fonctionnalité
  • Scabilité (la rapidité du réseau)
Puzzle consensus
L’algorithmes de consensus permet de trouver l’équilibre afin de satisfaire les exigences du réseau.

Le but des algorithmes de consensus est d’arriver à trouver le juste milieux entre tous ces compromis.

La Preuve de Travail ou Proof of Work (PoW)

Le Proof of Work est le premier algorithme de consensus à avoir été créé. C’est d’ailleurs aussi celui utilisé par le Bitcoin ainsi que de nombreuses autres cryptomonnaies.

Dans la Blockchain, cet algorithme est utilisé pour valider les transactions émises par les utilisateurs et produire de nouveaux blocs. Le Proof of Work met en concurrence les mineurs pour sécuriser les transaction. Dès que la transaction est sécurisée, les mineurs recoivent une récompense en cryptomonnaie une fois le bloc validé.

Ces mineurs (ou noeud) vont mettre à disposition du matériel informatique (CPU, GPU, ASIC, FGPA) pour fournir de la puissance de calcul afin de vérifier et valider les transactions.

Le hashage

La validation des transactions via ce consensus nécessite de nombreuses tentatives aléatoires appellées hachage. Le Hachage lui doit disposer d’une grande puissance de calcul pour fonctionner et pour sécuriser le Proof of Work.

Le terme hachage est une fonction informatique qui va générer une empreinte unique pour permettre la validation du bloc de transactions en fonction des données.

Ainsi, plus la puissance de calcul sera grande, plus la probabilité de trouver une solution pour valider le bloc sera importante. Par conséquent, plus la rentabilité du mineur sera importante.

Depuis le dernier halving Bitcoin (le 11 mai 2020), un mineur recoit 6,25 nouveaux Bitcoin quand un bloc est validé. Le consensus PoW permet donc de prouver les transactions facilement et rapidement.

La Preuve d’enjeu, de Participation ou Proof of Stake (PoS)

Le Proof of Stake fût développé en 2011 dans le but d’améliorer le Proof of Work. En effet, même si leurs buts sont similaires, les deux consensus présentent des différences et des particularités et plus particulièrement lors de la validation de nouveaux blocs.

Le consensus PoS est moins onéreux que le PoW, car il nécessite aucun matériel particulier et donc d’aucune dépense énergétiques.

Pour valider un bloc, il faut être en possession d’une certaine quantité de cryptomonnaie. Une fois cette quantité atteinte, il faut l’a « stacker« , c’est à dire la mettre en gage. Plus la quantité de cette cryptomonnaie est importante, plus un nœud aura de chances d’être sélectionné pour valider un bloc.

En partant de cette logique, on considère que plus les personnes mettent en gage de la cryptomonnaie, plus elles sont susceptibles de vouloir lutter contre une attaque du réseau.

De plus, les réseaux qui utilise le consensus PoS rendent l’attaque 51% d’une blockchain bien plus coûteuse. En effet, une attaque 51% réussie nécessiterait la possession d’au moins 51 % du total des coins existants.

L’algorithme Proof of Stake (PoS) est utilisé par de nombreux projets tel que Algorand (ALGO), Nxt (NXT) et Ethereum (ETH) aux environs de 2022.

La Preuve de Temps Écoulé ou Proof of Elapsed Time (PoET)

Le Proof of Elapsed Time (PoET) est un algorithme qui permet de réduire l’utilisation des ressources ainsi que la consommation énergétique.

Cet algorithme utilise un temps écoulé généré de manière aléatoire pour décider de l’attribution de la validation d’un bloc sur la blockchain.

Sur le réseau, chaque nœud se voit attribuer une durée définie de façon totalement aléatoirement par l’algorithme. Ainsi, le noeud qui aura son compte à rebours en premier va envoyer la preuve au reste du réseau, et pourra alors valider le bloc.

Son but est d’améliorer la transparence et de garantir que les résultats soient aléatoires et vérifiables par des participants externes.

Actuellement, c’est l’outil Hyperledger Sawtooth le principal utilisateur de l’algorithme Proof of Elapsed Time (PoET).

La Preuve d’Importance ou Proof of Importance (PoI)

L’algorithme de Proof of Importance (PoI) ou preuve d’importance va donner généralement la priorité aux mineurs en fonction :

  • de l’ancienneté
  • du nombre de transactions effectuée dans la cryptomonnaie correspondante
  • de la quantité de crypto possedée
  • les wallets vers lesquels et à partir desquels les transactions sont effectuées
  • d’autres facteurs qui dépendent des blockchain qui utilise ce consensus

C’est à partir des critères ci-dessus que la sélection du validateur du bloc aura lieu. Ainsi, les chances pour le validateurs de valider un blocs vont augmenter proportionnellement au nombre de transaction qu’il a réalisé sur le réseau.

Les blockchains utilisant le consensus de preuve d’importance (PoI) visent donc à récompenser les utilisateurs les plus actifs sur le réseau.

L’algorithme Proof of Importance (PoI) est utilisé par le projet NEM (XEM).

La Preuve d’Activité ou Proof of Activity (PoA)

L’algorithme de Proof of Activity (PoA) ou preuve d’activité est une sorte d’algorithme hybride qui combine le PoW et le PoS.

Ainsi, la sélection du validateur du bloc se fait selon l’activité effective du mineur.

Ce concept vise à favoriser et encourager l’utilisation de la blockchain. Ainsi, plus un mineur sera actif sur la blockchain en question, plus il aura de chance de valider des blocs.

L’algorithme Proof of Activity (PoA) est utilisé par le projet Decred (DCR).

La Preuve de Capacité ou Proof of Capacity / Proof of Space (PoC)

L’algorithme de consensus Proof of Capacity / Proof of Space (PoC) ou preuve de capacité est une alternative au PoW. Son but est également de réduire la consommation énergétique du minage de cryptomonnaie.

C’est en utilisant l’espace vide sur les disques durs des noeuds du réseau blockchain que le Proof of Capacity (PoC) fonctionne. En effet, cet espace vide va être utilisé pour stocker et donc miner de la cryptomonnaie.

Le but de ces opérations est d’éviter de changer régulièrement les numéros présents dans le bloc ainsi que le hachage qui servent essentiellement à découvrir la valeur de la solution.

La sélection du validateur se fait selon la capacité totale de stockage du noeud (ou du mineur).

Par conséquent, plus vous avez de capacité de stockage, plus vous avez de chance d’être sélectionné pour valider un bloc.

L’algorithme Proof of Capacity (PoC) est utilisé par le projet Burst (BURST).

La Preuve de Destruction ou Proof of Burn (PoB)

L’algorithme de consensus Proof of Burn (PoB) ou preuve de destruction est particulier car il à pour but de détruire de la cryptomonnaie afin de créer une pénurie pour augmenter sa valeur.

Le processus de burn (destruction) de la cryptomonnaie consiste donc à envoyer de la crypto à une adresse publique et vérifiable. Ces adresses dites d’ingurgitation, sont générées de manière totalement aléatoire et sans qu’aucune clé privée ne soit récupérable.

Une fois les coins déposés sur ces adresses, ils seront perdu à tout jamais, ceci dans le but de réduire l’offre en circulation et d’augmenter la valeur des coins.

De cette façon, plus un noeud brûlera de tokens, plus il aura de chance d’être sélectionné pour valider un bloc.

Petit clin d’oeil à Binance qui brûle également de temps en temps ses tokens BNB. En revanche, Binance utilise cette technique mais pas ce consensus sur la Binance Smart Chain (BSC).

L’algorithme Proof of Burn (PoB) est utilisé par le projet Counterparty (XCP).

La Preuve de Transfert ou Proof of Transfer (PoX)

L’algorithme de consensus Proof of Transfer (PoX) ou preuve de transfert est proche du Proof of Burn mais avec quelques subtilités. Si le PoB à pour but de brûler de la cryptomonnaie, le PoT lui ne détruira pas cette cryptomonnaie.

Pour participer à ce consensus, les mineurs doivent envoyer de la cryptomonnaie vers une adresse dite séquestre. Théoriquement, plus la quantité de cryptomonnaie transmise sera importante, plus le mineur aura de chance d’être sélectionné.

Par exemple, les membres du projet Blockstack vont devoir transférer des Bitcoin vers une adresse particulière pour être récompensés.

Lors de la recherche d’un validateur, c’est l’utilisation d’une fonction aléatoire vérifiable (nommée VRF), comme pour les autres consensus qui fera office de sélection. Une fois le bloc validé, le mineur recevra toujours sa récompense en cryptomonnaie.

Par exemple, sur le réseau Blockstack les noeuds obtiennent leurs récompenses en Bitcoin.

La Preuve de Conservation ou Proof of Hold (PoH)

L’algorithme de consensus Proof of Hold (PoH) ou preuve de conservation est très proche du Proof of Stake.

La seule réelle différence entre ces deux consensus est que la probabilité pour un noeud d’être sélectionné dépend de l’age de la cryptomonnaie.

Pour parvenir à la sélection, le calcul est le suivant : multiplication entre valeur d’un UTXO et du temps durant lequel la cryptomonnaie n’a pas été déplacée.

Le concept de Proof of Hold (PoH) est utilisé dans le projet Peercoin qui utilise également le Proof of Work.

Les futurs algorithmes de consensus blockchain

Pour commencer, il faut se rappeler que la blockchain est encore jeune. De nombreux algorithmes de consensus voient le jour régulièrement avec le développement de nouveaux projets.

Au stade où nous sommes, il n’est pas réellement possible de dire quel est le consensus le performant. En effet, une blockchain qui se développe va sélectionner ou développer un consensus en fonction de ses besoins.

En plus de cet aspect comparatif, nous manquons également de retour en terme de temps d’utilisation et d’utilisation à grande échelle.

Les consensus blockchain sont ce que les protocoles TCP et IP était au début de l’internet. Avec l’utilisation a plus grande échelle et la démocratisation de la blockchain, le monde des cryptomonnaie va évoluer rapidement, c’est une certitude.