Tout sur le Bitcoin et les Altcoins
La plateforme NEO se positionne clairement comme la Blockchain de la "Smart Economy". Au coeur de la Blockchain made in China, on retrouve un algorithme de consensus bien spécifique appelé "Delegated Byzantine Fault Tolerance" également connu sous sa forme abrégée dBFT.
Dans cet article, nous vous proposons de découvrir en détails comment fonctionne le mécanisme "Delegated Byzantine Fault Tolerance". Une bonne occasion de mettre en lumière une des principales forces du concurrent numéro 1 d’Ethereum dans le domaine des Smart Contracts et des applications décentralisées.
Expliquer le fonctionnement du mécanisme dBFT passe indubitablement par une présentation du problème des Généraux Byzantins. Ce problème, bien connu du monde de l’informatique, est une métaphore mettant en exergue la difficulté pour assurer la fiabilité des transmissions et l’intégrité des données véhiculées par des interlocuteurs au sein d’un réseau.
Le problème des Généraux Byzantins, dont vous trouverez tous les détails dans ce document original, se produit à chaque fois que nous essayons de déterminer si l’issue d’un vote est valide ou non. Imaginez un instant 9 Généraux Byzantins ayant encerclé la ville de Rome avec leurs armées respectives. Chaque jour se pose la question pour chaque général de savoir quelle position commune adoptée : attaquer ou se retirer de manière stratégique le tout à l’unisson pour maximiser l’impact de ces décisions.
La décision est prise quotidiennement suite à un vote des Généraux. Le choix d’attaquer ou de se retirer est validé lorsqu’une ou l’autre des options obtient plus de 50% des votes. Le problème vient du fait que les Généraux commandent leurs armées dans des zones géographiques séparées autour de la ville et qu’ils doivent donc utiliser des courriers pour échanger leurs votes entre eux.
Un tel système présente des défauts indéniables. En premier lieu, certains Généraux Byzantins pourraient être corrompus par des Romains afin qu’ils deviennent des traitres et trahissent l’empire Byzantin. Ensuite, un Général pourrait effectuer un mauvais choix pour une raison X ou Y. Troisièmement, les personnes en charge de transporter les courriers de Généraux en Généraux pourraient également être corrompues par des Romains désireux de changer le résultat du vote et donc de connaître à l’avance le choix stratégique réalisé. Enfin, les courriers pourraient ne pas être transmis de manière correcte, même involontairement, changeant également le résultat d’un vote serré.
L’épineux problème auquel doivent faire face les Généraux Byzantins est le même auquel les systèmes informatiques distribués doivent faire face. Comment atteindre un consensus sur un réseau distribué où certains noeuds peuvent être défaillants ou avoir des volontés de corruption ?
Dans le but d’adresser cette problématique, la Blockchain Bitcoin s’appuie sur le mécanisme de Proof of Work qui est au coeur du minage des Bitcoins. Si ce mécanisme de Preuve de Travail demeure très populaire et présent dans de nombreuses Blockchains, il s’avère difficilement scalable ce qui limite donc grandement le nombre de transactions pouvant être validées par secondes. Certaines Blockchains ont donc choisi de migrer ou de démarrer en s’appuyant sur le mécanisme de la Proof of Stake ou Preuve d’Enjeu. C’est ainsi qu’Ethereum, le concurrent le plus sérieux du Bitcoin, est en train de migrer vers ce dernier mécanisme notamment.
Les différents mécanismes de consensus implémentés jusqu’alors au sein des Blockchains présentent certains inconvénients bien que la Preuve d’Enjeu semble se détacher face à la Preuve de Travail. Les créateurs de NEO ont donc choisi de partir sur une approche différente en implémentant le mécanisme "Delegated Byzantine Fault Tolerance" pour résoudre le problème de consensus auquel toutes les Blockchains doivent faire face afin de garantir la validité et l’intégrité des données qu’elles contiennent.
Bien entendu, le choix des fondateurs de NEO n’a rien d’innocent puisqu’il doit permettre de bien meilleures possibilités de scalabilité et de performance pour la Blockchain en comparaison de ce que peut offrir la concurrence. Ce problème de scalabilité étant un des enjeux majeurs auxquels de nombreuses Blockchains devront faire face dans le futur pour atteindre une adoption en masse. Crypto monnaie la plus emblématique et la plus puissante, le Bitcoin est impacté en premier lieu par ces problèmes de scalabilité. L’impossibilité à trouver un consensus au sein de la communauté sur les solutions à mettre en place a notamment conduit à la création du Bitcoin Cash, que certains voient comme le Bitcoin du futur d’ailleurs.
Pour expliquer comment fonctionne dBFT, nous allons une fois encore recourir à une analogie. Considérons une communauté répondant au nom de NEO au sein de laquelle chaque membre possèderait un droit de vote lui permettant de désigner ses leaders, également appelés délégués. Ces derniers étant en charge d’édicter et de voter les règles de la communauté. Lorsque certains membres de la communauté sont en désaccord avec la manière de voter les règles par certains délégués, ils peuvent voter pour des délégués différents.
Chaque membre peut communiquer avec les délégués pour qu’ils sachent ce qui contribue à leur bonheur. Les délégués doivent donc rester attentifs aux demandes des membres et publier toutes ces informations de manière publique dans l’équivalent d’un grand livre public. Les différentes demandes et exigences des membres sont donc ajoutées au fur et à mesure au sein de ce grand livre public accessible par tous.
Lorsqu’une nouvelle règle doit être votée, un Speaker est choisi de manière aléatoire parmi les délégués. Son rôle est donc de proposer la règle répondant aux demandes des membres. Lors de la proposition, le Speaker a également calculé de quelle manière cette nouvelle règle affectera le degré de bonheur de tous les membres. Ce degré de bonheur servant avant tout à quantifier le niveau de bonheur des membres. Les délégués reçoivent ensuite la proposition de règle de la part du Speaker et calculent si le degré de bonheur associé à cette nouvelle règle est cohérent avec leur propre calcul.
Les délégués échangent entre eux concernant la valeur du bonheur rapportée par le Speaker et si 66% des délégués sont d’accord sur la valeur, alors un consensus est trouvé ce qui implique que la règle est désormais considérée comme valide et acceptée par tous.
Le consensus est donc obtenu lorsque 66% des délégués sont d’accord. Dans le cas où l’on n’arrive pas à atteindre ce score de 66%, un nouveau Speaker est choisi aléatoirement et le processus va redémarrer. Il se répète donc jusqu’à tant qu’un consensus soit trouvé au sein des délégués. Le mécanisme dBFT est conçu afin de protéger le système distribué d’éventuels délégués malveillants ou de leaders dysfonctionnels qui transmettraient une mauvaise valeur sur le degré de bonheur sans que cela soit forcément intentionnel.
En transposant cette analogie à la Blockchain NEO, on obtient en premier lieu que chaque possesseur de tokens NEO est un membre de la communauté. La majorité des porteurs de jetons NEO sont des noeuds ordinaires du réseau distribué. De ce fait, ils ne participent pas à la validation des blocs, qui correspond au vote des règles dans notre analogie. Les délégués sont quant à eux des noeuds spéciaux appelés "Bookkeeping Nodes" dans le système NEO. Les "Bookkeepers" ont en charge de vérifier chaque bloc écrit sur la Blockchain.
Pour devenir un "Bookkeeping Node", un porteur de jetons NEO doit répondre à certaines exigences : il doit posséder un équipement spécial, des connexions internets dédiées, et avoir en sa possession un certain montant de jetons GAS, qui représentent les dividendes versés pour la possession de tokens NEO. Les demandes des membres de la communauté correspondent ensuite aux transactions réalisées sur le réseau par les possesseurs de tokens NEO. Quant à la règle proposée, il s’agit du bloc en cours de validation au sein de la Blockchain NEO alors que le degré de bonheur correspond quant à lui au Hash du bloc courant.
Parmi les failles potentielles du mécanisme dBFT, on peut considérer qu’un Speaker malhonnête ou dysfonctionnel en est une. Voyons donc comment le mécanisme permet de lutter contre ce problème potentiel. On considère un Speaker, choisi aléatoirement parmi les délégués. Ce Speaker envoie un message malicieux (la règle B) à 2/3 des délégués et un message valide (la Règle A) au dernier délégué.
Ce cas de figure est couvert correctement par dBFT. En effet, le délégué au milieu du schéma et celui de droite ne calculeront pas le même degré de bonheur que celui transmis par le Speaker. Ils ne pourront donc pas valider la règle du Speaker ce qui va de facto entraîner 2 rejets de la règle. Le délégué de gauche, qui a reçu la règle exacte, confirmera la valeur du degré de bonheur transmise par le Speaker ce qui donnera 1 personne validant la règle. Au final, la proposition de règle sera rejetée puisqu’elle n’aura pas atteint 66% de votes pour (1 seul dans le cas présent). Un nouveau Speaker sera alors choisi au hasard et le processus de validation pourra redémarrer.
Maintenant, nous allons voir comment se comporte le mécanisme dBFT dans le cas où le Speaker est honnête et fonctionnel mais où un des délégués a un mauvais comportement (sciemment ou pas).
Ici, le Speaker envoie une règle A aux 3 délégués du réseau. Les délégués honnêtes, à gauche et au milieu, sont capables de voter pour la règle A et on va alors atteindre un consensus avec 66% des votes. Les délégués peuvent ainsi déterminer si le Speaker a menti au délégué de droite ou si ce dernier a été malhonnête en transférant le message sur la règle à valider aux délégués du centre et de gauche.
Bien que cela ne soit pas encore clairement établi, ce type d’informations devrait être mis à disposition des membres de la communauté afin de les guider pour leurs choix futurs de délégués. En effet, on pourrait alors savoir quels sont les délégués en qui on peut avoir le plus confiance et donc quels sont les délégués qu’il faudrait redésigner à l’avenir au sein de la communauté.
Tout en garantissant la validité et l’intégrité de la Blockchain NEO, le mécanisme "Delegated Byzantine Fault Tolerance" permet au réseau d’être ultra performant avec 1000 transactions validables par secondes. Des évolutions futures sont d’ores et déjà prévues afin d’atteindre les 10000 transactions à la seconde ! De quoi permettre à NEO d’offrir un haut niveau de scalabilité et de rendre possible une adoption en masse auprès du grand public.
Suite à la découverte du fonctionnement de dBFT, vous comprenez sans doute mieux pourquoi NEO s’impose comme un concurrent de taille face à Ethereum pour les années à venir dans le domaine des contrats intelligents et des applications décentralisées. Pensez-vous comme nous que le potentiel technologique supérieur de NEO lui permettra de rattraper Ethereum à moyen terme ? On attend vos réactions en commentaires.