Incolla 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 su Etherscan, un sito gratuito che mostra tutto ciò che è registrato su Ethereum, e ti trovi davanti a USDC, un token pensato per valere un dollaro statunitense. Letto direttamente dal contratto alle 09:43 UTC del 10 novembre 2026, su quella rete risultavano circa 45,9 miliardi di token. Dietro quella pagina non c’è nessun database clienti. I saldi vivono dentro un programma conservato a quell’indirizzo: 2.186 byte di codice che girano ogni richiesta a un secondo programma, più grande, dove stanno le regole del token. Chiunque può leggerli entrambi, a qualsiasi ora, senza chiedere blockchain that runs exactly as written when it is called, holding and moving funds according to its code, without an intermediary able to change the outcome.">smart contract holding reserves of two or more tokens, supplied by users, that a decentralized exchange uses to execute trades automatically at a price set by a formula.">pool diverge, compared with simply holding the same tokens in a wallet. It becomes permanent when the provider withdraws.">il permesso a Circle.
Quel programma è uno smart contract. Ma smart contract cosa sono, in parole semplici? Sono un pezzo di codice conservato su una blockchain, a un indirizzo tutto suo, che fa esattamente ciò per cui è stato scritto quando qualcuno gli invia una transazione, e non fa assolutamente nulla negli altri momenti. Può custodire denaro, tenere registri e applicare regole. Non si sveglia mai da solo.
Il nome inganna in due modi. Uno smart contract non ha alcuna intelligenza: non può giudicare, indovinare o cambiare idea. E non è automaticamente un contratto in senso giuridico, una questione che trovi più sotto, paese per paese. L’introduzione ufficiale di Ethereum sceglie un’immagine più modesta, quella di un distributore automatico in cui «specific inputs guarantee predetermined outputs», cioè input precisi garantiscono output prestabiliti (ethereum.org, in inglese). L’immagine precede Ethereum di quasi vent’anni e viene dall’uomo che ha coniato il termine.
Questa lezione per principianti segue quelle su come la macchina virtuale di Ethereum esegue il codice e su commissioni gas ed EIP-1559. Non serve averle lette: basta sapere che ogni azione su Ethereum costa una piccola commissione pagata in ether, la moneta della rete.
Smart contract: cosa sono, un programma a un indirizzo che aspetta
Su Ethereum esistono due tipi di account. Il primo è quello del tuo wallet: un indirizzo controllato da una chiave privata, che può inviare ether e firmare richieste. Il secondo è un account contratto: un indirizzo controllato da codice. La nostra guida al modello ad account spiega la differenza più nel dettaglio. Nessuno possiede una chiave che permetta di prelevare i soldi da un contratto. L’unica porta d’ingresso è chiamare una delle funzioni che il codice offre, ed è il codice a decidere se la richiesta passa.
È la prima cosa da capire: uno smart contract è passivo. Gira solo quando arriva una transazione, inviata da una persona o da un altro contratto che a sua volta è stato chiamato da una persona. Un contratto di prestito non può vendere le tue garanzie di sua iniziativa; qualcuno deve inviargli una transazione che chiede la vendita, e il codice verifica poi se le regole la permettono.
Lo stesso vale per il tempo. Un contratto non può puntare una sveglia a mezzanotte. Se la sua regola dice «paga dopo il 1° dicembre», paga solo quando qualcuno lo chiama dopo quella data; il codice confronta allora la data del blocco corrente con quella che ha memorizzato. Bot e servizi di automazione guadagnano commissioni proprio inviando queste chiamate di risveglio.
La seconda cosa è che un contratto è prevedibile. Migliaia di computer eseguono lo stesso codice con gli stessi input e devono arrivare allo stesso risultato, altrimenti non potrebbero concordare sullo stato della catena. Per questo un contratto non può consultare un sito web né lanciare dadi veri: la stessa chiamata deve dare ovunque la stessa risposta. La macchina che lo rende possibile è il tema della nostra lezione su come funziona l’EVM; qui basta l’idea che le regole sono il codice, e il codice è lo stesso per tutti.
Chi scrive questi programmi? Sviluppatori, per lo più in un linguaggio chiamato Solidity, che una lezione successiva dedicata a Solidity per chi non programma presenterà senza codice. Una volta distribuito, un contratto non può essere modificato: i byte conservati al suo indirizzo restano quelli. Esiste un modo molto diffuso per aggirare il limite, il proxy, spiegato nella sezione sui limiti.
Dal saggio di Szabo del 1994 al distributore automatico del 1996
L’espressione «smart contract» non è nata con Ethereum. La si deve all’informatico Nick Szabo, che ne scrisse a metà degli anni Novanta, molto prima dell’esistenza di una blockchain.
1994: un protocollo che esegue i termini
Nel saggio del 1994 intitolato «Smart Contracts», Szabo diede una definizione in una riga: «A smart contract is a computerized transaction protocol that executes the terms of a contract», ossia un protocollo informatico di transazione che esegue i termini di un contratto (Szabo, 1994, in inglese). Ne vedeva versioni rudimentali negli strumenti elettronici dell’epoca, come i terminali di pagamento con carta e lo scambio elettronico di ordini e fatture tra aziende, e citava i protocolli di moneta digitale come ottimi esempi. Immaginava anche la «smart property», per esempio un’auto il cui accesso potesse essere bloccato se il prestito che la garantisce non veniva pagato.
Gli obiettivi che elencava suonano familiari oggi: soddisfare le condizioni abituali di un accordo, ridurre errori e malafede, dipendere meno da intermediari di fiducia. Gli mancava un registro condiviso che nessuno controlla. Bitcoin sarebbe arrivato circa quindici anni dopo, nel 2009.
1996: l’umile distributore automatico
Il distributore automatico non compare nel testo del 1994. Viene da un saggio più lungo del 1996, «Smart Contracts: Building Blocks for Digital Markets», in cui Szabo chiama «the humble vending machine» l’antenato primitivo dell’idea. Lo stesso saggio aggiunge che la parola «smart» non implica alcuna intelligenza artificiale (Szabo, 1996, in inglese).
Il paragone è più acuto di quanto sembri. Un distributore prende le monete, consegna il prodotto e il resto, e non ha bisogno di un commesso. Chiunque abbia le monete giuste può usarlo, alle tre di notte, senza mostrare un documento. Szabo aggiungeva una condizione che spesso si dimentica: la macchina funziona perché il denaro nella cassa vale meno del costo per scassinarla. Il meccanismo garantisce l’accordo solo entro una perdita potenziale limitata.
La condizione vale ancora. Un contratto che custodisce qualche dollaro è un bersaglio povero. Uno che custodisce decine di milioni di dollari, leggibile da tutti, è un bersaglio molto appetibile, e la sezione sui bug mostra che cosa succede quando la serratura è più debole di quanto la cassa sia piena.
Dal 2013 al 2015: l’idea passa su una blockchain
Il whitepaper di Ethereum, scritto da Vitalik Buterin nel 2013, proponeva una blockchain con un linguaggio di programmazione incorporato, così che chiunque potesse distribuire contratti alla Szabo su una rete che non appartiene a nessuno. La rete è partita con la versione Frontier il 30 luglio 2015, secondo la pagina storica di ethereum.org (in inglese). Quella storia, dal whitepaper agli ultimi aggiornamenti, è raccontata nella nostra lezione sulla storia e il whitepaper di Ethereum.
Come funziona uno smart contract: cosa succede quando lo chiami, passo per passo
Prendiamo un caso comune: vuoi scambiare 1.000 USDC con ether su Uniswap, uno scambio decentralizzato che funziona interamente con contratti, attraverso uno dei suoi pool. Visto dalla catena, ecco cosa accade.
- Il tuo wallet, o il sito che usi, costruisce una transazione. Indica l’indirizzo del contratto, la funzione da eseguire e gli input: quanti USDC dai e la quantità minima di ether che accetti.
- Firmi la transazione con la tua chiave privata. La firma è il tuo consenso e ti impegna anche a pagare la commissione, chiamata gas.
- Un validatore, uno dei computer che costruiscono i blocchi di Ethereum, inserisce la transazione in un blocco. Ogni nodo della rete esegue poi lo stesso codice del contratto con i tuoi input.
- Il codice controlla le sue condizioni una per una: possiedi gli USDC, hai autorizzato il contratto a muoverli, il prezzo è ancora sopra il tuo minimo?
- Se tutti i controlli passano, i saldi cambiano in un colpo solo: il pool riceve i tuoi USDC e ti invia ether. Se anche uno solo fallisce, l’intera chiamata viene annullata come se nulla fosse successo, tranne che il gas già consumato si paga comunque.
- Quando il blocco è definitivo, non esiste un tasto annulla né un servizio clienti che possa riportare indietro lo scambio.
Il gas oggi costa poco, ma non è mai gratis. Al blocco 26.383.689, prodotto alle 09:43 UTC del 10 novembre 2026, la commissione base era di circa 0,056 gwei (un gwei è un miliardesimo di ether), secondo una nostra lettura di un nodo Ethereum pubblico. Solo come esempio: un semplice trasferimento di ether consuma 21.000 unità di gas, quindi costava circa 0,0000012 ETH, più o meno un quarto di centesimo a un prezzo d’esempio di 2.100 dollari per ether, prima di qualsiasi mancia al validatore. Uno scambio consuma molto più gas. Come si fissa la commissione, e perché nel 2021 era molto più alta, è il tema della lezione su gas ed EIP-1559.
Un punto sorprende i principianti: il sito su cui clicchi non è il contratto. Un’applicazione decentralizzata è un front end, un normale sito gestito da un’azienda o da un team, più contratti sulla catena. Il sito può andare offline o bloccare il tuo paese; il contratto resta dov’è e risponde a chiunque lo chiami correttamente. La nostra guida a che cos’è una dApp spiega questa separazione.

Smart contract esempi: sei che puoi aprire oggi
I sei contratti qui sotto sono tutti attivi su Ethereum. Le cifre vengono da nostre letture di un nodo pubblico tra le 09:41 e le 09:55 UTC del 10 novembre 2026 e da DefiLlama della stessa mattina. Sono istantanee datate, non dati in tempo reale.
| Contratto | Cosa fa | Indirizzo | Cifra datata (10 nov 2026) | Il codice può cambiare? |
|---|---|---|---|---|
| Token USDC (Circle) | Tiene i saldi della stablecoin USDC e li sposta | 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 | Circa 45,9 miliardi di USDC registrati su Ethereum, letti dal contratto alle 09:43 UTC | Sì: è un proxy e il suo amministratore può puntarlo a una nuova logica |
| Pool Uniswap v3 USDC/WETH, commissione 0,05% | Custodisce due token (USDC e WETH, versione token dell’ether) e scambia l’uno con l’altro a un prezzo fissato dalla sua formula | 0x88e6A0c2dDD26FEEb64F039a2c41296FcB3f5640 | Circa 48,4 milioni di USDC e 15.194 WETH custoditi, verso le 09:50 UTC | Nessun proxy trovato nel suo storage |
| Pool di Aave v3 | Riceve depositi, presta contro garanzie, gestisce le liquidazioni | 0x87870Bca3F3fD6335C3F4ce8392D69350B4fA4E2 | Aave V3 custodisce 15,24 miliardi di dollari in tutto, 12,75 miliardi dei quali su Ethereum (DefiLlama) | Sì: un proxy gestito tramite la governance di Aave |
| Registro ENS | Registra chi controlla ogni nome .eth e a cosa punta | 0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e | ENSv2 attivo dal 27 ottobre 2026; un nome di cinque lettere o più costa 8 dollari l’anno | ENSv2 gira su nuovi contratti; l’aggiornamento di un nome è facoltativo e a senso unico |
| Safe (singleton 1.4.1) | Codice condiviso per i wallet multisig, che richiedono la firma di più titolari | 0x41675C099F32341bf84BFc5382aF534df5C7461a | 23.579 byte di codice, vicinissimo al limite di dimensione | I titolari scelgono firmatari e soglia del proprio wallet |
| Feed di prezzo Chainlink ETH/USD | Pubblica un prezzo dell’ether che altri contratti leggono | 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 | 2.095,72 dollari, ultimo aggiornamento alle 09:01:47 UTC | Sì: un proxy che può puntare a un nuovo contratto di prezzo |
USDC: un token è un contratto che tiene un libro mastro
Un token non è un file che viaggia da un wallet all’altro. È una riga nella tabella di un contratto: l’indirizzo A possiede tanto, l’indirizzo B possiede tanto. Inviare USDC significa chiedere al contratto USDC di abbassare un numero e di alzarne un altro. La porta d’ingresso in 0xA0b8…eB48 è un piccolo proxy che inoltra le chiamate al contratto di logica scelto da Circle. La nostra lettura del contratto ha mostrato che sia l’amministratore del proxy sia il proprietario sono indirizzi ordinari, senza codice, quindi controllati da chiavi, quali che siano le salvaguardie interne di Circle. Circle può dunque sostituire le regole di USDC e può congelare indirizzi: è un token centralizzato che gira su una rete decentralizzata.
Uniswap: il pool custodisce il denaro in prima persona
Il pool di Uniswap è un contratto di tipo diverso. Nessuno in Uniswap detiene i 48 milioni di USDC e i 15.194 WETH (ether incapsulato, ether trasformato in token standard) che contiene: li detiene il contratto. A parte i fornitori di liquidità (gli utenti che hanno depositato quei token) che ritirano i propri depositi, l’unico modo per far uscire token è metterne dentro l’altro, al prezzo che la formula dà. Alle 09:43 UTC del 10 novembre 2026 quel prezzo risultava di circa 2.103 dollari per ether. Su tutte le catene, i contratti di Uniswap V3 custodivano 1,48 miliardi di dollari secondo DefiLlama, e gli exchange decentralizzati su Ethereum avevano gestito circa 1,9 miliardi di dollari di scambi nelle 24 ore precedenti.
Aave: un prestito senza funzionario di banca
Aave è un servizio di prestito costruito con contratti. Qui un prestito è una sequenza di chiamate al contratto Pool: depositi le garanzie, poi prendi in prestito contro di esse, e il contratto tiene traccia del rapporto tra le due. Se il valore delle garanzie scende troppo, chiunque può chiamare il contratto per ripagare una parte del tuo debito e prendere una parte delle garanzie con un bonus. Anche il Pool è un proxy. Il contratto che decide quale logica esegue il Pool è di proprietà di un altro contratto, che Etherscan chiama «Executor» ed etichetta «Aave: ACL Admin V3 2»: un esecutore di governance, attraverso cui i possessori del token di Aave applicano i loro voti.
ENS: registrare un nome vuol dire chiamare un contratto
L’Ethereum Name Service trasforma lunghi indirizzi in nomi come alice.eth. Registrarne uno significa chiamare un contratto, pagare e ricevere il nome come token nel proprio wallet. ENSv2 è andato in produzione sulla rete principale di Ethereum il 27 ottobre 2026; un nome .eth di cinque caratteri o più costa ora 8 dollari l’anno, da pagare in USDC o DAI, come spiega il nostro articolo sul lancio di ENSv2. I vecchi contratti di registrazione sono ancora sulla catena, ma le nuove registrazioni tramite essi sono disattivate. I contratti non spariscono; i loro proprietari instradano gli utenti altrove.
Safe e Chainlink: wallet condivisi e prezzi dall’esterno
Un Safe è un wallet che è esso stesso un contratto. Muove fondi solo quando, per esempio, tre dei suoi cinque titolari hanno firmato, ed è per questo che aziende e DAO (gruppi che decidono con voti sui token) lo usano per custodire i propri fondi. Il feed Chainlink è il caso a parte: non custodisce denaro, pubblica un prezzo che contratti di prestito come Aave leggono. Il suo ultimo aggiornamento, alle 09:01:47 UTC, aveva più di 40 minuti quando l’abbiamo letto, entro l’aggiornamento orario che il feed consente quando il mercato è calmo.
Come controllare uno smart contract su Etherscan senza collegare un wallet
La nostra guida a come leggere un block explorer apre già la scheda del contratto USDC. Qui facciamo lo stesso tipo di percorso su un altro contratto, il pool Uniswap della tabella. Ti servono un browser e nient’altro. Al 10 novembre 2026 Etherscan elencava 942.818 contratti verificati, quindi gli stessi passaggi funzionano sulla maggior parte dei contratti in cui ti imbatterai.
- Vai su etherscan.io e incolla 0x88e6A0c2dDD26FEEb64F039a2c41296FcB3f5640 nella barra di ricerca. Copia gli indirizzi dalla documentazione ufficiale del progetto, mai da un messaggio diretto o da una pubblicità, e controlla i primi e gli ultimi caratteri.
- Nella panoramica apri l’elenco dei token detenuti. Vedrai gli USDC e i WETH del pool: è il denaro che il codice controlla.
- Clicca sulla scheda Contract. Una spunta verde e le parole «Source Code Verified» significano che il codice sorgente pubblicato, compilato, dà esattamente i byte conservati sulla catena. Non significa che il codice sia sicuro; lo avverte la stessa Etherscan.
- Apri Read Contract. Ogni riga è una funzione che puoi eseguire gratis. Prova token0 e token1 (restituiscono gli indirizzi di USDC e WETH), fee (restituisce 500, cioè 0,05%) e liquidity.
- Cerca le schede Read as Proxy e Write as Proxy. Sulla pagina di USDC ci sono, il che dice che la logica vive in un altro contratto che può essere sostituito. Un contratto senza di esse, come questo pool, esegue il codice che stai leggendo e nient’altro.
- Trova la riga Contract Creator nella panoramica: mostra quale indirizzo ha distribuito il contratto e con quale transazione, così vedi da quanto tempo esiste.
- Non cliccare su Write Contract né su «Connect to Web3» solo per guardare. Per leggere non serve alcun wallet. Scrivere invia una transazione vera, e un sito che ti chiede di collegare il wallet soltanto per «vedere» un contratto è una trappola classica.
Cosa fanno meglio gli smart contract rispetto a un intermediario
Il primo vantaggio è quello descritto da Szabo: esecuzione senza impiegato. Nessuno deve approvare uno scambio, controllare un modulo o aprire lo sportello. Il contratto risponde alle 3 di una domenica notte esattamente come un martedì pomeriggio, e un utente di Ohio ottiene le stesse regole di uno di Londra o di Milano.
Il secondo è che le regole sono pubbliche. Con un contratto verificato puoi leggere il codice stesso che gestirà il tuo denaro, o affidarti a chi lo legge di mestiere. I sistemi interni di una banca non offrono nulla di paragonabile.
Il terzo è che i contratti possono chiamarsi a vicenda. Un contratto wallet può chiamare un contratto di prestito, che legge un contratto di prezzo, che legge anche un contratto di trading, il tutto in una sola transazione. Gli sviluppatori la chiamano componibilità, ed è il motivo per cui nuovi servizi di DeFi (finanza decentralizzata) nascono in fretta, costruiti su pezzi che già funzionano. Al 10 novembre 2026 i contratti DeFi su Ethereum custodivano 41,8 miliardi di dollari (il loro valore totale bloccato) secondo DefiLlama, su 78,8 miliardi nell’insieme delle catene che monitora.
La formula onesta è «meno dipendenza dagli intermediari per l’esecuzione», non «nessuna fiducia necessaria». Qualcuno ha scritto il codice, un revisore può averlo controllato, un oracolo può alimentarlo e un amministratore può essere in grado di modificarlo.
Dove falliscono gli smart contract: codice irreversibile e bug costosi
Codice che non si modifica, e l’eccezione del proxy
Una volta distribuito, il codice di un contratto è fisso. È la fonte del suo valore, perché nessuno può cambiare le regole di nascosto, e del suo pericolo, perché nessuno può correggere in fretta un errore. Se il codice lascia prelevare alla persona sbagliata, per la catena il prelievo è valido.
Gli sviluppatori attenuano il problema con i proxy. L’indirizzo che gli utenti chiamano contiene pochissimo codice e inoltra ogni richiesta a un contratto di logica separato; l’amministratore può in seguito puntare il proxy a un nuovo contratto di logica. USDC e il Pool di Aave funzionano così, come hanno mostrato le nostre letture del loro storage del 10 novembre 2026. Un proxy rende correggibili i bug, ma riporta in scena una persona o un comitato che può cambiare le regole. Una lezione successiva sui contratti aggiornabili e le chiavi di amministrazione affronterà questo compromesso.
The DAO, giugno 2016: il bug che spaccò Ethereum
The DAO (da decentralised autonomous organisation, organizzazione autonoma decentralizzata) era un fondo d’investimento gestito interamente da un contratto. Il 17 giugno 2016 Vitalik Buterin avvertì sul blog della Ethereum Foundation che un attaccante stava sfruttando in esso una «recursive calling vulnerability», una vulnerabilità di chiamata ricorsiva: il contratto inviava ether prima di aggiornare i propri registri, così l’attaccante poteva chiedere ancora e ancora. Secondo ethereum.org furono sottratti più di 3,6 milioni di ETH. La comunità scelse di cambiare le regole: un hard fork, cioè una modifica del software che ogni nodo doveva adottare, al blocco 1.920.000 il 20 luglio 2016 spostò gli ether dal contratto difettoso a uno nuovo la cui unica funzione permetteva agli investitori di ritirarli. Più dell’85% dei voti espressi sostenne il fork, secondo ethereum.org; i miner che rifiutarono proseguirono la vecchia catena come Ethereum Classic. La storia completa è nella nostra guida a hack ed exploit della DeFi.
Parity, novembre 2017: mezzo milione di ETH congelati, non rubati
Il caso Parity mostra l’immutabilità nella sua forma più dura. Il 6 novembre 2017 un utente anonimo scoprì che un contratto «libreria» condiviso, usato da ogni wallet multisig Parity distribuito dopo il 20 luglio 2017, non era mai stato inizializzato. L’utente se ne proclamò proprietario, poi attivò la sua funzione di autodistruzione, che cancella il codice di un contratto dalla catena. Secondo il resoconto della stessa Parity (in inglese), questo bloccò 513.774,16 ETH in 587 wallet, più altri token.
Nessuno prese i soldi. Diventarono semplicemente irraggiungibili, perché i wallet dipendevano da un codice che non esisteva più. Parity scrisse che la funzione di distruzione era un residuo del contratto originale sottoposto ad audit. A differenza di The DAO, nessun fork arrivò in soccorso.
Truebit, gennaio 2026: codice vecchio, nessun controllo di overflow
L’8 gennaio 2026 un attaccante svuotò circa 8.535 ETH, allora circa 26 milioni di dollari, da un contratto del protocollo Truebit. Il contratto calcolava il prezzo del token TRU con un’aritmetica che poteva andare in overflow: un numero cresceva tanto da «girare» fino a quasi zero, così i token si compravano per quasi niente e si rivendevano contro ether. L’analisi di CertiK (in inglese) fa risalire il difetto alle versioni di Solidity precedenti alla 0.8.0, prive di controlli di overflow integrati, e BlockSec (in inglese) osserva che il contratto era compilato con la versione 0.6.10. BlockSec ha inoltre dovuto lavorare su bytecode decompilato, perché il codice sorgente del contratto di logica non era pubblico: nessuno all’esterno del team poteva leggerne facilmente le regole. Il contratto stava dietro un proxy aggiornabile, ma questo non è servito, perché secondo CertiK i token furono coniati e venduti in una sola transazione, prima che qualcuno potesse reagire.
| Data | Contratto | Cosa è andato storto | Importo | Esito |
|---|---|---|---|---|
| 17 giugno 2016 | The DAO | Inviava ether prima di aggiornare i registri (chiamate ricorsive) | Più di 3,6 milioni di ETH sottratti | Hard fork il 20 luglio 2016; Ethereum Classic si separa |
| 6 novembre 2017 | Libreria multisig di Parity | Proprietario non inizializzato, poi autodistruzione | 513.774,16 ETH congelati in 587 wallet | Congelati, non rubati; nessun fork per recuperarli |
| 8 gennaio 2026 | Truebit | Overflow nell’aritmetica del prezzo (Solidity 0.6.10) | Circa 8.535 ETH, circa 26 milioni di dollari | Contratto svuotato |
Gli audit riducono il rischio senza eliminarlo
Un audit è una revisione a pagamento del codice da parte di specialisti della sicurezza, e individua molti problemi. Riguarda una certa versione del codice, per un certo perimetro, a una certa data. La funzione di distruzione di Parity veniva da codice sottoposto ad audit e poi riutilizzato in modo diverso; da allora molti protocolli auditati sono stati hackerati. La nostra guida a come leggere un report di audit spiega che cosa un report promette e che cosa no.

Il problema dell’oracolo: un contratto non può guardare fuori dalla finestra
Poiché ogni nodo deve arrivare allo stesso risultato, un contratto non può andare a prendere il prezzo dell’ether da un sito: due nodi che chiedono a un secondo di distanza potrebbero ricevere due risposte diverse, e la rete non riuscirebbe più a concordare. Come dice la pagina di ethereum.org sugli oracoli (in inglese), i contratti lavorano solo con dati già presenti sulla catena.
La soluzione è un oracolo: un servizio che scrive sulla catena dati esterni, perché i contratti possano leggerli. Chainlink è il più noto, e il suo feed ETH/USD della nostra tabella ne è un esempio. Il guaio è che il contratto deve ora fidarsi di chi lo alimenta. La mattina del 10 novembre 2026 il feed indicava 2.095,72 dollari (ultimo aggiornamento alle 09:01:47 UTC) mentre il pool Uniswap implicava circa 2.103 dollari alle 09:43 UTC: uno scarto di circa un terzo di punto percentuale, normale per un feed che si aggiorna solo con movimenti più ampi o una volta l’ora, ma un prezzo sbagliato o manipolato può innescare liquidazioni che il codice eseguirà senza discutere. La nostra lezione sugli oracoli DeFi tratta a fondo i fallimenti e le difese.
Cosa significa davvero «trustless»: la fiducia si sposta, non svanisce
Leggerai spesso che gli smart contract sono «trustless», senza bisogno di fiducia. È più corretto dire che la fiducia si sposta. Ti fidi del codice invece che di un impiegato, e attraverso il codice ti fidi di chi l’ha scritto, di chi l’ha controllato e di chi detiene le sue chiavi di amministrazione.
Quelle chiavi esistono davvero. Nelle nostre letture i poteri di aggiornamento di USDC stavano in indirizzi controllati da chiavi, e il Pool di Aave rispondeva a un contratto esecutore di governance. Nessuno dei due è nascosto, e entrambi hanno ragioni per esserci (Circle deve poter congelare fondi rubati, Aave deve poter correggere i bug), ma chi detiene i token deve sapere che ci sono. Un multisig distribuisce quel potere su più firmatari; non lo elimina. Il furto di circa 1,5 miliardi di dollari a Bybit nel febbraio 2025 è passato da un multisig Safe: i contratti Safe non avevano colpa; l’attacco è arrivato da un computer di sviluppatore compromesso in Safe{Wallet}, l’interfaccia usata dai firmatari, come racconta la nostra guida agli hack.
Anche il front end è un punto di fiducia. Il sito che usi può mostrarti una transazione fuorviante o essere dirottato, anche quando il contratto dietro è solido. Leggere ciò che il wallet ti chiede di firmare fa parte dell’uso sicuro dei contratti.
L’immutabilità può anche agire al contrario. Gli sviluppatori di Ethereum discutono di un riprezzamento per l’aggiornamento Glamsterdam che renderebbe molto più costoso scrivere nuovi dati sulla catena, e i vecchi contratti che presuppongono costi di gas fissi potrebbero smettere di funzionare, senza alcun modo di modificarli. Due bozze rivali pensate per proteggere tali contratti sono state depositate l’8 novembre 2026, e nulla di tutto ciò è attivo sulla rete principale, come spiega il nostro articolo su Glamsterdam e i vecchi contratti. Gli sviluppatori principali di Ethereum hanno riunioni fissate il 12 e il 19 novembre 2026, secondo lo stesso articolo, e i vecchi contratti non possono partecipare al dibattito: qualunque cosa si decida, il loro codice resta com’è.
Uno smart contract è un contratto legale? Cosa dice la legge, con l’Italia in primo piano
Risposta breve: a volte, e soprattutto quando il codice esegue un accordo che il diritto dei contratti già riconosce. Uno smart contract è un programma, non una categoria giuridica. Che ci sia un contratto dipende da ciò che le parti hanno concordato, secondo la legge del loro paese. Alcuni legislatori hanno stabilito che usare uno smart contract non rende invalido un accordo. E niente di tutto questo impedisce a un giudice di ordinare a una persona di fare ciò che il codice non farà: la catena non si modifica, ma le persone possono essere condannate a pagare.
| Luogo | Testo | Cosa dice |
|---|---|---|
| Italia | Art. 8-ter del decreto-legge 135/2018, aggiunto dalla legge 12/2019 (in vigore dal 13 febbraio 2019) | Definisce lo smart contract e gli riconosce il valore di forma scritta una volta identificate le parti secondo le linee guida dell’AgID |
| Unione europea | Data Act, regolamento (UE) 2023/2854, art. 36 (si applica dal 12 settembre 2025) | Gli smart contract che eseguono accordi di condivisione di dati devono rispettare requisiti essenziali, tra cui la risoluzione e l’interruzione in sicurezza |
| Francia | Code civil (diritto generale dei contratti); ordonnance 2017-1674 dell’8 dicembre 2017 | Si applicano le regole ordinarie dei contratti all’accordo; l’ordinanza consente di registrare su blockchain alcuni titoli finanziari |
| Arizona, Stati Uniti | A.R.S. 44-7061, dalla House Bill 2417, approvata il 29 marzo 2017 | Gli smart contract «may exist in commerce»; un contratto non può vedersi negare effetto giuridico solo perché contiene un termine di smart contract |
| Inghilterra e Galles | Parere della Law Commission al governo, 25 novembre 2021 | La legge esistente può già sostenere gli smart contract giuridici, senza riforma legislativa; atti formali e diritto internazionale privato richiedono altro lavoro |
In Italia il termine è definito per legge. L’articolo 8-ter del decreto-legge 135 del 14 dicembre 2018, aggiunto in sede di conversione con la legge 12 dell’11 febbraio 2019, descrive lo smart contract come un programma per elaboratore che opera su tecnologie basate su registri distribuiti e la cui esecuzione vincola automaticamente due o più parti sulla base di effetti da esse predefiniti. Soddisfa il requisito della forma scritta una volta che le parti sono state identificate con un procedimento che la legge rimanda alle linee guida dell’AgID, l’Agenzia per l’Italia digitale. Il testo è consultabile su Normattiva.
L’Unione europea ha scelto una strada più stretta. L’articolo 36 del Data Act (regolamento (UE) 2023/2854, applicabile dal 12 settembre 2025) riguarda solo gli smart contract che eseguono accordi di condivisione di dati. Il fornitore dell’applicazione, o chi distribuisce tali contratti per altri, deve garantire robustezza e controllo degli accessi, un modo per archiviare dati e codice se il contratto viene fermato, coerenza con l’accordo di condivisione e un meccanismo per terminarlo o interromperlo, poi rilasciare una dichiarazione UE di conformità, secondo il testo su EUR-Lex. Quest’ultimo requisito, spesso chiamato kill switch, stride con i contratti progettati per essere inarrestabili, ma non copre la DeFi in generale.
In Francia la risposta viene dalle regole ordinarie del Code civil, costruite sul consenso delle parti: il codice può eseguire un accordo, ma è l’accordo a fare il contratto. La Francia ha varato nel 2017 un testo, l’ordonnance 2017-1674, che permette di registrare certi titoli finanziari su un registro elettronico condiviso, una blockchain. È una regola sui titoli, non un riconoscimento generale degli smart contract.
Negli Stati Uniti il diritto dei contratti è per lo più statale. L’Arizona è andata più avanti, con parole chiare: la sua legge, introdotta dalla House Bill 2417 (in inglese), approvata dal governatore il 29 marzo 2017, afferma che un contratto relativo a una transazione «may not be denied legal effect, validity or enforceability solely because that contract contains a smart contract term», e definisce lo smart contract come un programma guidato da eventi che gira su un registro distribuito e può detenere e trasferire beni su di esso (A.R.S. 44-7061, in inglese).
In Inghilterra e Galles (la Scozia ha un diritto proprio) la Law Commission (in inglese) ha concluso nel parere al governo del 25 novembre 2021 che il quadro giuridico attuale «is clearly able to facilitate and support the use of smart legal contracts», senza bisogno di riforme legislative. In parole semplici, un contratto i cui termini sono scritti o eseguiti dal codice può essere valido secondo la legge vigente. La Commissione ha indicato due aree che richiedono altro lavoro: gli atti formali (deeds) e il diritto internazionale privato, cioè le regole su quali giudici decidano una controversia transfrontaliera.
Limiti di dimensione e altri vincoli da conoscere
Un contratto non può essere grande quanto vorrebbero gli autori: una regola chiamata EIP-170 limita il suo codice a circa 24 KB, e la nostra lezione su come funziona l’EVM spiega il limite e la proposta di alzarlo. I grandi progetti ci arrivano vicino: il pool Uniswap della nostra tabella pesa 22.142 byte e il singleton di Safe 23.579 byte, secondo le nostre letture del 10 novembre 2026. È uno dei motivi per cui le grandi applicazioni sono divise in più contratti che si chiamano a vicenda.
Ogni chiamata compete inoltre per lo spazio nei blocchi. Al blocco 26.383.689 un blocco poteva contenere al massimo 60 milioni di unità di gas e quello era pieno al 56%. Un contratto che richiede molto calcolo per una sola chiamata costa di più ai suoi utenti e, oltre un certo punto, non può girare del tutto in una singola transazione.
Sei domande da farsi prima di fidarsi di uno smart contract
Nessuna di queste domande dice se usare un protocollo; dicono in che cosa ti fidi se lo usi.
- Il codice sorgente è verificato sul block explorer, e l’indirizzo è quello indicato nella documentazione ufficiale del progetto?
- È un proxy e, se sì, chi può cambiare la logica: una sola chiave, un multisig, un voto di governance con un ritardo?
- Chi lo possiede o lo amministra, e quel titolare può mettere in pausa il contratto, congelare indirizzi o spostare fondi?
- È stato sottoposto ad audit, da chi, su quale versione e con quali rilievi ancora aperti?
- Dipende da un oracolo per i prezzi, e che cosa succede se quel prezzo è sbagliato o in ritardo?
- Quanto denaro custodisce, e da quanto tempo ne custodisce così tanto senza incidenti?
Il percorso prosegue con gli standard dei token, che spiegano come i token ERC-20 come USDC e gli NFT (token unici, come un nome ENS) tengono i loro registri, e con una lezione sui rischi e gli audit degli smart contract che applica queste sei domande a protocolli reali.



