Problème des généraux byzantins

Le problème des généraux byzantins, c’est quoi ?

Le problème des généraux byzantins est l’un des défis les plus difficiles à relever par la technologie de la blockchain. Le problème parfaitement résolu  signifie que deux nœuds peuvent communiquer en toute sécurité sur un réseau, sachant qu’ils affichent les mêmes données. Dans cette partie, nous allons examiner pourquoi c’est si difficile, mais important, et comment on y parvient.

La métaphore

Selon Wikipedia :

Des généraux de l’armée byzantine campent autour d’une cité ennemie. Ils ne peuvent communiquer qu’à l’aide de messagers et doivent établir un plan de bataille commun, faute de quoi la défaite sera inévitable. Cependant un certain nombre de ces messagers peuvent s’avérer être des traîtres, qui essayeront donc de semer la confusion parmi les autres. Le problème est donc de trouver un algorithme pour s’assurer que les généraux loyaux arrivent tout de même à se mettre d’accord sur un plan de bataille.

Il a été démontré qu’en utilisant uniquement des messages oraux, ce problème des généraux byzantins peut être résolu, si et seulement si plus des deux tiers des généraux (messagers) sont loyaux. Ainsi un seul traître peut confondre deux généraux loyaux. De plus, le problème peut être résolu pour un nombre quelconque de messagers renégats si les messages sont écrits (et non falsifiables).

Plusieurs problèmes se posent dans ce scénario. N’importe lequel des messagers pourrait être capturé, un message ne serait pas livré et à cause de cela une attaque synchronisée serait impossible. De plus, les généraux ne pouvaient pas être sûrs si l’un des autres généraux était un traître ayant l’intention d’envoyer de faux messages pour saboter délibérément l’attaque.

Par exemple, un général malhonnête pourrait dire à la moitié des généraux que le plan est de battre en retraite, en s’assurant qu’ils le font, tout en disant à l’autre moitié d’attaquer, les condamnant à l’échec.

problemes des generaux byzantins

Cette histoire s’applique aux nœuds qui tentent de s’entendre sur l’information qu’ils affichent sur un réseau peer to peer. C’était un des plus gros problèmes dans la création d’une monnaie numérique dans le passé et en tant que telle est sans doute le couronnement des réalisations du fondateur de Bitcoin et ancêtre de la technologie de la blockchain, Satoshi Nakamoto.

Il y a différentes approches adoptées par différents protocoles de consensus afin de parvenir à un consensus sûr et efficace, tout en niant le problème du général byzantin, un exemple étant le protocole de la preuve d’enjeu (PoS).

Le “Problème des généraux byzantins” affirme qu’aucun ordinateur d’un réseau décentralisé ne peut garantir entièrement et irréfutablement qu’il affiche les mêmes données. En supposant que le réseau n’est pas fiable, ils ne peuvent jamais être sûrs que les données qu’ils ont communiquées sont arrivées. Au fond, le problème des généraux byzantins est de parvenir à un consensus sur un réseau distribué de dispositifs, dont certains pourraient être potentiellement défectueux, tout en se défendant contre tout attaquant qui tenterait de saper le réseau.

Dans un réseau P2P, un consensus est atteint si les nœuds fidèles, ou non défaillants, parviennent à un accord unanime sur leur décision. Tolérance de faute byzantine signifie qu’un message entrant est répété aux autres destinataires de ce message entrant. Tous les nœuds partent du principe que le fait de répéter un message exclut la question des nœuds byzantins.

Le problème dans la vie courante

Un autre exemple de ce problème existe dans les systèmes de communication à bord des avions, où la sécurité et la fiabilité des communications sont les aspects les plus importants.

Les Boeing 777 et 787 utilisent le réseau SAFEbus ARINC 659, où chaque nœud utilise des émetteurs en double pour envoyer des messages. Chaque nœud destinataire reçoit quatre copies du message et ne l’enregistre que si les quatre sont identiques. Chaque émetteur contrôle les pilotes de son partenaire et coupe le son de l’ensemble du nœud s’il est informé d’un trop grand nombre d’erreurs. Le SAFEbus fonctionne tant qu’au moins un noeud est honnête.

Un nœud byzantin peut mentir et induire intentionnellement en erreur les autres nœuds impliqués dans le protocole de consensus. En tant que tel, le protocole doit pouvoir fonctionner correctement et parvenir à un consensus malgré toute intervention illicite des nœuds byzantins. Ceci est parfaitement plausible tant que le nombre de nœuds byzantins dans un système distribué est limité.

Le problème des généraux byzantins est rarement le premier problème que les gens imaginent quand à la technologie blockchain. Cependant, une communication sûre et fiable entre les nœuds est un problème considérable et une réalisation incroyable qu’il a été résolu, permettant d’atteindre un consensus efficace entre les nœuds du réseau.

 

Passez au chapitre suivant !

Laisser un commentaire