Définition
Approvals de tokens : définition
Les approvals de tokens sont des autorisations, enregistrées sur la blockchain, qui permettent à un smart contract de dépenser certains tokens d'une adresse jusqu'à un montant donné, sans nouvelle signature de son propriétaire.
Thème : Sécurité et arnaques
Avec le standard ERC-20, un contrat ne peut pas prélever des tokens d'un portefeuille de sa propre initiative. L'utilisateur doit d'abord appeler la fonction approve pour lui accorder une allocation. Ensuite seulement, le contrat peut utiliser transferFrom pour déplacer les tokens, par exemple lors d'un swap ou d'un dépôt dans un protocole de prêt. Les collections NFT utilisent un mécanisme comparable, setApprovalForAll, qui donne accès à l'ensemble des NFT d'une collection.
Pour éviter de payer une approbation à chaque utilisation, de nombreuses interfaces demandent une autorisation illimitée. Cette autorisation reste valable tant qu'elle n'est pas révoquée, même des années plus tard. Des outils permettent de lister les approbations actives d'une adresse et de les annuler en remettant l'allocation à zéro, au prix d'une transaction. La révocation est particulièrement conseillée pour les protocoles que l'on n'utilise plus.
Un exemple concret
Imaginons que Marc ait testé il y a longtemps un petit protocole de rendement en lui accordant une autorisation illimitée sur ses stablecoins. Le protocole est piraté et l'attaquant prend le contrôle du contrat. Il peut alors prélever les stablecoins de tous les utilisateurs ayant laissé l'autorisation active, y compris ceux de Marc, sans aucune signature supplémentaire.
Les risques à connaître
Une approbation illimitée accordée à un contrat vulnérable ou malveillant peut vider les tokens concernés. Les wallet drainers cherchent précisément à obtenir ce type d'autorisation, parfois via une simple signature hors chaîne. Il est prudent de limiter les montants approuvés, de lire ce que l'on signe et de révoquer les autorisations inutiles.
Questions fréquentes sur Approvals de tokens
Comment révoquer une approbation de token ?
Des outils spécialisés et certains explorateurs de blocs listent les approbations actives d'une adresse et permettent de les ramener à zéro via une transaction, qui coûte des frais de réseau.
Révoquer une approbation rend-il les fonds volés ?
Non. La révocation empêche seulement de futurs prélèvements ; les tokens déjà transférés par un contrat malveillant ne reviennent pas.