La reconversion, parent pauvre des politiques d…
Décryptage des tests effectués par Sia Partners de l’ambitieux projet de blockchain et de cryptomonnaie de Telegram.
La célèbre application de messagerie chiffrée russe, utilisée par plus de 350 millions de personnes – dont des membres du gouvernement français – va bientôt avoir sa cryptomonnaie. Après son ICO d’1,7 milliards de dollars en prévente en 2018 (la deuxième plus grosse de l’histoire, derrière EOS et ses 4 milliards de dollars la même année) le projet de Nikolai Durov – mathématicien et développeur, fondateur de VK, le Facebook russe, et de Telegram – était l’un des plus attendus de la sphère crypto.
La cryptomonnaie, nommée « Gram », était annoncée comme fonctionnant sur une blockchain, le « Telegram Open Network (TON) », possédant des performances exceptionnelles sur le papier dès ses premiers white paper. De plus amples détails techniques et une partie du code source avaient été dévoilés en mai 2019, et le test net, son code source ainsi que de la documentation et un block explorer[1] ont été mis en ligne le 6 septembre 2019. La sortie officielle devrait être en octobre 2019, étant donné que la limite contractuelle lors de l’ICO avait été fixée au 31 octobre 2019.
Tout d’abord, Telegram avait annoncé un wallet intégré au sein de son application pour tous ses utilisateurs, ce qui représente 365M d’utilisateurs, de loin la plus grande base d’utilisateurs pour une application blockchain (Bitcoin et Ethereum possèdent pour référence entre 40 et 50M de portefeuilles sur leurs réseaux, et donc considérablement moins d’utilisateurs uniques). C’est donc un premier défi, celui de la scalabilité, auquel ont dû faire face les équipes de développement de Telegram, réputées pour leur talent. Leur solution a été d’utiliser le « sharding», ou autrement dit de créer une « blockchain de blockchains »
Cette architecture de données correspond à la parallélisation de plusieurs blockchains pour augmenter l’efficacité du traitement des informations. Elle a été démocratisée par Ethereum, qui veut l’utiliser pour augmenter son débit de transaction, Polkadot et Cosmos Network, ou encore EOS.
L’approche de TON a été de créer une « masterchain » qui regroupe des informations générales du réseau, les nœuds, et la liste des sous-chaînes, appelées « workchains » (jusqu’à 232), où toutes les données sont stockées. Ces dernières sont divisées en « shardchains » (jusqu’à 260) qui ne s’occupent seulement d’un certain nombre de comptes du réseau. TON a appelé la topologie de son réseau « Infinite Sharding Paradigm », pour son système permettant la création d’un nombre presque infini de blockchains en parallèle.
En plus de ce « multi-blockchain system », TON utilisera le protocole de consensus Proof of Stake, où les nœuds valident des blocs sur des workchains désignées, en fonction du nombre de jetons qu’ils possèdent. TON a créé une véritable économie et des rôles plus ou moins complexes pour son réseau :
D’après TON, les problèmes rencontrés par EOS ou Polkadot pour la scalabilité sont résolus dans leur projet grâce à l’utilisation du Proof of Stake (PoS) (et non le Delegated PoS (DPoS) comme EOS), l’infinite sharding et l’introduction dans leur white paper d’«Instant Hypercube Routing », en d’autres termes l’utilisation de la théorie des graphes pour optimiser la communication entre blockchains dans un réseau à 2n nœuds.
TON se targue d’être la première blockchain de 5e génération : Bitcoin étant la 1e génération, Ethereum et l’introduction des smart contracts la 2e, Ethereum 2.0 et sa scalabilité grâce au protocole Casper (PoS) la 3e et EOS, Polkadot ou encore Cosmos et leurs « blockchains interopérables » la 4e génération.
TON proposera donc toutes les innovations précédentes, dont les smart contracts, en utilisant le langage Fift, un langage de programmation à pile[2]. Les données sont manipulées par la machine virtuelle à travers tous les shards, où elles se comportent comme des cellules reliées entre elles.
L’utilisation des smart contracts a pour but le développement d’applications décentralisées (Dapps) sur la blockchain, et sera par exemple utilisé pour créer de l’échange de valeur automatisé à travers les bots (programmes intelligents avec lesquels on peut interagir dans l’application) de Telegram, très souvent utilisés sur les canaux de communication.
Les performances affichées par TON sont potentiellement de plusieurs millions de transactions par seconde, un nombre encore supérieur aux 256 000 transactions par seconde annoncées par Alipay lors de son pic d’utilisation. La validation d’une transaction se fait en environ 5 secondes.
Le jeton du réseau, Gram, ou encore TON Coin, sera disponible en 5 milliards d’exemplaires à sa sortie et divisible jusqu’à 10-9 fois, et sa masse monétaire augmentera de 2% par an, à travers les récompenses pour les nœuds lors de la validation de blocs.
Telegram, en plus de créer une blockchain à partir de rien et un portefeuille sécurisé implémenté nativement dans l’application Telegram, a créé différents services. TON Payments, un réseau off-chain utilisant des canaux d’échanges pair-à-pair (la même technologie que le Lightning Network) permet des paiements instantanés, TON Storage, une technologie de stockage décentralisé pour stocker des fichiers lourds (similaire à IPFS), ou encore des services de noms de domaine (TON DNS) ou de proxy et d’anonymisation pour les nœuds (TON Proxy).
La documentation actuellement disponible[3] n’est que très primitive. Lors de l’installation du nœud léger (ne stocke pas la blockchain en entier mais se connecte à un nœud complet distant pour avoir les données), des connaissances en langage assembleur et en programmation systèmes sont nécessaires afin de pouvoir créer un smart contract, ce qui complexifie la tâche. L’installation du logiciel est plus difficile que pour un client Ethereum ou Libra, mais l’interface d’utilisation est très complète. Contrairement à Bitcoin ou Ethereum, et de la même manière que sur Ethereum 2.0 et sur EOS, un portefeuille TON n’est pas contrôlé par une clé privée mais par un smart contract (lui-même contrôlé par une clé privée). Ainsi, pour créer un portefeuille, il faut compiler un smart contract en indiquant notre clé publique, et l’envoyer vers un serveur distant pour qu’il crée notre propre portefeuille.
La compilation de smart contracts et l’envoi de transactions sur le réseau sont très rapides, de l’ordre de quelques secondes, mais plusieurs étapes sont nécessaires afin d’envoyer une transaction ou un smart contract, en attendant que la communauté mette en place des outils plus simples d’utilisations.
Finalement, ce projet très ambitieux au départ semble tenir ses promesses au niveau technique, c’est l’une des meilleures technologies blockchain sortie à ce jour. Néanmoins, Telegram n’a pas fourni un effort aussi important que Facebook au niveau de la communication et de la documentation pour faciliter la prise en main du logiciel blockchain TON pour les développeurs et les administrateurs systèmes. La documentation est peu lisible, le blockchain explorer n’offre qu’un niveau d’information minimal sur le réseau et ne possède pas de guide d’utilisation. Enfin, il n’y a pas eu de communication officielle de la part de Telegram sur le projet.
Mis à part les communautés russes et chinoises, la communauté blockchain ne s’est pas encore emparée du sujet et il faudra un peu de temps avant que le logiciel TON soit pleinement utilisable pour tous les développeurs.
De plus, des doutes avaient été émis dès les premiers white papers concernant le manque de preuves mathématiques du fonctionnement du réseau et pour des questions de sécurité non adressées : il n’y a aucune approche dans les livres blancs de la résistance en cas d’attaques classiques (Sybil, Eclipse, Double Dépense, 51%, etc.), ce qui a dérangé de nombreuses personnes au sein des communautés blockchain[4]. La documentation et le travail communautaire de test du réseau n’auront que quelques semaines pour convaincre le grand public de la viabilité du Gram, avant sa sortie officielle en octobre.
[1] Outil permettant de visualiser la blockchain et ses données à travers une interface utilisateur intuitive
[2] Les langages de programmation à pile sont moins simples à prendre en main que les langages orientés objet comme Solidity ou Javascript et ils offrent moins de possibilités, mais ils sont potentiellement plus efficaces dans la gestion de la mémoire et permettent une détection de bugs plus simple
[3] Regroupée sur https://test.ton.org/, et le code source sur Github https://github.com/ton-blockchain/ton
[4] https://ethresear.ch/t/telegram-sharding/595/9 et https://davidgerard.co.uk/blockchain/2018/12/29/the-telegram-icos-ton-bl...