Tangle (IOTA) : la Blockchain “sans bloc ni chaîne” !

in #crypto2 years ago

IOTA Tangle illustrator

La cryptomonnaie a connue un bond fulgurant durant cette dernière décennie. La technologie qui est derrière ces cryptomonnaies nommée la Blockchain est une révolution dans le monde de l'IT, cependant comme toute bonne chose a une fin, le frein majeur auquel fait face la Blockchain est la scalabilité réduite et les frais de transaction qui ne font qu'augmenter.
Des solutions technologiques permettent d'améliorer la scalabilité de plusieurs blockchains d'ont parmi elles on retrouve le Tangle (qui est aussi un DLT qui est derrière la cryptomonnaie IOTA) , une approche qui refaçonne complètement la notion de la blockchain !
Même si on reste sur le même principe, Tangle ne contient ni bloc ni chaine contrairement a la blockchain classique. Ce qui permet de détourner la problématique de la scalabilité , car la blockchain a une architecture linéaire (liste chainée) tandis que le Tangle reprend une structure de graphe (qu'on verra dans par la suite) appelé DAG.

blockchain vs tangle

Figure 1 : structure de la blockchain classique vs DAG

Architecture de IOTA

L'architecture reprend les composantes basic :

  • Clients : wallets, applications
  • Noeuds : dispositifs connectés qui forme le réseaux (serveurs, ordi, objets connectés)
  • Tangle (DAG) : la structure de donnée ou registre

IOTA arch

Figure 2 : Architecture de l'IOTA

Dans cette article nous allons s'intéresser plus précisément a l'algorithme de consensus que Tangle repose dessus.

DAG consensus

Avant de voir les principes de ce consensus, nous allons faire un petit rappel sur le DAGou directed acyclic graph. Un DAG est constitué de :

  • Des noeuds (nommé transaction, site ou square)
  • Des liens dirigés (unidirectionnel)
  • Acyclique pour préciser qu'il n'y pas de cycle ou boucle

La notion de noeud (site) veut dire le contenue de la transaction elle même avec tous ses détails: l'émetteur, le récepteur et la somme transmise. Chaque noeud représente une validation avec un lien qui pointe vers un site validé ou en cours de validation.

Les noeuds mentionnés dans l'architecture de l'IOTA sont plutôt les machines qui font tourner le réseau Tangle et qui peuvent charger le registre partiellement ou entièrement et qui sont différents des noeuds qui forme le Tangle (DAG).

Ajout de site

Pour ajouter un site au réseau Tangle, ce dernier doit obligatoirement valider (pointer) vers deux autres sites. On appelle les sites qui sont a l'extrémité du Tangle des tips et n'ont pas des arêtes entrantes a l'instant t

Tangle avec des sommets en noir pour montrer les tips

Figure 3 : Les sites en noir sont les tips

Selection de Tip

De base, quand une Tip est crée et ajoutée au Tangle, elle peut choisir aléatoirement des squares à valider. Ces dernières peuvent êtres des anciennes transactions déjà validées et du coup ce n'est pas pertinent pour le consensus de validation, on appelle ça le Lazy tips. Ce concept ne rajoute pas de valeurs a la sécurité du Tangle et on ne peut pas aussi forcer des tips a choisir des transaction qui sont en cours de validité, cela revient a avoir une approche centralisée.
La solution est de mettre un système de poids cumulative qui va permettre aux nouvelles tips de choisir des transaction a poids faible, car celle qui ont étés déjà validé et approuvée on a un poids plus important. La formule est la suivante :

                                         Wc(s) = Wi(s) + sum(Wc(S))

Ou le poids cumulative Wc d'une transaction est la somme de son poids initiale Wi + la somme des poids cumulatives des transactions S qui valident cette dernière. On peut alors utilisé un algorithme de selection de Tip comme par exemple Markov Chain Monte Carlo (MCMC).

Quand une transaction valide atteint un certain seuil de poids cumulatif, on peut dire qu'elle est confirmée. Dans le cas échéant, elle sera considérée comme non confirmée.

Trois stades d'une transaction

Figure 4 : Les 3 états d'une transaction au sein du Tangle

Mécanisme du Consensus

Après avoir vu la procedure d'ajout d'une transaction dans le registre du Tangle, l'étape suivante est évidemment de travailler sur le consensus de validation. Vu que dans le Tangle on a un chemin dit double dépenses (ce qui pose par ailleurs un des problématiques de ce registre) on se doit de régulariser sans par ailleurs surveiller si une transaction est valide ou pas, parce que chaque noeud dans IOTA peut introduire une transaction qui représentera un vote virtuel, sauf qu'aucune information sur les votes précédents sera partagée avec les nouvelles transactions. L'idée aussi derrière ce consensus a pour objective de ne pas avoir de leader pour décider qui valide ou qui n'est pas valide. Toute transaction est considérée valide jusqu'à confirmation par le mécanisme suivant :

1- Poids d'approbation (AW) pour régulé les conflits et le double dépenses :
Ou les sommets (transactions) avec un gros poids on a un impacte sur le choix des transactions a confirmer, surtout dans le cas du double dépenses ou on choisie une seule transaction a la fois pour évité de tomber sur un solde négative si une personne essaye de faire 2 fois la même transaction sur deux sommets différents. Ces sommets a gros mana (aw) on un rôle de régulateur mais pas de superviseur.

2- FPC (Fast Probabilistic Consensus) pour l'accord :
Si on valide certaines transactions dans une partie partielle du graphe puis on la déploie sur le réseau actuel qui compose la Tangle on revérifie alors la validité des transactions, et si tous les hautes transactions (avec le plus grand mana) approuve une transaction du conflit, alors cette dernière devient valide avec une haute probabilité, sinon non valide avec une haute probabilité. Comme on que les noeuds avec le poids le plus fort qui vote sur la validité et réduction de conflit, on n'interroge pas tous les noeuds mais seulement une partie des transactions importante, qui est très efficace et réduit le temps de vérification.

A la fin, le vote s'arrête pour chaque transaction si elle ne change pas d'avis de vote sur un certain nombre de tours.

On reviens sur le poids individuel et initiale de chaque sommet, ce dernier est obtenu via un petit Proof of Work (PoW) qui consiste a résoudre un puzzle cryptographique. L'avantage c'est qu'il nécessite pas une grande consommation d'énergie de calcule.

Avantage

Les avantages du Tangle résident dans :

  • La scalabilité : on peut rajouter autant de transaction qu'on veut, le consensus est fait de manier asynchrone et rapide car on interroge qu'un sous ensemble de sommets.
  • Pas de mineurs ! donc pas de frais de transaction
  • Le fait de chargé qu'une partie du registre permet de le stocker sur tout type d'appareils : ordi perso, smartphone, objects connectés, et du coup permet de partager le réseau tout en annulant l'approche des pools de calcule et la grosse consommation d'énergie.

Désavantages

  • La sécurité : le fait qu'une transaction valide deux autres, cela baisse la pourcentage d'attaque de transactions frauduleuses de 51% a une attaque de 34%. (ou il faut que 34% de sommets frauduleux pour corrompre le réseau)

Sources