L’ERC-20 introduit une norme pour les #jetons fongibles sur la #Blockchain Ethereum.
Définition
Le standard ERC (Ethereum Request for Comments) a été proposé dans un document technique en novembre 2015 par Fabian Vogelsteller et #Vitalik Buterin, est une norme de jeton qui implémente une API pour les jetons au sein des contrats intelligents de l’écosystème de la Bockchain Ethereum. Il fonde donc les bases qui régissent les conventions facilitant les interactions entre les applications et les contrats. ERC-20 est le format le plus largement utilisé pour construire tout type de projet basé sur des jetons.
Fonctionnalités du standard ERC-20
L’objectif du projet Ethereum est de développer des cas d’utilisation des blockchains au-delà des paiements pair-à-pair comme l’a fait Bitcoin, pour servir de plateforme de lancement d’#Applications Décentralisées (DApps) et #Contrats Intelligents (Smart-contract). Il est donc question pour les développeurs de mettre sur pied un système ayant des fonctionnalités énormes. Les fonctionnalités inhérentes au standard ERC20 sont les suivantes :
-la totalSupply : fonction qui renvoie l’offre totale de jetons du contrat.
-la #balance : cette fonction retourne le solde du compte détenu par l’adresse indiquée.
-le #transfert et transfertFrom du jeton : la fonction transfert permet de transférer une quantité de jetons d’une adresse vers une autre, transfertFrom est une alternative permettant plus de programmabilité. La fonction est exécutée si le solde du débiteur est assez suffisant pour couvrir les gas et le montant en question.
-le #approve : cette fonction permet au dépensier (_spender) de retirer plusieurs fois sur un compte propriétaire (_owner). Si cette fonction est appelée à nouveau, elle écrase l’allocation actuelle. Elle a la particularité de limiter le montant qu’un contrat peut retirer du solde.
-le #allowance : renvoie le montant que le dépensier ‘_spender’ est toujours autorisé à retirer du compte propriétaire ‘_owner’.
D’autres fonctions facultatives peuvent aussi être mise sur pied par le développeur, il s’agit de :
-le #nom du jeton : à l’aide de la fonction ‘name’ le développeur d’un projet définit le nom qu’il souhaite donné au jeton du projet.
-le symbole du jeton : la fonction ‘symbol’ permet de donner le symbole du jeton. Ce symbole permet généralement au Exchange d’afficher le jeton avec d’autres paire pour le trading. Par exemple, BTC est le symbole de bitcoin, ETH celui d’Ether.
-la décimale du jeton : elle représente la divisibilité du jeton. Par exemple, si un jeton a une décimale de 8, alors ce jeton est divisible par 108. Ceci signifie diviser le montant du jeton par 100000000 pour obtenir sa représentation utilisateur.
Un jeton reposant sur un smart-contract conforme à ERC-20 doit notamment permettre de spécifier un nombre maximal de jetons pouvant être créés, établir pour chaque adresse (nœud) du réseau, combien de jetons sont détenus, transférer des jetons vers un usager donné, échanger des jetons d’un usager à un autre, ne pouvoir envoyer des jetons à quelqu’un d’autre que si on les détient et avoir une technique d’approbation des transactions.
Le standards ERC223, ERC621et ERC827 sont des améliorations qui ont toutefois été proposés pour pallier aux bugs que peuvent être sujet les jetons ERC-20. Prenons pour exemple le bug des protocoles Comp et Poly Network.
Conclusion
Une fois les nouveaux jetons ERC-20 créés, ils sont automatiquement interopérables avec les services et logiciels prenant en charge la norme ERC-20 (portefeuilles logiciels, portefeuilles matériels, exchanges, etc.). A côté des jetons ERC-20, il existe d’autres types de standards comme ERC-727 (pour le #tokens non fongible NFT) sur le réseau Ethereum, BEP-20 sur la Build n Build chain, TRC-20 sur le réseau Tron ou encore WRC-20 sur Wanchain. Le programmeur devra donc maitriser le standard avant de coder son application sur une blockchain.
Sources : https://www.bitpanda.com/, https://eips.ethereum.org/, https://academy.binance.com/, https://www.futura-sciences.com/, https://fr.wikipedia.org/wiki/ERC20, https://ethereum.org/,
Merci pour votre acticle instructives
effectivement tres inscructif