Panne byzantine
Une panne byzantine est une défaillance arbitraire d'un acteur dans un système distribué. Le BFT vise à tolérer ces pannes. Bitcoin propose une solution probabiliste via la PoW au problème des Généraux byzantins.
Définition et origine du terme
Le terme « panne byzantine » (Byzantine fault) désigne une défaillance arbitraire d'un nœud dans un système distribué : non seulement le nœud peut s'arrêter, mais il peut aussi mentir, envoyer des messages contradictoires à différents pairs, ou se comporter de manière malveillante. Le nom vient de la métaphore historique des généraux byzantins, formulée par Leslie Lamport, Robert Shostak et Marshall Pease en 1982 dans leur article The Byzantine Generals Problem.
Distinction avec une panne simple
| Type de panne | Comportement | Modèle | |---------------|--------------|--------| | Crash | Le nœud s'arrête net | Fail-stop | | Omission | Le nœud rate des messages | Fail-omission | | Byzantine | Comportement arbitraire/malveillant | Fail-arbitrary |
Une panne byzantine est de loin la plus difficile à tolérer : on ne peut faire confiance ni à la disponibilité, ni au contenu des messages d'un nœud.
Le théorème de tolérance
Lamport démontre que pour qu'un protocole survive à f nœuds byzantins parmi n participants, il faut au minimum :
n ≥ 3f + 1
Soit une majorité de deux tiers d'honnêtes. C'est la base des protocoles BFT classiques : PBFT (Castro-Liskov, 1999), Tendermint, HotStuff, etc.
L'approche de Bitcoin
Bitcoin innove en proposant une solution probabiliste et ouverte au lieu d'une solution déterministe à comité fermé :
- Le consensus ne dépend pas du vote des nœuds (Sybil-attackable) mais de la preuve de travail (PoW).
- Tant que les mineurs honnêtes contrôlent plus de 50 % du hashrate, la chaîne valide la plus longue gagne.
- La finalité n'est jamais absolue : elle devient exponentiellement probable avec chaque confirmation.
Le modèle inverse les hypothèses : on n'a pas besoin de connaître les participants à l'avance, et le coût d'une attaque est physique (énergie, ASICs) plutôt que logique.
Limites de la solution Bitcoin
- 51 % attack : un mineur majoritaire peut réécrire l'histoire récente (mais à un coût énorme).
- Selfish mining : variante théorique qui rend le minage moins compétitif.
- Finalité probabiliste : pas adaptée à certains usages financiers stricts.
À l'inverse, les protocoles BFT classiques offrent une finalité instantanée mais demandent un comité de validateurs identifiés, donc une forme de centralisation.
Cas d'usage hors Bitcoin
- Avionique : Boeing et Airbus utilisent BFT pour leurs systèmes critiques.
- Bases de données distribuées : CockroachDB, Spanner.
- Blockchains permissionnées : Hyperledger Fabric, Corda.
- Proof-of-Stake : Tendermint, Casper, Ethereum 2.
À retenir
La panne byzantine est le pire scénario imaginable pour un système distribué. Bitcoin a proposé en 2008 la première solution pratique au problème des Généraux byzantins en environnement ouvert et anonyme, en remplaçant l'identité par la preuve de travail. C'est une avancée majeure de l'informatique théorique.
Termes lies
- BFT (Byzantine Fault Tolerance)BFT désigne les algorithmes capables de fonctionner malgré des pannes byzantines. Bitcoin est probabilistic-BFT. Indispensable au consensus distribué.
- Problème des Généraux byzantinsLe problème des Généraux byzantins (Lamport, 1982) modélise le défi du consensus en présence d'acteurs malveillants. Bitcoin en propose la première solution pratique en environnement ouvert. Tournant historique.
- Preuve de travail (PoW)La preuve de travail est le mécanisme de consensus de Bitcoin : prouver qu'on a effectué un calcul coûteux pour ajouter un bloc. Inventée par Adam Back (Hashcash), elle est appliquée au minage par Satoshi. Elle protège la chaîne d'attaques bon marché et incarne sa sécurité physique. C'est la principale critique « énergivore », mais aussi sa principale force.
Glossaire inspire du dictionnaire de Loic Morel sur Pandul.fr.