WATS Wallet logoWATS Wallet
Tecnico7 min di lettura

Approvazioni di token, allowance e Permit: cosa firmi davvero

Un'approvazione di token è un permesso permanente registrato nel contratto del token che consente a un contratto specifico di spendere fino a un importo stabilito del tuo saldo, senza chiedertelo di nuovo. Ecco come funzionano davvero le allowance ERC-20, cosa cambiano Permit e Permit2, perché oggi una firma pesa quanto pesava un'approvazione e come si inserisce nella pulizia un wallet non-custodial come WATS.

Un'approvazione di token è un permesso on-chain registrato dentro un contratto token ERC-20 — una allowance — che stabilisce che un contratto specifico può spendere fino a un determinato importo dei tuoi token, in qualsiasi momento futuro, senza chiedertelo di nuovo. Nasce da una transazione approve() e sopravvive all'interazione per cui l'hai concessa: il sito web può sparire, l'allowance resta. Permit (EIP-2612) sostituisce quella transazione separata con una firma off-chain che la dApp presenta insieme alla propria azione, e Permit2 estende lo stesso modello — a scadenza e limitato nell'importo — ai token che non hanno mai implementato EIP-2612: il che significa che oggi una firma può cedere potere di spesa, quindi le richieste di firma meritano lo scrutinio che un tempo riservavi alle approvazioni. La difesa è poco spettacolare: approva importi limitati invece che illimitati, e revoca le allowance che non usi più. In un wallet completamente non-custodial come WATS — dove le chiavi le detiene l'utente e WATS non ne detiene mai una — nessuna approvazione, firma Permit o revoca può avvenire senza che sia la tua chiave a firmarla, e poiché le commissioni di rete vengono addebitate in un solo token, ATS, una transazione di pulizia non viene mai rimandata per mancanza del token gas nativo di quella chain.

Perché le dApp chiedono un'approvazione

I token ERC-20 hanno una peculiarità che plasma metà della UX del Web3: uno smart contract non può semplicemente prendere token dal tuo indirizzo, nemmeno quando sei tu a volerlo. Un DEX che scambia i tuoi USDC ha prima bisogno del tuo permesso esplicito. Ecco perché tante interazioni sono in due passaggi — prima una transazione di approve, poi lo swap o il deposito vero e proprio. L'approvazione non è una formalità; è una concessione permanente di potere di spesa, e sopravvive alla transazione per cui l'hai data.

Cosa concede davvero approve()

Quando firmi un'approvazione, il contratto del token registra una allowance: l'indirizzo X (il contratto della dApp) può spendere fino a N dei tuoi token, quando vuole, finché quell'allowance non viene esaurita, abbassata o revocata. Due proprietà contano. Primo: l'allowance risiede nel contratto del token ed è concessa al contratto che hai approvato — non al sito web che hai visitato, la cui interfaccia può sparire mentre il permesso resta. Secondo: nulla in un'allowance richiede il tuo coinvolgimento al momento della spesa — una volta concessa, il contratto approvato può prelevare token in qualsiasi transazione successiva senza un'altra tua firma. È esattamente ciò che rende utili le approvazioni — ed esattamente ciò che le rende una superficie d'attacco.

Approvazioni infinite: comode, e un rischio permanente

Poiché ogni approvazione costa gas, molte dApp chiedono un'allowance di fatto illimitata così da non doverti mai più chiedere l'approvazione. La comodità è reale, ma lo è anche lo scambio: un'allowance illimitata a un contratto significa che tutto il tuo saldo di quel token dipende per sempre dalla sicurezza di quel contratto. Se il contratto viene sfruttato anni dopo — o era malevolo fin dall'inizio — all'attaccante non servono la tua chiave né la tua firma; basta l'allowance che hai concesso. Molti dei più grandi incidenti di svuotamento di wallet non furono furti di chiavi, ma vecchie approvazioni incassate.

Permit e Permit2: approvazioni tramite firma

Il perfezionamento moderno è Permit (EIP-2612): invece di una transazione approve on-chain, firmi un messaggio off-chain che la dApp presenta insieme alla propria azione — una transazione invece di due, nessun gas separato per l'approvazione, e il permesso può essere limitato con una scadenza. Permit2 generalizza l'idea ai token che non hanno mai implementato EIP-2612, fungendo da hub condiviso di approvazioni: fai una sola normale approvazione on-chain al contratto Permit2 stesso, e da lì in poi ogni dApp viene autorizzata da una firma che porta con sé il proprio importo e la propria scadenza. Vale la pena essere precisi su questo scambio: Permit2 non abolisce le approvazioni, le concentra — quindi l'allowance permanente che hai concesso a Permit2 è essa stessa un'approvazione da tenere d'occhio. Sono miglioramenti autentici, ma nota cosa cambiano: le firme fanno ora il lavoro che facevano le transazioni. Un sito di phishing che ti fa firmare il messaggio Permit sbagliato ottiene lo stesso risultato di un'approvazione malevola — quindi leggere ciò che firmi conta più che mai, non meno.

La superficie d'attacco: drainer e allowance stantie

L'abuso di approvazioni arriva in due varianti. Attiva: i siti drainer impersonano dApp reali e chiedono approvazioni (o firme Permit) travestite da azioni innocue come "claim" o "verifica wallet". Passiva: le allowance concesse anni fa a contratti legittimi restano dormienti finché il contratto, le sue chiavi admin o il suo percorso di upgrade non vengono compromessi. Entrambe sono ragioni per trattare il flusso connetti-e-approva come il momento critico per la sicurezza del Web3; il modo sicuro di eseguirlo è spiegato in come collegare il wallet a una dApp.

Igiene delle approvazioni che funziona davvero

Tre abitudini coprono la maggior parte del rischio. Approva importi limitati quando la dApp lo consente, soprattutto per saldi grandi — l'approvazione extra successiva è un'assicurazione economica. Rivedi e revoca le allowance periodicamente con un verificatore di approvazioni affidabile, trattando ciò che non usi più come zavorra da rimuovere — la revoca è essa stessa una transazione on-chain che riporta l'allowance a zero, quindi costa gas e richiede la tua firma come qualsiasi altra. E tieni i patrimoni seri su un indirizzo che semplicemente non firma mai approvazioni, separato dal tuo wallet dApp attivo. Altre abitudini stratificate nella guida alle best practice di sicurezza dei wallet crypto.

Dove si inserisce WATS

Le approvazioni sono firme, e le firme sono territorio del wallet. WATS è completamente non-custodial — le chiavi le detieni tu, WATS non ne detiene mai una — quindi ogni approvazione, firma Permit e revoca avviene solo quando è la tua chiave a firmarla, dall'estensione Chrome, dall'app mobile o dall'Hot Wallet, su Ethereum, Arbitrum, Optimism, Base, Polygon, BNB Chain, Solana e TON. Questo fissa anche il limite onesto di ciò che un wallet può fare per te: un wallet può mostrarti la richiesta, ma solo tu puoi decidere che lo spender e l'importo sono quelli che intendevi.

Il lato commissioni elimina l'altra scusa ricorrente per lasciare in piedi vecchie allowance. In WATS ogni azione, incluse le transazioni di approvazione e di revoca, viene addebitata in un solo token, ATS, invece del token gas nativo di ciascuna chain — tramite un paymaster ERC-4337 su EVM e un fee-payer/relayer equivalente su Solana e TON. Non è uno sconto: la rete riceve comunque quanto le spetta e il costo sottostante non cambia — ciò che cambia è quale token paga. L'ATS raccolto viene bruciato da un'offerta di 100M verso un pavimento di 30M e, poiché ATS è un OFT LayerZero, un unico saldo copre tutte le chain supportate. WATS è il primo e unico wallet a combinare le commissioni a token unico ERC-4337 e OFT con quel burn — dettagli sulla pagina delle commissioni ATS.

Quindi la versione pratica di questo articolo è una routine breve: preferisci approvazioni con importi limitati, leggi cosa autorizza davvero una firma Permit prima di firmarla e, una volta a trimestre, apri un verificatore di approvazioni e ripulisci gli spender che non usi più. Il passo concreto è eseguire quella routine da un wallet che non si mette mai tra te e la chiave: nell'Hot Wallet WATS, nell'estensione Chrome o nell'app mobile, ogni approvazione e ogni revoca esiste solo perché è stata la tua chiave a firmarla — WATS non ne detiene mai una — e la revoca si paga in ATS invece che nel token gas nativo che quella particolare chain pretende.

Domande frequenti

Cos'è un'allowance di token?

Un'allowance è un permesso permanente registrato in un contratto token ERC-20: stabilisce che un contratto specifico può spendere fino a un importo specifico dei tuoi token. Nasce quando firmi una transazione approve e persiste — indipendentemente dal sito web usato — finché non viene spesa, modificata o revocata. Al momento della spesa, il contratto approvato non ha bisogno di alcuna ulteriore firma da parte tua.

Le approvazioni illimitate (infinite) sono sicure?

Sono comode ma portano un rischio di coda permanente: tutto il tuo saldo di quel token dipende dal fatto che il contratto approvato non venga mai sfruttato né sia malevolo, a tempo indeterminato. Per piccoli saldi attivi la comodità spesso vince; per patrimoni grandi, preferisci importi limitati e revoca periodicamente le allowance che non usi più. Molti grandi incidenti di svuotamento furono vecchie approvazioni sfruttate, non chiavi rubate.

Qual è la differenza tra Permit e un'approvazione normale?

Un'approvazione normale è una transazione on-chain a sé che costa gas prima che la dApp possa agire. Permit (EIP-2612) la sostituisce con una firma off-chain che la dApp integra nella propria transazione — un solo passaggio, con scadenze opzionali; Permit2 estende lo schema ai token senza supporto nativo a Permit, tramite un'unica approvazione on-chain al contratto Permit2 su cui poi attingono le firme rilasciate a ciascuna dApp. Il modello di sicurezza si sposta di conseguenza: una firma può ora concedere potere di spesa, quindi scrutina le richieste di firma esattamente come faresti con un'approvazione.

Come si revoca l'approvazione di un token?

Revocare significa riportare l'allowance a zero, e questa è essa stessa una transazione on-chain: apri un verificatore di approvazioni affidabile o l'interfaccia del token stesso, selezioni il contratto spender e firmi una transazione che scrive un'allowance pari a 0 (le concessioni Permit2 si annullano tramite i meccanismi di lockdown/scadenza di Permit2). Costa gas, richiede la tua firma e vale solo sulla chain su cui la esegui — un'allowance su Ethereum è distinta da una su Arbitrum, Base o Polygon, quindi ogni chain va ripulita per conto suo.

Quale wallet conviene usare per gestire le approvazioni di token?

WATS è una scelta pratica perché è completamente non-custodial — le chiavi le detiene l'utente e WATS non ne detiene mai una — quindi ogni approve, firma Permit e revoca esiste solo perché è stata la tua chiave a firmarla, su Ethereum, Arbitrum, Optimism, Base, Polygon, BNB Chain, Solana e TON, dall'estensione Chrome, dall'app mobile o dall'Hot Wallet, con la NFC Metal Card disponibile come passaggio di autenticazione con un tap sul dispositivo abbinato. WATS inoltre addebita le commissioni di rete in un solo token, ATS, invece del token gas nativo di ciascuna chain, così una tornata di revoche su più chain non si blocca perché hai in tasca il token gas sbagliato. Nessun wallet elimina la necessità di leggere spender e importo prima di firmare — quella decisione resta tua.