La faille byzantine, ou problème des généraux byzantins, a été un sujet largement débattu dans divers domaines comme l'informatique ou les systèmes distribués. Dans la technologie crypto, en particulier la blockchain, la tolérance aux pannes byzantines (BFT) joue un rôle extrêmement important. Découvrons-en plus sur BFT dans cet article !
Qu'est-ce que la tolérance aux pannes byzantines (BFT) ?
La tolérance aux pannes byzantine est la capacité à faire fonctionner un système ou un réseau distribué et à parvenir à un consensus (accord neutre), étant donné que certains participants peuvent ne pas agir ou le faire de manière malveillante. Son nom dérive d'un paradoxe appelé problème des généraux byzantins, alors que la tolérance aux pannes byzantines est la solution au problème.
Pour que le réseau fonctionne correctement, même si certains de ses participants rencontrent des problèmes (intentionnellement ou non), il doit y avoir des règles et des conditions communes pour que les participants fonctionnels puissent garantir le consensus du réseau.
Quel est le problème des généraux byzantins ?
Le problème des généraux byzantins a été introduit pour la première fois en 1982 dans un article rédigé par un groupe de personnes de Microsoft Research. Le problème a été clairement décrit comme suit :
« Imaginez que plusieurs divisions de l'armée byzantine soient campées à l'extérieur d'une ville ennemie, chaque division commandée par son propre général. Les généraux ne peuvent communiquer entre eux que par messager. Après avoir observé l'ennemi, ils doivent décider d'un plan d'action commun.
Cependant, certains des généraux peuvent être des traîtres, essayant d'empêcher les généraux fidèles de parvenir à un accord. Les généraux doivent décider quand attaquer la ville, mais ils ont besoin d'une forte majorité de leur armée pour attaquer en même temps.
Les généraux doivent avoir un algorithme pour garantir que (a) tous les généraux loyaux décident du même plan d'action et (b) un petit nombre de traîtres ne peuvent pas amener les généraux loyaux à adopter un mauvais plan. Les généraux fidèles feront tous ce que l'algorithme dit qu'ils devraient, mais les traîtres peuvent faire tout ce qu'ils souhaitent. L'algorithme doit garantir la condition (a) indépendamment de ce que font les traîtres. Les généraux loyaux ne devraient pas seulement parvenir à un accord, mais devraient s'entendre sur un plan raisonnable.
Le problème des généraux byzantins , bien que similaire au problème des deux généraux ( paradoxe des deux généraux ), est une version plus générale. D'une manière plus compliquée, le problème des généraux byzantins peut imposer plus de variations. Par exemple, les messagers peuvent ne pas livrer le message en cours de route ou même modifier délibérément le contenu original.
Qu'est-ce que BFT dans Crypto ?
Dans la crypto, en particulier la technologie blockchain , la tolérance aux pannes byzantines joue un rôle extrêmement important. Lorsque nous appliquons le problème des généraux byzantins à la cryptographie, les généraux sont les nœuds . Tous les nœuds d'un réseau blockchain doivent communiquer entre eux et trouver un moyen de parvenir à un consensus, ce qui conduit à des méthodes que nous appelons des algorithmes de consensus .
Il existe de nombreuses façons d'atteindre la tolérance aux pannes byzantine. Par conséquent, il existe également divers algorithmes de consensus dans l'espace blockchain, chacun avec ses propres solutions au problème pour une efficacité optimale.
Bitcoin , avec son algorithme de consensus Proof of Work, est parmi les premiers à atteindre la tolérance aux pannes byzantines en crypto. Depuis son introduction en 2008, la preuve de travail s'est avérée être l'une des solutions les plus sûres et les plus fiables à ce problème, avec le succès de Bitcoin.
Comment la preuve de travail atteint la tolérance aux pannes byzantine
Comment fonctionne la tolérance aux pannes byzantine pratique ?
La tolérance pratique aux pannes byzantines (pBFT) est un algorithme de consensus introduit à la fin des années 90 par Barbara Liskov et Miguel Castro dans le but de résoudre les problèmes existants des solutions de tolérance aux pannes byzantines déjà disponibles.
En général, pBFT fonctionne en attribuant initialement 1 nœud en tant que nœud principal (leader) et les autres en tant que nœud secondaire (de sauvegarde). N'importe quel nœud peut devenir le nœud principal si le nœud actuel ne fonctionne pas.
De plus, un système pBFT peut fonctionner quand et seulement quand le nombre maximum de nœuds malveillants ne doit pas être supérieur ou égal à un tiers de tous les nœuds du système.
Les cycles de consensus pBFT se déroulent en 4 phases :
- Requête : le client envoie une requête au nœud principal (principal).
- Pré-préparer : le nœud principal (leader) diffuse la demande à tous les nœuds secondaires (de secours).
- Préparer : les nœuds (primaire et secondaire) exécutent le service demandé.
- Commit : La réponse est envoyée au client si elle est valide.
Fonctionnement pratique de la tolérance aux pannes byzantines (pBFT)
Centralisation et décentralisation
Comme vous pouvez le voir, pour atteindre la tolérance aux pannes byzantine, chaque nœud (ou participant) du réseau doit communiquer et coopérer avec l'autre. Il n'y a aucune source d'information digne de confiance sur laquelle se fier. Par conséquent, seuls les réseaux décentralisés doivent prendre en compte la tolérance aux pannes byzantine.
En revanche, pour les réseaux centralisés, il y a toujours un ou plusieurs tiers qui agissent comme intermédiaire entre chaque participant, facilitant grandement la communication et le consensus. Chaque participant n'a plus à faire confiance à l'autre ; ils peuvent simplement fournir toutes les informations à l'intermédiaire.
Tolérance aux pannes byzantine dans la centralisation et la décentralisation
FAQ sur BFT dans Crypto
La preuve de participation est-elle une tolérance aux pannes byzantine ?
Comme mentionné ci-dessus, la technologie blockchain nécessite des algorithmes de consensus pour atteindre la tolérance aux pannes byzantine. Étant l'un d'entre eux, la preuve de participation peut répondre aux exigences de tolérance aux pannes byzantines, tout comme la preuve de travail.
En savoir plus : Qu'est-ce que le point de vente ? Pourquoi est-ce la tolérance aux pannes byzantine ?
Est-ce que Tendermint BFT?
Tendermint, introduit pour la première fois en 2014, est la première adaptation du consensus Proof-of-Stake dérivé de l'algorithme Practical Byzantine Fault Tolerant (PBFT). Ainsi, il est considéré comme un algorithme de consensus BFT Proof-of-Stake.
Est-ce que Ethereum Byzantine Fault Tolerance?
Ethereum utilise actuellement l'algorithme de consensus Proof-of-Work, similaire à celui utilisé par Bitcoin. À l'avenir, Ethereum fera passer son réseau en Proof-of-Stake.
Quoi qu'il en soit, Ethereum est toujours en mesure de respecter la tolérance aux pannes byzantine.
Conclusion
La tolérance aux pannes byzantine est la capacité à faire fonctionner un système ou un réseau distribué et à parvenir à un consensus (accord neutre), étant donné que certains participants peuvent ne pas agir ou le faire de manière malveillante.
Son nom dérive d'un paradoxe appelé problème des généraux byzantins, alors que la tolérance aux pannes byzantines est la solution au problème.
En bref, le problème des généraux byzantins fait référence à un problème lorsque plusieurs généraux veulent attaquer une forteresse et doivent décider en groupe d'attaquer ou de battre en retraite. Nous devons découvrir comment ces généraux peuvent parvenir à un consensus indépendamment des actes malveillants ou des tentatives de communication ratées.
Lorsque nous appliquons le problème des généraux byzantins à la cryptographie, les généraux sont les nœuds. Tous les nœuds d'un réseau blockchain doivent communiquer entre eux et trouver un moyen de parvenir à un consensus, ce qui conduit à des méthodes que nous appelons des algorithmes de consensus.
Il existe de nombreuses façons d'atteindre la tolérance aux pannes byzantine. Par conséquent, il existe également divers algorithmes de consensus dans l'espace blockchain, chacun avec ses propres solutions au problème pour une efficacité optimale.