
Le consensus est un concept clé dans le fonctionnement des systèmes décentralisés, en particulier dans les cryptomonnaies et la blockchain. Il fait référence à l'accord général des participants sur l'état d'un réseau. L'état est l'ensemble des données, des soldes et des transactions du réseau.
En quoi le consensus est-il essentiel pour le fonctionnement d'une blockchain ?
Dans le contexte de la blockchain, le consensus est essentiel pour garantir que tous les nœuds du réseau partagent les mêmes informations, et que toutes les transactions sont validées selon les mêmes règles. Les participants du réseau sont incités financièrement à parvenir à un consensus pour maintenir l'intégrité de la blockchain. Le consensus doit aussi permettre de résister aux attaques.
Il existe différents mécanismes de consensus utilisés dans l'écosystème crypto. Chacun a ses propres avantages, inconvénients et usages spécifiques. Quelques exemples :
- La preuve de travail - Proof of Work ou PoW. Énergivore mais extrêmement sécurisé. Idéal pour stocker de la valeur.
- La preuve d'enjeu - Proof of Stake ou PoS). Peu coûteux en ressources, mais sa sécurité est très dépendante de la valeur du jeton. Un bon compromis pour les plateformes de smart contract.
- La preuve d'enjeu déléguée - Delegated Proof of Stake ou DPoS. Rapide mais généralement plus centralisé. Idéal pour des applications nécessitant une faible latence.
- La preuve d'autorité - Proof of Authority ou PoA). Très rapide, coût quasi-nul, mais entièrement centralisé. Idéal pour des blockchains privées ou nécessitant l'identification des participants.
Pour établir un consensus entre les nœuds d'un réseau, il faut donc que chacun exécute un algorithme spécifique. Le problème le plus classique du consensus en informatique des réseaux est celui des généraux byzantins.

Comment coordonner une attaque en présence de traîtres au sein d'une armée ? Dans le cadre d'une blockchain, comment assurer la transmission des informations et valider des transactions en présence de nœuds malveillants, corrompus ou hors-ligne ?
Satoshi Nakamoto, en créant la preuve de travail, a trouvé une réponse élégante à ce problème. Son protocole de consensus tolère jusqu'à 50 % de nœuds défaillants.
Choix du type de consensus
Le PoW est utilisé par des cryptomonnaies telles que Bitcoin. Les mineurs doivent résoudre des problèmes mathématiques complexes pour valider les transactions et recevoir une récompense. Avec le PoS (ex : Ethereum), les détenteurs de jetons sont choisis aléatoirement pour valider les transactions. Avec le DPoS, les détenteurs de jetons élisent des délégués qui sont responsables de la validation des transactions. Quant au PoA, utilisé pour des blockchains comme POA Network, des autorités de confiance sont choisies pour valider les transactions.
Le choix du mécanisme de consensus dépend :
- Des cas d'usage du réseau ;
- De la sécurité requise ;
- Du coût en énergie nécessaire pour valider les transactions ;
- De choix conceptuels divers.
Il est important de noter que le choix du mécanisme de consensus peut avoir des implications significatives sur la vitesse et la sécurité du réseau.
En résumé, le consensus est l'accord général des participants sur l'état actuel du réseau et sur son registre comptable. Il est essentiel pour garantir que tous les nœuds du réseau partagent les mêmes informations et que les transactions soient validées selon les mêmes règles. Les deux mécanismes de consensus les plus populaires sont :
- La preuve de travail, créée pour Bitcoin, aussi appelée consensus de Nakamoto ;
- La preuve d'enjeu, notamment utilisée sur Ethereum.
Chacun présente ses propres avantages et inconvénients en termes de sécurité, de vitesse et de coût énergétique. Le secteur des cryptomonnaies étant très jeune, de nombreux autres mécanismes de consensus sont testés ou encore en développement actuellement.