
Revocare le approvazioni di token da SSP
Ogni volta che confermi uno swap, un deposito o un listing di NFT su una chain EVM, concedi al dApp l'autorizzazione a muovere uno specifico token ERC-20 a tuo nome. Quelle autorizzazioni — chiamate approvazioni o allowance — restano on-chain dopo che la transazione si è regolata. Mesi dopo, il contratto di cui ti fidavi a marzo potrebbe ancora avere il permesso di prosciugare quel token a giugno. La soluzione è semplice: revoca le approvazioni che non ti servono più. Questa guida ti mostra come farlo da SSP, il wallet auto-custodial 2-su-2 in cui ogni transazione (revoche incluse) viene co-firmata dalla tua SSP Key.
Se il concetto è nuovo, leggi prima Approvazioni di token: i permessi che continui a concedere. Spiega perché esistono le approvazioni e perché le allowance illimitate sono la superficie d'attacco di default in DeFi. Questo articolo è il complemento di pulizia.
Un breve riepilogo
Quando firmi una chiamata approve(spender, amount), il contratto del token registra che spender (tipicamente un contratto router, vault o marketplace) è autorizzato a trasferire fino a amount di quel token dal tuo indirizzo. Molti dApp richiedono 2^256 - 1 — di fatto illimitato — per risparmiarti gas nelle interazioni future. Quella comodità è anche il rischio: se il contratto spender viene successivamente compromesso, o se smetti di usare il dApp ma l'allowance resta, un attaccante può prosciugare l'intero saldo quando vuole.
La revoca annulla quella concessione. Non rimanda indietro i trasferimenti passati e non "cancella" nulla — riporta semplicemente l'allowance a zero.
Come funziona meccanicamente la revoca
Una revoca è solo un'altra transazione. Chiami approve(spender, 0) sullo stesso contratto del token, sulla stessa chain in cui era stata concessa l'approvazione originale. Quella singola chiamata di funzione scrive un nuovo 0 nel mapping allowance[owner][spender] del contratto, sovrascrivendo il valore precedente.
Alcuni dettagli da interiorizzare:
- Una revoca per chain per coppia token-spender. Se hai approvato uno spender USDC su Ethereum e lo stesso spender su Polygon, ti servono due transazioni di revoca — una per chain. Le allowance non sono condivise tra chain.
- La revoca è una transazione autonoma. Costa gas come qualunque trasferimento. Pianificala: tieni l'asset nativo della chain (ETH su Ethereum, MATIC su Polygon, ecc.) per coprire la commissione.
- Può essere più economica di quanto temi. Una revoca è una scrittura semplice, spesso più economica di uno swap. Su Layer 2 come Base sono solitamente pochi centesimi.
- SSP co-firma comunque. Poiché SSP è un wallet 2-su-2, la transazione di revoca segue lo stesso flusso di qualsiasi altra: la tua estensione la propone, la tua SSP Key la rivede e la co-firma. La tua protezione si estende anche alla pulizia stessa — nessun dispositivo singolo può revocare in modo unilaterale e nessun dispositivo singolo può essere indotto ad approvare qualcosa travestito da revoca.
Due percorsi per revocare
Hai due modi ugualmente validi per revocare le approvazioni da SSP. Scegli quello che meglio si adatta alla situazione.
Percorso 1: usare un block explorer affidabile
È la via manuale e trasparente. Utile quando conosci esattamente il token e lo spender che vuoi revocare, o quando non vuoi connetterti a uno strumento di terze parti.
- Apri la pagina del contratto del token sull'explorer appropriato:
- Ethereum: etherscan.io
- Polygon: polygonscan.com
- Base: basescan.org
- BNB Smart Chain: bscscan.com
- Avalanche: snowtrace.io
- Vai alla scheda Contract e poi a Write Contract (o Write as Proxy se il token è un contratto proxy — la maggior parte delle principali stablecoin lo sono).
- Trova la funzione
approve. Gli input sonospender(l'indirizzo che vuoi revocare) eamount(la nuova allowance). - Imposta
amounta0. Incolla l'indirizzo dello spender — copialo dalla tua cronologia delle transazioni, non scriverlo mai a memoria. - Connetti il tuo wallet. La maggior parte degli explorer supporta WalletConnect, che è il modo consigliato per connettere SSP. Approva la connessione nella tua estensione.
- Clicca Write. L'explorer costruisce la transazione
approve(spender, 0)e la passa a SSP. L'estensione SSP ti mostra i dettagli della chiamata; la tua SSP Key co-firma; la revoca viene trasmessa.
Questo percorso è verboso ma non lascia alcuna ambiguità su ciò che hai firmato.
Percorso 2: usare uno strumento dedicato alla revoca
Per la maggior parte degli utenti è l'opzione pratica. revoke.cash è lo strumento open source largamente usato per questo. Scansiona il tuo indirizzo sulle chain supportate, elenca ogni allowance attiva, segnala quelle rischiose (importi illimitati, contratti sconosciuti) e ti permette di revocarle — singolarmente o in lotti — tramite il wallet connesso.
Il flusso:
- Apri
revoke.cashdirettamente nel browser. Aggiungi il dominio vero ai preferiti e accedi solo da quel preferito. Esistono cloni di phishing di strumenti di revoca proprio perché gli utenti vi arrivano già pronti a firmare transazioni. - Connetti con WalletConnect, poi scansiona il codice QR o copia l'URI in SSP.
- Imposta il selettore di chain sulla chain che vuoi auditare. revoke.cash recupererà le tue approvazioni su quella chain.
- Esamina la lista. Ogni riga mostra il token, lo spender, l'importo dell'allowance e di solito un'etichetta del dApp.
- Clicca Revoke accanto a tutto ciò che non usi più. Ogni revoca è una transazione
approve(spender, 0)separata, co-firmata da SSP.
Un flusso pratico di audit
Una o due volte all'anno, ritaglia 20 minuti e segui questi passi:
- Connetti SSP a revoke.cash tramite WalletConnect.
- Esamina le tue approvazioni attive su ogni chain che hai usato. Inizia da Ethereum — storicamente il grafo di approvazioni più denso — poi passa a Polygon, Base, BNB Smart Chain e Avalanche.
- Prendi prima gli elementi più rischiosi. Ordina o scorri la lista cercando allowance illimitate e nomi di dApp sconosciuti. Un protocollo con cui hai fatto uno swap una sola volta nel 2024 e che non hai più toccato è un candidato perfetto. Lo stesso vale per qualsiasi contratto che non sai identificare.
- Revoca. Conferma la transazione nella tua estensione SSP; la SSP Key ti chiede di co-firmare; la revoca viene trasmessa.
- Co-firma sulla SSP Key. È il momento di ricontrollare la destinazione. La SSP Key mostra il contratto che stai chiamando e la funzione — conferma che entrambi corrispondano alla tua intenzione.
- Ripeti per ogni chain. Le allowance sono per-chain. Non dare per scontato che revocare su Ethereum ripulisca Polygon.
Non serve fare tabula rasa. L'obiettivo è mantenere le allowance sui contratti che usi attivamente e azzerare il resto.
Cautele
- Igiene dei domini. Usa solo il dominio ufficiale
revoke.cash. I cloni di phishing puntano proprio a questo flusso perché l'utente è già in modalità di firma di transazioni. Aggiungilo ai preferiti; controlla la barra dell'URL prima di connetterti. - Realtà per chain. Revocare un'approvazione USDC su Ethereum non tocca l'approvazione USDC su Polygon, anche se il token "sembra lo stesso" nel portfolio. Percorri ogni chain in modo esplicito.
- Budget di gas. La revoca costa gas. Su Ethereum un arretrato di revoche può sommarsi; falle quando il gas è tranquillo. Su Layer 2 il costo è trascurabile.
- Verifica sempre lo spender. Prima di firmare qualsiasi transazione di "revoca", conferma che l'indirizzo dello spender nella chiamata corrisponda al contratto che intendevi revocare. Un sito malevolo potrebbe presentare una falsa UI di revoca che in realtà emette una nuova approvazione a un attaccante. Leggere il nome della funzione (
approve) e l'importo (0) sul prompt della SSP Key è la tua ultima linea di difesa. - I permit sono diversi. Alcuni token (USDC, varianti di DAI) supportano
permit— firme off-chain che agiscono come approvazioni. revoke.cash mostra le concessioni basate su permit che riesce a riconoscere; tratta tutto ciò che non riconosci esattamente come faresti con una allowance on-chain.
Il vantaggio del 2-su-2 sulla pulizia
È il punto spesso trascurato: la revoca in SSP non è un singolo clic su un singolo dispositivo. La tua estensione redige la revoca, ma non può trasmetterla da sola. La tua SSP Key deve co-firmare, e quel passaggio di co-firma è dove ispezioni cosa sta davvero per essere inviato. Se la tua estensione fosse compromessa e provasse a inviare una "revoca" malevola che in realtà è una nuova approvazione, la SSP Key mostrerebbe la funzione reale e l'importo reale sul suo schermo. Due dispositivi, due occasioni per intercettare un problema.
L'igiene routinaria delle approvazioni è l'abitudine DeFi con il maggior ritorno che la maggior parte degli utenti salta. Imposta un promemoria sul calendario, fai l'audit, dormi meglio. E continua a leggere la serie — inizia da Ethereum in SSP se vuoi ancorare i dettagli specifici della chain, oppure rileggi Approvazioni di token: i permessi che continui a concedere per ricordarti perché tutto questo conta.


