La confiance et la sécurité sont essentielles à la technologie blockchain, et le mécanisme de consensus de la tolérance de panne byzantine (BFT) est au cœur de la sécurité d’une blockchain.
La BFT garantit que les blockchains continuent de fonctionner, même si certains participants au réseau ne sont pas fiables ou sont malveillants. Mais qu’est-ce que la tolérance aux pannes, comment fonctionne-t-elle et pourquoi est-elle si importante pour la technologie des blockchains ?
Qu’est-ce que la tolérance aux pannes byzantine ?
La tolérance aux pannes byzantines désigne la capacité d’un réseau ou d’un système à continuer à fonctionner même si certains composants sont défectueux ou ont échoué.
Avec un système BFT, les réseaux blockchain continuent de fonctionner ou de mettre en œuvre les actions prévues tant que la plupart des participants au réseau sont fiables et authentiques. Cela signifie que plus de la moitié ou des deux tiers des nœuds du réseau blockchain doivent être d’accord pour valider une transaction et l’ajouter au bloc.
Pour que des nœuds compromis puissent causer une malveillance sur une blockchain byzantine tolérante aux fautes, ils doivent être majoritaires. Cette malveillance peut prendre la forme d’une double dépense, d’une attaque à 51 %, d’une attaque Sybil, etc.
La tolérance aux fautes byzantines dans la technologie blockchain trouve son origine dans le problème général byzantin dont Leslie Lamport, Marshall Pease et Robert Shostak ont été les pionniers. Ce concept s’est imposé lorsqu’ils ont publié un article, dont une copie était hébergée par Microsoft, intitulé « The Byzantine Generals Problem (PDF) » en 1982.
Lamport, Pease et Shostak ont décrit le cas d’un groupe de généraux de l’armée byzantine campant à l’extérieur d’une ville ennemie. Chaque général avait sa propre armée et devait communiquer et prendre une décision unanime sur l’opportunité d’attaquer ou de battre en retraite.
Le problème était de mener une action commune au milieu de généraux compromis. Ce dilemme a été appelé une faute byzantine, et lorsqu’un système parvient à résoudre ce problème, on dit qu’il est tolérant aux fautes byzantines.
Le concept de tolérance aux pannes byzantines a ensuite été appliqué au réseau blockchain des crypto-monnaies. Dans l’espace cryptographique, les généraux sont les nœuds qui valident les transactions cryptographiques.
Comment fonctionne la tolérance aux pannes byzantine ?
Les réseaux décentralisés mettent en œuvre la tolérance aux pannes byzantine via des règles ou des protocoles de consensus. Tous les nœuds du réseau doivent adhérer à ces protocoles ou algorithmes s’ils veulent participer à la validation et au traitement des transactions.
Pour qu’une transaction soit validée, traitée et ajoutée à un bloc en croissance, la plupart des nœuds doivent convenir que la transaction est authentique grâce à l’algorithme de consensus du réseau. Bitcoin, Ethereum et d’autres blockchains à preuve de travail (PoW) et à preuve d’enjeu (PoS) utilisent des algorithmes BFT.
Dans l’algorithme de consensus PoW, les mineurs du réseau résolvent des puzzles cryptographiques pour valider et produire des blocs enregistrant les transactions. Le mineur qui résout les énigmes en premier gagne le droit d’ajouter la transaction au bloc en croissance et de gagner la récompense du bloc. Mais le mineur doit publier la preuve qu’il a résolu l’énigme pour ajouter le bloc.
Le processus de minage dans les blockchains PoW nécessite des ordinateurs ou des appareils de minage coûteux. Ce coût élevé dissuade les mineurs de partager de fausses informations, car les autres participants les rejetteraient. Il réduit également la probabilité que des acteurs malveillants prennent le contrôle de la plupart des nœuds du système.
Pendant ce temps, avec le mécanisme de consensus PoS, vous devez miser une certaine quantité de crypto-jetons pour gagner le droit de valider la transaction. Ensuite, si le protocole du réseau vous sélectionne, vous pouvez ajouter la transaction au bloc en expansion et gagner la récompense du bloc.
Les systèmes PoS résolvent les failles byzantines à l’aide de différentes méthodes. Par exemple, Ethereum utilise l’algorithme Casper, qui exige qu’au moins deux tiers des nœuds parviennent à un consensus sur les blocs. En fin de compte, les systèmes PoS ont besoin que la plupart des nœuds soient d’accord sur les blocs avant qu’ils puissent être ajoutés.
Ces blockchains utilisent des algorithmes de consensus BFT pour résister aux nœuds de la minorité qui ne sont pas d’accord avec le consensus. De cette façon, le réseau blockchain peut poursuivre sa fonction, en rejetant les transactions erronées ou malhonnêtes.
Le rôle de la tolérance aux pannes byzantines dans la technologie blockchain
La technologie Blockchain repose sur la tolérance aux pannes byzantine pour les raisons suivantes :
- La tolérance de panne byzantine maintient le réseau blockchain en permanence fonctionnel, même avec quelques nœuds en désaccord.
- Elle maintient la sécurité du réseau, en empêchant les malveillances qui peuvent se présenter sous la forme d’une attaque à 51 % (ou attaques Sybil) ou d’une double dépense.
Limites de la tolérance aux pannes byzantine
La tolérance aux pannes byzantines a apporté d’énormes avantages à l’industrie de la blockchain. Cependant, le système présente encore des problèmes, notamment l’algorithme pratique de consensus tolérant aux fautes byzantines (pBFT).
La tolérance aux pannes Byzantine pratique est une forme optimisée de la tolérance aux pannes Byzantine originale. pBFT fonctionne par le biais d’un système asynchrone composé d’un nœud leader primaire et d’autres nœuds de secours. Dans ce système, les nœuds malveillants ne peuvent pas être plus nombreux que les nœuds honnêtes, généralement pas plus d’un tiers. Les nœuds communiquent toujours entre eux pour s’assurer que la plupart des nœuds (les honnêtes) sont d’accord sur l’état du réseau.
Certaines limitations du pBFT sont les suivantes :
- Communication élevée : Pour rester fonctionnel, le système nécessite une communication élevée entre les nœuds. Ce processus prend du temps et entraîne des problèmes d’évolutivité.
- Problèmes d’extensibilité : pBFT a des problèmes d’extensibilité, surtout avec des réseaux très étendus.
- Faible sécurité : pBFT est sujet à des attaques Sybil, où un nœud du réseau prétend être 51% des autres nœuds pour dominer le réseau et causer de la malveillance.
Six plateformes populaires basées sur la blockchain BFT
Voici quelques blockchains qui intègrent les mécanismes de tolérance aux pannes byzantines.
1. Bitcoin
Bitcoin intègre la tolérance aux pannes byzantines dans son réseau par le biais du protocole de consensus « proof of work ». L’algorithme de consensus PoW de la blockchain oblige tous les nœuds de la blockchain à vérifier la structure des données, la taille du bloc, l’horodatage du bloc, le hachage de l’en-tête du bloc et la première transaction de chaque donnée. Ce processus, appelé hachage de données, utilise de la puissance de calcul.
2. Ethereum
Utilisant auparavant le PoW, la blockchain Ethereum est passée à un système PoS qui résout ses problèmes byzantins. Les validateurs du réseau mettent en jeu leurs jetons Ether, et le protocole sélectionne des validateurs honnêtes pour traiter les transactions, valider les blocs et voter pour une tête de chaîne. Le protocole oblige les pieux à être honnêtes, ce qui rend l’attaque du réseau prohibitive.
3. EOS
La blockchain EOSIO atteint un consensus via une couche de tolérance aux fautes byzantine asynchrone (aBFT) et une couche de preuve d’enjeu déléguée (DPoS). La couche aBFT confirme chaque bloc de transactions jusqu’à ce qu’il s’agisse du dernier bloc irréversible (LIB). La couche DPoS confirme alors le LIB comme étant le dernier bloc irréversible.
4. Ripple
Ripple n’utilise aucun des deux mécanismes de consensus PoW ou PoS. Il utilise plutôt le protocole de consensus XRP Ledger, un mécanisme de consensus byzantin tolérant aux pannes. La blockchain continue à fonctionner normalement si les validateurs non fiables représentent moins de 20 % du total des validateurs. Ce système empêche les doubles dépenses et améliore l’intégrité de la blockchain.
5. Kadena
Kadena utilise un mécanisme de consensus ScalableBFT pour confirmer les blocs. La blockchain combine le système PoW de Bitcoin avec des mécanismes de consensus de blockchain décentralisés, parallèles et multiples, qui sont efficaces sur le plan énergétique, évolutifs et sécurisés, et fournit un rendement bien meilleur que le système de Bitcoin. Cette configuration, appelée « Chainweb », permet à Kadena d’effectuer jusqu’à 480 000 transactions par seconde (TPS) avec 20 chaînes fonctionnant simultanément.
6. Quorum
Le mécanisme de consensus pour le cryptosystème Quorum est le mécanisme de consensus IBFT (Istanbul Byzantine fault tolerance). QuorumChain délègue les droits de vote à un pool de nœuds (validateurs) ; un nœud devient le proposant pour initier la confirmation du bloc tandis que les autres nœuds valident le bloc. Si plus d’un tiers des nœuds du pool se comportent de manière incorrecte, le bloc ne sera pas inséré.
L’avenir de la tolérance aux pannes byzantine est prometteur.
Tant que les crypto-monnaies et la technologie blockchain continueront d’exister, la tolérance aux pannes byzantine et les autres mécanismes de consensus le feront aussi. Cependant, ces mécanismes continueront probablement à évoluer.
Initialement, Ethereum a intégré la BFT en utilisant PoW, mais Ethereum est passé de PoW à PoS et a mis à jour son algorithme BFT. De même, vous continuerez à voir des systèmes plus nouveaux et meilleurs avec le temps. N’oubliez pas que l’espace cryptographique est en constante évolution.
