Avec l’arrivée de nombreuses levées de fonds conduites au travers d’ICOs en 2017, les tokens ERC-20 ont beaucoup fait parler d’eux.
D’après les statistiques fournies par CoinSchedule, ces ICOs auraient permis de lever cette année plus de 3,6 milliards de dollars. Certains projets comme Filecoin ou Tezos ont d’ailleurs pu être financés, à eux seuls, à hauteur de plus de 200 millions de dollars.
Mais qu’est ce qu’un token ERC-20 ? Avant de répondre à cette question, il convient de présenter la technologie blockchain sur laquelle ces actifs numériques s’appuient.
Les tokens ERC-20 : un pur produit de la technologie blockchain
Les blockchains sont des registres sécurisés et distribués, qui permettent de s’assurer que les transactions ne puissent être falsifiées.
Le Bitcoin fut la première monnaie numérique a avoir recours à cette technologie pour enregistrer les transactions effectuées sur son réseau. Son (ou ses) développeurs ont façonné un protocole innovant, qui permet de transférer de la valeur sans avoir à faire confiance à une autorité tierce.
Pour la première fois, il était ainsi possible de s’appuyer sur les données fournies pas le réseau (les soldes des comptes, les transactions passées,…) sans avoir à faire confiance à un organisme centralisé.
- À lire également : Explication simple du fonctionnement de la technologie blockchain
Mais la blockchain du Bitcoin est relativement limitée : elle a été imaginée il y a près de 10 ans – une éternité dans un tel écosystème. Qui plus est, elle a été conçue uniquement dans le but de permettre des paiements – alors que la technologie blockchain peut supposer de nombreux autres cas d’usage.
D’où l’arrivée d’Ethereum.
Ethereum est un réseau blockchain qui permet de déployer des programmes, appelés « smart contracts » (des « contrats intelligents »).
Lancée en 2014 par une petite bande d’ingénieurs, Ethereum a été imaginée pour créer « un ordinateur mondial », qui puisse permettre à chaque développeur de concevoir des smart contracts et de les déployer sur sa blockchain.
Un smart contract peut être présenté comme un actif numérique qui comporte des fonctions permettant d’échanger de la valeur et de vérifier les soldes des détenteurs. Ces contrats « auto-exécutants » vont pouvoir être utilisés dans de nombreux secteurs économiques.
Les développeurs vont par ailleurs pouvoir élaborer des applications décentralisées (dApps) à partir de ces smart contracts.
Et pour fonctionner, ces applications vont s’appuyer sur des tokens, qui constituent eux-mêmes des smart contracts.
Un token est géré par un code informatique représentant une fonction qui va être associée à une base de données. Ce code va définir la manière dont va se comporter le token, et la base de données va permettre de savoir combien chaque portefeuille détient de tokens. Si un utilisateur, ou un autre smart contract Ethereum, envoie un message au contrat de ce token sous la forme d’une « transaction », le code va mettre à jour la base de données correspondante.
Pour faciliter la création de ces tokens, les développeurs d’Ethereum ont décidé, dans la foulée, de mettre en place une norme spécifique : ERC-20.
Mais que signifie token ERC-20 ?
ERC-20 (« Ethereum Request for Comments 20 ») constitue une norme à laquelle les tokens Ethereum peuvent se soumettre. Elle permet de définir la manière dont vont se comporter de nouveaux tokens au sein de l’écosystème Ethereum.
La norme ERC-20 est liée à un éventail de 6 fonctions qui vont être reconnues par les autres smart contracts déployés sur la blockchain Ethereum. Celles-ci comprennent, par exemple, la manière dont va être transférée un token, ou encore la façon dont le réseau va pouvoir accéder aux informations relatives à ce token (son symbole, son nom, l’offre en circulation,…). Elle va également permettre de définir un standard qui offrira la possibilité à d’autres smart contracts de communiquer facilement avec elle.
Le recours à ces tokens procure de nombreux avantages : plus d’uniformité, moins de risque, moins de complexité,… Alors que les développeurs devaient auparavant réinventer la roue en implémentant leurs propres versions de certaines fonctions basiques, ils peuvent désormais s’appuyer sur une norme claire et simple à utiliser.
Les tokens ERC-20, des actifs financiers qui s’échangent sur les marchés
Voici quelques exemples de tokens ERC-20 :
- Augur (REP)
- Gnosis (GNO)
- Veritaseum (VERI)
Ces tokens constituent des actifs qui peuvent être envoyés et reçus, comme on le ferait avec n’importe quelle crypto-monnaie. Ils peuvent prendre des formes diverses : des points de fidélité, des objets physiques, des « skins » dans des jeux vidéo,…
Des startups vont par ailleurs se voir offrir la possibilité de lever des fonds en proposant ces tokens au travers d’ICOs. Il convient toutefois de préciser que la plupart de ces tokens ne représentent pas une part de ces sociétés, mais des « utility tokens » qui pourront être utilisé sur la plateforme qu’elles s’apprêtent à proposer.
ERC-20 semble avoir créé un cercle vertueux : cette norme donne confiance aux investisseurs, qui savent qu’ils pourront facilement échanger leurs tokens. Ceci les amène à participer à d’autres ICOs, ce qui encourage les développeurs à lancer de nouveaux projets (même si seule une poignée de ceux-ci sont vraiment intéressants). Ce standard permet au réseau d’accueillir de nombreuses technologies innovantes, qui valorisent la blockchain Ethereum.
Ces tokens ERC-20 n’ont toutefois pas de valeur intrinsèque : c’est la confrontation entre l’offre et de la demande qui va fixer leur valeur, en s’appuyant notamment sur le potentiel que recèle l’application sur laquelle ils peuvent être utilisés. Il vont ainsi pouvoir être échangés sur des plateforme spécialisées (Bittrex, Binance, Etherdelta,…).
Voici par exemple l’évolution du cours d’Augur (REP) sur l’année 2017 :
Sur les marchés, Augur peut être échangée contre des crypto-monnaies (ETH, BTC, USDT,…) mais également contre des monnaies fiduciaires :
C’est l’appétence des investisseurs pour le token ERC-20 Augur qui va permettre de fixer sa valeur. Celle-ci sera susceptible d’évoluer en fonction de divers éléments : l’avancée du projet, les rumeurs qui arriveront aux oreilles des investisseurs, les évolutions de tokens concurrents,…
Les tokens ERC-20 peuvent être transférés d’un portefeuille Ethereum à un autre
Ces tokens diffèrent des autres crypto-monnaies, puisqu’ils s’appuient tous sur un seul et unique réseau : le réseau Ethereum.
Ils vont ainsi être « stockés » dans des adresses Ethereum, et vont pouvoir être échangés au travers d’inscriptions effectuées sur cette même blockchain.
Intéressons-nous à cette transaction, qui fait intervenir un autre token ERC 20 :
https://etherscan.io/tx/0x2e81009efe3c00f4869ac4a39fa9b106d5b9fb14d73e98a70d7c5f6f96f4d807
À première vue, il semblerait d’une transaction « vide » – on voit que le montant d’Ether envoyé est égal à zéro. Mais si l’on regarde d’un peu plus près :
On peut constater qu’environ 2,77 tokens OmiseGo (OMG) ont été envoyés d’une adresse Ethereum vers une autre.
On peut également voir que la transaction « Contract 0xd26… » fait référence à un smart contract déployé sur le réseau Ethereum. Il s’agit du smart contract d’OmiseGo – une application qui va gérer la distribution et le transfert de tokens OmiseGo au sein du réseau Etheruem.
Pour transférer des tokens, il va falloir par ailleurs régler des frais au réseau Ethereum. Ceux-ci vont permettre de récompenser les « mineurs » qui assurent le bon fonctionnement du réseau et l’ajout des transactions dans de nouveaux blocs.
L’ensemble des tokens ERC-20 sont ainsi échangés sur le réseau Ethereum, et une seule et unique adresse Ethereum va pouvoir stocker différents tokens, comme c’est le cas de celle-ci :
Après ERC-20, ERC-223 ?
Même si elle semble susciter un certain enthousiasme auprès des développeurs, qui sont nombreux à se conformer à ses règles, ERC-20 reste une technologie expérimentale.
L’une des problématiques significatives rencontrées par les utilisateurs est liée au fait que des tokens envoyés directement à un smart contract seront perdus. Le contrat d’un token ne peut répondre à une tentative de transfert direct, ce qui va provoquer la « perte » du token associé à ce transfert.
D’après ce qu’indiquait CoinDesk à la mi-2017, environ 70 000 dollars de tokens auraient été perdus du fait de ce simple problème.
Mais des solutions sont en préparation. Le standard ERC-223 cherche à résoudre ce problème un implémentant au contrat associé au token une fonction « tokenFallback », qui permettra d’éviter que le contrat ne conserver les tokens qui auraient été envoyés vers celui-ci de manière accidentelle.
Notez qu’il est possible de trouver sur le site officiel d’Ethereum un tutoriel permettant de comprendre comment créer son propre token ERC-20.
Références : Consensys, Investopedia, Coindesk, Etherscan, CoinMarketCap, TheEthereumWiki