Chaque interaction DeFi commence par une approbation de token, et chaque approbation est une permission qui peut survivre à la transaction qui l'a créée.
Une approbation de token est une permission de contrat intelligent qui autorise une application décentralisée (ou dapp) à accéder à un type de token spécifique dans un portefeuille et à le déplacer. Sans approbation, aucune application ne peut toucher les tokens d'un portefeuille self-custodial, même si ce portefeuille est connecté à l'interface de l'application. L'approbation est ce qui fait le lien entre la connexion d'un portefeuille et le fait d'autoriser concrètement un protocole à utiliser les actifs qu'il contient.
Les approbations de tokens sont nécessaires pour presque toutes les interactions DeFi : échanger des tokens sur un exchange décentralisé, déposer dans un protocole de prêt, ajouter des liquidités à un pool ou lister un NFT sur une marketplace. Elles constituent également l'un des mécanismes les plus exploités en matière de sécurité crypto. Les rapports mensuels de sécurité crypto de MetaMask suivent ces menaces en détail. Par exemple, le rapport de sécurité crypto de février 2026 a mis en évidence une hausse de 207 % des exploits de « signature phishing », également appelés approval phishing. Comprendre ce que font les approbations de tokens, comment elles persistent et comment les attaquants peuvent les exploiter est essentiel pour toute personne utilisant un portefeuille self-custodial.
Avertissement : Ce contenu est fourni à des fins éducatives uniquement. Il ne constitue pas un conseil financier, une sollicitation, et n'est pas destiné au public britannique. Les portefeuilles crypto et les actifs numériques comportent des risques et ne conviennent pas à tous les utilisateurs.
Comment fonctionnent les approbations de tokens
Voici un exemple courant d'approbation de token : échanger des USDC contre de l'ETH sur un exchange décentralisé. Le contrat intelligent de l'application a besoin d'une permission pour prendre les USDC du portefeuille et exécuter l'échange. Cette permission, c'est l'approbation de token.
Au niveau du contrat, l'utilisateur appelle une fonction nommée approve() sur le contrat du token USDC. Cette fonction prend deux paramètres : le spender (l'adresse du contrat intelligent qui est autorisé) et le montant (le nombre de tokens que le spender est autorisé à déplacer). Une fois la transaction d'approbation confirmée sur la blockchain, le contrat spender peut appeler transferFrom() pour déplacer jusqu'au montant approuvé de ce token depuis le portefeuille de l'utilisateur, sans aucune confirmation supplémentaire de sa part.
Il y a deux points importants concernant les approbations de tokens que tout le monde, en particulier les débutants, doit connaître. Premièrement, l'approbation est spécifique à un token et à un spender. Approuver un exchange décentralisé (DEX) pour dépenser des USDC ne lui donne pas accès à l'ETH, au BTC ou à tout autre token. Deuxièmement, l'approbation est une transaction blockchain qui entraîne des frais de réseau — c'est une étape distincte de l'échange lui-même, ce qui explique pourquoi les interactions DeFi nécessitent souvent deux confirmations : une pour approuver, une pour exécuter.
Approbations limitées vs illimitées
Le champ du montant dans une approbation détermine le nombre de tokens auxquels le spender peut accéder.
Une approbation limitée autorise le spender à déplacer uniquement un nombre spécifique de tokens — par exemple, exactement les 500 USDC nécessaires pour un échange particulier. Une fois ces 500 USDC transférés, l'allocation est épuisée. Le prochain échange nécessitera une nouvelle approbation, ce qui implique une nouvelle transaction blockchain et de nouveaux frais de réseau.
Une approbation illimitée autorise le spender à déplacer le montant maximum possible de ce token (techniquement, 2^256 − 1, un nombre bien supérieur à l'offre totale de n'importe quel token). Cela signifie que le contrat peut accéder à l'intégralité du solde de ce token de l'utilisateur, maintenant et à l'avenir, sans jamais avoir besoin d'une nouvelle approbation. La plupart des applications demandent par défaut des approbations illimitées, car cela réduit les frictions pour l'utilisateur — une seule approbation et toutes les futures transactions avec ce token sont pré-autorisées.
La commodité est réelle, mais le risque l'est tout autant. Une approbation illimitée n'expire jamais. Si le contrat auquel elle a été accordée est ultérieurement exploité, mis à jour de manière malveillante, ou si l'utilisateur a signé l'approbation sur un site de phishing imitant une application légitime, l'attaquant peut vider tous les tokens couverts par l'approbation sans aucune interaction supplémentaire de la part de l'utilisateur. La victime peut même ne pas réaliser que l'approbation existe jusqu'à ce que les tokens aient disparu.
Critère
Approbation limitée
Approbation illimitée
Montant autorisé
Spécifique (ex. : 500 USDC)
Maximum possible (solde total, indéfiniment)
Persistance
Consommée après le transfert du montant spécifié
Reste active jusqu'à révocation manuelle
Friction pour l'utilisateur
Nouvelle approbation requise par transaction (frais de réseau supplémentaires)
Une seule approbation couvre toutes les futures transactions
Risque en cas d'exploitation du contrat
Perte limitée au montant approuvé
Solde total du token à risque
Usage courant
Utilisateurs soucieux de la sécurité, transactions de grande valeur
Par défaut pour la plupart des applications
Comment fonctionnent les approbations de tokens Permit2
En novembre 2022, Uniswap Labs a déployé un contrat appelé Permit2 pour répondre aux problèmes de friction et de risque liés aux approbations de tokens traditionnelles. En 2025, plus de 3,1 millions d'adresses du mainnet Ethereum avaient autorisé le contrat Permit2, et il était devenu le système d'approbation le plus largement intégré en DeFi, utilisé par Uniswap, 1inch, CowSwap et de nombreux autres protocoles.
L'idée centrale : au lieu d'accorder une approbation blockchain distincte au contrat intelligent de chaque application, l'utilisateur accorde une seule approbation au contrat Permit2. À partir de là, chaque interaction individuelle avec une application est autorisée via une signature hors chaîne — un message signé dans le portefeuille qui précise quels tokens, en quelle quantité, quel spender, et une date limite après laquelle la permission expire.
Les améliorations par rapport aux approbations traditionnelles sont significatives. Les signatures Permit2 incluent des dates limites, de sorte que les permissions obsolètes expirent automatiquement plutôt que de persister indéfiniment. Les nonces empêchent la même signature d'être utilisée deux fois. Et l'utilisateur signe une approbation par token plutôt qu'une par application, ce qui réduit le nombre total de transactions d'approbation blockchain et les frais de réseau associés.
La contrepartie est un déplacement de la surface d'attaque. Les approbations traditionnelles étaient exploitées via des permissions blockchain dormantes — des contrats approuvés des mois ou des années auparavant et compromis par la suite. Les signatures Permit2 sont exploitées via du phishing au moment de la signature. Comme les autorisations Permit2 utilisent des signatures de données typées EIP-712, elles apparaissent dans le portefeuille sous forme d'invite de signature plutôt que de confirmation de transaction. Un site malveillant peut présenter ce qui ressemble à une demande de « signature de message » de routine, qui est en réalité une signature Permit2 autorisant le transfert de l'intégralité du solde de tokens de l'utilisateur. Pas de transaction blockchain. Pas de frais de réseau du côté de l'utilisateur. Juste une signature, puis l'attaquant appelle transferFrom().
Comment les drainers exploitent les approbations de tokens
Les wallet drainers sont des outils de phishing automatisés conçus pour extraire des approbations de tokens — aussi bien traditionnelles que Permit2 — de leurs victimes. Ils fonctionnent comme des drainer-as-a-service (DaaS) : un développeur maintient les contrats intelligents malveillants, l'infrastructure de phishing et le pipeline de blanchiment des fonds, tandis que des affiliés louent le service en échange d'une part des fonds volés (conservant généralement 75 à 95 % de ce qu'ils drainent).
Les schémas d'attaque des wallet drainers suivent fréquemment une séquence cohérente :
Étape 1 : L'appât. La victime arrive sur un site de phishing via un résultat de recherche sponsorisé, un lien d'airdrop frauduleux, un serveur Discord compromis ou une interface d'application clonée. Le site ressemble à un protocole légitime : même identité visuelle, même mise en page, souvent une URL quasi identique.
Étape 2 : La demande de signature. Le site invite le portefeuille à signer une transaction ou une signature Permit2. L'invite peut ressembler à une connexion d'application standard, un échange de tokens ou une réclamation d'airdrop. En réalité, la signature autorise le contrat du drainer à déplacer les tokens de la victime.
Étape 3 : Le drain. L'attaquant appelle transferFrom() depuis un portefeuille distinct, récupérant les tokens approuvés. Les kits de drainer sophistiqués regroupent plusieurs transferts de tokens — ERC-20, NFTs et autorisations Permit2 — en un seul multicall, vidant le portefeuille en quelques secondes. Les fonds sont acheminés via des exchanges décentralisés et des bridges cross-chain pour brouiller les pistes.
Le détail crucial : du point de vue de la blockchain, chaque étape est une transaction valide et autorisée. La victime a signé l'approbation. Le contrat a exécuté ce pour quoi il était autorisé. Il n'existe aucun mécanisme au niveau du protocole pour l'annuler.
Certains portefeuilles simulent désormais les transactions et les signatures avant que l'utilisateur les confirme, signalant les contrats drainers connus et les montants d'approbation suspects. MetaMask le fait via son intégration avec Blockaid. Cela n'élimine pas le risque — un nouveau contrat drainer peut ne pas encore figurer dans une base de données de détection — mais cela ajoute une couche entre l'invite de phishing et la confirmation de l'utilisateur.
Comment consulter et révoquer les approbations de tokens
Révoquer une approbation de token signifie remettre l'allocation pour un spender spécifique à zéro. C'est une transaction blockchain ; elle entraîne des frais de réseau et doit être confirmée dans le portefeuille, mais elle supprime définitivement la capacité de ce contrat à déplacer le token concerné.
Trois notions sont importantes :
Quand révoquer. Après avoir terminé d'utiliser une application sans prévoir d'y revenir. Après avoir accordé une approbation illimitée qui n'est plus nécessaire. Après toute interaction qui a semblé suspecte — même si rien n'a été immédiatement perdu. Dans le cadre d'une pratique régulière : des révisions périodiques des approbations actives permettent de repérer les permissions qui ont dépassé leur utilité.
Ce que coûte la révocation. Chaque révocation est une transaction blockchain distincte avec ses propres frais de réseau. Sur le mainnet Ethereum, cela coûte généralement quelques dollars ; sur les réseaux layer 2, cela peut représenter des fractions de centime. Le coût est faible par rapport à la perte potentielle liée à une approbation compromise, mais il s'accumule si des dizaines d'approbations se sont accumulées au fil de mois d'activité DeFi.
Ce que la révocation ne corrige pas. Révoquer une approbation empêche les futurs transferts dans le cadre de cette permission. Elle ne peut pas annuler un transfert déjà effectué. Si un drainer a déjà appelé transferFrom(), les tokens sont perdus. La révocation est préventive, pas corrective.
Comment réduire le risque lié aux approbations de tokens
Quelques pratiques permettent de réduire l'exposition sans sacrifier la commodité des interactions DeFi.
Définir des approbations limitées lorsque l'option existe. Par exemple, l'extension MetaMask affiche le montant d'approbation demandé et permet aux utilisateurs de personnaliser le plafond de dépense avant de confirmer. Fixer le plafond au montant réellement nécessaire pour la transaction limite les pertes potentielles si le contrat est compromis ultérieurement.
Lire l'invite de signature. Les signatures Permit2 affichent le nom du token, le montant, l'adresse du spender et la date limite. Si une invite « signer un message » affiche des détails sur des tokens, il ne s'agit pas d'une connexion — c'est une autorisation. Si le montant correspond au solde total de l'utilisateur plutôt qu'au montant attendu de la transaction, c'est un signal d'alarme.
Vérifier le site avant de se connecter. Les sites drainers reproduisent les interfaces d'applications légitimes. Mettre en favoris les URL de confiance et y accéder depuis ses favoris — plutôt que depuis des résultats de recherche, des liens sur les réseaux sociaux ou des messages privés — supprime le mécanisme d'appât le plus courant.
Réviser les approbations régulièrement. Les approbations actives s'accumulent au fil des mois d'utilisation de la DeFi. Une révision trimestrielle à l'aide du vérificateur d'approbations d'un explorateur de blocs ou du tableau de bord des plafonds de dépense permet de repérer les permissions qui ne servent plus à rien.
Questions fréquentes sur les approbations de tokens
Non. Connecter un wallet partage l'adresse publique et permet à l'application de lire les soldes de tokens. Cela n'autorise pas l'application à déplacer des tokens. Une approbation de token nécessite une transaction blockchain distincte (pour les approbations classiques) ou un message Permit2 signé — ces deux actions apparaissent sous forme de demandes explicites dans le wallet, que l'utilisateur doit confirmer.
Non. La fonction ERC-20 approve() et Permit2 s'appliquent uniquement aux tokens, et non à la devise native de la blockchain. L'ETH (et les autres devises natives comme MATIC ou BNB) ne peut être transféré qu'en signant une transaction de transfert directe. Cependant, les versions wrappées des devises natives (WETH, WMATIC) sont des tokens ERC-20 et peuvent être vidées via des approbations.
Permit2 répond à la principale faiblesse des autorisations traditionnelles—les permissions illimitées dormantes qui persistent indéfiniment—en ajoutant des délais d'expiration et des nonces. Mais il introduit un risque différent : des signatures hors chaîne qui semblent anodines peuvent autoriser des transferts importants. Aucun des deux systèmes n'est catégoriquement plus sûr. Permit2 offre une meilleure protection contre les exploits liés aux autorisations obsolètes ; les autorisations traditionnelles sont plus sûres contre le phishing par signature, car elles nécessitent une transaction blockchain que les wallets affichent de manière plus visible.
Une approbation de token illimitée accorde à un smart contract la permission de déplacer n'importe quelle quantité d'un token spécifique depuis le portefeuille, sans expiration. La plupart des applications demandent des approbations illimitées par défaut afin de réduire le nombre de transactions nécessaires. Le risque : si le contrat approuvé est compromis, l'attaquant peut vider l'intégralité du solde de ce token dans le portefeuille sans aucune confirmation supplémentaire. Les approbations illimitées restent actives jusqu'à ce que l'utilisateur les révoque manuellement.
Abonnez-vous à Alpha pour recevoir l'actualité des marchés directement dans votre boîte mail
Traduit par IA. Peut contenir des erreurs. Veuillez toujours vérifier les informations.
Évaluer la traduction
Cet article a été rédigé par :
MetaMask
MetaMask, anciennement Consensys Software Inc, est la plus grande plateforme financière self-custodial au monde, offrant aux utilisateurs un espace unique pour détenir, dépenser, épargner et faire fructifier leur argent, aussi bien en crypto qu'en actifs traditionnels. La société développe la plateforme grand public au sein de laquelle tout cela se concrétise, en réunissant paiements, épargne, investissement et actifs numériques dans une expérience fluide et unifiée. Issu du wallet self-custodial le plus utilisé au monde, MetaMask donne aux utilisateurs un contrôle direct sur leur argent et leurs actifs, avec une présence dans environ 190 pays. MetaMask joue un rôle fondateur dans la croissance d'Ethereum depuis 2016. Aujourd'hui, MetaMask occupe une place centrale dans l'économie blockchain, en construisant le système d'exploitation de l'Open Money et en donnant aux individus un contrôle total sur leur vie financière.