Standard ERC-20 : Fonctionnement, Usages et Sécurité sur Ethereum

Proposé fin 2015 par Fabian Vogelsteller et Vitalik Buterin, l’ERC-20 (Ethereum Request for Comments n°20) a profondément transformé l’architecture de la deuxième blockchain mondiale. Avant cette norme, chaque projet créait son propre jeton avec un code unique, obligeant les plateformes d’échange et les portefeuilles logiciels à adapter manuellement leur infrastructure à chaque nouvel actif. En uniformisant les règles d’émission et de transfert au sein d’un contrat intelligent, l’ERC-20 a posé les bases de l’interopérabilité sur Ethereum.

Qu’est-ce qu’un jeton ERC-20 ?

Un jeton ERC-20 est un actif numérique fongible créé sur la blockchain Ethereum. La fongibilité signifie que chaque unité possède exactement la même valeur marchande et les mêmes propriétés qu’une autre unité du même type, à l’image d’une pièce d’un euro ou d’un dollar. Cette caractéristique le distingue radicalement des jetons non fongibles (NFT), régis par d’autres standards comme l’ERC-721.

Pour comprendre pleinement l’environnement dans lequel ces jetons circulent, il est utile d’appréhender le fonctionnement réel de la blockchain Ethereum. Le jeton ERC-20 n’est pas une cryptomonnaie native au protocole (comme l’Ether), mais une ligne de solde gérée par un programme informatique autonome déployé sur le réseau.

L’architecture technique : les six fonctions obligatoires

Pour qu’un contrat intelligent soit certifié conforme à la norme ERC-20, il doit impérativement implémenter six fonctions élémentaires programmées en langage Solidity :

  • totalSupply : retourne le nombre total de jetons créés ou en circulation.
  • balanceOf : indique le solde de jetons détenu par une adresse publique spécifique.
  • transfer : autorise le transfert direct d’un certain nombre de jetons depuis l’adresse de l’émetteur vers celle du destinataire.
  • transferFrom : permet à un tiers autorisé (souvent un smart contract de finance décentralisée) de transférer des jetons au nom du propriétaire.
  • approve : donne mandat à une adresse tierce pour dépenser un montant défini de jetons appartenant à l’utilisateur.
  • allowance : vérifie le montant résiduel de jetons qu’un tiers est encore autorisé à retirer.

Deux événements majeurs accompagnent ce dispositif technique : Transfer et Approval, qui permettent aux explorateurs de blocs de consigner et d’afficher publiquement l’activité du jeton en temps réel.

Cas d’usage concrets dans le Web3

La polyvalence de ce standard explique son omniprésence dans la plupart des secteurs de la finance crypto :

  • Les stablecoins : La majorité des devises numériques indexées sur le dollar, comme l’USDT de Tether ou l’USDC de Circle, s’appuient sur l’ERC-20 pour garantir une liquidité fluide sur les exchanges décentralisés (DEX). Ce mécanisme illustre concrètement le lien fort entre la blockchain et les stablecoins.
  • La finance décentralisée (DeFi) : Les plateformes de prêt et d’échange automatisé (Aave, Uniswap, Curve) utilisent des tokens de gouvernance ERC-20 (AAVE, UNI, CRV) permettant aux investisseurs de voter les évolutions du protocole.
  • Les jetons d’utilité : De nombreux écosystèmes récompensent l’engagement de leur communauté via des jetons ERC-20 dédiés au paiement de services au sein de leur propre dApp.

Risques techniques et bonnes pratiques pour l’investisseur

Malgré sa robustesse avérée, la norme ERC-20 impose de réelles précautions d’usage pour éviter la perte irréversible de capital :

La sécurité d’un portefeuille Web3 dépend en grande partie de la gestion rigoureuse des autorisations de dépenses accordées aux protocoles décentralisés.

Le risque le plus répandu réside dans l’usage inconsidéré de la fonction approve avec des plafonds illimités (« infinite allowance »). Si le smart contract tiers subit une faille de sécurité ultérieurement, un pirate peut siphonner l’intégralité de vos jetons sans action supplémentaire de votre part. Pensez à révoquer régulièrement les approbations inutilisées via des outils dédiés (comme Revoke.cash) et vérifiez systématiquement l’adresse du contrat officiel avant toute transaction.