# IOTA (cryptomonnaie et technologie)

Le IOTA est une cryptomonnaie expérimentale et un protocole open-source qui a pour objectif de fournir un moyen de paiement sécurisé pour la monétisation de données entre les appareils dits de l'Internet des objets. Basées sur une technologie utilisant le concept de graphe dirigé acyclique (DAG) (différent de la technologie plus répandue de blockchain), les transactions dans le réseau IOTA ont pour vocation d'être gratuites, et ce indépendamment de leur taille. Le délai de confirmation des transactions est faible, et le nombre de transactions simultanées pouvant être gérées par le système est théoriquement illimité. L'infrastructure du IOTA est appelée le Tangle. L'extensibilité est censée être facilitée puisque les performances du réseau sont proportionnelles à son utilisation. Le IOTA a été fondé en 2015 par David Sønstebø, Sergey Ivancheglo, Dominik Schiener, et Sergueï Popov.
Le IOTA est sous le contrôle de la fondation IOTA, une organisation à but non lucratif dédiée au développement de cette technologie et qui la propose sous licence libre à tous les développeurs. La fondation IOTA, ainsi que Volkswagen et Innogy ont manifesté leurs intentions de développer ensemble CarPass, une technologie basée sur le IOTA, visant à sécuriser les identités numériques et proposer des réseaux de recharge pour les voitures électriques. Avec Deutsche Telekom, Microsoft, Fujitsu et Samsung, la fondation IOTA souhaite créer une place de marché autour des données IOT.

## Architecture

Chaque carré dans le schéma représente une transaction en cours d'envoi.
Pour chaque nouvelle transaction, deux transactions aléatoire non confirmées sont validées dans le Tangle. Chaque validation (n) d'une transaction augmente la probabilité qu'elle soit authentique, jusqu'à atteindre le seuil de (c). Dans cette figure, les carrés rouges indiquent les transactions où n > 0, mais restant en dessous du seuil de confirmation, n < c. Les carrés gris représentent les transactions où n = 0. Les carrés verts représentent les transactions qui ont été validées suffisamment de fois, leur permettant alors d'être acceptées par l'adresse du destinataire, n >= c.

### Le Tangle

Au lieu d'utiliser une blockchain, le protocole de IOTA utilise un Graphe orienté acyclique (Directed acyclic graph, DAG), appelé « Tangle » (entrelacs). C'est une généralisation de la chaîne de blocs (blockchain). Il n'y a pas de « blocs », et il n'y a pas de « chaîne » linéaire dans l'entrelacs. Cette architecture supprime la nécessité de la validation des blocs, ce qui permet un débit de transactions théoriquement plus rapide à mesure que le nombre de transactions du réseau augmente. Cependant, de nombreux facteurs influent également sur le temps de confirmation, tels que la topologie du réseau et l'emplacement de ses nœuds.
Le Tangle agit comme une base de données distribuée — actuellement, chaque nœud du réseau stocke l'intégralité de l'historique des transactions. Le Tangle utilise un protocole de vérification asynchrone (les transactions sont validées à la volée, et sélectionnées aléatoirement), ce qui lui confère des propriétés de parallélisation et de mise à l'échelle uniques pour les hauts débits de transactions, par opposition aux protocoles synchrones séquentiels de la plupart des blockchains.
À l'heure actuelle, le Tangle nécessite un « Coordinateur » qui est un élément qui valide les transactions. De ce fait, le IOTA n'a pas encore une architecture décentralisée. La fondation IOTA estime que cette centralisation est nécessaire en attendant un nombre suffisant de nœud pour pouvoir supprimer ce coordinateur. La fondation s'est engagée à supprimer le coordinateur dès que possible, mais a déclaré qu'il n'est pas encore possible d'estimer quand les conditions nécessaires à cet arrêt seront remplies.
Le « paiement » pour l'utilisation du réseau IOTA est la validation de deux autres transactions (plutôt que de payer des frais de transaction). Par conséquent, les validateurs et les utilisateurs (toute entité qui envoie une transaction) ne sont plus des entités découplées. Chaque utilisateur est également un validateur du réseau.
Le Tangle est programmé en trinaire (base 3) par opposition au code binaire, dans lequel les unités de décomposition de l'information sont le bit et l'octet (byte). Selon la fondation IOTA, le trinaire fournit un avantage d'efficacité par rapport au binaire. Aucune preuve de cette affirmation n'est avancée. Les unités de décomposition de l'information du système sont le trit (trinary digit) et le triplet (tryte). Un triplet de trits peut prendre 3$^3$ = 27 valeurs. Chaque transaction IOTA est codée sur 2 673 triplets, soit 282 octets (27 × 2673 / 256 = 281,9).

### Extensibilité (scaling)

Comme chaque transaction nécessite que l'expéditeur vérifie deux autres transactions sur le réseau, le débit de confirmation de transactions IOTA évolue proportionnellement avec le nombre de transactions sur son réseau. En comparaison, les chaînes de blocs traditionnelles ont des tailles et des temps de vérification des blocs prédéterminés, ce qui limite le débit du réseau. Les approches choisies pour atteindre un consensus sur la validité des transactions dans le cadre du projet « coordicide » accélèrent le débit de transactions maximal atteint en la présence de coordinateur.

### Absence de frais de transaction

Dans l'architecture du protocole IOTA, le transfert de valeur est réalisé sans frais de transaction. Un utilisateur sert également de validateur en effectuant la preuve de travail pour confirmer deux autres transactions sur l'entrelacs (Tangle). La preuve de travail est directement comparable à celle du système Hashcash. Le but de la preuve de travail dans IOTA est d'empêcher le spam et l'attaque Sybil. Par conception, IOTA élimine le risque de centralisation de la validation.
La difficulté de la preuve de travail IOTA est assez faible pour être exécutée par la plupart des appareils modernes, y compris les ordinateurs portables et les téléphones, et peut être effectuée par l'appareil de l'expéditeur, l'appareil du destinataire ou externalisée vers un appareil tiers spécialisé. La preuve de travail IOTA est appropriée pour les plus petits microcontrôleurs.

### Validation des transactions

La validation d'une transaction est le processus par lequel la preuve de travail est exécutée par les demandes de transactions suivantes transaction selon un algorithme de sélection aléatoire. Comme beaucoup d'autres transactions répètent ce processus les unes sur les autres, la validation de la transaction en question accumule lentement assez de vérifications pour finalement atteindre un seuil de vérification minimum acceptable, tel que déterminé par le destinataire de la transaction. Lorsque ce seuil minimum est atteint, la transaction est confirmée.
IOTA est de nature similaire à d'autres protocoles basés sur la chaîne de blocs, dans lesquels le destinataire d'une transaction peut modifier son seuil de confirmation en fonction de sa tolérance au risque de double dépense. Néanmoins à l'heure actuelle IOTA préconise d'attendre la validation par le « Coordinateur » pour considérer la transaction comme acceptée par le réseau.

### Nombre de Iota en circulation

L'offre totale de IOTA est encodée sur 33 trits, ce qui équivaut à la valeur décimale 3$^{33}$. Le nombre total de IOTA en circulation est de (3$^{33}$-1)/2 ≈ 2,8 × 10$^{15}$. L'offre totale de IOTA est similaire en nombre à la plus petite fraction de Bitcoin, le satoshi : il y aura finalement un total de 2,1×10$^{15}$ satoshis. Contrairement au bitcoin, IOTA n'utilise pas de décimales ou de fractions d'un jeton et ne traite que des valeurs entières. Un avantage du traitement des unités IOTA sous forme de nombres entiers est d'éviter les problèmes d'arrondi décimal, ce qui peut conduire à des erreurs à virgule flottante dans un logiciel mal conçu. Malgré l'utilisation de jetons indivisibles, l'offre totale importante de IOTA et son absence de frais de traitement le rendent particulièrement adapté aux microtransactions.

### Portefeuilles

Un portefeuille stocke les informations nécessaires pour effectuer des transactions sur le réseau. Il contient les informations d'identification numériques qui permettent l'envoi et la réception de IOTA. Les jetons IOTA sont inscrits dans des adresses qui n'existent que sur le réseau Tangle, générées à partir d'un germe aléatoire (seed) : une succession de 81 caractères. La donnée d'un germe donne accès aux informations d'identification qui permettent d'envoyer ou de recevoir des IOTA vers / depuis les adresses qui lui sont associées.

### Germe aléatoire (seed)

Un germe aléatoire est la clé par laquelle les utilisateurs peuvent accéder au réseau IOTA, en générant des adresses et des transactions. Les germes sont composés de 81 caractères pour une sécurité optimale. Ces 81 caractères doivent être générés de manière aléatoire par l'utilisateur et se composent des lettres A-Z et du nombre 9, ce qui donne 27 possibilités par caractère. Dans le système ternaire, 81 = 3$^4$ et 27 = 3$^3$. Le nombre de germes de 81 caractères possibles est de 27$^{81}$ ≈ 8,7 × 10$^{115}$.

### Cryptographie

IOTA utilise la signature Winternitz (une variante de la signature de Lamport) au lieu de la cryptographie sur les courbes elliptiques (ECC). Non seulement les signatures basées sur le hachage sont plus rapides que l'ECC, mais elles simplifient grandement le processus de signature et de vérification et réduisent la complexité globale du réseau.
L'algorithme de Grover montre qu'un ordinateur quantique serait très efficace pour mener des attaques par force brute. Le processus de recherche d'un nonce cryptographique pour générer un bloc Bitcoin est particulièrement vulnérable à de telles attaques. À ce jour, une moyenne d'environ 2$^{68}$ nonces doit être vérifiée pour trouver un hachage approprié, et cette tendance augmente avec le temps. Un ordinateur quantique n'aurait besoin que des opérations O(√N) pour résoudre un problème du type ci-dessus qui nécessite des opérations O(√N)sur un ordinateur classique. Par conséquent, un ordinateur quantique serait de l'ordre de √2$^{68}$ ≈ 17 milliards de fois plus efficace à l'exploitation minière Bitcoin qu'un ordinateur classique. Cela illustre la sensibilité de Bitcoin (et les chaines de blocs homologues) à l'informatique quantique.
Cependant, dans IOTA, le nombre de nonces qui doivent être vérifiées pour trouver un hachage de transaction est seulement de l'ordre de 3$^8$. Le gain d'efficacité fourni par un ordinateur quantique dans le cadre du IOTA serait donc 3$^4$, ce qui est relativement insignifiant par rapport à l'exemple de susceptibilité Bitcoin ci-dessus. En fin de compte, IOTA est conçu de telle sorte que le temps nécessaire pour trouver un nonce n'est pas beaucoup plus grand que le temps nécessaire pour d'autres tâches nécessaires pour émettre une transaction de toute façon. La sécurité et la fonctionnalité du IOTA ne sont donc théoriquement pas menacées par l'informatique quantique.

## Unités

La plus petite unité de compte de cette monnaie est un Iota, d'après la plus petite lettre de l'alphabet grec. Les noms des plus grandes unités sont créés en ajoutant des préfixes – à la manière du système métrique – au mot Iota. On dit alors qu'un million de Iota équivaut à un MegaIota ou Miota (Mi). C'est d'ailleurs l'unité de base utilisée sur les plateformes d'échange proposant le Iota. Voici par ordre croissant les différentes unités reconnues :
| Iota | = 1 Iota | = 1 i | = 1 i |
| KiloIota | = 1 Kiota | = 1 ki | = 1 000 i |
| MegaIota | = 1 Miota | = 1 Mi | = 1 000 000 i |
| GigaIota | = 1 Giota | = 1 Gi | = 1 000 000 000 i |
| TeraIota | = 1 Tiota | = 1 Ti | = 1 000 000 000 000 i |
| PetaIota | = 1 Piota | = 1 Pi | = 1 000 000 000 000 000 i |
Cette notation ne doit pas être confondue avec celle des préfixes binaires dans laquelle 1 KiB vaut 1 024 octets.

## Histoire

IOTA a été fondé en 2015 par David Sønstebø, Sergey Ivancheglo, Dominik Schiener, et M. Sergueï Popov. Une quantité fixe de 2 779 530 283 277 761 Iota est alors créée. Quelques mois plus tard, le IOTA s'est ouvert au public via une phase de bêta-test.
En 2016, alors que les tests se poursuivent sur la bêta, le commerce de IOTAs a débuté de gré à gré entre les utilisateurs et ce pour une durée d'environ onze mois.
En mai 2017, la fondation IOTA a annoncé un investissement de 10 millions de dollars dans l'écosystème IOTA afin de promouvoir les collaborations avec les grandes entreprises, les projets communautaires, et de proposer des intentions d'embauche pour des développeurs. En juin, le IOTA est répertorié par sa première place de marché : la plateforme de négociation de la firme de capital de risque Bitfinex, qui lance le 13 juin 2017 un marché d'échange de IOTA. Bitfinex a investi « une somme à 7 chiffres » dans le IOTA ; il s'agit de son premier investissement direct dans une crypto-monnaie. Le cours le jour du lancement du marché d'échange s'élevait à environ 0.64 dollars américains par Miota. La plateforme SatoshiPay a par la suite annoncé son intention de quitter le bitcoin (à cause des frais de transactions qui augmentent avec la valeur du bitcoin) en faveur du IOTA dont les transactions sont sans frais.
En août, la fondation IOTA a établi un partenariat avec REFUNITE (en), la plus grande base de données de personnes disparues au monde, afin d'utiliser la technologie IOTA pour aider à réunir les familles pendant et après les conflits. De plus, le réseau Flash de IOTA (qui supporte des micropaiements à très grande vitesse voir de manière instantanée) est devenu opérationnel, avant les solutions similaires annoncées pour le Bitcoin (Lightning Network) et l'Ethereum (Raiden Network). Monster Cleaning Services de Nettoyage, une société basée à Londres (Royaume-Uni), a annoncé qu'elle accepterait dorénavant le IOTA comme moyen de paiement.
En novembre, la fondation IOTA a été officiellement déclarée comme organisme à but non lucratif en vertu du droit allemand avec son siège à Berlin. Peu de temps après, une plateforme Web d'achat/vente de flux de données en temps réel basée sur le Tangle est mise en ligne. LATTICE80, basé à Singapour, est un Fintech Hub (le plus grand de son secteur) qui a signé un accord pour ouvrir un laboratoire d'innovation autour du IOTA et de l'Internet des objets. De plus, la fondation IOTA a fait appel à Cybercrypt ApS pour concevoir sa prochaine version de sa technologie de hachage (Curl).
En février 2018, Robert Bosch Venture Capital (RBVC), la branche d'investissement du géant industriel allemand Bosch, a annoncé qu'il investissait dans IOTA. RBVC rejoint également le comité consultatif de la fondation IOTA.
En mars, ElaadNL a lancé la première station de recharge électrique pour laquelle l'authentification et le paiement sont effectués avec IOTA. Le chargeur fait partie du nouveau site d'essai situé dans le parc d'affaires Arnhems Buiten aux Pays-Bas.
En avril, Fujitsu présente un cas d'usage utilisant IOTA à la Foire de Hanovre en Allemagne.
Le 29 avril 2019, Jaguar Land Rover annonce son partenariat avec la fondation IOTA pour l'intégration de portefeuilles intelligents dans ses voitures. Le même jour, la ville d'Austin annonce un partenariat avec la fondation IOTA pour la réalisation d'un système d'identité digitale pour l'authentification et le paiement automatisé de services.
Le 28 mai 2019, un article a été publié, décrivant l'approche du projet « Coordicide », dans lequel les principales idées concernant le mécanisme de consensus, la protection contre les attaques, le contrôle du spam et l'auto-peering du réseau ont été présentés .
Le 2 juillet 2019 marque la sortie de Trinity, un portefeuille logiciel sécurisé pour les jetons IOTA, développé par la fondation IOTA.
Chronicle, la première version de stockage permanent de la Fondation IOTA a été lancée le 17 septembre 2019. Il permet aux propriétaires de nœuds de stocker facilement toutes les transactions IOTA dans une base de données rapide, interrogeable, sécurisée, évolutive et distribuée.
Le 11 février 2020, la Fondation Eclipse et la Fondation IOTA ont lancé conjointement le groupe de travail Tangle EE (Enterprise Edition). Tangle EE est destiné aux utilisateurs d'entreprise qui peuvent utiliser la technologie IOTA et permettre aux grandes organisations de créer des applications en plus du projet, où la Fondation Eclipse fournira un cadre de gouvernance neutre.
Le 12 février 2020, une vulnérabilité présente dans le portefeuille Trinity est utilisée par des pirates informatiques pour voler des fonds. La fondation IOTA décide alors d'éteindre son réseau.
Le 3 juin 2021, le réseau de test iota2devNet (Nectar) est activé, offrant la possibilité de créer ses propres jetons numériques sur un environnement complètement décentralisé (pas de minage externe)

## Controverses
### Failles de sécurité

Fin 2017, plusieurs chercheurs dont des membres du MIT ont publié un rapport dans lequel ils démontrent les faiblesses importantes du protocole de chiffrement Curl utilisé à l'époque par IOTA. Cette faille ainsi que la réaction de la fondation IOTA ont suscité des interrogations quant à la sécurité du protocole. Depuis, le protocole Curl n'est plus utilisé.

### Centralisation

Il a souvent été reproché à IOTA d'être un protocole centralisé, notamment à cause de l'utilisation du Coordinateur qui émet des transactions de référence sur le réseau. À plusieurs reprises le Coordinateur a dû être arrêté, entraînant l’arrêt du réseau IOTA. Depuis le 16 avril 2019, un nouveau coordinateur, nommé Compass, dont le code est open-source, émet les transactions de référence pendant la période de transition avant le passage au nouveau système de consensus ultrarapide décrit dans le projet « Coordicide ».
Le 12 février 2020, la fondation IOTA arrête son nœud coordinateur pendant plus d'une semaine, rendant de ce fait toute transaction impossible.

### Similarités avec le protocole de consensus Avalanche

L’algorithme de consensus qui choisit une transaction parmi plusieurs transactions en conflit ne doit pas nécessairement converger si plusieurs transactions en conflit apparaissent à peu près au même moment et qu'un nombre approximativement égal de participants préfèrent initialement chacune d'entre elles, car les transactions en conflit ne peuvent provenir que d'acteurs malveillants. Le protocole de consensus qui choisit entre plusieurs transactions en conflit proposé pour IOTA présente des similarités avec celui présenté pour le modèle Avalanche. La différence majeure réside dans la façon d'atteindre la finalité du consensus. Alors que le protocole Avalanche favorise l'apparition d'un état métastable pendant de nombreuses itérations de recherche de consensus, IOTA propose une méthode basée sur un tirage aléatoire des nœuds honnêtes, qui converge plus rapidement de manière significative.

## La Fondation IOTA

Les fondateurs de IOTA ont organisé une vente publique fin 2015 et collecté une valeur d'environ 500 000 $ de crypto-monnaies. La totalité de l'offre de jetons IOTA a été distribuée aux participants sans pré-allocation. Par la suite, les fondateurs de IOTA ont demandé à ces premiers détenteurs de jetons de rendre une partie de leurs avoirs, recevant environ 5% de la fourniture totale de jetons IOTA, pour financer le développement de la Fondation IOTA, officiellement créée à Berlin, en Allemagne, le 3 novembre 2017. Cette entité indépendante et neutre à but non lucratif vise à réunir les gouvernements et les industries pour aider à réaliser la vision de IOTA.

### Principaux objectifs

Les principales missions de la fondation sont la sécurisation de la couche du protocole IOTA, le développement de logiciels utilisant le protocole, l'éducation et la promotion, et la standardisation afin d'assurer l'adoption généralisée de IOTA pour les échanges liés à l'Internet des objets.

### Financements

La fondation détient une réserve de jetons IOTA provenant de dons de la communauté et de jetons non réclamés lors de la première vente publique. Elle est en outre subventionnée par les gouvernements pour effectuer de la recherche et du développement, et jouit de dons de particuliers et d'entreprises.

### Fonctionnement

La Fondation est régie par trois organes principaux : un conseil de direction pour définir et réaliser la vision de la Fondation et gérer les opérations, un conseil de surveillance pour guider et superviser la performance du conseil de direction, un comité consultatif pour fournir des conseils, une perspective et une orientation indépendants.