Tolérance aux pannes byzantine dans la blockchain : un examen plus approfondi

Le domaine de la crypto-monnaie s'est énormément développé au cours des deux dernières années. La montée en puissance de nouveaux projets présente également diverses façons pour les développeurs de résoudre les problèmes existants sur le terrain.

Un terme qui est assez souvent utilisé est le "mécanisme de consensus BFT". BFT signifie Byzantine Fault Tolerance et présente un problème théorique dans les systèmes informatiques qui existait bien avant Bitcoin.

Cependant, de nombreux protocoles basés sur la blockchain sont engagés dans la résolution des problèmes associés à la tolérance aux pannes byzantines et ce qui suit examine de plus près la question et tout ce qui va avec.

Explication du problème des généraux byzantins

Le problème des généraux byzantins est l'une des situations théoriques les plus débattues chaque fois que se pose la question du consensus.

Le problème a été reconnu pour la première fois dans un article de 1982 intitulé The Byzantine Generals Problem par Leslie Lamport, Robert Shostak et Marshall Pease. Le journal lit :

Un système informatique fiable doit pouvoir faire face à la défaillance d'un ou plusieurs de ses composants. Un composant défaillant peut présenter un type de comportement souvent négligé, qui consiste à envoyer des informations contradictoires à différentes parties du système. Le problème de faire face à ce type d'échec est abstraitement exprimé comme le problème des généraux byzantins.

Le nom vient de l'analogie présentée dans le document. Plus précisément, les auteurs décrivent une situation théorique dans laquelle plusieurs divisions de l'armée byzantine sont campées à l'extérieur d'une ville ennemie. Chaque division est commandée par son propre général, qui siègent tous dans des camps différents. Les commandants doivent concevoir un plan d'action commun (qu'il s'agisse d'attaquer ou de battre en retraite) et ne peuvent communiquer qu'avec des messages. Cependant, certains généraux peuvent être des traîtres et tenter d'empêcher les généraux fidèles de parvenir à un accord (consensus).

bft_img2
Source : Wikipédia

Par conséquent, les généraux doivent trouver un moyen de s'assurer que :

  • Tous les généraux fidèles décident du même plan d'action.
  • Un petit nombre de traîtres ne peut amener des généraux fidèles à adopter un mauvais plan.

On pense qu'un système capable de résoudre ce qui précède a une tolérance aux pannes byzantine (BFT). C'est de là que vient l'algorithme de consensus BFT.

Essentiellement, la tolérance aux pannes byzantines est une condition qui empêche le système de souffrir de participants non fiables (non loyaux).

Résoudre le problème du général byzantin

Pour résoudre le problème des généraux byzantins et atteindre la tolérance aux pannes byzantines (BFT), il doit y avoir un accord majoritaire parmi les généraux sur leur stratégie.

Ceci est réalisé de différentes manières en fonction du système et de ses besoins. Dans le contexte de la blockchain, la preuve de travail et la preuve de participation sont capables d'atteindre la tolérance aux pannes byzantines, mais l'approche dans les deux cas est différente.

La plupart des blockchains proof-of-stake peuvent tolérer jusqu'à un tiers de leurs nœuds défectueux, laissant place à la règle 3f + 1 où F est le nombre de nœuds infidèles et la formule donne le nombre de nœuds fidèles dont le système a besoin pour ont.

Par exemple, dans un système à 4 nœuds, un seul d'entre eux peut être défaillant pour répondre aux critères (3f + 1).

En février 1999, Miguel Castro et Barbara Liskov du Laboratoire d'informatique du Massachusetts Institute of Technology (MIT), ont publié un article dans lequel ils présentaient une solution au problème grâce à la soi-disant tolérance aux pannes byzantine pratique.

Comment Blockchain résout-il le problème des généraux byzantins ?

La technologie basée sur la blockchain présente de multiples solutions au problème des généraux byzantins. Les différences proviennent de l'algorithme de consensus désigné et de leur approche du BFT, mais la preuve de travail et la preuve de participation fournissent des solutions viables.

bft_img1

Comment Bitcoin résout-il le problème des généraux byzantins ?

Fait intéressant, dans le livre blanc original, Satoshi Nakamoto n'a pas mentionné le problème des généraux byzantins, mais avec l'introduction du réseau Bitcoin, le créateur pseudonyme l'a essentiellement résolu grâce à l'algorithme de consensus Proof-of-Work (PoW).

Pour résoudre le problème, Satoshi a créé un moyen d'utiliser la sécurité cryptographique et la cryptographie à clé publique dans un réseau numérique. Pour éviter toute falsification des données, la sécurité cryptographique utilise le hachage, tandis que l'identité d'un utilisateur du réseau est vérifiée à l'aide de sa clé publique.

Les transactions sont sécurisées dans des blocs, qui sont liés à d'autres blocs par leur valeur de hachage et protégés par cryptage. Il est important de noter que la blockchain utilise un arbre Merkle pour vérifier les hachages qui proviennent du bloc de genèse (initial). Tout bloc dérivant du bloc de genèse est valide. Ces blocs sont validés par des mineurs résolvant des énigmes cryptographiques dans le cadre d'une compétition pour produire des blocs dans le cadre de la méthode du consensus.

Bitcoin a établi une réglementation claire et définitivement objective que la blockchain doit suivre afin de surmonter le problème des généraux byzantins. Un membre du réseau doit publier une preuve de l'achèvement des travaux afin d'ajouter des informations à la blockchain (donc, une preuve de travail). Cela a un coût élevé pour le membre et le décourage de partager des informations incorrectes car elles seront réfutées par d'autres membres de l'État.

Toutes les règles sont claires et objectives, ce qui signifie que les informations ne peuvent pas être falsifiées.

Comment le Proof-of-Stake résout-il le problème des généraux byzantins ?

Les réseaux régis par l'algorithme de consensus de preuve de participation ne sont pas basés sur le minage, mais sur le jalonnement. Pour devenir un validateur de réseau, l'utilisateur doit d'abord miser les fonds dans le système. Ceux qui possèdent une plus grande participation peuvent également valider plus de blocs et gagner de plus grandes récompenses. Ceux qui tentent de falsifier l'information risquent de perdre la mise.

La façon dont ces systèmes résolvent le problème varie. Par exemple, Ethereum 2.0 utilise l'algorithme Casper. Une majorité minimale des deux tiers de tous les nœuds est requise pour se mettre d'accord sur un bloc spécifique avant qu'il puisse être créé et ajouté au réseau.

Il existe diverses tentatives pour résoudre le problème en fonction des besoins du système et de l'approche de l'équipe. Par exemple, avec Delegated Proof of Stake (dPoS), parvenir à un consensus est nettement plus rapide. D'autre part, certains systèmes implémentent la tolérance aux pannes byzantine pratique.

Post Byzantine Fault Tolerance in Blockchain: A Closer Look est apparu pour la première fois sur CryptoPotato .