Certified Crypto Market

Che cos’è uno smart contract?

Che cos’è uno smart contract? Scopri come funzionano i programmi autoeseguibili su blockchain, cosa rendono possibile, i loro limiti e rischi e come verificarne uno prima di usarlo.

CCM ResearchCertified Crypto Market4 ott 20265 min di lettura

Uno smart contract è un programma memorizzato su una blockchain che si esegue automaticamente quando si verificano condizioni predefinite. Può custodire e trasferire fondi secondo il proprio codice, senza che una banca, un broker o un altro intermediario decida se eseguire ogni singolo passaggio.

Gli smart contract sono alla base di quasi tutto ciò che nel mondo crypto va oltre i semplici pagamenti: token, exchange decentralizzati, protocolli di prestito, NFT e DAO. Capire cosa possono e non possono fare ti aiuta a valutare sia le opportunità sia i rischi del loro utilizzo.

Come funzionano gli smart contract

L’idea di contratti fatti rispettare dal codice fu descritta dall’informatico Nick Szabo negli anni ’90, usando come analogia un distributore automatico: inserisci le monete giuste, scegli un prodotto e la macchina te lo consegna senza bisogno di un negoziante.

Su una blockchain, il processo funziona così:

  1. 1Uno sviluppatore scrive il codice, ad esempio in Solidity per Ethereum o in Rust per alcune altre reti.
  2. 2Il codice viene distribuito tramite una transazione e riceve un proprio indirizzo.
  3. 3Gli utenti richiamano il contratto inviando transazioni a quell’indirizzo, spesso allegando dei token.
  4. 4Ogni nodo esegue il codice e concorda sul risultato, così l’esito è identico per tutti.
  5. 5Lo stato del contratto viene aggiornato — saldi, registri di proprietà o impostazioni cambiano on-chain.

Ogni passaggio comporta una commissione di rete. Su Ethereum questa commissione si chiama gas; leggi cos’è il gas su Ethereum per capire come funziona.

A cosa servono gli smart contract

UtilizzoCosa fa il contrattoEsempio
TokenTiene traccia di saldi e trasferimentiUn contratto di token ERC-20
Exchange decentralizzatiCustodisce pool di token e prezza gli scambi con una formulaUn market maker automatizzato (AMM)
PrestitiAccetta garanzie, eroga prestiti, liquida le posizioni a rischioUn money market DeFi
NFTRegistra la proprietà di oggetti uniciIl contratto NFT di una collezione
DAOConta i voti ed esegue le proposte approvateUn contratto di governance on-chain
Wallet multisigRichiede più approvazioni per spostare i fondiLa tesoreria di un progetto

Molti di questi contratti interagiscono tra loro, ed è per questo che la DeFi viene talvolta descritta come «lego del denaro». La nostra guida alla DeFi mostra come questi pezzi si incastrano.

Smart contract vs contratti tradizionali

È utile confrontare gli smart contract con gli accordi cartacei che la maggior parte delle persone conosce.

Contratto tradizionaleSmart contract
Scritto inLinguaggio umanoCodice di programmazione
Fatto rispettare daTribunali, istituzioni, buona fede delle partiLa rete blockchain che esegue il codice
FlessibilitàPuò essere rinegoziato o interpretatoViene eseguito esattamente come scritto, salvo sia progettato per essere aggiornato
TrasparenzaDi solito privatoCodice e attività sono spesso pubblici on-chain
Gestione delle controversieGiudici, arbitri, avvocatiNessun meccanismo integrato per le controversie oltre al codice
VelocitàDa giorni a mesi per il regolamentoDa secondi a minuti, a seconda della rete

I punti di forza sono la velocità, la trasparenza e l’eliminazione degli intermediari. Il punto debole è la rigidità: il codice non sa valutare equità o contesto. Se accade qualcosa di inatteso che gli sviluppatori non avevano previsto, il contratto segue semplicemente le sue regole — anche quando il risultato chiaramente non è quello che nessuno intendeva. Ne parliamo più in dettaglio in Cosa sono testnet e mainnet?

Chi scrive e controlla gli smart contract

Chiunque può distribuire uno smart contract; sulle blockchain pubbliche non esiste alcun processo di approvazione. Questa apertura favorisce un’innovazione rapida, ma significa anche che i contratti truffa sono facili da distribuire quanto quelli legittimi. Dopo il deploy, il controllo dipende da come è stato scritto il contratto: alcuni non hanno alcun proprietario, altri sono controllati da un singolo wallet e altri ancora da un multisig o da un voto della DAO con un ritardo temporale. Sapere quale modello si applica è una parte fondamentale della valutazione del rischio di qualsiasi app. Letture correlate: Exploit degli smart contract.

Cosa non possono fare gli smart contract

Gli smart contract sono potenti, ma hanno un campo d’azione ristretto.

  • Conoscono solo i dati on-chain. Per usare informazioni del mondo reale, come prezzi o risultati sportivi, si affidano agli oracoli, che portano dati esterni on-chain e possono guastarsi o essere manipolati.
  • Non comprendono le intenzioni. Se invii fondi alla funzione sbagliata o firmi un’approvazione malevola, il contratto fa ciò che dice il codice.
  • Non sono automaticamente contratti legali. L’esecuzione del codice e l’efficacia giuridica sono questioni distinte.
  • Non possono annullare gli errori. Una transazione completata di norma resta completata.

Rischi nell’uso degli smart contract

Bug ed exploit

Il codice è scritto da persone, e gli errori capitano. Gli attaccanti cercano falle e possono svuotare i fondi in una sola transazione. Gli audit aiutano, ma non possono garantire la sicurezza — vedi come valutare il report di audit di uno smart contract.

Chiavi di amministrazione e aggiornamenti

Molti contratti sono aggiornabili o hanno funzioni riservate al proprietario che possono sospendere gli scambi, modificare le commissioni o coniare nuovi token. Queste funzioni possono proteggere gli utenti in un’emergenza, ma creano anche la possibilità di abusi o del furto di una chiave di amministrazione. Letture correlate: L’account abstraction spiegata.

Contratti malevoli

I token truffa possono contenere regole nascoste, come il blocco delle vendite o tasse di trasferimento enormi. Un contratto può sembrare normale sulla pagina di un token e comportarsi in modo molto diverso nella pratica. Vedi anche: ICO vs IEO vs IDO.

Approvazioni

Usare la DeFi spesso richiede di autorizzare un contratto a spendere i tuoi token. Le approvazioni illimitate concesse a un contratto difettoso o malevolo possono essere usate in seguito per sottrarre quei token. Se vuoi approfondire, leggi Cos’è la mempool?

Come verificare uno smart contract prima di usarlo

  1. 1Conferma l’indirizzo dal sito ufficiale del progetto e da una fonte indipendente.
  2. 2Cercalo su un block explorer per vedere la data di creazione, l’attività e se il codice sorgente è verificato.
  3. 3Controlla gli audit di società note e verifica se i problemi riscontrati sono stati risolti.
  4. 4Scopri chi controlla le funzioni di amministrazione — un multisig, un timelock o un singolo wallet.
  5. 5Inizia con piccoli importi e limita le approvazioni dei token alla cifra che ti serve.

La nostra guida su come verificare l’indirizzo ufficiale del contratto di un token illustra nel dettaglio i primi due passaggi.

In sintesi

Uno smart contract è codice autoeseguibile su una blockchain che può custodire e trasferire valore senza intermediari. Questo rende possibile una finanza aperta e programmabile, ma significa anche che bug, poteri di amministrazione nascosti e codice malevolo agiscono in modo istantaneo e irreversibile. Verifica l’indirizzo, capisci chi controlla il contratto e approva solo ciò che ti serve.

Domande frequenti

Gli smart contract sono giuridicamente vincolanti?

Non automaticamente. Uno smart contract è un software che viene eseguito su una blockchain, non un accordo legale di per sé. Alcuni ordinamenti possono riconoscere accordi registrati o eseguiti tramite codice, ma dipende dal Paese e dalle circostanze. Se l’efficacia giuridica è importante, verifica la normativa locale o rivolgiti a un professionista qualificato.

Uno smart contract può essere modificato dopo il deploy?

Il codice distribuito di solito non può essere modificato. Tuttavia, molti progetti usano architetture aggiornabili, come i contratti proxy, che permettono a un amministratore di indirizzare gli utenti verso nuovo codice. Questa flessibilità aiuta a correggere i bug, ma significa anche che qualcuno ha il potere di cambiare le regole. Verifica chi controlla le eventuali chiavi di aggiornamento o di amministrazione.

Quali blockchain supportano gli smart contract?

Ethereum ha reso popolari gli smart contract di uso generale, e molte altre reti li supportano, tra cui BNB Chain, Solana, Avalanche, Cardano e le reti layer 2 di Ethereum. Bitcoin, per scelta progettuale, supporta solo uno scripting limitato. Ogni piattaforma usa linguaggi e strumenti propri, quindi i contratti non sono automaticamente trasferibili dall’una all’altra.

Cosa succede se uno smart contract ha un bug?

Il codice viene eseguito esattamente come è scritto, bug compreso. Gli attaccanti possono sfruttarlo per svuotare i fondi, e le transazioni di solito non possono essere annullate. Alcuni progetti possono mettere in pausa o aggiornare i contratti per limitare i danni, mentre i contratti immutabili non possono essere corretti in alcun modo. Audit e bug bounty riducono questo rischio, ma non lo eliminano.

Questo articolo ha solo scopo educativo e non costituisce consulenza finanziaria, legale o fiscale. Le crypto sono volatili e puoi perdere denaro. Controlla prezzi in tempo reale e dettagli del progetto nella pagina di ogni moneta prima di agire.