En 2014, Jae Kwon est le premier à publier un livre blanc concernant l’implémentation de la solution Byzantine Fault Tolerance (BFT) à l’intérieur de la preuve de stockage. Il crée la société Tendermint Inc (All in Bits Inc) basée en Californie.
En 2015, il est rejoint par Ethan Buchman et fonde ensemble le Tendermint BFT qui est le consensus du protocole de la preuve de stockage qui sera utilisé par le réseau Cosmos.
Lors de l’année 2016, ils publient le livre blanc intitulé « Cosmos : A Network of Distribued Ledgers ». Ils fondent en parallèle The Interchain Foundation (ICF) qui est un organisme à but non lucratif basé en Suisse.
The Interchain Foundation lève 16,8 Millions de dollars en 2017 pour accompagner le développement du réseau Cosmos. Tendermint Inc. travaille en parallèle sur l’architecture du réseau et lance le premier prototype Cosmos SDK.
Le réseau Cosmos réalise plus de 20 tests publics au cours de l’année 2018, en mars 2019 c’est la consécration, le réseau Cosmos est lancé officiellement. Binance, le plus grand échange de cryptomonnaies au monde annonce lancer la Binance Chain qui repose sur Tendermint BFT et Cosmos SDK.
En 2020, l’équipe Recherche et Développement de l’ICF devient une entreprise canadienne indépendante avec à sa tête Ethan Buchman. Elle a pour mission de continuer à apporter la vérifiabilité aux systèmes et organisations distribués.
Les éléments-clés
Byzantine Fault Tolerance (BFT) qui en français signifie la tolérance aux fautes byzantines, est un concept qui permet la duplication de machines à états, celui-ci vise à assurer le bon fonctionnement et la fiabilité des services. Dans le monde des cryptomonnaies, ce système permet de déceler de mauvaises informations à l’intérieur des nœuds d’une blockchain.
Le titre du livre blanc de Cosmos s’intitule « A Network of Distribued Ledgers », ce qui signifie un réseau de grands livres distribués en français. On compare souvent une blockchain à un grand livre, le réseau Cosmos lui, rend possible la communication entre plusieurs blockchain en même temps.
Introduction
Avant la création du réseau Cosmos, les blockchains étaient cloisonnées et incapables de communiquer entre elles. Difficile à construire elles ne pouvaient gérer qu’un petit nombre de transactions par seconde. Cosmos résout certains des problèmes les plus difficiles de la blockchain en matière d’évolutivité, d’utilisabilité et d’interopérabilité. Cosmos se définit comme l’Internet des blockchains.
L’idée de l’équipe fondatrice est de créer un réseau cryptographique capable d’interagir avec plusieurs autres réseaux cryptographiques.
Après la présentation de l’historique de ce projet, nous allons détailler ce que représente le réseau Cosmos, et sa cryptomonnaie appelée Atom.
Vous pouvez retrouver notre article de présentation de la «Blockchain» .
Une liste de liens accessibles en bas de page est disponible afin de vous diriger vers nos précédents articles qui traitent des sujets abordés dans cet article, comme par exemple l’explication de l’écosystème Ethereum ou des contrats intelligents.
Qu’est-ce que la cryptomonnaie Atom ?
Ce jeton est utilisé pour le consensus de la preuve de stockage. Les 100 comptes qui vont détenir le plus de jetons seront les validateurs de ce réseau.
Le nombre de jetons en circulation est de 260’906’513 pour être exact, à l’heure actuelle nous sommes à 209 millions de jetons émis. 80% des jetons ont été distribués aux investisseurs, tandis que les 20% restants ont été distribués entre les deux sociétés Tendermint Inc (All in Bits) et The Interchain Foundation.
Le jeton Atom est le gardien du réseau Cosmos, c’est lui qui assure la sécurité et la décentralisation via le stockage sur différents comptes.
Qu’est-ce que le réseau Cosmos ?
Après la version blockchain 1.0 créée grâce à Bitcoin et la preuve de travail, la version 2.0 avec Ethereum et les contrats intelligents, Cosmos représente la version blockchain 3.0.
L’équipe a créé un réseau open-source où l’ensemble des développeurs peuvent créer facilement une blockchain. À l’intérieur de ce réseau, l’ensemble des blockchains décentralisées pourront communiquer entre elles.
Cela est rendu possible grâce à trois outils :
- Tendermint
- SDK Cosmos
- IBC (Inter-Blockchain Communication Protocol)
Ils facilitent la création d’applications personnalisées, sécurisées, évolutives et interopérables. Tout le monde est invité à créer des outils supplémentaires, pour peut-être devenir le plus grand écosystème de développeurs. Rentrons plus en détail dans le mécanisme technique de ces trois outils.
Comment fonctionne le réseau Cosmos ?
1. Tendermint
- Comme défini dans les éléments clés, la première fonction de Tendermint est la BFT (la tolérance aux pannes byzantines en français). Elle permet d’éviter aux mauvaises informations de pénétrer le réseau. 2/3 des nœuds du réseau doivent valider une information commune. Si cette information n’est pas validée par l’ensemble des nœuds alors elle sera rejetée. Si plus de 1/3 des nœuds sont malveillants alors on dit que le réseau subit une attaque.
- La seconde fonction de Tendermint est le système de consensus. Les blocs de la blockchain sont validés grâce à la preuve de stockage. Les 100 comptes qui disposent du plus grand nombre d’Atom deviennent validateur du réseau. Ils ont la possibilité s’ils le souhaitent de déléguer la validation des blocs à d’autres comptes. Mais attention, si certains validateurs tentent d’attaquer le réseau que ce soit le validateur ou celui à qui a été délégué la tâche, ils perdront 5% de leur portefeuille. Les validateurs vont percevoir une rémunération à hauteur de 7% à 20% annuel en fonction du nombre de jetons qu’ils disposent ainsi que des revenus émanent des frais d’utilisation du réseau.
La première solution via les pannes byzantines permet de sécuriser le réseau. La seconde, le système de consensus par preuve de stockage permet la validation des blocs de la blockchain de manière décentralisée. Le réseau met à disposition cette solution Tendermint à tous les développeurs du réseau Cosmos.
Les développeurs pourront utiliser tous les langages de programmation pour développer leur propre protocole. Le moteur Tendermint BFT est connecté via un protocole nommé Application Blockchain Interface (ABCI).
Mais ce n’est pas tout, voici ce qui fait de Tendermint BFT un moteur à la pointe de la technologie Blockchain :
- Haute performance, Tendermint BFT peut gérer des milliers de transactions par seconde
- La possibilité pour les développeurs d’avoir une Blockchain privée ou publique
Puisque c’est lors de la création de la couche d’application qu’il faut définir le mode de consensus d’une nouvelle blockchain, les développeurs peuvent choisir entre la preuve de stockage (publique) ou alors ils peuvent restreindre l’accès à certains comptes pour la validation (privée).
Plus simplement, Tendermint BFT génère un système de consensus pour le réseau Cosmos, cependant les développeurs peuvent très bien choisir un autre mode de consensus lors de la création de leur propre application.
2. Cosmos SDK et autres applications
Par-dessus Tendermint BFT, le réseau Cosmos a créé un cadre défini qui facilite la création d’applications, une sorte de boîte à outils pour tous développeurs, il s’articule grâce à deux principes fondamentaux :
- Modularité
L’objectif du réseau Cosmos via le Cosmos SDK est de proposer des modules aux développeurs qui ne souhaitent pas coder en partant de zéro. Tout le monde peut créer des modules à l’intérieur du SDK, et les implémenter à l’intérieur de sa propre blockchain. Plus l’écosystème va se développer, plus il y aura de modules disponibles pour l’ensemble des développeurs qui viendront utiliser cet écosystème.
À savoir, le premier jet de modules créés par Cosmos s’appelle le « Hub Cosmos ».
- Sécurité basée sur les capacités
Nous savons pertinemment que sur l’ensemble des nouveaux modules créés par les développeurs, certains seront malveillants ou défectueux. C’est pour ça que le SDK Cosmos a mis en place une sécurité basée sur les capacités. Ce sont des règles de connectivités qui s’appliquent ou ne s’appliquent pas. Si elles ne s’appliquent pas alors il s’agit d’un module défectueux, si celles-ci s’appliquent alors le module est valide.
Prenons un exemple pour que ce soit plus simple à comprendre :
Un objet A peut envoyer un message à B uniquement si l’objet A contient une référence à B. Un objet A ne peut détenir une référence à C que si l’objet A reçoit un message contenant une référence à C. En conséquence, un objet ne peut recevoir une réponse qu’à travers une chaîne de références préexistante. Simplement, « Seule la connectivité engendre la connectivité ».
Mention complémentaire : Ethermint est un logiciel qui transforme la machine virtuelle Ethereum (EVM) en module SDK Cosmos. EVM fait partie de la blockchain Ethereum, elle est capable de réaliser beaucoup d’instructions, ce qui lui permet d’être flexible. Les chaînes Ethermint sont de facto compatibles avec l’écosystème Cosmos.
3. IBC (Inter-Blockchain Communication Protocol)
L’IBC rend possible l’hétérogénéité et la souveraineté des blockchains, mais comment ça fonctionne ?
- Tout d’abord les couches des blockchains peuvent être différentes (application, consensus). Mais pour être compatible avec l’IBC la blockchain doit suivre quelques exigences, la principale étant que la couche de consensus doit avoir une finalité rapide.
- La souveraineté est aujourd’hui un des atouts majeurs que propose le réseau Cosmos. Effectivement, une blockchain souveraine dispose de ses propres validateurs de transactions pour implémenter les prochains blocs de sa blockchain. Dans le réseau Ethereum par exemple, l’ensemble des applications sont exécutées par un ensemble commun de validateur, chaque application n’a qu’une souveraineté limitée. L’IBC permet à des chaînes de blocs hétérogènes de transférer des données entre elles ce qui signifie que les applications et l’ensemble des validateurs sont interopérables.
Techniquement, l’IBC va faire le travail de suivi et de validation de l’information échangée entre deux comptes. Le compte A souhaite envoyer 10 jetons au compte B.
Voici les étapes du déroulement de la transaction :
- Il suit la transaction entre A et B et s’assure que l’échange est possible
- Les jetons reçus sur le compte B sont des répliques et les vrais jetons du compte A sont bloqués
- Une preuve de création de 10 jetons chez B est envoyée par A
- La preuve est vérifiée chez B pour validation des données fournies par A
Mais le nombre de transactions sera-t-il gérable si le nombre de blockchain augmente?
Le réseau Cosmos propose une solution afin de différencier des « Zones », des « Hubs » afin de réduire le nombre de transactions. Les Zones sont des blockchains hétérogènes comme nous les avons décrites jusqu’à présent tandis que les Hubs sont des blockchains utilisées exclusivement pour relier deux blockchains entre elles.
Si une zone A créer un lien IBC pour avoir accès à un Hub alors les zones reliées à celui-ci seront connectées entre elles, l’ensemble des zones n’auront qu’à créer un nombre limité de liens. Les Hubs vont s’assurer que les transactions ne sont pas réalisées en doublons entre les zones.
La solution des Peg-Zones
Pour entrer plus de détails, le réseau Cosmos offre la possibilité de connecter une blockchain qui utilise des algorithmes de consensus à finalité rapide en adaptant IBC. Cependant, pour des blockchains comme la preuve de travail de Bitcoin, Cosmos propose un type spécial de chaîne proxy appelée « Peg-Zone ». Son rôle est d’adapter la blockchain existante pour la rendre compatible avec IBC et lui donner une finalité rapide.
Conclusion
Le réseau Cosmos est novateur, il propose une nouvelle solution dans le monde des cryptomonnaies. L’internet des blockchains, la boîte à outils du développeur ou la blockchain 3.0 sont ses qualificatifs.
Grâce à la sécurité et le consensus de Tendermint BFT ainsi que les modules disponibles via SDK Cosmos, il facilite le développement des blockchains. Les transactions entre les blockchains sont assurées par le système IBC ainsi que Peg-Zones qui permet de connecter n’importe quelle blockchain tout en permettant de garder leur propre souveraineté.
Cosmos est un écosystème, il appelle tous les développeurs à les rejoindre afin de créer l’Internet décentralisé de demain et l’avenir du système financier mondial.
On surveillera de près l’évolution du réseau Cosmos qui n’a sûrement pas finit de nous surprendre.
Auteur de l’article :
Stan – « Chancellor on brink of second bailout for banks »
L’homme solitaire pense seul et crée des nouvelles valeurs pour la communauté