Depuis la crĂ©ation du Bitcoin en 2008, en tant que systĂšme de paiement Ă©lectronique de pair Ă pair, de nombreuses autres crypto-monnaies ont Ă©tĂ© crĂ©Ă©es, chacune avec un mĂ©canisme de fonctionnement particulier. Mais une chose que presque toutes les crypto-monnaies ont en commun, câest la blockchain, Ă©lĂ©ment central de leur architecture.
Ă quelques exceptions prĂšs, les blockchains sont conçues intentionnellement comme dĂ©centralisĂ©es et fonctionnent comme un registre numĂ©rique gĂ©rĂ© par un rĂ©seau distribuĂ© de noeuds d'ordinateurs. Dans ce cadre, la technologie blockchain a permis la crĂ©ation de systĂšmes Ă©conomiques exempts du besoin de confiance, dans lesquels des transactions financiĂšres transparentes et fiables pouvaient ĂȘtre exĂ©cutĂ©es sans recourir Ă des intermĂ©diaires. Les crypto-monnaies sont en train dâĂȘtre adoptĂ©es comme une alternative viable aux systĂšmes bancaires et de paiement traditionnels, qui dĂ©pendent fortement de la confiance.
Tout comme la plupart des systĂšmes informatiques distribuĂ©s, les participants d'un rĂ©seau de crypto-monnaie doivent trĂšs rĂ©guliĂšrement se mettre d'accord sur l'Ă©tat de la blockchain, c'est ce que lâon appelle la rĂ©alisation d'un consensus. Cependant, parvenir Ă un consensus sur des rĂ©seaux distribuĂ©s, de maniĂšre sĂ©curisĂ©e et fiable, est loin dâĂȘtre une tĂąche facile.
Alors, comment un rĂ©seau distribuĂ© de nĆuds dâordinateur peut-il sâaccorder sur une dĂ©cision si certains des nĆuds risquent dâĂ©chouer ou dâagir de maniĂšre malhonnĂȘte? Câest la question fondamentale du problĂšme dit des gĂ©nĂ©raux byzantins, qui a donnĂ© naissance au concept de tolĂ©rance aux pannes byzantines.
Quel est le problÚme des généraux byzantins?
Le dilemme suppose que chaque gĂ©nĂ©ral a sa propre armĂ©e et que chaque groupe armĂ© est situĂ© Ă diffĂ©rents endroits autour dâune ville quâils dĂ©sirent assiĂ©ger. Les gĂ©nĂ©raux doivent se mettre dâaccord pour attaquer ou battre en retraite. Peu importe quâils attaquent ou quâils battent en retraite, il faut que tous les gĂ©nĂ©raux parviennent Ă un consensus, câest-Ă -dire Ă sâentendre sur une dĂ©cision commune afin de lâexĂ©cuter en coordination.
Par conséquent, nous pouvons considérer les objectifs suivants:
Chaque général doit prendre une décision: attaque ou retraite (oui ou non);
Une fois la dĂ©cision prise, elle ne peut plus ĂȘtre modifiĂ©e.
Tous les gĂ©nĂ©raux doivent se mettre d'accord sur la mĂȘme dĂ©cision et l'exĂ©cuter de maniĂšre synchronisĂ©e.
Les problĂšmes de communication susmentionnĂ©s sont liĂ©s au fait quâun gĂ©nĂ©ral ne peut communiquer avec un autre que par lâintermĂ©diaire de messages qui sont transmis par un Ă©missaire. Par consĂ©quent, le challenge central du problĂšme des gĂ©nĂ©raux byzantins est le suivant : les messages peuvent ĂȘtre retardĂ©s, dĂ©truits ou perdus.
En outre, mĂȘme si un message est dĂ©livrĂ© avec succĂšs, un ou plusieurs gĂ©nĂ©raux peuvent choisir (pour une raison quelconque) dâagir de maniĂšre malveillante et dâenvoyer un message frauduleux afin dâembrouiller les autres gĂ©nĂ©raux, entraĂźnant ainsi un Ă©chec total.
Si nous appliquons le dilemme au contexte des blockchains, chaque gĂ©nĂ©ral reprĂ©sente un nĆud de rĂ©seau et les nĆuds doivent parvenir Ă un consensus sur l'Ă©tat actuel du systĂšme. En d'autres termes, la majoritĂ© des participants d'un rĂ©seau distribuĂ© doivent se mettre d'accord et exĂ©cuter la mĂȘme action afin d'Ă©viter un Ă©chec complet.
Par consĂ©quent, la seule façon de parvenir Ă un consensus dans ces types de systĂšmes distribuĂ©s consiste Ă avoir au moins â de nĆuds de rĂ©seau fiables et honnĂȘtes. Cela signifie que si la majoritĂ© du rĂ©seau dĂ©cide dâagir de maniĂšre malicieuse, le systĂšme est sujet aux dĂ©faillances et aux attaques (comme lâattaque Ă 51%).
La Tolérance aux pannes byzantines (BFT)
En quelques mots, la tolĂ©rance aux pannes byzantines (BFT) caractĂ©rise un systĂšme capable de rĂ©sister Ă la lâĂ©ventail de pannes dĂ©rivĂ©es du ProblĂšme des gĂ©nĂ©raux byzantins. Cela signifie qu'un systĂšme BFT est capable de continuer Ă fonctionner mĂȘme si certains des nĆuds Ă©chouent ou agissent de maniĂšre malveillante.
Il existe plus dâune solution possible au problĂšme des gĂ©nĂ©raux byzantins et, par consĂ©quent, de multiples façons de construire un systĂšme BFT. De mĂȘme, il existe diffĂ©rentes approches permettant Ă une blockchain d'atteindre la tolĂ©rance de panne byzantine, ce qui nous conduit aux algorithmes de consensus.
Les algorithmes de consensus de Blockchain
Nous pouvons définir un algorithme de consensus comme un mécanisme par lequel un réseau blockchain parvient à un consensus. Les implémentations les plus courantes sont la preuve de travail et la preuve de participation. Mais prenons le cas Bitcoin comme exemple.
Alors que le protocole Bitcoin prescrit les rÚgles principales du systÚme, c'est l'algorithme de consensus PoW qui définit comment ces rÚgles seront suivies afin de parvenir à un consensus (par exemple, lors de la vérification et de la validation des transactions).
Bien que le concept de preuve de travail soit plus ancien que les crypto-monnaies, Satoshi Nakamoto en a dĂ©veloppĂ© une version modifiĂ©e, en tant quâalgorithme et systĂšme BFT ayant permis la crĂ©ation du Bitcoin.
Notez que l'algorithme PoW n'est pas tolĂ©rant Ă 100% aux fautes byzantines, mais en raison du processus de minage coĂ»teux et des techniques cryptographiques sous-jacentes, PoW s'est avĂ©rĂ© ĂȘtre l'une des implĂ©mentations les plus sĂ©curisĂ©es et les plus fiables pour les rĂ©seaux blockchain. En ce sens, l'algorithme de consensus Proof of Work, conçu par Satoshi Nakamoto, est considĂ©rĂ© par beaucoup comme l'une des solutions les plus pertinentes aux fautes byzantines.
Conclusion
Le problÚme des généraux byzantins est un dilemme intrigant qui a finalement donné naissance aux systÚmes BFT, qui sont largement utilisés dans divers scénarios. Au-delà du secteur de la blockchain, quelques cas d'utilisation des systÚmes BFT incluent les secteurs de l'aviation, de l'espace et de l'énergie nucléaire.
Dans le contexte de la crypto-monnaie, une communication réseau efficace associée à un bon mécanisme de consensus sont essentiels pour tout écosystÚme blockchain. La sécurisation de ces systÚmes est un effort continu et les algorithmes de consensus existants doivent encore surmonter quelques limitations (telles que la scalabilité). Néanmoins, PoW et PoS sont des approches trÚs intéressantes en tant que systÚmes BFT, et leurs applications potentielles appellent certainement à une innovation généralisée.