Introduction

Depuis que Bitcoin a été introduit pour la première fois en tant que système de paiement électronique en 2008 ; de nombreuses autres monnaies ont été créées par la suite, chacune avec ses propres mécanismes. Cependant, une chose que presque toutes les monnaies numériques ont en commun est leur élément architectural de base, à savoir la technologie Blockchain.

À quelques exceptions près, la blockchain est conçue pour être décentralisée, fonctionnant comme un registre numérique géré par un réseau décentralisé de nœuds informatiques. Pour cette raison, la technologie blockchain permet la création d’un système économique sans confiance, où la transparence et la fiabilité des transactions financières peuvent avoir lieu sans avoir besoin d’un intermédiaire. Les monnaies numériques seront adoptées comme alternative de paiement remplaçant les banques et les systèmes de paiement traditionnels, qui reposent fortement sur la confiance.

Comme pour la plupart des systèmes informatiques distribués, les participants à un réseau de monnaie numérique doivent périodiquement se mettre d’accord sur l’état actuel de la blockchain, et c’est ce que nous appelons parvenir à un consensus. Cependant, parvenir à un consensus dans un réseau distribué, de manière honnête et sécurisée, est très difficile à réaliser.

Par conséquent, comment un réseau de nœuds informatiques distribués parvient-il à prendre une décision ? Si certains nœuds peuvent échouer ou se comporter de manière malhonnête ? Il s’agit d’une question fondamentale connue sous le nom de problème byzantin général, qui a donné naissance à un concept appelé tolérance aux pannes byzantine.


Est-ce un problème byzantin courant ?

En bref, le problème général byzantin est né en 1982 comme un dilemme logique illustrant comment un groupe de généraux byzantins pouvait avoir des difficultés à communiquer pour se mettre d’accord sur leur prochaine action.

Ce dilemme suppose que chaque général possède sa propre armée et que chaque groupe est placé à un endroit différent de la ville qu'il souhaite attaquer. Les généraux devaient se mettre d'accord sur l'attaque ou la retraite. Il ne s'agissait pas de savoir s'ils allaient attaquer ou battre en retraite, du moment que les généraux parvenaient à un consensus, par exemple : se mettre d'accord sur une décision qui serait exécutée selon les ordres.


Il y a donc plusieurs choses à déterminer :

  • Chaque général doit décider ; s'il faut attaquer ou battre en retraite (oui ou non) ;

  • Une fois que chaque décision est prise, elle ne peut plus être modifiée ;

  • Chaque général doit être d'accord avec la même décision et l'exécuter simultanément selon les règles établies.

Les problèmes de communication décrits ci-dessus sont liés au fait qu'un général ne peut communiquer avec un autre que par le biais de messages envoyés par courriers. La même chose remet en cause le problème général byzantin, de sorte que la transmission du message est légèrement entravée, peut être détruite ou perdue.

De plus, même si le message est envoyé avec succès, un ou plusieurs généraux peuvent choisir (pour quelque raison que ce soit) d'agir de manière malveillante et d'envoyer une réponse destinée à confondre les autres généraux, ce qui pourrait entraîner l'échec de l'attaque.

Si nous appliquons ce dilemme à un contexte de blockchain, chaque général représente un nœud de réseau et ce nœud doit parvenir à un consensus sur l'état actuel du système. En d’autres termes, la majorité des participants d’un réseau distribué doivent se mettre d’accord et exécuter la même action pour éviter un échec total.

Par conséquent, la seule façon de parvenir à un consensus pour ce type de système distribué est d’avoir au moins ⅔ des nœuds du réseau honnêtes et fiables. Cela peut également signifier que si une majorité des participants du réseau décident d'agir de manière malveillante, le système sera très vulnérable aux pannes et aux attaques (comme une attaque à 51 %).


Tolérance aux pannes byzantine (BFT)

En d’autres termes, la tolérance aux pannes byzantine est la propriété d’un système capable d’éviter les pannes causées par le dilemme du problème commun byzantin. Cela peut également signifier que le système BFT peut continuer à fonctionner même si certains nœuds tombent en panne ou se comportent mal.

Il existe plusieurs solutions au problème général byzantin, ainsi que plusieurs manières de construire un système BFT. De plus, il existe plusieurs approches de la blockchain qui peuvent réaliser le BFT, ce qui nous mènera à des algorithmes de consensus.


Algorithme de consensus blockchain

Nous pouvons définir un algorithme de consensus comme un mécanisme par lequel un réseau blockchain parvient à un consensus. les implémentations les plus courantes sont la preuve de travail (PoW) et la preuve de participation (PoS). mais prenons Bitcoin comme exemple.

Le protocole Bitcoin définit les principales règles du système Bitcoin, et c'est l'algorithme de consensus PoW qui détermine comment ces règles sont suivies pour parvenir à un consensus (par exemple, lors de la vérification et de la validation des transactions).

Bien que le concept de Proof of Work soit plus ancien que les autres monnaies numériques, Satoshi Nakamoto a développé une version modifiée en tant qu'algorithme permettant d'utiliser le processus de création de Bitcoin comme système BFT.

Il convient de noter que l'algorithme PoW n'est pas 100 % tolérant aux pannes byzantines, mais en raison d'un processus d'extraction très coûteux et des techniques de cryptographie sous-jacentes, PoW s'est avéré être l'implémentation de réseau blockchain la plus sécurisée et la plus fiable. Dans ce cas, l’algorithme de consensus Proof of Work conçu par Satoshi Nakamoto est considéré par de nombreuses personnes comme une solution géniale à la faille byzantine.


Conclusion

Le problème général byzantin est un dilemme intéressant qui a finalement donné naissance au système BFT, largement appliqué dans de nombreux scénarios. Outre l’industrie de la blockchain, les systèmes BFT sont également utilisés dans de nombreux autres secteurs, tels que l’aviation, l’espace et l’énergie nucléaire.

Dans le contexte des monnaies numériques, disposer d’une communication réseau efficace, ainsi que d’un bon mécanisme de consensus, est très important pour tout écosystème blockchain. Sécuriser ces systèmes est un effort sans fin, et les algorithmes de consensus actuels n’ont pas encore surmonté certaines des limitations auxquelles ils sont encore confrontés (telles que la mise à l’échelle). Néanmoins, PoW et PoS constituent une approche non moins intéressante que les systèmes BFT, et leurs applications potentielles inspirent une innovation généralisée.