Présentation de l'algorithme de consensus tangle (IOTA)

Introduction

Tangle est un algorithme de consensus qui permet de valider des transactions. Il est utilisé pour la cryptomonnaie IOTA (Internet of Things Application). IOTA a été fondé en 2015 par David Sønstebø, Sergey Ivancheglo, Dominik Schiener, et M. Sergueï Popov.
L'algorithme de consensus Tangle n'utilise pas une architecture en bloc mais en DAG (Directed Acyclic Graph) correspondant à un graphe orienté acyclique. Dans cet article nous allons expliquer le fonctionnement de l'algorithme Tangle et les avantages et inconvénients de cet algorithme.

Principe de fonctionnement

Tangle permet de valider une transaction en vérifiant deux transactions précédentes en opposition aux blockchains. Tangle n'a pas de bloque, les transactions ne sont pas vérifiées par tous les noeuds, mais seulement par une partie des noeuds. La validation est faite par l'utilisateur créant la transaction.
Lors qu'une transaction arrive :

  • Il génére un noeud dans le graphe.
  • Ce noeud est relié à deux autres noeuds. Cela permet de valider les transactions précédentes et de créer une chaine de validation.
  • Les transactions sont validées par les utilisateurs. Cela permet de ne pas avoir de frais de transaction. Mais cela permet aussi de ne pas avoir de récompense pour les validateurs.
    Si lors de la vérification des transactions, il y a un conflit, il faut choisir quel noeud devient orphelin. Pour cela il faut choisir le noeud qui a le plus de poids. Le poids est calculé en fonction du nombre de transactions validées par le noeud. Cela permet de choisir le noeud le plus fiable. Par exemple si le noeud a été choisi 97 fois sur les 100 dernières transactions, il aura un poids de 97. Le noeud avec le plus de poids est choisi pour être validé. Le noeud qui n'est pas choisi devient orphelin.
  • Une fois les deux transactions validées, le noeud doit valider sa transaction en résolvant une preuve de travail. (résolution d'un problème cryptographique comme le bitcoin). Cela permet de valider la transaction et de l'ajouter au tangle.

L'algorithme est donc asynchrone, il n'y a pas besoin de synchroniser les noeuds pour valider une transaction.
Il permet donc de traiter des micro paiements entre machines (machine to machine) sans frais de transaction (des micro centimes).
Il n'y a pas de temps de vérification pour valider ces deux transactions, cela permet de valider plus rapidement les transactions. La topologie du réseau et l'emplacement des noeuds influent aussi sur le temps de vérification.

Trangle est codé en trinaire, c'est-à-dire en base trois en opposition au binaire en base deux. Cela permet de réduire la taille des transactions et donc de réduire la taille de la blockchain. Cela permet aussi de réduire la puissance de calcul nécessaire pour valider une transaction. (proposé par IOTA, mais aucune preuve de l'efficacité de cette méthode a été faite).

Sécurité/vulnérabilité

Le peu de vérification permet aussi de valider des transactions invalides et faire des attaques de double dépense.
Pour résoudre ce problème, l'algorithme discrimine les transactions selon certains critères. Ceci est fait par l'algorithme MCMC, il assigne une probabilité de vérification en fonction du poids cumulé de chaque transaction. Donc plus on remonte dans le temps, plus la probabilité de vérification est faible. Cela permet de valider les transactions récentes et de ne pas valider les transactions anciennes.

Plus il y a de transactions, plus la possibilité d'avoir 34% de puissances de calcul pour un attaquant est faible.
Pour résoudre ce problème de faiblesse, IOTA met en place un coordinateur opéré par la fondation IOTA. Toutes les transactions de ce coordinateur ont un poids plus élevé garantissant la confiance. Cela rend donc le réseau centralisé. Selon la fondation, le coordinateur sera supprimé lorsque le réseau aura assez de noeuds pour être sécurisé.

Sclarabilité

Comme chaque utilisateur vérifie deux autres transactions sur le réseau, le débit des transactions évolues selon le nombre d'utilisateurs. Plus il y a d'utilisateurs, plus le débit des transactions est élevé. Cela permet d'avoir un réseau scalable.

Performance

Les transactions sont validées par les utilisateurs, conc il n'y a pas de frais de transaction en récompense pour les validateurs. De plus la preuve de travail est très faible, ce qui permet de pouvoir le faire sur des appareils avec peu de puissance de calcul.

Conclusion

Pour conclure, Tangle est un algorithme de consensus qui permet de valider des transactions sans frais de transaction. Il permet de valider des micro paiements entre machines. Il est scalable et peu gourmand en puissance de calcul. Mais il est vulnérable à plusieurs attaques avec un fonctionnement centralisé. Il est donc difficile de savoir si cet algorithme est viable sur le long terme et si on peut lui faire confiance.

Sources :

https://assets.ctfassets.net/r1dr6vzfxhev/4i3OM9JTleiE8M6Y04Ii28/d58bc5bb71cebe4adc18fadea1a79037/Tangle_White_Paper_v1.4.2.pdf
https://journalducoin.com/actualites/avis-iota/
https://fr.wikipedia.org/wiki/IOTA_(cryptomonnaie_et_technologie)

Sort:  

Congratulations @florentinh! 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 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 our last posts:

Hive Power Up Day - December 1st 2023