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

in ULille blockchain2 years ago (edited)

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 ont 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 objectif 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 ont 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) ont 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.

Inconvénient

  • 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

Sort:  


✒️ Pour vous encourager dans vos études, nous vous offrons 💝50 points-fr💝, un reblogue, un mini-upvote
🎁 Recevez en plus un bonus de 3 points-fr pour votre sélection et ce pourboire : !LUV !GIF algorithm
💰 Plus de Tokens de 2eme couches vous attendent dans les posts de sélections et de récompenses

Cumulez facilement les points-fr
Récompense Multi-engagements des Francophones



Thanks for your contribution to the STEMsocial community. Feel free to join us on discord to get to know the rest of us!

Please consider delegating to the @stemsocial account (85% of the curation rewards are returned).

You may also include @stemsocial as a beneficiary of the rewards of this post to get a stronger support. 
 

Congratulations @nissou31! You have completed the following achievement on the Hive blockchain And have been rewarded with New badge(s)

You distributed more than 10 upvotes.
Your next target is to reach 50 upvotes.
You received more than 300 upvotes.
Your next target is to reach 400 upvotes.

You can view your badges on your board and compare yourself to others in the Ranking
If you no longer want to receive notifications, reply to this comment with the word STOP

Check out the last post from @hivebuzz:

HiveBuzz World Cup Contest - Recap of Day 9
Hive Power Up Day - December 1st 2022
HiveBuzz World Cup Contest - Check your ranking
Support the HiveBuzz project. Vote for our proposal!