Le token standard de l'Ethereum (ERC20) est utilisé pour les contrats intelligents sur le réseau Ethereum. Développé en 2015, ERC20 définit une liste commune des règles que le jeton de l'Ethereum doit mettre en œuvre. Il offre aux développeurs la possibilité de programmer la circulation de nouveaux jetons dans l'écosystème Ethereum. Ce jeton est devenu populaire avec le financement participatif des entreprises via les ICO. Les tokens ERC20 utilisent du « gas » pour les frais d'opérations. Ils peuvent être achetés en Ethereum. Les transactions avec le plus de gas seront traitées plus rapidement par la Blockchain.
Bases
ERC-20 est une norme technique utilisée pour émettre et implémenter des jetons sur la blockchain Ethereum
Elles bénéficient de tous les avantages de cette technologie, mais subit les inconvénients.
Par exemple :
- Les échanges de tokens sont soumis aux mêmes frais de prix du Gas lié à la Blockchain Ethereum
- Quand il y a saturation du réseau, les transferts de token se font plus lentement, comme pour l'Ethereum.
Un token ERC20 peut être une monnaie, des actions d'un entreprise, des points de loyautés, etc...
Création des tokens (non ERC20)
Tous les tokens (ERC20 ou non) sont créée par un Smart Contract. Ces Smart Contract sont alors en charge de :
- La définition d'un nombre total du nouveau token
- La gestion des transactions liées à ce token
- La gestion des balances d'une adresse
Pour obtenir des tokens, il faut payer en Ethereum. Par exemple, Pour 2 Ethereum, je peux obtenir 15 tokens proposé par le SmartContract.
Risques
L'un des risques majeurs des Smart Contract (non ERC20) est que dès qu'il est déployé, il ne peut plus être modifié.
Cela peut être catastrophique si le Smart Contract est mal développé. S'il possède des bugs critiques, c'est trop tard. Entre 2015 et 2016, il y eut plusieurs exemples :
- Les tokens ne partent pas toujours, voir jamais, au bon destinataire (c'est le Smart Contract qui gère les transactions des tokens)
- Les tokens peuvent être perdus
- les développements de bases liés de sécurité n'ont pas été intégrés, et des pirates peuvent alors voler ces tokens
De plus, l'un des gros inconvénients : si l'on veut que le token soit disponible et/ou échangeable dans un site d'Exchange, comme Binance ou Coinhouse, celui-ci doit développer un morceau de code spécifique, juste pour pouvoir communiquer avec le Smart Contract.
Smart Contract ERC20
Avant la création d'ERC20, chaque entreprise qui développait une smart Contract devait ré-inventer la roue en redéveloppant plusieurs méthodes, chacun à sa manière.
Cela impliquait que pour chaque Smart Contract distinct, les sites d'Exchanges étaient obligé eux-aussi, de développer un morceau de code pour s'adapter au token en question.
L'ERC20 a alors répondu à une demande majeure, un premier pas vers une uniformisation des tokens de blockchain.
Les guidelines ERC20 exigent que le Smart Contract développe 6 fonctions obligatoires et 3 optionnelles.
Les 3 fonctions optionnelles :
- Pour donner un nom : WikiToken
- Pour donner un Symbol : WKT
- Pour définir le nombre de décimales : 8
Les 6 fonctions obligatoires :
- Fonction totalSupply : La gestion du nombre maximal de token. Le smart contract doit pouvoir dire stop à la création de token dès que la limite a été atteinte.
- Fonction balanceOf : La gestion des balances. Le smart contract doit pouvoir dire combien une adresse possède de Token
- Fonction transfer : Le smart contract utilise cette méthode pour envoyer des tokens provenant du fournisseur, à un utilisateur.
- Fonction transferFrom : Le smart contract gère le transfert de tokens entre utilisateur
- Fonction approve : Le Smart contract détermine s'il peut donner des tokens à un utilisateur, en vérifiant que le nombre de tokens en circulation n'a pas atteint sa limite.
- Fonction allowance : Le smart contract vérifie que l'utilisateur qui veut envoyer des tokens aie un montant minimum pour effectuer son transfert.
En matière de programmation, le développeur qui doit créer la Smart Contract, doit simplement implémenter l'Interface ERC20.
Déploiement et succès
Dès son implémentation fin 2016, il y a eu un engouement majeur pour la blockchain Ethereum, grâce à la simplification de l'utilisation des tokens.
L'ERC20 est adopté par tous les sites d'Exchange du monde, comme Binance ou HitBTC, par sa facilité. Il leur suffit simplement de développer les interactions des 9 fonctions ERC20, et le catalogue de tokens proposé par ces sites explose. Dès qu'une personne lambda créé un token ERC20, il est directement proposable sur ces sites.
Mi-2017, au bout de 6 mois d'existence, il était si facile de créer des tokens, que tout le monde pouvait créer un Smart Contract en moins de 2 minutes sur des sites spécialisés, comme Token Factory, en spécifiant juste le nom et le nombre de tokens maximum2.
Fin 2017, un an après l'adoption d'ERC20, Etherscan recensait plus de 40000 tokens différents. De plus, ces différents projets ont levé plus de 4 milliard de dollars grâce à ERC20.