Depuis la naissance du Bitcoin en tant que système de paiement électronique peer-to-peer en 2008, de nombreuses autres monnaies numériques ont progressivement émergé, et chaque monnaie numérique possède son propre mécanisme spécifique. Mais presque toutes les monnaies numériques ont une chose en commun : l’architecture de base de la blockchain.
Dans la plupart des cas, les blockchains sont conçues pour être des registres électroniques décentralisés gérés par un réseau distribué de nœuds. Les systèmes blockchain permettent donc d’exécuter des transactions financières de manière totalement transparente et fiable, sans intermédiaires. Les monnaies numériques remplacent progressivement les systèmes de paiement bancaires traditionnels qui nécessitent une grande fiabilité.
Comme pour la plupart des systèmes informatiques distribués, les participants à un réseau de monnaie numérique doivent régulièrement discuter et se mettre d’accord sur l’état actuel de la blockchain. C’est ce que nous appelons le consensus. Cependant, parvenir à un consensus de manière sécurisée et efficace dans un réseau distribué n’est pas une tâche facile.
Alors, comment un réseau distribué de nœuds informatiques peut-il se mettre d’accord sur des décisions dans des situations où certains nœuds peuvent mal fonctionner ou se comporter de manière malhonnête ? C’est la racine du soi-disant problème des généraux byzantins, qui a donné naissance au concept de tolérance aux pannes byzantine.
Quel est le problème des généraux byzantins ?
En termes simples, en 1982, le problème des généraux byzantins était considéré comme un dilemme logique illustrant les problèmes de communication qu'un groupe de généraux byzantins pouvait rencontrer lorsqu'il tentait de s'entendre sur une opinion unifiée sur son prochain mouvement.
Le dilemme suppose que chaque général possède sa propre armée, chacune située à un endroit différent autour de la ville qu’elle a l’intention d’attaquer. Ces généraux doivent se mettre d’accord sur l’opportunité d’attaquer ou de battre en retraite. Peu importe qu’il s’agisse d’une attaque ou d’une retraite, du moment que tous les généraux parviennent à un consensus, c’est-à-dire qu’ils se coordonnent et décident de l’exécuter ensemble.
On peut donc considérer les conditions suivantes :
Chaque général doit prendre une décision : attaque ou retraite (oui ou non) ;
Une fois qu’une décision est prise, elle ne peut plus être modifiée ;
Tous les généraux doivent s'entendre sur une décision unifiée et l'exécuter simultanément.
Le problème de communication ci-dessus implique le fait qu’un général ne peut communiquer avec un autre général que par le biais de messages envoyés par des agents de renseignement. Par conséquent, le principal défi du problème des généraux byzantins est que les informations peuvent être retardées, corrompues ou perdues.
De plus, même si le message est transmis avec succès, un ou plusieurs généraux peuvent choisir d'agir de manière malveillante (pour quelque raison que ce soit) et d'envoyer des messages frauduleux pour confondre les autres généraux, provoquant ainsi l'échec de l'opération.
Si nous mappons ce dilemme à la blockchain, chaque général représente un nœud du réseau, et les nœuds doivent 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 effectuer les mêmes actions pour éviter l’échec.
Par conséquent, la seule façon de parvenir à un consensus dans ces types de systèmes distribués est de disposer d’au moins deux tiers des nœuds du réseau qui sont fiables et honnêtes. Cela signifie que le système est vulnérable aux pannes et aux attaques (telles que les attaques à 51 %) si la majorité des nœuds du réseau décident d'agir de manière malveillante.
Tolérance aux pannes byzantine (BFT)
En termes simples, la tolérance aux pannes byzantines (BFT) est une propriété du système capable de résister à une série de pannes causées par le problème des généraux byzantins. Cela signifie qu'un système byzantin tolérant aux pannes peut continuer à fonctionner même si certains nœuds tombent en panne ou se comportent de manière malveillante.
Il existe de nombreuses solutions possibles au problème des généraux byzantins et, par conséquent, il existe de nombreuses façons de construire un système byzantin tolérant aux pannes. De même, les blockchains disposent de différentes manières pour atteindre la tolérance aux pannes byzantine, ce que nous appelons des algorithmes de consensus.
Algorithme de consensus blockchain
Nous pouvons définir un algorithme de consensus comme le mécanisme par lequel un réseau blockchain parvient à un consensus. Les exemples les plus courants sont le Proof of Work (PoW) et le Proof of Stake (PoS). Ici, nous prenons Bitcoin comme exemple.
Le protocole Bitcoin définit les principales règles du système, et l'algorithme de consensus de preuve de travail explique 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 preuve de travail soit antérieur à la monnaie numérique, Satoshi Nakamoto a modifié la version originale et développé un algorithme de preuve de travail amélioré qui peut générer Bitcoin en tant que système byzantin tolérant aux pannes.
Veuillez noter que cet algorithme de preuve de travail n'est pas totalement résistant aux failles byzantines, mais en raison du processus d'extraction coûteux et de la technologie de cryptage sous-jacente, la preuve de travail s'est avérée être l'une des méthodes les plus sécurisées et les plus fiables. réseaux blockchain. En ce sens, l’algorithme de consensus de preuve de travail conçu par Satoshi Nakamoto est considéré par beaucoup comme l’une des solutions les plus sophistiquées à la tolérance aux pannes byzantine.
en conclusion
Le problème des généraux byzantins est un dilemme intéressant qui a finalement donné naissance aux systèmes byzantins tolérants aux pannes, qui sont largement utilisés dans une variété de scénarios. Outre l’industrie de la blockchain, certains cas d’utilisation des systèmes Byzantine Fault Tolerance incluent également les industries de l’aviation, de l’aérospatiale et de l’énergie nucléaire.
Dans le domaine de la monnaie numérique, disposer d’une communication réseau efficace et d’un bon mécanisme de consensus est crucial pour tout écosystème blockchain. La sécurisation de ces systèmes nécessite des efforts continus, et il existe des limites (telles que l'évolutivité) que les algorithmes de consensus existants n'ont pas été en mesure de surmonter. Néanmoins, la preuve de travail et la preuve d’enjeu sont des méthodes efficaces pour les systèmes byzantins tolérants aux pannes, et leurs applications potentielles inspireront davantage d’innovation.

