Cos`è ERC-20? È lo standard di token che regola l`economia di Ethereum.
Detengo USDT nel mio wallet MetaMask. Ho anche un po' di LINK, un po' di UNI da uno scambio della scorsa settimana e un token "cane" che qualcuno mi ha inviato tramite airdrop e che continuo a dimenticare di vendere. Questi token hanno funzioni completamente diverse. Tether è una stablecoin garantita da liquidità e titoli di stato. Chainlink gestisce reti di oracoli che forniscono dati reali agli smart contract. Uniswap governa il più grande DEX su Ethereum. Il token "cane" non ha alcuna utilità pratica. Eppure il mio wallet li visualizza tutti nella stessa lista, mi permette di inviarli con lo stesso pulsante e ogni protocollo DeFi che utilizzo li accetta senza bisogno di configurazioni particolari.
Questo funziona solo perché tutti e quattro seguono le stesse regole. Sono token ERC-20. Stessa interfaccia, stesse funzioni, stesso schema operativo. E capire cosa significhi effettivamente ERC-20 è il primo passo per capire come funziona Ethereum come economia.
Fabian Vogelsteller scrisse la proposta nel novembre 2015, dandole un nome piuttosto banale: Ethereum Request for Comment numero 20. Vitalik Buterin fu coautore della versione finale. Nel 2017 venne formalmente adottata, e subito dopo arrivò il boom delle ICO. Migliaia di progetti lanciarono token da un giorno all'altro perché lo standard ERC-20 rendeva il processo praticamente gratuito. Mezzo milione di contratti token dopo, lo standard è ancora il punto di riferimento. Ecco cosa fa e perché dovreste interessarvene, anche se non avete intenzione di scrivere una sola riga di codice Solidity.
Come funziona lo standard ERC-20
Il nome è più da nerd del necessario. ERC = Ethereum Request for Comment. 20 = il numero della proposta. Tutto qui. Uno sviluppatore di nome Fabian ha detto "ecco le regole che ogni token dovrebbe seguire" e ha dato alla sua proposta il numero 20 perché era il primo slot disponibile. Non venti regole. Non venti token. Semplicemente la proposta numero 20 nella coda di miglioramento di Ethereum.
Ecco cosa dicono queste regole: se vuoi creare un token fungibile su Ethereum, il tuo smart contract deve includere queste funzioni specifiche. "Fungibile" significa che ogni unità del token è identica. Un USDC è uguale a qualsiasi altro USDC. Non ti interessa quale specifico token UNI possiedi perché sono tutti intercambiabili. Gli NFT sono l'opposto. Ognuno è unico. Standard diverso. Articolo diverso.
Lo standard ERC-20 definisce sei funzioni e due eventi. Ogni contratto token conforme, da USDT con la sua capitalizzazione di mercato di 140 miliardi di dollari fino al memecoin lanciato da qualcuno trenta secondi fa, implementa queste stesse chiamate:
| Funzione | Versione in linguaggio semplice |
|---|---|
| fornitura totale() | "Quanti di questi token esistono al mondo?" |
| saldoDi(indirizzo) | "Quanti ne contiene questo specifico portafoglio?" |
| trasferimento(a, importo) | "Invia X token dal mio portafoglio a quest'altra persona" |
| approva(pagatore, importo) | "Consenti a questo protocollo DeFi di spendere fino a X dei miei token" |
| trasferimentoDa(da, a, importo) | "Ho l'autorizzazione a trasferire i token dal portafoglio A al portafoglio B" |
| indennità (proprietario, spenditore) | "Quanto può ancora utilizzare questa persona dal suo budget?" |
Ogni volta che accade qualcosa, sulla blockchain vengono registrati due eventi. Il trasferimento si verifica ogni volta che i token vengono spostati tra portafogli. L'approvazione si verifica quando qualcuno autorizza la spesa. Gli esploratori di blockchain come Etherscan utilizzano questi eventi per costruire la cronologia delle transazioni che visualizzi quando cerchi un token.
Tre campi opzionali aggiungono personalità: il nome assegna al token un'etichetta leggibile dall'uomo ("Chainlink"), il simbolo è il ticker ("LINK") e i decimali impostano la granularità con cui il token può essere suddiviso (quasi tutti usano 18 per corrispondere a ETH, anche se USDT usa 6 e questo ha causato più bug di quanti chiunque voglia ammettere).
Sei funzioni. Due eventi. Tre campi opzionali. Questa è letteralmente l'intera specifica. Potrei stamparla su un tovagliolo, con ancora spazio per le macchie di caffè. Eppure, questa specifica, grande quanto un tovagliolo, alimenta un'economia di token del valore di centinaia di miliardi di dollari. MetaMask legge queste funzioni per mostrare il saldo. Uniswap le utilizza per eseguire gli scambi. Aave le usa per gestire i prestiti. Ogni protocollo DeFi che abbiate mai usato comunica con i token attraverso questa stessa interfaccia. La semplicità è il punto.

Perché lo standard ERC-20 ha cambiato tutto in Ethereum
Ho lavorato nel settore delle criptovalute nel 2016, prima che questo standard esistesse. Era il caos. Ogni token era un caso a sé. Qualcuno creava un contratto per un token con nomi di funzione personalizzati, una logica di trasferimento su misura e un metodo di verifica dei saldi altrettanto personalizzato. MetaMask non aveva idea di cosa fossero la metà di questi token. Gli exchange impiegavano mesi per aggiungere il supporto a un nuovo token, perché ognuno richiedeva un codice di integrazione personalizzato. Creare un DEX? Impossibile. Avresti dovuto scrivere gestori per ogni singola implementazione di token.
L'ERC-20 ha messo fine a quella follia. Dopo l'adozione dello standard, un nuovo token appariva in MetaMask nel momento stesso in cui si incollava l'indirizzo del contratto. Uniswap poteva quotarlo senza il permesso di nessuno. Aave poteva accettarlo come garanzia senza scrivere una sola riga di codice personalizzato. Uno standard, compatibilità universale.
L'ondata di ICO del 2017 ne è stata la prova. Un ragazzo in una stanza del dormitorio poteva lanciare un token ERC-20 dopo pranzo, creare un sito web con un white paper e iniziare ad accettare ETH dagli investitori entro mezzanotte. Ho assistito a tutto ciò in tempo reale. I progetti hanno raccolto miliardi. Alcuni erano legittimi e hanno creato prodotti reali. La maggior parte erano spazzatura. Alcuni erano vere e proprie frodi. Ma la tecnologia sottostante? Ha funzionato alla perfezione. Lo standard ha fatto esattamente ciò per cui era stato progettato: rendere la creazione e l'interazione con i token estremamente semplici.
Le dimensioni attuali sono sbalorditive. Oltre 500.000 contratti di token ERC-20 sono presenti sulla rete Ethereum. La capitalizzazione di mercato totale dei token ERC-20 si aggira sulle centinaia di miliardi. Il solo USDT ha superato i 140 miliardi di dollari. Aggiungete USDC, LINK, UNI, DAI, SHIB, MKR e tutti gli altri e vi renderete conto che la maggior parte dell'intero valore economico di Ethereum risiede all'interno dei contratti ERC-20.
| I migliori token ERC-20 | Categoria | Capitalizzazione di mercato (circa) |
|---|---|---|
| USDT (Tether) | Stablecoin | Oltre 140 miliardi di dollari |
| USDC (Circle) | Stablecoin | Oltre 60 miliardi di dollari |
| LINK (Maglia a catena) | Rete Oracle | Oltre 8 miliardi di dollari |
| UNI (Uniswap) | governance DEX | Oltre 4 miliardi di dollari |
| DAI (creatore) | Stablecoin decentralizzata | Oltre 5 miliardi di dollari |
| AAVE | Protocollo di prestito | Oltre 2 miliardi di dollari |
| SHIB (Shiba Inu) | Memecoin | Oltre 6 miliardi di dollari |
| MKR (Produttore) | Governance | Oltre 1,5 miliardi di dollari |
Creare un token ERC-20: più facile di quanto pensi
Una volta ho visto qualcuno distribuire un token ERC-20 in diretta su YouTube. Ci sono voluti 14 minuti, incluso il tempo che ha impiegato per spiegare cosa stava facendo alla chat.
Non si tratta di vantarsi dell'intelligenza dello streamer, ma di sottolineare quanto OpenZeppelin abbia semplificato il processo. OpenZeppelin è una libreria di codice Solidity collaudato e verificato che si occupa di tutto il lavoro più complesso. Basta scegliere il nome del token ("MyToken"), il simbolo ("MTK"), il numero di decimali (18, come ETH) e la fornitura iniziale. La libreria gestisce le sei funzioni ERC-20, gli eventi e i controlli di sicurezza. Si copia il template, si modificano quattro variabili, si distribuisce su Ethereum e si ottiene un token reale.
I costi del gas per l'implementazione sono variabili. Rete poco trafficata? Forse 20-50 dollari. Picco di congestione, come in un giorno di conio di un NFT? 200-500 dollari. Implementando su Arbitrum o Base invece che sulla rete principale di Ethereum, il costo scende a pochi dollari. La barriera finanziaria è praticamente nulla.
Ecco il lato oscuro di questa accessibilità. La blockchain di Ethereum non verifica la legittimità di un contratto token. Non controlla i team, non esegue audit del codice né valuta i modelli di business. Se puoi pagare la commissione di transazione (gas fee), puoi implementare un token. Questo è il motivo per cui Etherscan elenca centinaia di migliaia di contratti token, la maggior parte dei quali sono esperimenti abbandonati o truffe attive. Lo standard ERC-20 garantisce la compatibilità, ma non garantisce assolutamente nulla sulla convenienza di detenere un token.
Standard ERC-20 rispetto ad altri standard di token Ethereum
La gente mi chiede: "ERC-20 è l'unico standard per i token?" No. Assolutamente no. Ma è stato il primo a funzionare, e gli altri che sono venuti dopo hanno risolto i problemi che ERC-20 aveva lasciato irrisolti.
L'ERC-721 è arrivato e ci ha dato gli NFT. Mentre ogni token ERC-20 è intercambiabile (il tuo USDC è uguale al mio USDC), ogni token ERC-721 ha un ID univoco. Bored Ape #4293 è un asset completamente diverso da Bored Ape #7810. I nomi delle funzioni sono simili, ma la logica opera sui singoli elementi anziché su quantità generiche. Non puoi inviare mezzo Bored Ape. O tutto o niente.
Lo standard ERC-1155 è nato dall'esigenza degli sviluppatori di videogiochi di dover utilizzare contratti separati per ogni tipo di oggetto. Un unico contratto gestisce monete d'oro (fungibili, come l'ERC-20), spade di ferro (semi-fungibili, 50 copie identiche) e un elmo leggendario unico (non fungibile, pezzo unico). I trasferimenti batch consentono di risparmiare gas. Una singola transazione permette di trasferire 100 oggetti diversi anziché 100 transazioni separate.
BEP-20 è il nome che Binance Smart Chain dà alla propria versione. Stesse funzioni, stessi eventi, blockchain diversa. È come copiare e incollare ERC-20 su una rete più economica. Lo standard SPL di Solana svolge la stessa funzione con un'architettura completamente diversa, perché Solana non è stato progettato per essere compatibile con Ethereum.
| Standard | Tipo di token | Fungibile? | Casi d'uso | Rete |
|---|---|---|---|---|
| ERC-20 | Token fungibile | SÌ | Valute, governance, utilità | Ethereum |
| ERC-721 | Token non fungibile | No (ID univoci) | NFT, arte digitale, oggetti da collezione | Ethereum |
| ERC-1155 | Multi-token | Entrambi | Giochi, tipologie di asset miste | Ethereum |
| BEP-20 | Token fungibile | SÌ | Uguale a ERC-20 | Catena BNB |
| SPL | Fungibile + NFT | Entrambi | Ecosistema di Solana | Solana |
I token ERC-20 nella DeFi: perché questo standard alimenta la finanza decentralizzata
Eliminate l'ERC-20 e la DeFi crollerà da un giorno all'altro. Non "faticherà", ma crollerà. Ogni componente del sistema presuppone che i token parlino la stessa lingua.
Uniswap accoppia due token ERC-20 in un pool e permette di scambiarli. Funziona con USDC. Funziona con SHIB. Funziona anche con quella memecoin lanciata dal tuo amico alle 2 del mattino. Al DEX non importa cosa faccia il token. Gli interessa solo che il contratto implementi i metodi transfer() e approve(). Aggiungi un pool di liquidità e il trading inizia. Nessuna richiesta di quotazione. Nessuna revisione da parte dell'exchange. Nessun periodo di attesa.
Aave e Compound prestano token ERC-20. Il protocollo chiama `balanceOf()` per visualizzare i depositi. Chiama `transfer()` per trasferire i token. Utilizza `approve()` e `transferFrom()` per rimborsare i prestiti. Un mercato di prestito per un token appena creato può essere avviato il giorno stesso del suo lancio, poiché l'interfaccia è già nota.
Poi c'è lo strano problema di ETH. ETH esisteva prima di ERC-20, quindi non segue lo standard. Questo compromette la componibilità. La soluzione: WETH. Wrapped Ether è un wrapper ERC-20 attorno a ETH nativo. Depositando 1 ETH, si riceve 1 WETH che i protocolli DeFi possono gestire normalmente. WBTC fa la stessa cosa per Bitcoin, portando il valore di BTC nell'ecosistema di Ethereum come token ERC-20 garantito 1:1 da Bitcoin reali in custodia.
Il risultato pratico: oggi posso creare un protocollo DeFi che funzioni con ogni token ERC-20 mai creato, inclusi quelli che non esistono ancora. Il mio codice non ha bisogno di conoscere nello specifico USDT. Non necessita di un aggiornamento se domani qualcuno lancia una nuova stablecoin. L'interfaccia gestisce tutto. Questa componibilità è il motivo per cui Ethereum ha più attività DeFi, più TVL (Total Value Locked) e più strumenti per sviluppatori di qualsiasi altra blockchain. Lo standard ERC-20 è il fondamento su cui si basa tutto il resto.
Rischi per la sicurezza e problemi comuni relativi al codice ERC-20
Lasciatemi parlare del bug di approvazione che è costato milioni agli utenti DeFi e che quasi nessuno comprende finché non ne subisce le conseguenze.
Quando scambi token su Uniswap o depositi su Aave, la dApp ti chiede di "autorizzarla" per spendere i tuoi token. La maggior parte delle dApp, di default, concede un'autorizzazione illimitata. Sembra innocuo finché non capisci cosa significa: quello smart contract può spendere ogni singolo token di quel tipo presente nel tuo wallet, in qualsiasi momento e per sempre, finché non revochi esplicitamente l'autorizzazione. Se il contratto viene hackerato tra sei mesi, l'attaccante utilizzerà la tua vecchia autorizzazione per prelevare i token a cui avevi dimenticato di aver dato accesso.
È successo. Più di una volta. La soluzione è semplice ma fastidiosa: approvare solo l'importo esatto necessario per ogni transazione. Oppure utilizzare Revoke.cash per eliminare le vecchie approvazioni che si erano dimenticate. Io controllo il mio ogni pochi mesi. È sempre peggio di quanto mi aspetti. ERC-2612 è uno standard più recente che sostituisce le approvazioni on-chain con permessi firmati, riducendo questo rischio. Ma la maggior parte delle dApp utilizza ancora il vecchio schema.
Ogni settimana, le persone vengono truffate con token falsi. Un truffatore pubblica un contratto ERC-20 chiamato "Uniswap" o "Chainlink" con un indirizzo leggermente diverso. Lo si cerca su un DEX, si vede il nome familiare e si acquista il falso. Il denaro finisce direttamente nel portafoglio del truffatore. L'indirizzo del vero contratto LINK è 0x514910771AF9Ca656af840dff83E8264EcF986CA. Quello falso potrebbe essere 0x514910...qualcos'altro. Copiate sempre l'indirizzo da CoinGecko o dal sito ufficiale del progetto. Non cercate mai solo per nome.
Poi ci sono i token con trucchi nascosti. In apparenza, il contratto sembra un normale ERC-20. Sotto la superficie, chi lo ha implementato ha aggiunto una funzione che gli permette di coniare un numero illimitato di nuovi token. Oppure una tassa di vendita che si prende il 99% dei tuoi token quando tenti di scambiarli. O ancora una blacklist che impedisce a chiunque, tranne a chi lo ha implementato, di vendere. Lo standard ERC-20 non dice nulla su ciò che un contratto non può fare. Specifica solo le funzioni minime. Tutto il resto è a discrezione dello sviluppatore. Gli audit dei token, DextScore e i contratti verificati su Etherscan esistono proprio per colmare questa lacuna tra la semplicità dello standard e la creatività dei truffatori.