Présentation de IOTA et Tangle

Pour comprendre, contribuer et/ou investir

La Blockchain est un concept révolutionnaire mais ses problèmes de scalabilité, les longs délais de confirmation et ses frais de transaction remettent en question la pertinence de son utilisation dans le domaine de l’IoT (Internet of Things / internet des objets).

A ses débuts, les frais de transaction du Bitcoin, la cryptocurrency (crypto-monnaie) basée sur la Blockchain, étaient négligeables, en-dessous de 0,01 € par transaction, quelque soit le montant de la transaction. En raison de la popularité croissante du Bitcoin, la limite de transactions sur le réseau est régulièrement atteinte, ce qui entraîne sa congestion et des frais peu rentables.

Le Tangle, la Blockchain “sans bloc ni chaîne”, est-elle la technologie qui résout tous ces problèmes ? Que penser de IOTA (prononcer [ayota]), la cryptocurrency basée sur le Tangle ?

Nous vous proposons de creuser ce sujet pour vous aider à mieux le comprendre et décider si vous voulez y contribuer et/ou investir.

Cet article est notamment basé sur la présentation à l’IoT and Blockchain meetup de Berlin de Dominik Schiener, co-fondateur de IOTA.

La Blockchain dans l’IoT : une fausse bonne idée ?

Depuis 4 ans, les cas d’usage de la Blockchain ont été activement recherchés par la communauté (entreprises, startups, chercheurs, individus). Un potentiel énorme existe notamment dans le cadre de l’IoT en raison de sa future omniprésence.

Toutefois, il reste une série de problèmes à résoudre : notamment pour les M2M Payments (Machine to Machine Payments / paiement de machine à machine), la sécurité de l’IoT ainsi que l’exécution automatisée des processus. Les distributed ledgers (registres distribués) pourraient être la solution.

Encore du chemin à parcourir pour la Blockchain

Parmi les limites techniques de la Blockchain dans le cadre de l’IoT, on relève en particulier la scalability (montée en charge) et les frais de transaction.

Avec le Bitcoin, nous voyons déjà les conséquences d’un protocole intrinsèquement limité et pourtant utilisé par un large public (plus de 100.000 transactions n’ont pas été confirmées au moment de l’écriture de cet article). Une grande entreprise ne sera jamais prête à attendre, à payer des frais plus élevés ou à ne pas savoir si ses transactions vont bien être effectuées. Dans le secteur privé, qui a uniquement utilisé des Blockchains privées pour répondre à ses besoins, on identifie aisément le potentiel des distributed ledgers qui ne nécessitent pas d’approbation.

Les frais de transaction constituent l’autre grand frein à la généralisation de la Blockchain dans le monde de l’entreprise. Les frais dépendent de plusieurs facteurs, dont la congestion du réseau, le temps de confirmation de la transaction et la taille de la Blockchain. En règle générale, plus les frais sont élevés, plus les transactions sont validées rapidement. Dans le cas de l’IoT, les micropaiements de machine à machine n’ont pas de sens si les frais de transaction sont trop importants. Il n’est pas possible de déterminer si un business model génère des profits quand le montant d’un paiement reçu est fluctuant à cause de frais de transaction imprévisibles.

La petite histoire derrière IOTA

L’ensemble des fondateurs de IOTA (David Sønstebø, Sergey Ivancheglo, Serguei Popov, Dominik Schiener) travaillent sur la Blockchain depuis 2010–2011.

La particularité quant aux origines de IOTA vient du fait que le projet a émergé d’un besoin réel. Pour la petite histoire, IOTA est né au sein d’une startup hardware qui travaillait sur un nouveau microprocesseur ternaire. IOTA n’est donc pas né de l’envie de créer une nouvelle techno DAG à la mode (Directed Acyclic Graph / Graphe orienté acyclique). C’est le souhait de résoudre le règlement transactionnel pour l’IoT ainsi que le manque de solutions existantes qui a motivé la création d’IOTA.

Le Tangle est né alors que les fondateurs travaillaient depuis déjà longtemps dans le domaine et avaient initié parmi les premières technologies de la “Blockchain 2.0”, telle que Nxt, la première Blockchain Proof of Stake (PoS / preuve d’enjeu). C’est justement cette expérience qui leur a fait réaliser rapidement qu’ils devraient recommencer de zéro pour répondre aux difficiles exigences de l’IoT.

Le Tangle

L’innovation principale derrière IOTA est le Tangle. Il s’agit d’une nouvelle architecture de distributed ledgers (registres distribués) basée sur un DAG (Directed Acyclic Graph / graphe orienté acyclique). On pourrait en quelque sorte la qualifier de “Blockchain sans bloc ni chaîne” (ce n’est donc, sémantiquement, pas vraiment une Blockchain).

Qu’est-ce qui différencie donc le Tangle de la Blockchain ?

Commençons par les points communs. Le Tangle repose sur les mêmes principes sous-jacents que la Blockchain : une base de données distribuée, un réseau P2P (Peer to Peer / pair à pair) ainsi qu’un mécanisme de consensus et validation.

Si nous résumons les principales différences, les deux plus évidentes sont la manière dont le Tangle est structuré (un DAG) et la manière dont un consensus est atteint.

Avec IOTA, il n’y a pas de “bloc” au sens classique. A la place, une transaction unique fait référence à deux transactions passées. Ce référencement des transactions est considéré comme une approbation : avec votre transaction, vous approuvez directement que deux transactions, et indirectement qu’une sous-section du Tangle, est valide et conforme aux règles du protocole.

Au lieu qu’un petit sous-ensemble du réseau soit responsable du consensus général (mineurs / stakers), l’ensemble du réseau de participants actifs (c’est-à-dire les appareils réalisant des transactions) est directement impliqué dans l’approbation des transactions.

En tant que tel, le consensus avec IOTA n’est plus dissocié du processus de transaction : c’est une partie intrinsèque de celui-ci et c’est ce qui permet à IOTA d’être scalable sans frais de transaction.

Le processus de transaction en 3 étapes

1. Construction du bundle (paquet) et signature des inputs (entrées) :

Avec IOTA, il existe deux types de transactions : celles où vous transférez de la valeur (et donc devez signer les inputs), et celles où vous envoyez simplement une transaction à une adresse sans transfert de valeur (par exemple, un message). Construire un bundle est assez simple puisque c’est pris en charge par toutes les bibliothèques publiées jusqu’à présent. Quand il s’agit de signer les inputs de la transaction, cela est également pris en charge par les bibliothèques et tout est fait côté client. Cela signifie que votre clé privée et votre seed ne seront jamais envoyés ailleurs.

2. Tip Selection :

La tip selection est un processus par lequel votre tangle local est traversé pour trouver deux transactions sélectionnées au hasard qui seront validées par votre transaction. Ces deux transactions seront ajoutées à votre bundle et sont appelées branchTransaction et trunkTransaction. La méthode MCMC (Markov chain Monte Carlo / Méthode de Monte Carlo par chaîne de Markov) est utilisée pour sélectionner de manière aléatoire les deux tips (c’est-à-dire des transactions non confirmées).

3. Proof of Work (preuve de travail) :

Pour que votre transaction soit acceptée par le réseau, vous devez faire une Proof of Work (son but principal est la résistance aux attaques Sybil et aux spams). Une fois que c’est fait, votre transaction sera diffusée sur le réseau. Quelqu’un d’autre va alors venir, choisir votre transaction dans le processus de tip selection puis la valider. Et de cette façon, votre transaction sera confirmée.

0 frais de transaction

Parce que IOTA parvient à un consensus sur la validité des transactions sans impliquer de mineur, il n’y plus de frais de transaction à payer. IOTA est ainsi le premier protocole de règlement transactionnel qui permet de transmettre en P2P des valeurs en-dessous du centime sans frais de transaction, ni pour l’expéditeur ni pour le destinataire. IOTA répond donc à tous les cas d’utilisation actuels et futurs de micropaiement et de nanopaiement. Parfait pour l’IoT.

Une scalabilité infinie

Pour chaque transaction, l’expéditeur doit en vérifier deux autres sur le Tangle. Par conséquent, plus le nombre d’utilisateurs augmente, plus le nombre de transactions qui peuvent être confirmées augmente. Les temps de transactions sont également inversement proportionnels au nombre de transactions sur le Tangle : plus il y a de transactions, plus rapidement chaque transaction est confirmée. L’inverse de la Blockchain. Et tout cela à l’infini.

IOTA : la parfaite réponse à l’IoT

IOTA a donc tous les atouts pour révolutionner l’IoT et notre quotidien demain. Merci à Dominik Schiener, David Sønstebø, Sergey Ivancheglo et Serguei Popov !

Si vous voulez continuer à creuser le sujet, vous pouvez lire une description complète de la technologie principale derrière IOTA dans le livre blanc sur le Tangle. Pour contribuer : https://dev.iota.org.

Follow cette publication medium pour ne pas rater les tutoriels en français à venir.