Tendermint expliqué
Accueil
Articles
Tendermint expliqué

Tendermint expliqué

Intermédiaire
Publié le Jan 8, 2021Mis à jour le Sep 1, 2022
7m

Résumé

Les blockchains que vous connaissez et aimez ont une structure assez rigide. En tant que développeur, cela vous donne deux options : développer des applications dans un environnement restrictif ou forker le code et créer votre propre chaßne. Il n'est toutefois pas si facile de créer sa propre chaßne, car vous devez également lancer un réseau et déterminer quel mécanisme de consensus utiliser.

Tendermint est un logiciel open-source de lancement de blockchains qui permet de développer des applications dans n'importe quel langage. Mieux encore, elles peuvent communiquer avec d'autres blockchains.


Introduction

La création d'un réseau de cryptomonnaie ou de blockchain demande beaucoup plus d'efforts que la simple initialisation d'une base de données. Elle nécessite un équilibre délicat entre les incitations et les compromis entre sécurité, décentralisation et évolutivité.
Sans surprise, une série d'approches différentes ont été explorées par les équipes qui cherchent à construire les écosystÚmes blockchain les plus solides. Dans cet article, nous allons examiner une de ces approches : Tendermint.


Ce qu'il faut savoir sur Tendermint

Une grande partie de Tendermint vous semblera familier si vous connaissez un peu les blockchains. Récapitulons quelques concepts clés avant d'approfondir le sujet.


Comprendre l'architecture d'une blockchain

Tendermint est une sorte de groupe de blockchains. Bitcoin et Ethereum le sont aussi. N'oubliez pas qu'il ne s'agit pas seulement de la base de donnĂ©es blockchain elle-mĂȘme, mais Ă©galement du rĂ©seau pair Ă  pair des nƓuds, de la façon dont ils interagissent et des choses intĂ©ressantes que vous pouvez faire avec les transactions et les smart contracts. L'objectif ici est que chacun soit d'accord sur un Ă©tat (comme un instantanĂ© de la base de donnĂ©es), mĂȘme s'il ne fait confiance Ă  personne d'autre.
Pour la plupart, les principales blockchains actuelles sont dotées des caractéristiques secrÚtes qui rend cela possible. Cependant, elles reposent souvent sur une architecture monolithique: un concept d'ingénierie logicielle qui signifie que les composants sont interconnectés et interdépendants. Vous ne pouviez pas simplement en prendre une partie et la brancher sur quelque chose d'autre.
L'architecture monolithique n'est pas idéale si vous voulez de la flexibilité. Dans le modÚle opposé (avec une architecture modulaire), vous pouvez modifier des composants individuels sans vous soucier de tout casser. Avec une structure monolithique, vous devez vous assurer que chaque composant reste compatible lorsque vous mettez à niveau un seul des composants.

Maintenant que nous comprenons cette distinction, nous pouvons aborder plus en profondeur le protocole Tendermint.


Tolérance aux pannes byzantines (BFT)

Vous savez peut-ĂȘtre que la grande innovation du Bitcoin est qu'il a rĂ©solu ce que l'on appelle le ProblĂšme des gĂ©nĂ©raux byzantins. Nous n'entrerons pas dans les dĂ©tails du problĂšme (consultez notre article sur la tolĂ©rance aux pannes byzantines si vous ĂȘtes intĂ©ressĂ©). Il vous suffit de savoir qu'il dĂ©taille un scĂ©nario dans lequel les participants doivent communiquer dans un cadre distribuĂ©.
Ces participants ne savent pas si les autres mentent ou si les messages envoyĂ©s entre eux sont modifiĂ©s. On dit d'un systĂšme qu'il dispose d'une tolĂ©rance aux pannes byzantines (BFT) si les participants peuvent se mettre d'accord sur un ensemble de faits, mĂȘme en prĂ©sence de ces problĂšmes.
Bien évidemment, dans un cadre décentralisé, il est primordial d'obtenir ce résultat correctement. Les cryptomonnaies qui ne sont pas tolérantes aux pannes byzantines ne fonctionnent pas vraiment. Il faudrait une sorte de coordination centralisée, ce qui va à l'encontre du but recherché. Comme beaucoup de devises numériques, le Bitcoin contourne ce problÚme en utilisant un algorithme de consensus de preuve de travail (PoW).


Les trois couches d'une blockchain

Nous connaissons donc la diffĂ©rence entre architecture monolithique et architecture modulaire, et nous savons que les rĂ©seaux de cryptomonnaies dĂ©centralisĂ©s doivent ĂȘtre tolĂ©rants aux pannes byzantines. Mentionnons les couches que nous voyons gĂ©nĂ©ralement dans une blockchain : la couche applicative, la couche consensus et la couche rĂ©seau.
Les couches de consensus et de rĂ©seau sont celles oĂč les nƓuds du rĂ©seau se parlent et tentent de se mettre d'accord sur un ensemble de faits. La couche applicative est l'endroit oĂč vous pouvez faire vous-mĂȘme des choses : pensez aux applications dĂ©centralisĂ©es et aux smart contracts sur Ethereum ou aux transactions personnalisĂ©es de Bitcoin.



Tendermint Core

Tout d'abord, clarifions rapidement la terminologie. Nous utiliserons les termes « Tendermint » et « Tendermint Core » de maniÚre interchangeable, car nous nous concentrons uniquement sur la technologie.

Cependant, Tendermint est le nom de la société (fondée par le développeur qui a rédigé le livre blanc original, Jae Kwon), tandis que Tendermint Core est le logiciel sur lequel la société travaille. Plus précisément, le logiciel possÚde deux composantes principales : son moteur de consensus principal (Tendermint Core) et son interface applicative (ABCI).

Tendermint Core est un systĂšme qui permet la tolĂ©rance aux pannes. En substance, il s'agit d'un grand ordinateur distribuĂ© qui montre simultanĂ©ment le mĂȘme Ă©tat Ă  chacun. Tant qu'au moins deux tiers des participants sont honnĂȘtes, tout fonctionne sans problĂšme. Mais c'est le cas de presque toutes les blockchains, non ? Qu'est-ce qui le rend si spĂ©cial ?

Tout d'abord, le mĂ©canisme de consensus utilisĂ© est la preuve d'enjeu (PoS). Pour chaque pĂ©riode, un nƓud alĂ©atoire provenant d'un ensemble de validateurs est sĂ©lectionnĂ©. Ce nƓud doit ensuite proposer le prochain bloc (dans ce qu'on appelle un systĂšme round-robin). Si les autres validateurs sont satisfaits, le nouveau bloc est ajoutĂ© et la chaĂźne est mise Ă  jour. La finalitĂ© est instantanĂ©e, contrairement au Bitcoin ou Ă  Ethereum, il n'est pas nĂ©cessaire d'attendre des confirmations pour vous assurer que votre transaction est valide.

Mais attendez, ce n'est pas fini. L'architecture de Tendermint Core est modulaire, la couche applicative étant séparée des couches consensus et réseau. En français, cela signifie que vous pouvez brancher votre propre couche applicative aux autres couches. Il n'est pas nécessaire de vous inquiéter des incitations ou des algorithmes de consensus.

Peut-ĂȘtre que cela n'est pas trop excitant pour l'utilisateur final. Mais pour les dĂ©veloppeurs, la possibilitĂ© de tirer parti d'un cadre existant signifie qu'ils peuvent se lancer directement dans la crĂ©ation d'applications sans avoir Ă  mettre en place tout un rĂ©seau. Les donnĂ©es de la blockchain peuvent ĂȘtre acheminĂ©es vers la couche intĂ©grĂ©e, ce qui permet aux dĂ©veloppeurs d'Ă©crire des logiciels dans n'importe quel langage.

La magie se produit avec ce qu'on appelle l'interface d'application blockchain, ou simplement, ABCI. Pensez-y comme aux broches GPIO que vous avez sur un Raspberry Pi. Vous pouvez raccorder tous types de composants tiers Ă  ces Ă©lĂ©ments, des DEL aux systĂšmes d'arrosage Ă©laborĂ©s pour vos plantes. De la mĂȘme maniĂšre, l'ABCI dĂ©finit la frontiĂšre entre la blockchain et les applications qui s'y trouvent.


Qu'est-ce qui est si génial dans Tendermint Core ?

La séparation de l'interface de l'application et du mécanisme de consensus permet une plus grande flexibilité pour une gamme d'applications décentralisées, dans le but d'intégrer n'importe quel langage de programmation dans leur logique commerciale.

Pour un exemple concret de ce qu'il est possible de faire, il suffit de consulter le site Ethermint : un projet qui a pris la base de code d'Ethereum, supprimé le mécanisme de preuve de travail et ajouté la machine virtuelle Ethereum sur Tendermint.
Cela a permit de réaliser des choses intéressantes. Tout d'abord, les développeurs Ethereum pourraient facilement transférer leurs smart contracts vers le nouveau moteur, ou écrire de nouveaux contrats dans le langage Solidity. En plus de fournir les fonctionnalités Ethereum, Ethermint agit comme un Ethereum de preuve d'enjeu, nous donnant un aperçu de ce à quoi pourrait ressembler une implémentation de Casper dans Ethereum 2.0.


Interopérabilité blockchain

La promesse d'un « Internet de blockchains » est ce qui attire beaucoup de personnes vers les protocoles basés sur Tendermint. L'interopérabilité est un ajout de longue date à l'espace des cryptomonnaies, ce qui signifie que des centaines de blockchains individuelles deviendraient compatibles.
À l'heure actuelle, beaucoup de travail a Ă©tĂ© consacrĂ© au SDK Cosmos, un framework open source qui permet Ă  quiconque de crĂ©er une blockchain publique ou privĂ©e spĂ©cifique Ă  une application. Ces blockchains peuvent ensuite ĂȘtre connectĂ©es au rĂ©seau Cosmos dans son ensemble, via ce qu'on appelle le Cosmos Hub, oĂč elles peuvent communiquer avec d'autres personnes.
De nombreux projets populaires ont été créés avec le SDK Cosmos, tels que Binance Smart Chain (BSC), KAVA, Band Protocol, Terra et IRISnet.


Pour conclure

En tant que moteur blockchain, Tendermint a attiré l'attention de nombreux acteurs de la crypto-sphÚre, des développeurs aux utilisateurs finaux.

Si le logiciel continue de gagner en traction, il pourrait trÚs bien servir d'épine dorsale pour un Internet de blockchains. Comme nous l'avons vu, quelques projets ont déjà été lancés avec le SDK Cosmos pour concrétiser cette vision.


Partager des publications
S’inscrire pour un compte.
Mettez vos connaissances en pratique en ouvrant un compte Binance dùs aujourd’hui.