Table des matières
Introduction
Qu'est-ce que la norme ERC-20 ?
Faits en bref sur le jeton Ethereum
Comment les jetons ERC-20 sont-ils générés ?
Quelles fonctions l'ERC-20 a-t-il ?
Coin stable
Jetons de sécurité
jeton utilitaire
Puis-je participer au minage de jetons ERC-20 ?
Avantages et inconvénients des jetons ERC-20
Avantages des jetons ERC-20
Inconvénients des jetons ERC-20
Quelles sont les différences entre ERC-20, ERC-1155, ERC-223 et ERC-721 ?
Résumer
Introduction
Ethereum a été fondée par Vitalik Buterin en 2014 et se positionne comme une plateforme open source de lancement d'applications décentralisées (DApps). La motivation de Buterin pour créer cette nouvelle blockchain provenait en grande partie du manque de flexibilité du protocole Bitcoin.
Depuis sa création, la blockchain Ethereum a attiré de nombreux développeurs, entreprises et entrepreneurs, donnant naissance à une industrie émergente de contrats intelligents lancés par les utilisateurs et d'applications distribuées.
Dans cet article, nous examinerons la norme ERC-20, qui est un cadre important pour la création de jetons. Bien qu’appliqué uniquement au réseau Ethereum, il inspire d’autres normes de blockchain telles que le BEP-2 de Binance Chain.
Qu'est-ce que la norme ERC-20 ?
Dans Ethereum, le nom complet d’ERC est Ethereum Request for Comments, qui est une demande de commentaire Ethereum. Ces documents techniques décrivent les normes de programmation d’Ethereum. Cela ne doit pas être confondu avec l’Ethereum Improvement Proposal (EIP), qui est similaire au BIP de Bitcoin et est une proposition d’amélioration du protocole lui-même. L’objectif d’ERC est d’établir un protocole qui facilite l’interaction entre les candidatures et les contrats.
Développé et écrit en 2015 par Vitalik Buterin et Fabian Vogelsteller, ERC-20 propose un autre format relativement simple pour les jetons basés sur Ethereum. Tant que les grandes lignes sont suivies, les développeurs n'ont pas besoin de réinventer la roue et peuvent s'appuyer directement sur ce qui se passe dans l'industrie.
Lorsque de nouveaux tokens ERC-20 sont créés, ils interagissent automatiquement avec les services et logiciels prenant en charge la norme ERC-20 (portefeuilles logiciels, portefeuilles matériels, plateformes de trading, etc.).
Il est important de noter que la norme ERC-20 a évolué vers EIP (plus précisément EIP-20). À cette époque, plusieurs années s'étaient écoulées depuis la proposition originale largement diffusée, mais même après plusieurs années, le nom « ERC-20 » est resté.
Faits en bref sur le jeton Ethereum
Contrairement à l'ETH (la crypto-monnaie native d'Ethereum), les tokens ERC-20 ne sont pas déposés sur un compte, mais existent uniquement à l'intérieur du contrat, comme une base de données indépendante. Il spécifie les règles du jeton (c'est-à-dire le nom, le symbole, la divisibilité) et maintient une liste d'adresses Ethereum qui cartographient les soldes des utilisateurs.
Afin de transférer des jetons, les utilisateurs doivent envoyer une transaction à un contrat intelligent, demandant au contrat d'allouer une partie du solde ailleurs. Par exemple, si Alice souhaite envoyer 5 000 jetons Binance Academy à Bob, elle appellera une fonction dans le contrat intelligent correspondant pour exécuter l'instruction.

Son appel incluait une transaction Ethereum apparemment régulière, qui rapportait 0 ETH au contrat de jeton. Cet appel est inclus parmi d'autres champs de la transaction et précise l'intention d'Alice : dans ce cas, elle souhaite transférer les jetons à Bob.
Même sans envoyer d’éther, elle doit payer des frais spécifiés pour que la transaction soit ajoutée au bloc. Si vous n'avez pas d'ETH, vous devez pré-dépôt de l'ETH avant de transférer vos tokens.
Ce qui suit est un exemple réel dans Etherscan : quelqu'un appelle un contrat BUSD. Vous verrez que les jetons ont été transférés et les frais ont été payés, bien que le champ de valeur indique que 0 ETH a été envoyé.
Ensuite, nous accélérons le rythme et examinons de plus près la structure typique du contrat ERC-20.
Comment les jetons ERC-20 sont-ils générés ?

Selon la norme ERC-20, votre contrat doit définir six fonctions obligatoires : totalSupply, balanceOf, transfer, transferFrom, approuve et allocation. De plus, des fonctions facultatives telles que le nom, le symbole et la décimale peuvent être spécifiées. Vous pouvez comprendre la fonction en fonction du nom. Ne vous inquiétez pas si vous ne la comprenez pas, nous l'analyserons un par un ci-dessous.
Voici les fonctions présentées via le langage Solidity spécifique à Ethereum.
approvisionnement total
la fonction totalSupply() renvoie la vue publique (uint256)Une fois que l'utilisateur a appelé la fonction ci-dessus, la quantité totale de jetons détenue par le contrat sera restituée.
équilibre des
la fonction balanceOf (adresse _propriétaire) renvoie la vue publique (solde uint256)Contrairement à totalSupply, balanceOf utilise les adresses comme paramètres. Après l’appel, le système renvoie le solde du jeton de l’adresse. N'oubliez pas que les comptes du réseau Ethereum sont publics et transparents. Vous pouvez vérifier le solde de n’importe quel utilisateur tant que vous connaissez l’adresse.
transfert
transfert de fonction (adresse _to, uint256 _value) retours publics (succès booléen)La fonction de transfert aide les utilisateurs à transférer des jetons entre eux. Vous devez fournir l'adresse de réception du jeton et le montant du transfert.
Lorsqu'il est appelé, transfer déclenche un événement (l'événement "transfer" dans ce cas) dont la fonction de base est d'indiquer à la blockchain de contenir une référence à cette fonction.
transfert à partir de
fonction transferFrom (adresse _from, adresse _to, uint256 _value) retours publics (succès booléen)La fonction transferFrom est une alternative pratique à la fonction de transfert, améliorant efficacement la programmabilité dans les applications décentralisées. Semblable à la fonction de transfert, elle permet de déplacer des jetons, mais ces jetons n'appartiennent pas nécessairement à l'utilisateur qui appelle le contrat.
En d’autres termes, vous pouvez autoriser quelqu’un d’autre ou un autre contrat à déplacer des fonds en votre nom. Par exemple, si vous ne souhaitez pas payer manuellement un service d'abonnement sur une base quotidienne/hebdomadaire/mensuelle, vous pouvez laisser le programme faire le travail à votre place.
Les événements déclenchés par cette fonction sont les mêmes que ceux du transfert.
approuver
fonction approuver (adresse _spender, uint256 _value) retours publics (succès booléen)Du point de vue de la programmation, approuver est une autre fonction très utile qui limite le nombre de jetons qu'un contrat intelligent peut retirer du solde. Sans cela, les contrats en cours pourraient devenir invalides (ou exploités) et tous les fonds risquent d'être volés.
Encore une fois, prenons le modèle d’abonnement comme exemple. Supposons que vous déteniez une grande quantité de jetons Binance Academy et que vous souhaitiez mettre en place des paiements hebdomadaires récurrents pour votre DApp en streaming. Je suis trop occupé à lire les articles de la Binance Academy pour passer du temps à créer manuellement des transactions chaque semaine.
Le solde important des jetons Binance Academy détenus dépasse de loin les frais requis pour payer l’abonnement. Afin d'empêcher le DApp de payer tous les actifs, vous pouvez utiliser approuver pour définir une limite. En supposant que votre abonnement coûte 1 jeton Binance Academy par semaine, votre abonnement sera automatiquement payé sur 5 mois si la limite d'approbation est de 20 jetons.
Si le programme tourne mal et que le DApp tente de retirer tous les fonds, vous ne perdrez que 20 jetons maximum. Bien que perdre vos jetons soit bouleversant, le résultat est bien meilleur que de perdre tous vos actifs.
Après avoir appelé cette fonction, approuver déclenchera l'événement d'approbation. Comme la fonction de transfert, elle écrira les données dans la blockchain.
allocation
allocation de fonction (adresse _owner, adresse _spender) vue publique renvoie (uint256 restant)l'allocation peut être utilisée conjointement avec l'approbation. Si des droits de gestion de token sont accordés au contrat, vous pouvez vérifier le solde retirable du token via celui-ci. Par exemple, en supposant que le service d'abonnement utilise 12 des 20 jetons approuvés, l'appel de la fonction d'autorisation renverra un total de 8 jetons.
Autres fonctions optionnelles
Tout ce qui est discuté ci-dessus est une fonction obligatoire. D'un autre côté, le nom, le symbole et la décimale sont des fonctions facultatives, mais elles peuvent rendre l'ERC-20 plus complet. Ces fonctions prennent respectivement en charge l'ajout d'un nom lisible par l'homme, la définition du symbole (c'est-à-dire ETH, BTC, BNB) et la spécification du nombre de décimales dans lesquelles le jeton peut être divisé. Par exemple, les jetons utilisés comme monnaie sont plus divisibles et donc plus bénéfiques que les jetons utilisés pour représenter la propriété d’un bien.
Consultez cet exemple sur GitHub pour voir à quoi ressembleraient ces éléments dans un vrai contrat.
Quelles fonctions l'ERC-20 a-t-il ?

En résumant toutes les fonctions ci-dessus, nous obtenons un contrat ERC-20. Nous pouvons interroger l'offre totale, consulter les soldes, transférer des fonds et autoriser d'autres DApp à gérer les jetons en notre nom.
La flexibilité des jetons ERC-20 est un énorme avantage. L'accord établi ne limite pas le développement, et chaque partie peut lancer d'autres fonctions et définir des paramètres spécifiques en fonction de ses propres besoins.
Coin stable
Les Stablecoins (jetons liés aux monnaies fiduciaires) utilisent généralement la norme de jeton ERC-20. La transaction contractuelle BUSD mentionnée ci-dessus est un exemple typique, et la plupart des pièces stables utilisent également ce formulaire.
Pour les pièces stables adossées aux principales monnaies fiduciaires, les émetteurs peuvent détenir des réserves en euros, en dollars américains, etc., puis émettre des jetons pour chaque unité des réserves. Cela signifie que si 10 000 $ sont déposés dans le coffre-fort, l'émetteur peut créer 10 000 jetons, chacun valant 1 $.
D’un point de vue technique, il est facile à mettre en œuvre dans Ethereum. L'émetteur lance simplement un contrat avec 10 000 jetons, puis distribue les jetons aux utilisateurs, en leur promettant qu'ils pourront à l'avenir échanger les jetons contre un certain pourcentage de monnaie fiduciaire.
Les utilisateurs peuvent utiliser leurs jetons pour effectuer diverses actions, notamment acheter des biens et des services et postuler aux DApps. Alternativement, l’émetteur peut être tenu de racheter ces jetons immédiatement. Dans ce cas, l'émetteur peut également détruire les jetons restitués (les laisser expirer) et retirer un montant équivalent de fiat de la réserve.
Comme mentionné précédemment, les contrats qui régissent ce système sont relativement simples. Cependant, le lancement d’un stablecoin nécessite de prêter attention à de nombreux autres facteurs externes (tels que la logistique, la conformité, etc.) et beaucoup d’efforts.
Jetons de sécurité
Les jetons de sécurité sont similaires aux stablecoins et peuvent même être complètement identiques au niveau du contrat car les deux fonctionnent de la même manière. La différence réside dans l'émetteur : les jetons de sécurité représentent des titres tels que des actions, des obligations ou des actifs réels. Ils accordent généralement, mais pas toujours, au détenteur des actions dans une entreprise ou un produit.
jeton utilitaire
Les jetons utilitaires sont probablement le type de jeton le plus courant aujourd’hui. Contrairement aux deux jetons précédents, les jetons utilitaires ne sont adossés à aucun actif réel. Si les actions des compagnies aériennes représentent des jetons adossés à des actifs, les jetons utilitaires sont comme des programmes de fidélisation : ils ont certaines fonctionnalités, mais aucune valeur externe. Les jetons utilitaires peuvent répondre à de nombreux besoins, tels que leur utilisation comme monnaie de jeu, comme carburant pour des applications décentralisées et comme points de fidélité.
➠ Vous voulez commencer votre voyage en crypto-monnaie ? Bienvenue sur Binance pour acheter de l'Ethereum !
Puis-je participer au minage de jetons ERC-20 ?
Vous pouvez participer au minage d’Ethereum (ETH), mais les jetons ne peuvent pas être minés – nous appelons la création de nouveaux jetons le monnayage. Une fois le contrat entré en vigueur, les développeurs répartiront l'approvisionnement conformément aux plans et aux feuilles de route,
Cela se fait généralement via une offre initiale de pièces (ICO), une offre d'échange initiale (IEO) ou une offre de jetons de sécurité (STO). Vous pouvez rencontrer plusieurs variantes de ces acronymes, mais les concepts sont très similaires. Les investisseurs envoient de l'éther à l'adresse du contrat et reçoivent de nouveaux jetons en retour. Les fonds récoltés serviront à financer le développement futur du projet. Les utilisateurs s'attendent à pouvoir utiliser leurs jetons (immédiatement ou ultérieurement) ou les revendre avec profit à mesure que le projet se développe.
L'émission de jetons n'est pas nécessairement automatisée. De nombreuses campagnes de financement participatif aident les utilisateurs à effectuer des paiements en utilisant diverses devises numériques (telles que BNB, BTC, ETH et USDT), puis à distribuer le solde correspondant à l'adresse fournie par l'utilisateur.
Avantages et inconvénients des jetons ERC-20
Avantages des jetons ERC-20
Interchangeabilité
Les jetons ERC-20 sont fongibles et toutes les unités peuvent être échangées les unes contre les autres. En ce qui concerne les jetons Binance Academy, c'est la même chose, quelle que soit la pièce spécifique que vous détenez. Vous pouvez échanger avec d’autres personnes et les jetons fonctionnent de la même manière, comme l’argent liquide ou l’or.
C’est idéal si le jeton que vous détenez espère se transformer en une sorte de monnaie. Les jetons présentant des caractéristiques distinctives perdent leur fongibilité et ne répondent pas à vos exigences. Cela peut faire en sorte que certains jetons valent moins ou plus que des jetons similaires, ce qui va à l'encontre de l'objectif initial.
flexible
Comme indiqué dans le chapitre précédent, les jetons ERC-20 sont extrêmement personnalisables et peuvent adapter des solutions à différentes applications. Les exemples incluent l'utilisation comme monnaie dans le jeu, comme points de fidélité pour des programmes, comme objets de collection numériques ou même comme représentation d'œuvres d'art et de propriété.
très populaire
L'ERC-20 gagne en popularité dans le domaine des crypto-monnaies et le modèle qui en découle est très convaincant. De nombreux échanges, portefeuilles et contrats intelligents sont désormais compatibles avec divers jetons nouvellement lancés. De plus, le support et la documentation des développeurs sont assez complets.
Inconvénients des jetons ERC-20
Mauvaise évolutivité
Il s’agit d’un problème courant sur de nombreux réseaux de crypto-monnaie, et Ethereum n’y est pas à l’abri. Dans sa forme actuelle, il ne s’adapte pas bien. L’envoi de transactions pendant les périodes de pointe entraîne des frais élevés et de longs délais. Si des jetons ERC-20 sont utilisés et provoquent une congestion du réseau, leur disponibilité sera également affectée.
Il ne s’agit pas d’un problème propre à Ethereum, mais d’un compromis que tous les systèmes distribués sécurisés doivent faire. La communauté prévoit de résoudre ces problèmes après la migration vers Ethereum 2.0 et de mettre en œuvre des mises à niveau telles que Ethereum Plasma et Ethereum Casper.
Veuillez lire « Évolutivité de la blockchain : chaînes latérales et canaux de paiement » pour en savoir plus sur les problèmes d'évolutivité.
Fraude
Bien qu’il n’y ait rien de mal avec la technologie elle-même, à certains égards, la facilité d’émission de jetons peut être un inconvénient. Les jetons ERC-20 simples sont faciles à créer, ce qui signifie que tout le monde peut le faire, mais avec des intentions mitigées.
Vous devez donc investir avec prudence. Il existe de nombreux systèmes pyramidaux et systèmes de Ponzi déguisés en projets blockchain. Vous devez faire vos propres recherches avant d'investir pour confirmer si l'opportunité d'investissement est légitime.
Quelles sont les différences entre ERC-20, ERC-1155, ERC-223 et ERC-721 ?
ERC-20 a été la première (et de loin la plus populaire) norme de jeton Ethereum, mais ce n'est pas la seule. Au fil des années, de nombreuses autres normes ont été élaborées. La plupart d'entre eux sont des normes améliorées de l'ERC-20, d'autres tentent d'atteindre des objectifs complètement différents.
Une poignée de normes rares s’appliquent aux jetons non fongibles (NFT). Dans certains cas, des jetons uniques avec des propriétés différentes peuvent faire de vous le bénéficiaire. Si vous souhaitez symboliser des œuvres d'art uniques, des actifs de jeu, etc., l'un de ces types de contrats peut être plus attractif.
Par exemple, la norme ERC-721 est utilisée dans la très populaire DApp CryptoKitties. Ce contrat fournit une API permettant aux utilisateurs de créer leurs propres jetons non fongibles et d'encoder des métadonnées (images, descriptions, etc.).
La norme ERC-1155 peut être considérée comme une amélioration par rapport à ERC-721 et ERC-20. Il prend en charge les normes de jetons fongibles et non fongibles dans un seul contrat.
D'autres options, telles que ERC-223 ou ERC-621, sont conçues pour améliorer la convivialité. Le premier met en œuvre des mesures de protection pour empêcher les transferts accidentels de jetons. Ce dernier fournit des fonctionnalités supplémentaires pour augmenter ou diminuer l’offre de jetons.
Pour en savoir plus sur les NFT, veuillez lire le Guide des CryptoCollectibles et des jetons non fongibles (NFT).
Résumer
La norme ERC-20 est l’acteur dominant dans le domaine des crypto-actifs depuis de nombreuses années. Les raisons sont évidentes : le standard est relativement simple et n’importe qui peut déployer des contrats simples pour répondre à divers besoins (jetons utilitaires, stablecoins, etc.). Néanmoins, l'ERC-20 manque de certaines caractéristiques d'autres normes, mais il reste à voir si d'autres types de contrats peuvent le remplacer.


