Révoquer les approbations de tokens depuis SSP

·7 min de lecture·Par SSP Editorial Team
Illustration de la révocation d'approbations de tokens ERC-20 depuis le wallet SSP : une allowance remise à zéro et une SSP Key co-signant la transaction.

Révoquer les approbations de tokens depuis SSP

Chaque fois que vous validez un swap, un dépôt ou un listing NFT sur une chaîne EVM, vous accordez au dApp la permission de déplacer un token ERC-20 spécifique en votre nom. Ces permissions — appelées approbations ou allowances — restent on-chain après que la transaction soit finalisée. Quelques mois plus tard, le contrat auquel vous faisiez confiance en mars peut toujours être autorisé à vider ce token en juin. La solution est simple : révoquer les approbations dont vous n'avez plus besoin. Ce guide vous montre comment le faire depuis SSP, le wallet auto-custodial 2-sur-2 dans lequel chaque transaction (révocations incluses) est co-signée par votre SSP Key.

Si le concept est nouveau pour vous, lisez d'abord Approbations de tokens : les permissions que vous continuez d'accorder. On y explique pourquoi les approbations existent et pourquoi les allowances illimitées constituent la surface d'attaque par défaut en DeFi. Cet article en est le complément de nettoyage.

Un rappel rapide

Lorsque vous signez un appel approve(spender, amount), le contrat du token enregistre que spender (typiquement un contrat de routeur, de vault ou de marketplace) est autorisé à transférer jusqu'à amount de ce token depuis votre adresse. De nombreux dApps demandent 2^256 - 1 — soit, en pratique, illimité — pour vous économiser du gas lors d'interactions futures. Cette commodité est aussi le risque : si le contrat spender est plus tard compromis, ou si vous cessez d'utiliser le dApp mais que l'allowance persiste, un attaquant peut vider l'intégralité du solde quand il le souhaite.

La révocation annule cette autorisation. Elle ne défait pas les transferts passés et ne "supprime" rien — elle remet simplement l'allowance à zéro.

Comment la révocation fonctionne mécaniquement

Une révocation n'est qu'une transaction de plus. Vous appelez approve(spender, 0) sur le même contrat de token, sur la même chaîne où l'approbation d'origine a été accordée. Cet unique appel de fonction écrit un nouveau 0 dans le mapping allowance[owner][spender] du contrat, écrasant l'ancienne valeur.

Quelques détails à intégrer :

  • Une révocation par chaîne par paire token-spender. Si vous avez approuvé un spender USDC sur Ethereum et le même spender sur Polygon, il vous faut deux transactions de révocation — une par chaîne. Les allowances ne sont pas partagées entre chaînes.
  • La révocation est une transaction autonome. Elle coûte du gas comme n'importe quel transfert. Anticipez-le : prévoyez de quoi payer en actif natif de la chaîne (ETH sur Ethereum, MATIC sur Polygon, etc.) pour couvrir les frais.
  • Cela peut être moins cher que vous ne le craignez. Une révocation est une simple écriture, souvent moins chère qu'un swap. Sur des Layer 2 comme Base, c'est généralement quelques centimes.
  • SSP co-signe toujours. Comme SSP est un wallet 2-sur-2, la transaction de révocation passe par le même flux que n'importe quelle autre : votre extension la propose, votre SSP Key la passe en revue et la co-signe. Votre protection s'étend au nettoyage lui-même — aucun appareil seul ne peut révoquer unilatéralement, et aucun appareil seul ne peut être berné pour approuver quelque chose déguisé en révocation.

Deux chemins pour révoquer

Vous avez deux façons tout aussi valables de révoquer des approbations depuis SSP. Choisissez celle qui convient à la situation.

Chemin 1 : utiliser un explorateur de blocs réputé

C'est la voie manuelle et transparente. Utile quand vous savez précisément quel token et quel spender vous voulez révoquer, ou quand vous ne voulez pas vous connecter à un outil tiers.

  1. Ouvrez la page du contrat du token sur l'explorateur approprié :
    • Ethereum : etherscan.io
    • Polygon : polygonscan.com
    • Base : basescan.org
    • BNB Smart Chain : bscscan.com
    • Avalanche : snowtrace.io
  2. Allez dans l'onglet Contract, puis Write Contract (ou Write as Proxy si le token est un contrat proxy — la plupart des principales stablecoins le sont).
  3. Trouvez la fonction approve. Les entrées sont spender (l'adresse que vous voulez révoquer) et amount (la nouvelle allowance).
  4. Mettez amount à 0. Collez l'adresse du spender — copiez-la depuis votre historique de transactions, ne la tapez jamais de mémoire.
  5. Connectez votre wallet. La plupart des explorateurs prennent en charge WalletConnect, qui est la méthode recommandée pour connecter SSP. Validez la connexion dans votre extension.
  6. Cliquez sur Write. L'explorateur construit la transaction approve(spender, 0) et la transmet à SSP. L'extension SSP affiche les détails de l'appel ; votre SSP Key co-signe ; la révocation est diffusée.

Ce chemin est verbeux mais ne laisse aucune ambiguïté sur ce que vous avez signé.

Chemin 2 : utiliser un outil dédié à la révocation

Pour la plupart des utilisateurs, c'est l'option pratique. revoke.cash est l'outil open source largement utilisé pour cette tâche. Il scanne votre adresse sur les chaînes supportées, liste chaque allowance active, signale celles qui sont risquées (montants illimités, contrats inconnus) et vous permet de les révoquer — individuellement ou en lots — via votre wallet connecté.

Le déroulement :

  1. Ouvrez revoke.cash directement dans votre navigateur. Mettez le vrai domaine en favori et n'y accédez que par ce favori. Des copies de phishing d'outils de révocation existent précisément parce que l'utilisateur y arrive déjà prêt à signer des transactions.
  2. Connectez-vous via WalletConnect, puis scannez le QR code ou collez l'URI dans SSP.
  3. Basculez le sélecteur de chaîne sur la chaîne que vous voulez auditer. revoke.cash récupère vos approbations sur cette chaîne.
  4. Examinez la liste. Chaque ligne montre le token, le spender, le montant de l'allowance et, en général, une étiquette pour le dApp.
  5. Cliquez sur Revoke à côté de tout ce que vous n'utilisez plus. Chaque révocation est une transaction approve(spender, 0) distincte, co-signée par SSP.

Un flux d'audit pratique

Une à deux fois par an, réservez 20 minutes et parcourez ceci :

  1. Connectez SSP à revoke.cash via WalletConnect.
  2. Examinez vos approbations actives sur chaque chaîne que vous avez utilisée. Commencez par Ethereum — historiquement le graphe d'approbations le plus dense — puis passez à Polygon, Base, BNB Smart Chain et Avalanche.
  3. Visez d'abord les éléments les plus risqués. Triez ou parcourez la liste pour repérer les allowances illimitées et les noms de dApp inconnus. Un protocole avec lequel vous avez swappé une fois en 2024 et que vous n'avez jamais retouché est un candidat de choix. De même, tout contrat que vous n'arrivez pas à identifier.
  4. Révoquez. Validez la transaction dans votre extension SSP ; le SSP Key vous demande de co-signer ; la révocation est diffusée.
  5. Co-signez sur le SSP Key. C'est le moment de vérifier la destination. Le SSP Key affiche le contrat que vous appelez et la fonction — confirmez que les deux correspondent à votre intention.
  6. Répétez par chaîne. Les allowances sont propres à chaque chaîne. Ne supposez pas qu'une révocation sur Ethereum nettoie Polygon.

Vous n'avez pas besoin de partir de zéro. L'objectif est de conserver les allowances sur les contrats que vous utilisez activement et de mettre le reste à zéro.

Précautions

  • Hygiène des domaines. N'utilisez que le domaine officiel revoke.cash. Les clones de phishing ciblent précisément ce flux parce que l'utilisateur est déjà en posture de signer des transactions. Mettez-le en favori ; vérifiez la barre d'URL avant de vous connecter.
  • Réalité par chaîne. Révoquer une approbation USDC sur Ethereum ne touche pas l'approbation USDC sur Polygon, même si le token "a l'air pareil" dans votre portefeuille. Parcourez chaque chaîne explicitement.
  • Budget gas. La révocation coûte du gas. Sur Ethereum, un cumul de révocations peut peser ; faites-les quand le gas est calme. Sur les Layer 2, le coût est négligeable.
  • Vérifiez toujours le spender. Avant de signer la moindre transaction de "révocation", confirmez que l'adresse du spender dans l'appel correspond au contrat que vous vouliez révoquer. Un site malveillant pourrait présenter une fausse UI de révocation qui émet en réalité une nouvelle approbation à un attaquant. Lire le nom de la fonction (approve) et le montant (0) sur l'écran du SSP Key est votre dernière ligne de défense.
  • Les permits sont différents. Certains tokens (USDC, variantes de DAI) prennent en charge permit — des signatures off-chain qui agissent comme des approbations. revoke.cash remontera les permits qu'il connaît ; traitez tout ce que vous ne reconnaissez pas exactement comme une allowance on-chain.

L'avantage du 2-sur-2 sur le nettoyage

C'est le point souvent oublié : la révocation dans SSP n'est pas un clic unique sur un seul appareil. Votre extension rédige la révocation, mais ne peut pas la diffuser seule. Votre SSP Key doit co-signer, et c'est à cette étape de co-signature que vous inspectez ce qui sera réellement soumis. Si votre extension était compromise et tentait d'envoyer une "révocation" malveillante qui serait en réalité une nouvelle approbation, le SSP Key afficherait la véritable fonction et le véritable montant à l'écran. Deux appareils, deux occasions de détecter le problème.

L'hygiène régulière des approbations est l'habitude DeFi la plus rentable que la plupart des utilisateurs sautent. Mettez un rappel dans votre calendrier, faites l'audit, dormez mieux. Et continuez la série — commencez par Ethereum dans SSP si vous voulez ancrer les détails propres à la chaîne, ou relisez Approbations de tokens : les permissions que vous continuez d'accorder pour vous rappeler pourquoi cela compte.

Partager cet article

Articles connexes