Contenu
Introduction
Qu'est-ce que la norme ERC-20 ?
Un bref aperçu des jetons Ethereum
Comment les jetons ERC-20 sont-ils créés ?
Quelles sont les fonctions des jetons ERC-20 ?
Pièces stables
Jetons de sécurité
Jetons utilitaires
Est-il possible d'exploiter des jetons ERC-20 ?
Avantages et inconvénients des jetons ERC-20
Avantages des jetons ERC-20
Inconvénients des jetons ERC-20
ERC-20, ERC-1155, ERC-223, ERC-721 – quelle est la différence ?
Résumé
Introduction
Ethereum a été fondée en 2014 par Vitalik Buterin et était destinée à être une plate-forme open source permettant d'exécuter des applications décentralisées (DApps). Lors de la création d'une nouvelle blockchain, Buterin a pris en compte le problème du manque de flexibilité du protocole Bitcoin.
Depuis son lancement, la blockchain Ethereum a attiré de nombreux développeurs, entreprises et entrepreneurs, et a ouvert la voie à un secteur croissant d'utilisateurs exécutant des contrats intelligents et des applications distribuées.
Dans cet article, nous examinerons la norme ERC-20, la base de la création de jetons. La norme a été développée spécifiquement pour le réseau Ethereum, mais a réussi à inspirer d’autres normes de blockchain, telles que BEP-2 Binance Chain.
Qu'est-ce que la norme ERC-20 ?
ERC in Ethereum est un appel d’offres pour améliorer le réseau (anglais : Ethereum Request for Comments). Les ERC sont des documents techniques qui décrivent les normes de programmation sur Ethereum. Celles-ci ne doivent pas être confondues avec les propositions d'amélioration d'Ethereum (EIP), qui, comme les BIP de Bitcoin, proposent des améliorations au protocole lui-même. L’objectif de l’ERC est d’établir des accords facilitant l’interaction entre les candidatures et les contrats.
ERC-20 a été créé en 2015 par Vitalik Buterin et Fabian Vogelsteller dans le but de proposer un format relativement simple pour créer des tokens sur Ethereum. En s'appuyant sur un standard existant, les développeurs économisent du temps et des efforts. Avec ERC-20, ils peuvent créer de nouveaux jetons sans se soucier de la compatibilité et de la sécurité.
Les nouveaux tokens ERC-20 seront compatibles avec tous les services et logiciels prenant en charge cette norme (portefeuilles logiciels, portefeuilles matériels, échanges, etc.).
Il convient de noter que l'EIP (à savoir EIP-20) a été développé sur la base de la norme ERC-20. Cela s'est produit plusieurs années après le lancement en raison de l'utilisation généralisée de la norme. Mais même des années plus tard, le nom « ERC-20 » est toujours d’actualité.
Un bref aperçu des jetons Ethereum
Contrairement à l'ETH (la crypto-monnaie native d'Ethereum), les jetons ERC-20 ne sont pas stockés dans les comptes. Ils n’existent qu’au sein du contrat, qui est une sorte de base de données autonome. Le contrat définit les termes des jetons (par exemple nom, symbole, divisibilité). Il contient également une liste qui fait correspondre les soldes des utilisateurs avec leurs adresses Ethereum.
Pour déplacer des jetons, les utilisateurs doivent soumettre une transaction au contrat demandant qu'une partie de leur solde soit déplacée vers un autre emplacement. Par exemple, si Alice souhaite envoyer à Bob 5 000 jetons BinanceAcademy, elle exécute une fonction dans le contrat intelligent lui demandant de le faire.

Sa demande est placée dans une transaction Ethereum apparemment normale, qui facture 0 ETH au contrat intelligent. La demande est ajoutée à un champ supplémentaire dans la transaction, qui spécifie exactement ce qu'Alice veut faire : dans notre cas, transférer les jetons à Bob.
Même si elle n'envoie pas d'Ether, elle doit quand même payer des frais, libellés en Ether, pour que sa transaction soit ajoutée au bloc. Si elle ne possède pas d’ETH, elle devra l’acheter avant d’effectuer la transaction.
Voici un exemple concret d'un tel processus sur Etherscan : quelqu'un fait une demande de contrat en BUSD. Nous voyons que les jetons ont été transférés et les frais ont été payés, malgré le fait que leur montant soit de 0 ETH.
Nous pouvons maintenant approfondir la structure du contrat ERC-20.
Comment les jetons ERC-20 sont-ils créés ?

Pour être compatible avec ERC-20, votre contrat doit inclure six fonctions requises : totalSupply, balanceOf, transfer, transferFrom, approuver et allocation. De plus, vous pouvez ajouter des fonctions supplémentaires telles que le nom, le symbole et la décimale. A partir des noms des fonctions, vous pouvez comprendre leur objectif. Nous examinerons ensuite chacun d’eux plus en détail.
Ci-dessous les fonctions sont présentées telles qu'elles sont écrites dans le langage Solidity créé pour Ethereum.
approvisionnement total
la fonction totalSupply() renvoie la vue publique (uint256)Lorsque l'utilisateur y est invité, la fonction ci-dessus affiche le nombre total de jetons dans le contrat.
équilibre des
la fonction balanceOf (adresse _propriétaire) renvoie la vue publique (solde uint256)Contrairement à totalSupply, la fonction balanceOf utilise un paramètre (adresse). Il affiche le solde des jetons d'adresse sur demande. N'oubliez pas que les comptes Ethereum sont publics, vous pouvez donc consulter le solde de n'importe quel utilisateur tant que vous connaissez son adresse.
traduction
transfert de fonction (adresse _to, uint256 _value) retours publics (succès booléen)La fonction de transfert transfère les jetons d'un utilisateur à un autre. Pour l'utiliser, vous devez préciser l'adresse du destinataire et le montant du virement.
La fonction de transfert déclenche un événement (dans notre cas, le transfert d'événement), qui indique à la blockchain d'y inclure une référence.
transfert à partir de
fonction transferFrom (adresse _from, adresse _to, uint256 _value) retours publics (succès booléen)La fonction transferFrom est une alternative plus pratique à la fonction de transfert, qui offre une plus grande programmabilité dans les applications décentralisées. Comme le transfert, il sert à déplacer des tokens, mais ceux-ci n'appartiennent pas nécessairement à la personne accédant au contrat.
En d'autres termes, vous pouvez autoriser une autre personne ou un autre contrat à transférer des fonds en votre nom. Un autre cas d'utilisation implique le paiement automatique pour les services par abonnement au cas où vous ne souhaiteriez pas envoyer manuellement des paiements chaque jour/semaine/mois. Le programme le fera pour vous.
Cette fonction déclenche le même événement que le transfert.
approuver
fonction approuver (adresse _spender, uint256 _value) retours publics (succès booléen)Approuver est une autre fonction utile du point de vue de la programmabilité. Avec son aide, vous pouvez limiter le nombre de jetons qu'un contrat intelligent peut retirer de votre solde. En son absence, il existe un risque d'utilisation abusive du contrat : quelqu'un pourrait l'exploiter à ses propres fins ou voler tous vos fonds.
Regardons un exemple avec un modèle d'abonnement. Disons que vous possédez beaucoup de BinanceAcademyTokens et que vous souhaitez configurer des paiements hebdomadaires pour votre service de streaming DApp. Vous étudiez déjà le contenu de la Binance Academy jour et nuit et vous ne voulez pas passer du temps à créer manuellement une transaction chaque semaine.
Disons que vous disposez d'une grande quantité de BinanceAcademyTokens, dépassant largement vos frais d'abonnement. Pour empêcher le service DApp de le vider, vous pouvez définir une limite à l'aide de la fonction d'approbation. Par exemple, votre abonnement coûte un BinanceAcademyToken par semaine. Si vous limitez le montant maximum à vingt tokens, alors l'abonnement pourra être payé automatiquement sur cinq mois.
Dans le pire des cas, si le DApp tente de retirer tous vos fonds ou si une erreur inattendue se produit, vous ne perdrez que vingt jetons. Cette option n’élimine pas d’éventuels problèmes, mais elle vous protège de la perte de tous vos actifs.
Lorsque la fonction d'approbation est appelée, l'événement d'approbation est déclenché. Comme l’événement de transfert, il écrit des données dans la blockchain.
allocation
allocation de fonction (adresse _owner, adresse _spender) retours de vue publique (uint256 restants)La fonction d'allocation peut être utilisée conjointement avec la fonction d'approbation. Une fois que vous avez donné au contrat l'autorisation de gérer ses jetons, vous pouvez utiliser cette fonctionnalité pour vérifier combien de jetons il peut encore radier. Par exemple, si votre abonnement a utilisé douze des vingt jetons autorisés, alors lorsque vous appelez la fonction d'allocation, le chiffre huit devrait s'afficher.
Fonctions supplémentaires
Les fonctionnalités dont nous avons discuté ci-dessus sont obligatoires. Le nom, le symbole et les fonctions décimales sont facultatifs, mais peuvent améliorer votre contrat ERC-20. Ils vous donnent la possibilité d'ajouter un nom clair, de définir un symbole (par exemple ETH, BTC, BNB) et de spécifier en combien de décimales les jetons peuvent être divisés. Par exemple, les jetons utilisés comme monnaie peuvent bénéficier davantage d’une plus grande divisibilité qu’un jeton qui représente la propriété.
Vous pouvez voir ces éléments dans un vrai contrat dans cet exemple sur GitHub.
Quelles sont les fonctions des jetons ERC-20 ?

Si nous combinons toutes les fonctionnalités ci-dessus, nous obtenons un contrat ERC-20. Il peut être utilisé pour interroger l'offre totale de jetons, vérifier les soldes, transférer des fonds et accorder des autorisations à d'autres DApp pour gérer les jetons.
Le principal avantage des jetons ERC-20 est la flexibilité. En les utilisant, vous pouvez également implémenter des fonctionnalités supplémentaires et définir certains paramètres en fonction de vos besoins.
Pièces stables
Les Stablecoins (jetons liés aux monnaies fiduciaires) utilisent souvent la norme de jeton ERC-20. Un exemple est la transaction de contrat BUSD à laquelle nous avons fait référence plus tôt. La plupart des stablecoins sont disponibles dans ce format.
L'émetteur d'un stablecoin adossé à un fiat détient des réserves en euros, en dollars, etc. Il crée ensuite un jeton pour chaque unité de sa réserve. Cela signifie que si 10 000 $ se trouvaient dans le coffre-fort, l'émetteur pourrait créer 10 000 jetons, chacun valant 1 $.
C’est assez facile à mettre en œuvre dans Ethereum. L'émetteur lance un contrat de 10 000 tokens. Ils seront ensuite distribués aux utilisateurs avec la perspective d'un échange ultérieur en monnaie fiduciaire.
Les utilisateurs peuvent utiliser des jetons pour payer des biens et des services ou les utiliser dans des applications DApp. De plus, les utilisateurs ont la possibilité de demander un échange immédiat de jetons à l'émetteur. Dans ce cas, l'émetteur brûle les jetons restitués (ils deviennent indisponibles) et retire le montant équivalent en fiat de ses réserves.
Le contrat régissant ce processus, comme nous l'avons déjà dit, est relativement simple. Cependant, le lancement d’un stablecoin implique de nombreux facteurs externes tels que la logistique, la conformité légale et réglementaire, etc.
Jetons de sécurité
Les jetons de sécurité sont similaires aux pièces stables. Au niveau contractuel, ils peuvent être considérés comme identiques car ils fonctionnent de la même manière. Mais il existe une différence significative pour l’émetteur. Les jetons de sécurité représentent des titres (actions, obligations ou actifs physiques). Ils donnent souvent (mais pas toujours) à leur titulaire un certain intérêt pour une entreprise ou un produit.
Jetons utilitaires
Les jetons utilitaires sont de loin les types de jetons les plus courants. Contrairement aux deux options précédentes, elles ne sont supportées par rien. Si les jetons adossés à des actifs sont comme des actions de compagnies aériennes, les jetons de services publics ressemblent davantage à un programme de fidélité pour voyageurs fréquents : ils servent un objectif mais n'apportent aucune autre valeur. Les jetons utilitaires peuvent avoir une grande variété d’utilisations. Ainsi, ils peuvent servir de monnaie dans le jeu, de carburant pour des applications décentralisées, des points de fidélité et bien plus encore.
➠ Prêt à vous lancer dans la cryptomonnaie ? Achetez de l'Ether sur Binance !
Est-il possible d'exploiter des jetons ERC-20 ?
Les utilisateurs peuvent extraire de l'éther (ETH), mais pas des jetons - des jetons sont créés. Lorsque le contrat est lancé, les développeurs distribuent les jetons conformément aux plans et à la feuille de route existants.
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 différentes abréviations, mais en substance, elles sont toutes assez proches. Les investisseurs envoient de l'Ether à l'adresse du contrat et reçoivent de nouveaux jetons en retour. Les fonds reçus sont utilisés pour financer la poursuite du développement du projet. Les utilisateurs s'attendent à pouvoir utiliser leurs tokens (immédiatement ou ultérieurement) ou les revendre dans un but lucratif au fur et à mesure du développement du projet.
Le processus de distribution de jetons n'a pas besoin d'automatisation. De nombreux événements de financement participatif vous permettent de payer dans diverses devises numériques (telles que BNB, BTC, ETH et USDT). Ensuite, en fonction du montant payé, les soldes des utilisateurs aux adresses spécifiées sont reconstitués.
Avantages et inconvénients des jetons ERC-20
Avantages des jetons ERC-20
Interchangeabilité
Les monnaies Fiat sont fongibles car chaque unité est impossible à distinguer d'une autre unité équivalente. Si vous possédez le BinanceAcademyToken, le jeton spécifique que vous possédez n'a pas d'importance. Ces jetons peuvent être vendus à d’autres utilisateurs et resteront fonctionnellement identiques, comme l’argent ou l’or.
C’est très pratique si vous souhaitez utiliser le token comme devise. Dans ce cas, vous n’avez pas besoin d’unités individuelles présentant des caractéristiques distinctives qui les rendent non interchangeables. Les différences peuvent faire en sorte que certains jetons deviennent plus (ou moins) précieux que d’autres, ce qui perturbe leur fonction principale.
Taux variable
Comme nous l'avons établi dans la section précédente, les jetons ERC-20 sont hautement personnalisables et peuvent être adaptés à une grande variété d'utilisations. Ainsi, par exemple, ils peuvent être utilisés comme monnaie de jeu, dans des programmes de fidélité, comme objets de collection numériques, ou même comme objets d'art et droits de propriété.
Populaire
La popularité de l’ERC-20 dans le secteur des cryptomonnaies conduit à l’utilisation de ce protocole comme base pour la création de nouveaux tokens. C'est pourquoi il existe de nombreux échanges, portefeuilles et contrats intelligents déjà compatibles avec les jetons nouvellement publiés. De plus, ils bénéficient d’un support étendu pour les développeurs et disposent de toute la documentation nécessaire.
Inconvénients des jetons ERC-20
Évolutivité
Comme de nombreux réseaux de cryptomonnaies, Ethereum n’est pas à l’abri des problèmes qui surviennent à mesure que le réseau se développe. Le réseau rencontre actuellement des problèmes d'évolutivité, donc tenter d'envoyer une transaction pendant les heures de pointe entraîne des frais et des retards élevés. Si vous lancez un jeton ERC-20 lorsque le réseau est encombré, la convivialité du jeton peut être affectée.
Ethereum n’est pas le seul à être confronté à ce problème. Les systèmes distribués doivent faire des compromis pour assurer la sécurité. La communauté prévoit de résoudre ce problème lors du passage à Ethereum 2.0, qui mettra en œuvre les mises à jour Ethereum Plasma et Ethereum Casper.
Apprenez-en plus sur les problèmes d'évolutivité dans notre article Évolutivité de la blockchain – Sidechains et canaux de paiement.
Fraude
Bien que ce ne soit pas un problème lié à la technologie elle-même, la facilité de lancement d’un token peut être considérée comme un inconvénient. Créer un simple jeton ERC-20 nécessite un minimum d'effort, ce qui signifie que n'importe qui peut le faire, y compris à des fins criminelles.
Vous devez donc faire très attention à ce dans quoi vous investissez. Il existe un certain nombre de systèmes de Ponzi et pyramidaux déguisés en projets blockchain. Avant d’investir, étudiez tout attentivement pour décider vous-même si le projet est fiable.
ERC-20, ERC-1155, ERC-223, ERC-721 - Quelle est la différence ?
ERC-20 a été le premier (et reste toujours le plus populaire) standard de jeton Ethereum, mais il est loin d'être le seul. Au fil des années, de nombreux autres protocoles ont émergé offrant des améliorations à l’ERC-20 ou tentant d’atteindre d’autres objectifs.
Certaines des normes les moins courantes sont utilisées pour créer des jetons non fongibles (NFT). Selon le but de l'utilisation, vous aurez peut-être besoin de jetons uniques avec des attributs différents. Si vous souhaitez symboliser une œuvre d'art unique, un actif de jeu, etc., vous pouvez utiliser l'un de ces types de contrat.
Par exemple, la norme ERC-721 a été utilisée pour les très populaires DApp CryptoKitties. Un tel contrat met à disposition des utilisateurs une API pour créer leurs propres tokens non fongibles et encoder des métadonnées (images, descriptions, etc.).
La norme ERC-1155 peut être considérée comme une amélioration par rapport à l'ERC-721 ainsi qu'à l'ERC-20. Cette norme prend en charge les jetons fongibles et non fongibles dans un seul contrat.
D'autres options, telles que ERC-223 ou ERC-621, visent à améliorer la convivialité. ERC-223 met en œuvre des précautions pour empêcher le transfert accidentel de jetons. ERC-621 offre des fonctionnalités supplémentaires pour augmenter et diminuer l'offre de jetons.
Pour en savoir plus sur les NFT, n'oubliez pas de consulter le Guide des objets de collection cryptographiques et des jetons non fongibles (NFT).
Résumé
La norme ERC-20 domine le secteur des actifs cryptographiques depuis de nombreuses années, et ce n’est pas une surprise. N’importe qui peut facilement déployer un contrat simple à diverses fins (jetons utilitaires, pièces stables, etc.). Cependant, l'ERC-20 manque de certaines fonctionnalités présentes dans d'autres normes. Et il n’y a pas de réponse exacte à la question de savoir si d’autres types de contrats le supplanteront ou non à l’avenir.



