blockchain

Alternative à la blockchain: le Tangle de IOTA

On connaît de nombreux exemples de consensus décentralisé: Bitcoin, Ethereum, LiteCoin, Zcash, Monero, etc. Toutes ces instances reposent sur une structure qu’on appelle la blockchain.

Mais si on peut se passer de la Proof Of Work, peut-on se passer de la blockchain? Peut-on concevoir des systèmes décentralisés avec d’autres structures? À quoi ressemblent ces alternatives?

On va creuser une version alternative de la Blockchain, le Tangle (enchevêtrement). C’est une technologie décrite dans le papier de IOTA.

On s’y intéresse pour deux raisons:

Les Bases

Cet article va être une introduction au Tangle, je vous invite à consulter le whitepaper de IOTA si vous voulez allez plus loin. Je précise aussi que j’étudie ces systèmes pour leurs propositions technologiques. Je ne m’intéresse pas à la spéculation.

Comme d’habitude, on retrouve les 3 composants essentiels:

Pourquoi le Tangle est intéressant?

Le Bitcoin et l’Ethereum dépensent une grande quantité d’énergie pour trouver LE bloc qui fera le nouveau consensus. IOTA a une approche différente qui utilise peu d’énergie, c’est un système qui pourrait fonctionner sur de l’embarqué (IOT).

En pratique, comment ça marche?

L’ensemble des transactions du réseau est représenté sous la forme d’un graphe. Chaque transaction est un nœud, et possède un ou plusieurs “enfants”. On interdit les cycles: un nœud ne peut pas être son propre grand-père.

En Computer Science on appelle ça un

DAG en anglais.

Pour ajouter une nouvelle transaction au système, je choisis deux bouts du graphe (tips). Je vérifie que tous leurs parents sont valides et je transmets ce nouveau bloc au réseau.

Structure de donnée: Comment le Tangle fait Consensus?

Je vous rappelle qu’on cherche du Consensus Décentralisé:
Si j’observe UN des membres du réseau, je veux différencier ce qui est VRAI (consensus) de ce qui n’est PAS CERTAIN ou FAUX.

Par exemple: “est-ce que mon client a bien effectué le paiement?” ou même “est-ce que mon clic sur like a été enregistré”.

Dans le cas de la blockchain, on regarde UN bloc:
Je prends le dernier bloc. Si ce bloc fait consensus, je sais que tous les précédents font aussi consensus. Par sécurité on regarde 6 blocs en arrière, car un fork pourrait détruire les blocs les plus récents.

Dans le cas du Tangle, les branchements font partie du protocole:
à chaque transaction concurrente (en même temps), j’ai deux blocs concurrents. Deux nouveaux “bouts” sont ajoutés à mon graphe.

Pour trouver le consensus, on va remonter à partir de ces extrémités. On cherche leurs ancêtres communs. Chaque nouveau bloc va valider implicitement ces ancêtres communs donc ils font consensus parmi les membres du réseau (en noir dessous):

Dans le papier IOTA, les nouveaux nœuds qui ne sont pas encore dans le consensus sont dits en “phase d’adaptation”

Tangle autorise les opérations concurrentes! On peut ajouter deux blocs en même temps ce qui rend le Tangle plus flexible et moins coûteux.

Faire avancer le consensus: comment choisir les Tips?

Une fois qu’on a la capacité de représenter et d’échanger les données du consensus, il nous faut un moyen de faire avancer ce consensus.

Lorsqu’un membre du réseau ajoute un nœud, il valide les deux parents de ce nœud. Si un membre hostile tente un “Double Spending” comme:

Les autres membres du réseau ne vont jamais créer de transaction qui valide ces deux blocs à la fois. À terme, une de ces opérations va faire partie du consensus et l’autre sera oubliée.

Notre problème ici est d’encourager les membres du réseau à choisir les “bons tips”. On veut que le système avance de manière efficace toujours malgré la présence de membres hostile.

Dans le papier de IOTA, les solutions décrites semblent assez fragiles, car elles reposent sur une liste de faiblesses - solutions. La solution générale est donc un mélange relativement complexe comparé à une méthode comme la Proof Of Work.

Je ne vais pas décrire cette méthode, mais plutôt la différence importante avec les “blockchain classiques”:

Le design de IOTA cible un très grand nombre de participants avec une faible puissance de calcul. Les solutions proposées ne reposent donc pas sur des blocs très lourds et très solides. Comme calculer des millions de hash pour trouver LE bloc ultime. Ici, on utilise des méthodes “d’essaims”: chaque membre est faible et produit des blocs légers et fragiles. C’est l’enchevêtrement qui est résistant.

Finalement

On peut faire du consensus décentralisé sans forcément utiliser une structure de Blockchain. On a vu que le fait de relâcher une contrainte sur la Blockchain (un seul parent) nous permet de débloquer de nouvelles fonctionnalités. Le Tangle est asynchrone et moins coûteux, mais implique de nouveaux problèmes à résoudre.

C’est pour cette raison qu’on creuse les fondements de la Blockchain: car il y a beaucoup d’intérêt à comprendre les principes fondamentaux plutôt qu’une ou deux implémentations à la mode! Ne serait-ce que pour appréhender leurs évolutions!

Photo par Julian Mora.

Published in: blockchain tangle structures

comments powered by Disqus