V. DE NOMBREUSES BLOCKCHAINS PROPRES À CHAQUE CRYPTOMONNAIE
A. LE SYSTÈME ETHEREUM ET L'ETHER
1. L'ouverture de nouvelles perspectives
Le protocole Ethereum a été élaboré par Vitalik Buterin . En décembre 2013, deux ans après son premier article, ce jeune programmeur russo-canadien de 19 ans publie une description de son projet Ethereum dans le but de lancer des applications décentralisées. Ce projet prend la forme d'un livre blanc, intitulé « Une nouvelle génération de plateforme pour les smart contracts et les applications décentralisées 26 ( * ) ». Pour Claire Balva, présidente de Blockchain France, « s'il y a une figure à retenir aujourd'hui dans le monde de la blockchain, c'est celle de Vitalik Buterin ».
Simon Polrot a expliqué que la validation d'un bloc sur Ethereum prend 15 secondes environ , contre 10 minutes sur Bitcoin mais que « la différence fondamentale entre les deux grandes blockchains réside dans le langage de programmation : à l'inverse du Bitcoin, celui d'Ethereum utilise un langage Turing-complet ( Turing Complete ) ».
Un tel système formel possède une puissance d'expression au moins équivalente à celle des machines de Turing (caractérisées par la « capacité potentielle de calculer tout ce qui est calculable »), offrant ainsi la possibilité de réaliser des boucles et de faire des fonctions récursives , ce qui n'est pas possible avec Bitcoin 27 ( * ) . Ces fonctions s'appellent elles-mêmes dans leur définition, autrement dit leurs valeurs peuvent être calculées en « revenant » sur elles-mêmes.
Le langage de programmation d'Ethereum a donc ouvert de nouvelles perspectives , notamment des possibilités d'automatisation d'opérations, mais aussi des risques plus grands en termes de sécurité car des hackers pourraient programmer un code leur permettant de détourner des ethers de manière répétée.
Pour Nicolas Houy, économiste au CNRS, « le langage Turing complete ouvre la porte aux bugs et aux malwares (programmes malveillants) ». Pierre Noizat, plutôt partisan du Bitcoin, estime que « la sécurité est antagoniste de la performance et de la praticité. Il y a une contradiction entre la volonté de faire une machine virtuelle haute performance pour beaucoup d'applications différentes et celle de faire du paiement avec les ethers ».
Selon les promoteurs d'Ethereum cet argument serait fallacieux, Jérôme de Tichey assure ainsi que l'écosystème Ethereum est « l'une des blockchains les plus robustes, si ce n'est la plus robuste. Bien que la technologie soit jeune, elle avance de façon extrêmement rapide. La plupart des blockchains n'ont pas le soutien nécessaire pour durer ou devenir stables en production. Nous recommandons de ne travailler que sur des plateformes bien établies et soutenues par une communauté ».
Le langage de programmation d'Ethereum permet l'essor des « smart contracts », des programmes qui, en réalité, ne sont ni vraiment des contrats ( contracts ), ni vraiment intelligents ( smart ), sur lesquels le présent rapport reviendra plus tard.
Alors que le protocole du Bitcoin permettait de coder des aspects assez basiques, Ethereum a été conçu pour dépasser ces limites , puisque cette blockchain lancée il y a trois ans en juin 2015, est selon un expert « celle qui intéresse le plus les milieux d'affaires, qui voient en elle à la fois une version « politiquement correcte » du Bitcoin, sans l'arrière-fond idéologique anarchiste de la cryptomonnaie originelle, et un outil aux possibilités plus larges ».
Ethereum permet, de plus, l'émergence de nouveaux modes de collaboration grâce à la baisse des coûts de transaction entre collaborateurs. D'après Vitalik Buterin, il faut voir son système comme un ordinateur mondial : ce que Bitcoin permet pour le paiement, Ethereum projette de le faire pour toute chose pouvant être programmée 28 ( * ) .
Le réseau Ethereum est capable d'inclure jusqu'à 1 350 000 transactions par jour dans le registre, compte une dizaine de milliers d'ordinateurs sur lesquels est répliqué le registre et comprend le solde en ethers de millions de comptes et les codes de plusieurs milliers d'applications.
Depuis 2015, le réseau, sans autorité centrale, n'a toujours pas connu de panne majeure ni de modification pirate, à l'exception de l'attaque notable contre « TheDAO » vue plus loin. Les smart contracts comportent le plus souvent leur propre « bug bounty » (système de récompenses pour les personnes ayant rapporté des bugs), ce qui permet d'améliorer la qualité du code.
2. Des problématiques spécifiques
Le passage d'un minage de type Proof of Work à un minage de type Proof of Stake est prévu , avec le but de limiter la consommation d'électricité du réseau, mais il est repoussé depuis deux ans (systèmes CASPER et Serenity). Cette question épineuse n'est pas encore tranchée par les développeurs. Il faut souligner que le mot mineur ne s'applique que pour les protocoles avec preuve de travail, les autres systèmes de consensus, dont la POS, recourent plutôt aux termes « noeuds participant à la surveillance du réseau » ou « noeuds validateurs ».
Actuellement, le fonctionnement du réseau est donc proche de celui du Bitcoin et en partage les principales caractéristiques car il repose encore sur la même méthode de consensus : immutabilité, transparence, infalsifiabilité, réplicabilité... Le défi du passage à la preuve d'enjeu sera de garantir le maintien de ces qualités.
Histoire de l'écosystème Ethereum
Source : Ethereum France
Ethereum prévoit un standard pour créer sa propre monnaie ou token à l'intérieur de la blockchain , appelé ERC20. Depuis juillet 2015, il y a ainsi eu 66 268 smart contracts ERC20 déployés sur Ethereum (au 5 avril 2018), ce qui en fait le standard pour les smart contracts le plus populaire.
En outre, chaque noeud du réseau exécute l'intégralité des calculs de la machine virtuelle Ethereum (ou EVM). Pour s'assurer que l'exécution d'un code s'achève au terme de chaque opération effectuée (code opération ou OPCODE), il est dépensé une quantité de « gaz » prédéfinie (le gaz est un coût ou une rémunération infinitésimale en ethers). Chaque transaction est constituée d'OPCODE et nécessite donc une certaine quantité de « gaz » (« Gas Limit ») : l'utilisateur définit pour sa transaction une quantité de « gaz » nécessaire au traitement de la transaction ; si la limite est dépassée, la transaction est enregistrée mais sans effet. La formule du coût d'une transaction est donc : l'utilisation de « gaz » multipliée par le prix du « gaz » ou « GasUsed x GasPrice (exprimé en ether) ». Comme pour le bitcoin les coûts de transaction sont reversés au mineur qui crée le nouveau bloc.
Ethereum connait des problèmes sérieux en termes de capacité de montée en charge (taille de sa blockchain ) et de fonctionnement centralisé d'un réseau présenté comme décentralisé. En effet, selon Grégory Guittard « de moins en moins de noeuds complets valident à l'heure actuelle cette blockchain ETH dans son entièreté (...). Il est théoriquement possible de monter un noeud complet Ethereum sur tout matériel informatique mais dans la pratique les ressources demandées nécessitent un matériel trop coûteux et spécifique pour qu'un opérateur lambda monte un noeud complet aussi facilement que sur Bitcoin, c'est pourquoi la plupart des noeuds complets sont aujourd'hui gérés et entretenus par une seule entreprise privée, Infura » 29 ( * ) .
Ainsi, certaines applications sur le réseau sont susceptibles de ne plus pouvoir fonctionner lors de pics d'utilisation . Ce fût par exemple observé avec la première vague de « crypto-kitties », cette application de collection et d'échanges de « chats virtuels », plus grand succès à ce jour de la blockchain Ethereum, ayant alors totalement congestionné le réseau.
3. L'absence de recours au protocole « UTXO »
Pour s'assurer collectivement de l'équilibre des entrées et des sorties, sans recourir à un tiers de confiance, le protocole du bitcoin prévoit un système particulier, qui a été repris par d'autres cryptomonnaies.
Chaque transaction, visible car inscrite dans un bloc, inclut ainsi la suppression d'une « sortie » ( output ) appartenant à l'émetteur, et la création de trois autres . L'une est à destination du récepteur, une autre à destination du mineur (frais de transaction), une troisième, éventuelle, correspond au change et est renvoyée à l'émetteur, c'est elle qui est appelée Unspent Transaction Output (UTXO). Elles font partie des innovations introduites par Bitcoin qu'Ethereum a choisi d'écarter .
Décomposition d'une transaction en bitcoin
Source : OPECST
Un des principaux arguments en faveur de l'approche UTXO est la montée en charge ou scalabilité. Étant donné que les soldes sont stockés comme un ensemble de transactions sortantes, l'ordre dans lequel elles sont effectuées n'a pas d'importance. Ce système permet donc d'éviter qu'un tiers de confiance ne soit sollicité dans le but de tenir à jour les comptes des utilisateurs.
Cette technique utilisée d'abord par le bitcoin puis par d'autres cryptomonnaies n'a pas été retenue pour l'ether , car elle présente certaines limites. Un tel système suppose en effet la création de plus en plus d'UTXO, qui ont chacune une valeur de plus en plus faible, ce qui nécessite un espace de stockage croissant et crée peu à peu des « poussières de comptes », qui peuvent finir par être lourds pour le réseau. Il explique notamment aussi les disparités de capacité entre Bitcoin et des réseaux de paiement traditionnels (200 000 transactions quotidiennes en bitcoins contre 150 millions pour Visa par exemple).
D'autres cryptomonnaies, en plus de l'ether, ont donc plutôt choisi de fonctionner avec un équilibrage des comptes et soldes comparable à celui d'un système bancaire classique.
* 26 Vitalik Buterin, « A Next-Generation Smart Contract and Decentralized Application Platform» , décembre 2013. Cf. https://github.com/ethereum/wiki/wiki/White-Paper en français : http://www.asseth.fr/2016/11/09/traduction-whitepaper-ethereum/
* 27 Ce système permet toutefois une programmabilité a minima de la monnaie.
* 28 Cf. la citation en anglais : « Think of Ethereum as a world computer. What Bitcoin does for payments, Ethereum does for anything that can be programmed ».
* 29 Cf. https://journalducoin.com/blockchain/ethereum-la-blockchain-aux-pieds-dargile/