BlockPulseNews
Définition

ERC-777 : définition

L'ERC-777 est un standard de jetons fongibles compatible avec l'ERC-20, qui ajoute des opérateurs autorisés et des hooks, c'est-à-dire des fonctions appelées automatiquement lors de l'envoi ou de la réception de jetons.

Thème : Ethereum et smart contracts

ERC-777 : comment ça marche ?

L'ERC-777 a été conçu pour corriger certaines limites de l'ERC-20. Avec ce dernier, un contrat qui reçoit des jetons n'en est pas informé, et déposer des jetons dans un protocole exige deux étapes, une approbation puis un prélèvement. L'ERC-777 introduit des hooks : avant un envoi, le contrat de l'expéditeur peut être notifié, et après la réception, celui du destinataire aussi. Un contrat peut ainsi réagir immédiatement à l'arrivée de jetons, voire la refuser.

Le standard ajoute la notion d'opérateurs, des adresses autorisées à déplacer les jetons pour le compte du détenteur, et prévoit une fonction d'envoi accompagnée de données. Il s'appuie sur un registre commun (ERC-1820) où chaque adresse déclare les interfaces qu'elle prend en charge. Les jetons restent compatibles avec les fonctions ERC-20 habituelles. En pratique, l'ERC-777 a été peu adopté. Les hooks introduisent un appel vers un contrat externe au milieu d'un transfert, ce qui a facilité des attaques par réentrance contre des protocoles qui ne s'y attendaient pas. Des bibliothèques de référence ont depuis déconseillé son usage.

Un exemple concret

Imaginons qu'un service d'abonnement accepte un jeton ERC-777. Lorsque Marc envoie ses jetons au contrat du service, le hook de réception s'exécute automatiquement et active son abonnement dans la même transaction, sans approbation préalable ni seconde opération. Avec un ERC-20 classique, il aurait fallu deux transactions distinctes.

Les risques à connaître

Un protocole qui accepte des jetons ERC-777 en les traitant comme de simples ERC-20 peut être vulnérable à la réentrance, le hook permettant à un attaquant de rappeler le contrat avant la fin de la mise à jour de ses soldes. Ce risque explique la faible adoption du standard.

À ne pas confondre avec

  • ERC-20 : L'ERC-20 est le standard de base sans hooks ; l'ERC-777 l'étend en restant rétrocompatible.
  • Réentrance : La réentrance est une catégorie de faille, dont les hooks de l'ERC-777 ont été un vecteur connu.

Questions fréquentes sur ERC-777

Pourquoi l'ERC-777 est-il peu utilisé ?

Ses hooks, pratiques sur le papier, ont créé des risques de réentrance dans des protocoles existants, et des outils de référence ont fini par en déconseiller l'usage.

Un portefeuille compatible ERC-20 peut-il gérer un jeton ERC-777 ?

Oui, l'ERC-777 conserve les fonctions de l'ERC-20, un portefeuille classique peut donc afficher et transférer ces jetons.

Termes liés

Dans le même thème : Ethereum et smart contracts

Tous les termes du thème Ethereum et smart contracts →

À lire

L'actualité : Ethereum et smart contracts

Les derniers articles de BlockPulseNews sur ce sujet.

Approfondir avec l'Académie : Ethereum en Profondeur Un module gratuit, en leçons courtes et quiz, pour maîtriser ce thème pas à pas.
Découvrir le module

Les autres termes en E

← Tout le lexique crypto de A à Z