1. Accueil
  2. /
  3. Écosystème
  4. /
  5. Le problème des généraux byzantins

Le problème des généraux byzantins

Le problème des généraux byzantins, également appelé défaillance byzantine, est une condition des systèmes informatiques distribués, développée pour décrire une situation de cohérence et d’intégrité, dans laquelle, afin d’éviter une défaillance catastrophique du système, les acteurs doivent se mettre d’accord sur une stratégie concertée, mais en sachant que certains de ces acteurs pourraient ne pas être dignes de confiance.

Dans une défaillance byzantine, un composant tel qu’un serveur peut sembler défaillant et fonctionner de manière incohérente, mais non détectable par les systèmes de détection, ce qui rend difficile pour les autres composants de déclarer qu’il est défaillant pour l’exclure du réseau. La tolérance aux pannes byzantines (BFT) est la résistance d’un système informatique à de telles conditions.

Le problème des généraux byzantins a été posé par l’informaticien américain Robert Shostak à la fin des années 1970, puis développé en 1982 en collaboration avec Leslie Lamport et Marshall Pease au centre de recherche scientifique et technologique SRI International.

L’énoncé du problème

Les généraux d’une armée byzantine encerclent une ville ennemie. Ils se positionnent avec leurs troupes respectives dans les environs, à une certaine distance les uns des autres, et ne peuvent décider s’ils doivent ordonner une attaque ou une retraite. La coordination est nécessaire sur le plan stratégique, sinon ils risquent fort de perdre la bataille.

Les hauts responsables militaires soupçonnent qu’il y a au moins un traître parmi eux, ce qui rend difficile la prise de décision commune.

Un général pourrait envoyer un message aux autres annonçant qu’il va attaquer, alors qu’en fait il a l’intention d’ordonner un retrait, et faire échouer le reste.

Mais comment se mettre d’accord ?

Le problème est de trouver un algorithme qui garantit que les généraux loyaux parviennent à un accord, et constituent la majorité coordonnée.

Il est démontré qu’en utilisant uniquement des messages, ce problème peut être résolu si, et seulement si, plus de deux tiers des généraux sont loyaux. Par exemple, le problème se pose lorsqu’un seul traître peut confondre deux généraux loyaux sur un total de six, soit la moitié des généraux, expliquent les auteurs précités dans leur étude.

La solution à cette simple expression est problématique, et pour la résoudre, les chercheurs ont proposé une série d’équations et d’algorithmes qui sont transmis par un système de messages « inviolables », c’est-à-dire chiffrés.

Le problème des généraux byzantins sur la blockchain

Les failles sont pratiquement inévitables dans tout système informatique distribué. Imaginons qu’il y ait une panne de courant et que les nœuds soient soudainement hors ligne, ou qu’un acteur malveillant veuille causer des dommages au système. Le réseau peut-il continuer à fonctionner normalement et à assurer des communications fiables ? Ou bien l’ensemble du système cesse-t-il soudainement de fonctionner ou devient-il vulnérable aux attaques ?

Sur un réseau modérément sécurisé, un événement aussi simple que la mise hors ligne de quelques nœuds n’a pas d’impact notable sur le réseau. La capacité à se défendre contre ces scénarios est connue sous le nom de tolérance aux pannes byzantines. Les réseaux qui peuvent gérer un plus grand nombre de fautes byzantines sont considérés comme ayant une plus grande tolérance, ce qui signifie qu’ils sont plus sûrs que ceux qui ne peuvent pas les gérer.

Le grand livre est distribué sur un réseau blockchain, avec un certain nombre d’ordinateurs (nœuds) dans le monde entier, qui sont instantanément mis à jour avec chaque bloc, de sorte que chaque partie intéressée peut faire confiance aux transactions enregistrées sur ce réseau.

Ainsi, l’idée est que chaque général byzantin (chaque nœud) possède la copie complète des plans de chacun de ses collègues (le grand livre de la blockchain), alors il n’y aurait pratiquement aucune marge pour les fautes byzantines.

Lorsque tout le monde est d’accord pour dire qu’il a le même résultat, alors les nœuds valident un bloc. Même si quelqu’un voulait introduire une information erronée -et c’est là qu’intervient le problème des généraux byzantins- il ne pourra pas le faire, car tout le monde a la même information, et la considère comme la vérité, ce qui conduit au consensus. Il s’agit d’un système BFT ( soit résistant aux défaillances byzantines ), et il est réalisé grâce à l’algorithme de consensus qui fonctionne dans chacun des nœuds du réseau qui stocke toutes les informations du grand livre.

La conséquence typique d’un système qui n’est pas tolérant à la faille byzantine est un fork dans la blockchain. Si un système est tolérant aux fautes, cela signifie que malgré l’existence de fautes (dans ce cas, des nœuds malveillants), le succès du système sera possible, bien sûr, tant que ces fautes ne sont pas « trop nombreuses ».

Résoudre le problème des généraux byzantins avec Proof of Work et Proof of Stake

Le Proof of Work (PoW) a été le pionnier de la technologie blockchain, et le Proof of Stake (PoS) est un algorithme alternatif de consensus post-création.

Le PoS a été mis en œuvre pour la première fois par PeerCoin et Nxt en 2012 et 2013, respectivement, et vise à éviter certaines des faiblesses perçues de PoW, plus particulièrement le coût du matériel et la consommation d’énergie.

Dans le protocole PoW, les nouvelles transactions et l’émission de crypto-monnaies sont réglées sur le grand livre par le biais du minage, où les mineurs rivalisent de puissance de calcul pour forger chaque bloc.

En revanche, dans le protocole PoS, les nœuds de validation sont choisis de manière aléatoire, mais avec plus de « chance » pour les nœuds qui ont la plus grande quantité de délégation attribuée, et donc les opérateurs de pool rivalisent pour attirer de nouveaux délégataires avec leurs fonds en crypto-monnaies, partageant avec eux les récompenses de chaque bloc forgé.

PoW génère une incitation excessive, dans laquelle les mineurs, les seuls participants au consensus, prennent l’émission des cryptomonnaies et les frais de transaction de chaque bloc. Ils ont le schéma « le gagnant prend tout« .

Au lieu d’un équipement de minage coûteux, les validateurs PoS n’ont besoin de rien d’autre qu’un ordinateur standard, une connexion Internet et le maintien de la délégation active.

Comme le PoW, le PoS résout le problème des généraux byzantins, mais par des moyens différents. La tolérance au défaut byzantin est déterminée dans l’algorithme.

PoS permet aux « Généraux » distribués et non coordonnés (les nœuds producteurs) de se mettre d’accord, sur la base de l’algorithme de consensus, qui pour Cardano est Ouroboros, malgré le fait que la communication ne soit pas instantanée et que des signaux potentiellement contradictoires soient envoyés :

  • Les généraux deviennent des valideurs en déposant leurs biens.
  • L’algorithme prédéfini sélectionne un général qui deviendra un validateur pour le bloc suivant.
  • Le protocole choisit ensuite un autre général pour devenir validateur, en se référant au bloc précédent pour former une chaîne croissante. En conséquence, il est clair que la plupart des généraux contribuent à forger et à valider la chaîne la plus longue, et la plus dense en blocs.
  • Les Généraux savent qu’aussi vite que chaque bloc est créé sous l’algorithme de consensus PoS, après un certain temps, ils seront capables de dire si suffisamment de Généraux travaillent sur la même chaîne.


Cela résout le problème des généraux byzantin d’une manière plus efficace et plus respectueuse de l’environnement, en éliminant les coûts élevés d’énergie et de matériel associés au PoW. Ce faisant, il supprime également les économies d’échelle dont bénéficient les grands mineurs du PoW, concentrés dans de grandes fermes minières.

Le PoS donne à tous les utilisateurs la possibilité de recevoir une récompense, qui est proportionnelle à leurs fonds.

Alors que les mineurs de PoW peuvent disposer immédiatement des crypto-monnaies minées, par exemple pour payer leurs coûts élevés, PoS incite les validateurs à laisser leurs fonds au nœud, pour les utiliser dans le consensus du réseau, et ainsi avoir plus de chances d’être élus comme producteurs de blocs. De plus, il est possible de conserver les récompenses des validateurs, puisqu’ils n’ont pas à payer des coûts élevés de maintenance des nœuds, comme dans le PoW.

Tout n’est pas positif dans le PoS

Bien que le PoS soit théoriquement plus démocratique, puisqu’il donne à tous les utilisateurs la même possibilité de participer au consensus du réseau (directement ou en déléguant), et qu’il évite les problèmes d’économies d’échelle dont souffre le PoW, il tend à créer une certaine concentration, où les gros deviennent plus gros et les petits de plus en plus dilués dans la participation. Ce problème est connu sous le nom de ploutocratie, qui est le règne d’une minorité ayant un plus grand pouvoir. Les riches ont « plus de chance« .

Lorsque ces grands intérêts s’accumulent, ils sont susceptibles de s’entendre plutôt que de se concurrencer.

Cette concentration de la participation signifie également la formation d’un scénario dans lequel une attaque à 51 % est possible, lorsque le consensus est dominé par des acteurs malveillants.

Pour l’attaque à 51 %, en PoW, un attaquant doit acheter suffisamment d’équipement de minage pour obtenir la puissance de hachage nécessaire pour prendre le contrôle du réseau. En PoS, un attaquant devrait acheter 51 % de la monnaie totale déléguée.

Les partisans du protocole PoS affirment que le réseau pourrait bifurquer en cas d’attaque, détruisant ainsi le montant délégué par l’attaquant. Toutefois, cela dépend en grande partie de la capacité du réseau bifurqué à survivre à la perte de confiance qu’entraînerait une attaque.

De nombreux réseaux PoS exigent également que les validateurs détiennent un montant généralement important de crypto-monnaies de la blockchain verrouillées sur le nœud, prévalant des stakepools avec de grandes sommes d’argent, généralement des institutions, avec un impact similaire aux fermes minières dans PoW, conduisant à une plus grande centralisation.

Ce n’est pas le cas du Cardano, qui ne nécessite pas de gage minimum, et qui a également un impact insignifiant sur le tirage au sort du leader des machines à sous. La conséquence négative de cette situation est l’introduction d’acteurs « sans peau dans le jeu », qui sont les validateurs qui n’ont rien à perdre.

L’atténuation de ces problèmes dans les PoS peut être abordée par des changements dans les paramètres du protocole de consensus, encourageant une participation honnête, où, par exemple, une relation entre le montant délégué et la promesse requise pourrait être établie, de sorte que l’effet de levier soit maintenu dans des valeurs non exagérées, c’est-à-dire que le montant de la promesse ne soit pas inférieur à une certaine valeur par rapport à la délégation, et qu’il puisse donc y avoir de la « peau dans le jeu ».

Parodie du PoW vs PoS :
Le proof of stake est inaccessible et seulement pour les riches qui veulent s’enrichir.
Comme je suis pauvre, je préfère le proof of work qui me permet d’être profitable avec cette petite config’ au coin du lit.

( Photo prise depuis le lit, hier )
Tweet @liberion