IOTA : Analyse du white-paper (partie 1/2)

Crypto-Analyse en Français
7 min readMar 19, 2018

--

IOTA est une fondation crée en 2015 par un groupe de 4 personnes : David Sønstebø, Sergey Ivancheglo, Dominik Schiener, et M. Sergueï Popov.

Derrière cette fondation il y a une technologie qui se veut révolutionnaire puisqu’il s’agit d’une ébauche de protocole qui permettrait à terme de résoudre les problèmes rencontrés par les protocoles basés sur des blockchains, par exemple :

  • La scalabilité du réseau, sujet complexe et qui divise. Le débat sur la taille des blocs du réseau bitcoin en est l’exemple.
  • Les frais de transactions qui peuvent s’avérer élevés lorsque le réseau est congestionné. Les transactions ayant les frais les plus élevés étant traitées en premier, une économie des frais peut se développer et faire grimper les prix.
    Fin 2017, il fallait compter plus de 10€ de frais pour espérer voir sa transaction traitée dans l’heure !
  • Les limites structurelles des protocoles : Taux de transactions traitées par seconde, temps de validation, taille des chaines, etc etc

Face à ces limitations, les concepteurs de IOTA font le constat que les blockchains ne seront tout simplement jamais adaptées à l’internet des objets, vu les énormes volumes de données temps réel à traiter dans ce domaine.

Les concepteurs réfléchissent alors à une nouvelle technologie. Un white paper est créé ainsi qu’un site web au design assez avancé. Le site est plutot vendeur. On y trouve une description assez générale de IOTA

Scalable, Decentralized, Modular, No Fee

In this new autonomous Machine Economy IOTA will be the backbone. The Tangle ledger is able to settle transactions with zero fees so devices can trade exact amounts of resources on-demand, as well as store data from sensors and dataloggers securely and verified on the ledger.

En gros : IOTA sera la colonne vertébrale de l’économie de l’IoT. Le livre des comptes tangle est capable de résoudre des transactions sans aucuns frais pour que les objets connectés puissent échanger et enregistrer des informations à la demande en toute sécurité.

Si on continue un peu :

The main innovation behind IOTA is the Tangle, a revolutionary new blockless distributed ledger which is scalable, lightweight and for the first time ever makes it possible to transfer value without any fees. Contrary to today’s Blockchains, consensus is no-longer decoupled but instead an intrinsic part of the system, leading to decentralized and self-regulating peer-to-peer network. Read our Whitepaper.

Traduction: une technologie ditribuée, sans blocks, scalable, légère, et pour la première fois au monde : sans frais. Et le tout, bien entendu, décentralisé, avec un consensus non plus délégué aux mineurs mais qui fait “partie intégrante du système pair à pair” .
Pour en savoir plus, le site nous invite à lire le whitepaper, alors allons y !

Chapitre 1 : Introduction et description du système

On commence par faire le constat que les blockchains sont inadaptées, entre autre, au monde de l’IoT puisqu’il sagit principalement de petites transactions entre objets connectés. Egalement, les blockchains sont discriminantes puisqu’elles séparent les utilisateurs en 2 groupes : les vérificateurs (aka : mineurs) et les utilisateurs.

A ce stade, IOTA propose un système ou chaque utilisateur est aussi un vérificateur, qui participe donc au travail de minage, puisque pour diffuser une transaction dans le réseau, celle ci doit valider 2 autres transactions de ce même réseau. On peut imaginer que ce travail peut se faire en quelques calculs de hashs, donc peut coûteux.
Sauf que, le white paper indique :

It is assumed that the nodes check if the approved transactions are not conflicting. If a node finds that a transaction is in conflict with the tangle history, the node will not approve the conflicting transaction in either a direct or indirect manner

Donc, chaque noeud du réseau, imaginons que ce soit un objet connecté, doit vérifier que les 2 transactions approuvées ne sont pas en conflit avec d’autres transactions du tangle. Le tangle, rappelons le, c’est grand livre qui contient toutes les transactions. Du coup, si on prend le white paper au mot, cela veut dire que chaque objet connecté doit connaitre tout l’historique des transactions, donc des giga octets de données !

A ce stade, on ne comprend pas encore trop comment ce principe pourra s’adapter à l’IOT car un objet connecté n’a pas vocation à stocker une grande quantité de données !

Le white paper embraye ensuite sur les règles de sélections des transactions à valider :

It is important to observe that we do not impose any rules for choosing which transactions a node will approve. Instead, we argue that if a large number of nodes follow some “reference” rule, then for any fixed node it is better to stick to a rule of the same kind4 . This seems to be a reasonable assumption, especially in the context of IoT, where nodes are specialized chips with pre-installed firmware

Traduction : chaque noeud choisit quelles transactions il valide, sans règles particulières, sauf que tous les nœuds auront intérêts à partager les mêmes règles. Et le white paper ajoute que cette assertion est raisonnable, particulièrement pour les objets connectés qui partagent le même matériel aux firmwares pré-installés.
Ici, c’est pas très clair. On n’impose pas de règles de validation mais les noeuds convergeront vers des règles identiques car ils auront des firmwares communs. Donc si les règles sont dans le firmware, elles sont imposées, non ?

On continue et on apprend que pour émettre une transaction, un noeud doit résoudre un puzzle cryptographique avec un critère de difficulté, sur le même principe que blockchain bitcoin.

For a node to issue a valid transaction, the node must solve a cryptographic puzzle similar to those in the Bitcoin blockchain. This is achieved by finding a nonce such that the hash of that nonce concatenated with some data from the approved transaction has a particular form. In the case of the Bitcoin protocol, the hash must have at least a predefined number of leading zeros

Donc finalement, on a bien de la preuve de travail dans IOTA, contrairement à ce que laisser penser le site web et le début du white paper. Troublant …

Pour finir, le chapitre 1 nous invite à aller dans les différentes sections pour en savoir plus sur :

  • l’algorithme de sélection des transactions
  • les règles pour mesurer les poids d’approbation des transactions
  • les scénarios d’attaques possible

Nous reviendrons donc la dessus plus tard.

Chapitre 2 : Poids des transactions

Ce chapitre détaille la façon dont est calculé le poids d’une transaction (appelé “site” dans le white paper). C’est somme toute assez simple : Imaginons une transaction A qui approuve un transaction B qui elle même approuve C, ce qui nous fait :

A ->B -> C

Dans ce cas, la transaction A porte un poids égal à son propre poids auquel s’ajoute celui des transactions B et C.
Le poids de chaque transaction étant égal à la quantité de preuve de travail qui lui est attaché.

Chapitre 3 : Stabilité du système et coupes

Ici, le papier détaille, entre autres, comment réagirait le réseau IOTA dans 2 régimes de fonctionnement : faible charge (peu de transactions émises) et haute charge (beaucoup de transactions émises). On se concentre sur les “tips”, aka le nombre de transactions en attente de validation. Pas mal de formules mathématiques et d’hypothèses pour modéliser comment évolue le nombre de tips en fonction de la charge du réseau. Intéressant mais on peut se questionner à ce stade sur la pertinence des hypothèses puisque, rappelons le, les noeuds sont libres de choisir leurs propres règles de sélections des transactions qu’ils valident.

D’ailleurs, cette question de la stratégie de sélection est évoqué : pour que le réseau fonctionne, il faut que les nouvelles transactions valident si possible des transactions non encore validées (tips) ou au moins des transactions récentes ou ayant un poids faible, puisque de telles transactions sont plus fragiles que les autres.

C’est assez simple à comprendre en soit : Imaginez un noeud qui diffuse des transactions en validant systématiquement les 2 mêmes vieilles transactions, alors ce noeud ne contribue pas à la sécurisation du réseau car ce sont les transactions en attente de validation ou les transactions ayant un poids faible qui ont besoin d’approbation. Sauf que, pour ‘voir’ de telles transactions, il est nécessaire de tenir son tangle à jour, ce qui peut s’avérer très coûteux en ressources et inaccessible pour certains appareils connectés.

Dans une sous section (3.1 How fast does the cumulative weight typically grow?), on retrouve des formules de maths et des hypothèses prises pour déterminer l’évolution du poids des transactions.

La encore, intéressant mais la question principale reste celle des règles de validation des transactions, par l’évolution du poids sous tel ou tel hypothèse.

Chapitre 4 : Scénarios d’attaque possible

A ce stade, aucun protocole n’a encore été décrit et on se pose encore beaucoup de questions sur la viabilité du système basé IOTA, notamment parce que les nœuds doivent être à jour pour diffuser efficacement des transactions, ce qui peut représenter une quantité pharaonique de données, impensable pour la grande majorité des objets connectés !

Aussi parce qu’on a vu que de la preuve de travail était malgré tout nécessaire pour chaque transaction, la encore impensable pour des objets connectés.

Et on pourrait encore se poser bien des questions de fond…

Ceci posé, il est étonnant de voir que le white paper discute des scénarios d’attaque possible malgré les questions béantes laissées en suspend….

Nous verrons si le white paper répond ou non à ces questions dans la suite de cette analyse, à venir tout prochainement !

--

--