1.2) Le Tangle

A. Introduction

Le Tangle est le registre distribué (DLT) du IOTA. Ce tout nouveau mode de DLT, quasi exclusif au IOTA, est complétement différent des blockchains traditionnellement utilisées pour les cryptoassets (comme pour le Bitcoin par exemple). La principale différence est que le Tangle ne comporte ni blocs, ni chaines !
Le Tangle est basé sur la théorie des graphes acycliques dirigés/orientés (Directed Acyclic Graphs, DAG). L'utilisation de ce type de DAG dans le monde des cryptos à été introduite par et pour le projet IOTA ; c'est ce qui confère à ce système une place toute particulière dans le vaste univers des cryptoassets. C'est également l'utilisation de ce type de DLT qui est à l'origine des différents avantages que l'on connait au IOTA.

Le Tangle, donc un registre distribué dans lequel les transactions IOTA sont stockées. Ce registre est considéré comme décentralisé dans la mesure où il n'y a pas d'autorité centrale qui le contrôle. Il est maintenu en fonction par un réseau de noeuds (full nodes) organisés selon une topologie de maillage. Le tangle agit donc comme une base de données distribuée, et chacun de ses noeuds possède une copie de l'historique complet du Tangle. Tout comme c'est le cas pour la plupart des autres cryptomonnaies.

Le protocole IOTA est l'ensemble des règles qui régissent le fonctionnement du IOTA (nombre de validations minimum pour une confirmation, méthode de cryptographie,...). Ce protocole peut être séparé en deux parties :

  • L'implémentation de référence (IRI), qui est le protocole de base sur lequel le système IOTA est construit (discuté plus loin dans ce chapitre);
  • L'implémentation d'extension (IXI), qui est une seconde couche de protocoles dont le but est de permettre la création d'applications et l'interopérabilité (avec les autres blockchains). Cette partie fait l'objet de la section suivante.

La contrepartie àta "payer" pour l'utilisation du réseau IOTA est la validation de deux autres transactions (à l'opposé de la blockchain normale où l'on paye des frais aux mineurs). Dès lors, les validateurs ("mineurs" dans le cas des blockchain en PoW comme le bitcoin ou "stakers" dans le cas d'une blockchain PoS) et les utilisateurs (les entités qui envoient les transactions) ne sont plus découplés. En d'autres termes, chaque utilisateur est également un "mineur" (dans le sens vérificateur) dans le système.
Vu que chaque utilisateur sécurise le registre lui-même, il n'y a donc plus besoin de mineurs du tout (dans le sens puissance de calcul rétribuée en tokens). Et par conséquent, il n'y pas de nécessité de créer de nouveaux IOTAs, tous les IOTAs existant ont donc déjà été distribués/achetés.

B. Les graphes acycliques dirigiés (DAG)

Contrairement aux systèmes blockchains qui sont constitués de blocs reprenant un certain nombre de transactions et qui se suivent successivement (chaine), le Tangle se base sur le système plus général de Graphe Acyclique Dirigé ou Graphe Acyclique Orienté.Fig. 1 : Schéma d'une blockchain classique. Chaque bloc est un ensemble de transactions. Les blocs se suivent par ordre chronologique et font chacun référence au bloc précédent dans la chaine.

La définition rigoureuse d'un graphe acyclique dirigé stipule qu'il s'agit d'un graphe qui comporte un ensemble de noeuds et de liaisons et où tous noeuds sont reliés entre eux de telle manière à ce qu'il soit impossible de partir d'un noeud N et suivre un chemin qui reviendrait à ce même noeud N (d'où l'appellation acyclique). Un graphe est dit dirigé ou orienté s'il ne peut se parcourir que dans un sens (les liaisons sont alors représentées des flèches et pas des simples liens). Techniquement, une blockchain est donc elle aussi un graphe acyclique dirigé, car on ne peut aller que dans un seul sens (l'ordre chronologique des blocs) et il est impossible de revenir à un bloc en poursuivant la blockchain. Deux différences majeures séparent cependant les systèmes de la blockchain du Tangle d'un point de vue topologique :

  • Dans le Tangle les transactions ne sont pas regroupées en blocs mais font directement partie du réseau;
  • Dans le tangle il n'y a pas d'ordre linaire (un bloc après l'autre), mais un enchevêtrement de liaisons (Tangle signifie d'ailleurs enchevêtrement en Anglais).

Fig. 2 : Schéma du Tangle. Chaque bloc est une transaction, les flèches indiquent les deux transactions validées par une transaction. Les transactions en gris sont appelées extrêmités (tips) du Tangle. Ce sont les dernières transactions postées et qui ne pas encore validées par des transactions plus récentes.

C. Fonctionnement et protocole

Protocole IRI (implémentation de référence)

Le protocole IRI est l'ensemble des règles qui décrivent le comportement de base du système IOTA. Ce protocole est fait pour être le plus général et simple possible afin de s'accomoder facilement à tous les types d'applications qui pourraient utiliser le Tangle. Une second couche de protocole (IXI) permet alors de rajouter des fonctionnalités au IOTA et d'interagir avec le Tangle de manière plus spécifique. Tous les points discutés cette section 1.2 sont du ressort du protocole IRI.

Validation

La validation d'une transaction est le processus par lequel d'autres entités choisissent cette transaction à l'aide de l'algorithme de sélection des extrémités (tips selection algorithm), et réalisent ensuite la preuve de travail nécessaire à l'approbation de cette transaction. Lorsque plusieurs autres transactions répètent ce processus les unes après les autres, la validation d'une transaction devient de plus en plus importante (A est directement validée par B, elle-même directement validée par C, donc C valide indirectement A, et ainsi de suite). Une fois que la transaction dépasse un certain nombre de validations considéré comme "acceptable" (en général 14 validations), elle peut être acceptée par le destinataire comme étant complétement valide. La transaction passe alors de "en attente" (pending) à "confirmée" (confirmed).
Ce mode de fonctionnement est assez proche du système de blockchain classiques (bitcoin ou ethereum par exemple) où il faut qu'un certain nombre de blocs aient été minés après celui contenant la transaction avant que celle-ci ne soit acceptée par le destinataire.

Il est possible diminuer le nombre de validations considéré comme "acceptable" afin d'accepter une transaction plus vite en fonction de la part de risque qu'on est prêt à encourir concernant les problèmes de double dépense. Toutefois le fait que le système ne nécessite pas de mineurs, les temps de validations diminuent lorsque le nombre de transactions augmentent (car pour une nouvelle transaction, deux anciennes sont validées). Ainsi lorsque le réseau sera utilisé par un grand nombre d'agents, les temps de transactions seront réduits de manière considérable.

Consensus et problème de la double dépense

[A venir]

Vie privée

Le protocole IOTA est pseudo-anonyme, ce qui signifie que les balances et les transactions sont liées aux adresses et non pas aux entités physiques derrière celles-ci. Ainsi on sait que l'adresse TEFOBIZRAEMAQWBYHTBAFJSOZFLHPXHAC... détient X IOTAs, mais on ne peut pas savoir si c'est Pierre, Paul ou Jacques qui détient cette adresse. Les propriétaires des adresses IOTA ne sont pas directement identifiés, par contre toutes les transactions et le contenu de chaque adresse sur le Tangle sont publics.

Afin d'augmenter l'anonymat, il est possible d'utiliser des services de "mixing" ou "tumbling" qui vont mélanger les IOTAs de plusieurs utilisateurs et ensuite vous renvoyer vers une nouvelle adresse l'équivalent de ce que vous avez mis initialement dans le mixer. Il devient alors plus difficile de retracer l'historique de tous les IOTAs que vous possédez à cette adresse.

Les Snapshots

Afin de prévenir une trop grande expansion du Tangle et une taille démesurée qui le rendrait difficile à utiliser, un processus de "nettoyage" est mis en place. Ce processus est appelé snapshot. Lors d'un tel événement, il est demandé aux noeuds de ne retenir que les adresses qui comportent de la valeur (des IOTAs), et d'oublier toutes les autres (les transactions ne comportant que des datas et pas de valeur ainsi que les transactions "en attente"). Juste après le snapshot, le Tangle se résume donc à une liste d'adresse contenant tous les IOTAs en circulation. Il est bien entendu toutefois possible pour les full nodes de garder l'historique complet du Tangle s'ils le désirent.
Pour l'instant c'est la fondation IOTA qui est à l'origine de ces snapshots. Et ceux-ci sont en général couplés à une mise à jour du code du Tangle et des full nodes. À terme, chaque full node pourra réaliser son propre snapshot quand bon lui semblera.

Suite aux snapshots deux "problèmes" peuvent survenir :

  • Votre transaction "pending" a disparue. Dans ce cas, le système se comporte comme si elle n'avait jamais été envoyée et les IOTAs sont toujours là où ils étaient avant que la transaction ne soit initialisée. Il suffit alors que celle-ci soit réenvoyée normalement comme elle l'a été à l'origine.
  • La balance de votre wallet indique que vous n'avez plus de IOTAs. Pas de panique, rien n'est perdu jamais perdu sur le Tangle. Ce qui se passe, c'est qu'après le snapshot le full node auquel vous êtes connecté "ne se rend pas compte" qu'une des adresse avec les IOTAs vous appartient. Il suffit à ce moment là de réattacher des adresses dans la section "recevoir". Les adresses que vous pouvez générer étant liées crées à votre seed, au bout d'un moment votre wallet va regénérer l'adresse qui contient vos IOTAs sur le Tangle. Le full node auquel est connecté votre wallet pourra alors l'identifier correctement et votre balance réapparaitra comme par magie. Ce léger détail sera automatisé dans les prochaines versions du wallet (et dans l'UCL wallet). Pour plus d'infos sur la procédure, consultez la FaQ.

D. Sécurité du Tangle et rôle du Coordinateur

Cryptographie

Contrairement à la majorité des blockchains (telle celle du bitcoin par exemple) qui utilisent la méthode cryptographique par courbe elliptique pour signer les transactions, le IOTA se base sur les signatures de hash de Winternitz. Cette difféence permet au IOTA de grandement simplifier le processus de signature, le rendre plus rapide mais églament de diminuer la complexité globale du protocole du Tangle. Ce type de signature à été choisi car il est particulièrement résistant aux méthodes de calcul quantiques. Dans le cas du bitcoin par exemple, un ordinateur quantique serait de l'ordre de dix milliards de fois plus efficace qu'un ordinateur normal pour compléter le processus de mining. Ce qui pourrait donc conduire très vite à une faille majeure si plusieurs ordinateurs quantiques se liguent pour avoir 51% de la puissance du réseau. De même, dans le cas du bitcoin un ordinateur quantique pourrait essayer de casser une clé privée par force brute dix milliards de fois plus vite qu'un ordinateur normal. Ce qui réduirait considérablement la sécurité des adresses bitcoin. Pour les signatures de Winternitz, il est prouvé que le gain obtenu en utilisant un ordinateur quantique se limite à un calcul 81 fois plus rapide.

Finalement, le protocole IOTA est conçu de manière à ce que le temps nécessaire pour effectuer la preuve-de-travail ne soit pas supérieur au temps nécessaire pour que le réseau effectue les autres tâches nécessaires à l'envoi d'une transaction.

Ces deux éléments conduisent donc le IOTA à être résistant aux ordinateurs quantiques.

Le Coordinateur

Le coordinateur est un agent (full node) de sécurisation du réseau détenu et opéré par la fondation IOTA. Cet élément est souvent décrit comme "les petites roues du Tangle" par analogie aux petites roues qu'on place sur les vélos des enfants. Tout comme dans l'analogie du vélo, sa présence n'est requise que pendant les premiers temps du Tangle, et il sera désactivé quand le Tangle sera suffisament sécurisé par les autres noeuds.
Le coordinateur est en réalité un noeud particulier qui émet des transactions appelées milestones. Les transactions qui sont validées directement ou indirectement par ces milestones sont alors considérées comme valides par l'ensemble du réseau (ou du moins par les noeuds qui décident d'écouter le coordinateur). Le but de cet agent est de limiter le risque encouru par le Tangle en cas d'attaque par surpassement de la puissance de hashage du réseau. Comme expliqué dans la partie consensus, si une entité réunit 34% de la puissance du réseau, les autres noeuds considèreront les transactions qu'il a validées comme étant vraies. Tant que le Tangle est en développement il est donc assez "facile" de réunir la puissance de calcul suffisante et d'introduire des transactions malicieuses. Le fait d'écouter le coordinateur et de considérer les transactions qu'il valide comme étant vraies, quel que soit l'état du reste du réseau, protège donc le Tangle de ce type d'attaque.

A terme, lorsque le réseau sera suffisament développé et que la puissance de calcul globale sera bien répartie, le coordinateur pourra être désactivé et le modèle de consensus normal permettra de lui-même de prémunir le réseau des attaques par surpassement de puissance de calcul.

E. Les principaux avantages du Tangle

Décentralisation

La décentralisation (voir la distribution) est un composant très important de tout réseau DLT. En effet, plus un réseau est décentralisé, plus il devient impossible de l'attaquer. Le calcul est assez simple, lorsqu'un attaqueur décide de forcer un réseau, il doit prendre le contrôle de ces serveurs. Plus il y a de serveurs et plus ceux-ci sont indépendants, plus il devient difficile d'en contrôler un nombre significatif.

Comme expliqué ci-avant, le Tangle repose sur un réseau de noeuds indépendants les uns des autres et chacun de ceux-ci possèdent une copie de l'ensemble des transactions présentes sur le Tangle. Les noeuds travaillent donc en pair-à-pair (peer-to-peer) et se transmettent chacun de manière indépendante les différentes transactions. Ce mode de fonctionnement est commun à tous les systèmes de réseaux distribués publiques (bitcoin, ethereum et la très grande majorité des autres crytos).

Vu le principe de fonctionnement intrinsèque du Tangle, on peut même considérer qu'il va encore plus loin que les autres blockchains dans la décentralisation. En effet, comme il regroupe les validateurs (mineurs) et les utilisateurs au sein d'une seule personne, le Tangle se passe du risque de centralisation de la puissance de minage. Ainsi, dans le cas du bitcoin par exemple, les cinq plus grandes mining-pool (réseaux de mineurs) au monde sont chinoises et détiennent 51% de la capacité de hash du réseau, rendant donc l'entièreté du réseau centralisé d'une certaine manière.

Il reste toutefois encore un point noir à une décentralisation complète du Tangle. Ce point vient de l'utilisation du Coordinateur. Comme expliqué ci-avant, le coordinateur est une entité qui garantit le bon fonctionnement et la sécurité du Tangle lors de son lancement. Celui-ci a pour vocation de disparaitre une fois une certaine puissance de calcul du Tangle atteinte. En attendant, le coordinateur est entièrement sous le contrôle de la fondation IOTA et est donc un élément centralisateur car il peut-être vu comme une "authorité suprême" alors qu'en principe tous les noeuds devraient être sur le même pied d'égalité.
Afin de diminuer l'apsect centralisateur du Coordinateur, la fondation prévoit de sortir prochainement une version décentralisée et open-source de celui-ci, ce qui permettra donc à chacun de faire tourner son coordinateur. Finalement, une fois le réseau suffisament développé, les Coordinateurs seront tout bonnement éteints et le réseau pourra continuer son fonctionnement décentralisé tout seul.

La scalabilité/expansivité

La scalabilité est un anglicisme qui désigne la capacité d'un réseau à s'adapter à un changement d'ordre de grandeur de son utilisation. Pour faire simple ça correspond à la façon dont un réseau est capable de supporter une augmentation de son utilisation par x10, x100, x1000.

Vu que le protocole IOTA oblige l'envoyeur de chaque transaction à valider en parallèle deux autres transactions, plus il y a de transactions envoyées, plus il y a de transactions validées. Ce qui veut dire que la capacité du Tangle de mener à bien des transactions augmente avec le nombre de transactions que l'on y envoie. Dès lors, la scalabilité est ici infinie (théoriquement limité par les lois de la physique et la vitesse de la lumière).
En comparaison, les blockchain traditionnelles ont elles des blocs de taille limitées ainsi que des temps de minage prédéterminés pour ces blocs, limitant donc intrinsèquement le nombre de transaction que peut effcuter le réseau. Ce point est considéré comme un des problèmes majeurs empêchant l'acceptation et l'utilisation de masse des blockchains.

Les frais de transactions

Comme expliqué précédemment, dans le Tangle les utilisateurs et les vérificateurs (mineurs) sont les mêmes personnes. Fondamentalement, un utilisateur qui poste une transaction endossera le rôle de vérificateur en effectuant une preuve de travail (PoW) servant à confirmer deux autres transaction. Le but de cette PoW est de se protéger des attques de spam (il est impossible de spammer un réseau si on doit en parallèle "perdre du temps" à faire des PoW). Cependant, la difficulté de la PoW requise par le système est suffisament basse pour lui permettre d'être effectuée par les très simples appareils de l'Internet des Objets (téléphones, ordinateurs,...). De plus, cette PoW peut être effectuée par différentes entités du réseau : l'envoyeur, le destinataire ou même une tierce partie spécialisée dans les PoW.

En mettant au même niveau les transactions et les vérifications, IOTA évite le risque de centralisation de la puissance de calcul mais enlève aussi la nécessité de rémunérer les validateurs spécialisés (mineurs) à l'aide de frais de transaction ou de création de token.


Donations IOTA : 9TEFOBIZRAEMAQWBYHTBAFJSOZFLHPXHACRHPZUFI9ABNHQXKCUONYJBAUZXLIRYNUMGHAVDUPCLBVUWBUHCGQRHAX

results matching ""

    No results matching ""