Skip to main content

Che cos'è uno smart contract

Nota: Questo documento è una traduzione automatica della versione originale in inglese.

Che cos'è uno smart contract

Uno smart contract è un programma memorizzato ed eseguito su una blockchain. Una volta distribuito, viene eseguito automaticamente quando le sue condizioni sono soddisfatte — applicando accordi, gestendo asset o coordinando operazioni senza richiedere un intermediario umano che esegua ogni passaggio. Nonostante il nome, uno smart contract non è né "intelligente" nel senso dell'intelligenza artificiale né un "contratto" in senso legale. È codice deterministico: dati gli stessi input, produce sempre gli stessi output, seguendo esattamente la logica scritta dal suo sviluppatore.

Pensa a uno smart contract come a un distributore automatico. Inserisci una moneta, selezioni un prodotto e la macchina lo consegna — niente cassiere, niente negoziazione, niente discrezionalità. La macchina segue esattamente le sue regole programmate. Uno smart contract fa la stessa cosa su una blockchain: detiene asset o logica, riceve input (transazioni) ed esegue operazioni predefinite in modo automatico e trasparente.

In sintesi: uno smart contract è codice autoeseguibile su una blockchain — applica regole senza intermediari, e nei progetti crypto AI gestisce la logica economica e di governance, mentre il calcolo AI avviene tipicamente offchain.

Come funziona uno smart contract

Scrittura e distribuzione

Uno smart contract nasce come codice sorgente scritto in un linguaggio di programmazione progettato per una specifica blockchain. Il linguaggio più comune è Solidity, usato su Ethereum e su tutte le chain compatibili EVM (BNB Smart Chain, Arbitrum, Base, Polygon, Avalanche C-Chain). Solana usa Rust e il suo framework nativo. Altre chain hanno linguaggi propri: Move (Sui, Aptos), Cairo (Starknet) e altri.

Lo sviluppatore scrive la logica — che cosa fa il contratto, quali dati memorizza, quali condizioni attivano quali azioni — poi compila il codice sorgente in bytecode (istruzioni di basso livello che la macchina virtuale della blockchain può eseguire). Questo bytecode viene inviato alla blockchain in una transazione di distribuzione. Una volta confermato, il contratto esiste a un indirizzo specifico sulla chain ed è disponibile per l'interazione da parte di chiunque.

Esecuzione

Quando un utente o un altro contratto chiama una funzione di uno smart contract, accade quanto segue:

  1. Il chiamante invia una transazione che specifica l'indirizzo del contratto, la funzione da chiamare e i parametri di input.
  2. Ogni nodo validatore della rete esegue la funzione in modo indipendente, elaborando gli stessi input attraverso lo stesso bytecode.
  3. Il risultato — eventuali cambiamenti di stato, trasferimenti di token, eventi emessi o dati scritti — viene registrato in un blocco e diventa parte del registro permanente.
  4. Il chiamante paga una gas fee per il calcolo. Le operazioni più complesse costano più gas.

Questo modello di esecuzione ha proprietà importanti: è deterministico (ogni nodo ottiene lo stesso risultato), trasparente (chiunque può ispezionare il bytecode e la cronologia delle transazioni) e permissionless (chiunque può chiamare una funzione pubblica).

Gas e costi

Ogni passo computazionale all'interno di uno smart contract costa gas — un'unità che misura lo sforzo computazionale richiesto. Le gas fee servono a due scopi: compensano i validatori per l'esecuzione del codice e prevengono gli abusi (senza commissioni, gli attaccanti potrebbero inviare calcoli infinitamente complessi per rallentare la rete).

I costi del gas variano da rete a rete. Sulla mainnet di Ethereum, le operazioni complesse possono costare decine o centinaia di dollari nei periodi di alta domanda. Sulle reti L2 come Arbitrum o Base, le stesse operazioni possono costare centesimi. Su Solana, le commissioni di transazione sono tipicamente frazioni di centesimo. Queste differenze di costo influenzano direttamente dove i progetti crypto AI scelgono di distribuire i loro componenti on-chain.

Immutabilità e aggiornabilità

Una volta distribuito, il bytecode di uno smart contract è memorizzato in modo permanente sulla blockchain. Non può essere modificato, cancellato o sovrascritto. Questa immutabilità è una caratteristica di sicurezza — gli utenti possono verificare esattamente quale codice verrà eseguito e confidare che non cambierà — ma significa anche che i bug distribuiti sulla blockchain non possono essere corretti come nel software tradizionale.

Per affrontare questo problema, gli sviluppatori hanno creato pattern di contratti aggiornabili che usano contratti proxy. In questo design, gli utenti interagiscono con un contratto proxy che delega le chiamate a un contratto di implementazione. Il team può distribuire una nuova implementazione e puntare il proxy verso di essa — di fatto "aggiornando" il contratto. Questo risolve il problema della correzione dei bug ma introduce un compromesso di fiducia: chi controlla il meccanismo di aggiornamento del proxy può cambiare il comportamento del contratto. I contratti aggiornabili non sono intrinsecamente negativi, ma spostano la fiducia da "il codice è permanente" a "il team con accesso all'aggiornamento agirà in modo responsabile".

Che cosa possono e non possono fare gli smart contract

Possono fare:

  • Detenere e trasferire token e altri asset digitali
  • Applicare logica condizionale (se X, allora Y)
  • Interagire con altri smart contract sulla stessa chain
  • Emettere eventi che i sistemi esterni possono monitorare
  • Gestire il controllo degli accessi (chi può chiamare quale funzione)

Non possono fare:

  • Accedere a dati esterni alla blockchain (hanno bisogno di oracoli per i feed di dati esterni)
  • Eseguire operazioni computazionalmente intensive come l'inference AI (i costi del gas lo rendono impraticabile)
  • Eseguirsi autonomamente secondo una pianificazione (hanno bisogno di trigger esterni — transazioni — per funzionare)
  • Memorizzare file di grandi dimensioni (lo storage on-chain è costoso; i progetti usano IPFS o Arweave per i dati voluminosi)
  • Formulare giudizi soggettivi (eseguono logica deterministica, non ragionamento)

Quest'ultima limitazione è particolarmente rilevante per la crypto AI. Uno smart contract non può "pensare" o "decidere" nel senso dell'AI. Può instradare, regolare e applicare regole, ma il calcolo AI vero e proprio deve avvenire offchain e restituire i risultati al contratto.

Perché è importante per i progetti crypto AI

Gli smart contract sono il tessuto connettivo tra l'infrastruttura blockchain e la funzionalità AI nella maggior parte dei progetti crypto AI. Comprendere il loro ruolo — e i loro limiti — è essenziale per leggere correttamente le schede progetto.

Il livello economico

In molte architetture crypto AI, gli smart contract gestiscono il lato economico: pagamenti per il calcolo, distribuzione delle ricompense ai contributori di dati, staking per i validatori e riscossione delle commissioni per i servizi di inference. Il modello AI funziona offchain, ma lo smart contract garantisce che tutti vengano pagati secondo le regole, senza un'autorità centrale che gestisca la contabilità.

Governance

Gli smart contract possono implementare meccanismi di governance: presentazione di proposte, votazioni, requisiti di quorum ed esecuzione delle modifiche approvate. Per i progetti AI, questo può significare governance sui parametri dei modelli, sulla selezione dei dataset o sull'allocazione delle risorse — condotta in modo trasparente on-chain invece di essere decisa privatamente da un team fondatore.

Checkpoint di verifica

Alcuni progetti usano gli smart contract per memorizzare dati di verifica: hash dei pesi dei modelli, prove dei risultati di inference o attestazioni che specifici calcoli sono stati eseguiti. Sebbene lo smart contract non verifichi l'output AI in sé (gli manca la capacità computazionale), fornisce un registro immutabile che può essere controllato in seguito.

Controllo degli accessi e permessi

Gli smart contract gestiscono chi può accedere a che cosa. Un'API di inference AI costruita su blockchain potrebbe usare uno smart contract per verificare se il chiamante detiene il token richiesto, dispone di crediti sufficienti o soddisfa altre condizioni prima di consentire l'accesso. Questo sostituisce i sistemi di autenticazione centralizzati con un controllo degli accessi on-chain e trasparente.

La distinzione "non intelligente nel senso dell'AI"

Una fonte persistente di confusione: gli "smart contract" non hanno nulla a che vedere con l'intelligenza artificiale. La parola "smart" qui significa autoeseguibile — il contratto applica la sua logica automaticamente — non che ragioni, apprenda o si adatti. Un sistema AI apprende dai dati e fa previsioni. Uno smart contract segue regole fisse e produce output deterministici. I progetti crypto AI combinano tipicamente entrambi: lo smart contract gestisce la logica on-chain (pagamenti, governance, controllo degli accessi), mentre il modello AI gestisce l'intelligenza off-chain (inference, previsione, analisi).

Dove compare nelle schede progetto di DecAIHub

Gli smart contract emergono nelle schede progetto attraverso diversi campi e indicatori di evidenza:

  • Main chain — indica su quale blockchain sono distribuiti gli smart contract del progetto. Un progetto su Ethereum usa contratti basati su Solidity; un progetto su Solana usa programmi basati su Rust. La scelta della chain influisce sulle capacità dei contratti, sui costi del gas e sulla componibilità con altri protocolli.
  • Token standard — valori come ERC-20, BEP-20 e SPL si riferiscono a standard di smart contract che definiscono come si comporta il token del progetto. Un token ERC-20 è uno smart contract su Ethereum che implementa un'interfaccia specifica.
  • Type e Category — i progetti che si basano sugli smart contract come componente on-chain centrale hanno tipicamente Type: EVM o non-EVM (a seconda della chain) e una Category che riflette il loro ruolo (ad esempio DeFi, AI/Agents | DeFi). Un protocollo DeFi è essenzialmente una collezione di smart contract che gestiscono liquidità, trading o prestiti.
  • Evidenze (Tier-1) — gli indirizzi di smart contract verificati, i rapporti di audit e il codice dei contratti distribuiti sui block explorer sono tra le forme più forti di evidenza Tier-1. Se un progetto dichiara funzionalità on-chain, i suoi indirizzi di contratto dovrebbero essere verificabili.
  • Token model — valori come fee-mechanism, governance, staking e utility descrivono come il token interagisce con gli smart contract del progetto. Un token di governance conferisce tipicamente diritti di voto in un sistema di governance basato su smart contract.

Quando leggi una scheda progetto, controlla se le affermazioni on-chain del progetto sono supportate da contratti effettivamente distribuiti. Un progetto che dichiara una governance basata su smart contract ma non ha indirizzi di contratto verificabili solleva dubbi sulla sostanza della sua presenza on-chain.

Che cosa uno smart contract da solo non dimostra

L'esistenza di smart contract distribuiti ti dice che del codice vive su una blockchain, ma non dimostra:

  • La capacità AI — uno smart contract non può eseguire un modello AI. La presenza di contratti ben progettati dimostra una logica economica o di governance on-chain, non l'AI reality. L'AI reality viene valutata attraverso un insieme separato di evidenze (i flag da AI_0 ad AI_4).
  • La sicurezza — il codice di uno smart contract può contenere bug, vulnerabilità o backdoor. La distribuzione non equivale alla sicurezza. Un contratto sottoposto ad audit è più affidabile di uno non sottoposto ad audit, ma anche contratti sottoposti ad audit sono stati sfruttati. Verifica se i contratti del progetto sono stati sottoposti ad audit da società rinomate.
  • La decentralizzazione — uno smart contract distribuito su una blockchain decentralizzata eredita la sicurezza di consenso della rete, ma il contratto stesso può avere meccanismi di controllo centralizzati: chiavi di amministrazione che possono sospendere o aggiornare il contratto, funzioni riservate al proprietario o dipendenze da oracoli centralizzati.
  • L'immutabilità — se il progetto usa pattern di proxy aggiornabili, il comportamento del contratto può essere cambiato da chi detiene le chiavi di aggiornamento. "On-chain" non significa automaticamente "permanente" quando sono coinvolti i proxy.
  • Il beneficio per l'utente — uno smart contract può essere tecnicamente impeccabile e completamente inutile. La qualità del codice e il valore del prodotto sono questioni separate.

Da non confondere con

  • Modello AI — un modello AI apprende dai dati, fa previsioni e genera output. Uno smart contract esegue logica deterministica. Svolgono ruoli fondamentalmente diversi nei progetti crypto AI. Il modello AI è l'intelligenza; lo smart contract è il meccanismo di applicazione delle regole.
  • dApp (applicazione decentralizzata) — una dApp è un'applicazione rivolta all'utente che interagisce con gli smart contract su una blockchain. Lo smart contract è la logica di backend; la dApp è il prodotto completo, che spesso include un frontend, servizi offchain e interazioni con gli smart contract.
  • API — un'API tradizionale funziona su un server centralizzato e può essere modificata, spenta o censurata dal suo operatore. Uno smart contract è accessibile a chiunque sulla blockchain, funziona secondo regole immutabili (a meno che non sia aggiornabile) e non può essere spento da una singola parte. Alcuni progetti crypto espongono i loro smart contract attraverso interfacce API standard per comodità degli sviluppatori.
  • Contratto legale — un contratto legale è applicabile da tribunali e istituzioni giuridiche. Uno smart contract è applicato dal codice e dal consenso della blockchain. Sono sistemi diversi con meccanismi di applicazione diversi. Uno smart contract non costituisce un accordo legale a meno che la legge della giurisdizione non lo riconosca esplicitamente come tale.
  • Script — Bitcoin usa un linguaggio di scripting limitato che consente condizioni di base (come i requisiti multisig) ma non la ricca programmabilità degli smart contract in stile Ethereum. Quando si parla di "smart contract" nel contesto crypto AI, si intendono quasi sempre contratti in stile Ethereum con piena programmabilità.

Domande frequenti

Gli smart contract possono essere hackerati?

Sì. Gli smart contract sono software, e il software può avere bug. Le categorie comuni di vulnerabilità includono attacchi di reentrancy, overflow di interi, fallimenti del controllo degli accessi e manipolazione degli oracoli. Una volta distribuito, il codice difettoso resta on-chain in modo permanente e può essere sfruttato. Per questo gli audit di sicurezza sono importanti e per questo DecAIHub traccia lo stato degli audit come parte della valutazione dei progetti. L'immutabilità che rende gli smart contract affidabili significa anche che i bug distribuiti non possono essere corretti, a meno che il progetto non usi pattern aggiornabili.

Gli smart contract sono davvero immutabili?

Gli smart contract standard sono immutabili dopo la distribuzione — il bytecode all'indirizzo del contratto non può essere modificato. Tuttavia, molti progetti moderni usano pattern di proxy aggiornabili che consentono di sostituire la logica di implementazione. In questi casi, l'indirizzo del proxy rimane lo stesso, ma il comportamento sottostante può cambiare. Se un contratto è aggiornabile, e chi controlla il meccanismo di aggiornamento, è un fattore importante nella valutazione della decentralizzazione e del modello di fiducia di un progetto.

Gli smart contract hanno bisogno di gas su ogni blockchain?

La maggior parte delle blockchain applica una qualche forma di commissione di esecuzione, anche se la terminologia e i prezzi variano. Ethereum la chiama "gas". Solana addebita "compute units" e "rent". Il concetto è universale: i validatori devono essere compensati per l'esecuzione del codice, e le commissioni prevengono lo spam. Il livello dei costi varia enormemente — da dollari per transazione sulla L1 di Ethereum nei picchi di domanda a frazioni di centesimo sulle reti L2 e su Solana.

Un modello AI può essere memorizzato in uno smart contract?

Memorizzare i pesi completi di un moderno modello AI all'interno di uno smart contract non è praticabile. Un modello linguistico di grandi dimensioni può avere miliardi di parametri che occupano gigabyte di storage. I costi di storage on-chain su Ethereum sono di circa 20.000 gas per slot da 32 byte, il che rende proibitivo memorizzare i pesi dei modelli on-chain. In pratica, i progetti memorizzano onchain gli hash dei modelli o dei puntatori (come gli identificatori di contenuto IPFS) per la verifica, mentre i file effettivi dei modelli risiedono offchain.

Qual è il ruolo degli smart contract nei progetti crypto AI?

Nella maggior parte delle architetture crypto AI, gli smart contract gestiscono il livello di coordinamento ed economico: gestione dei pagamenti dei marketplace di calcolo, distribuzione delle ricompense ai contributori di dati, applicazione delle regole di staking e slashing, controllo dell'accesso ai servizi AI e governance dei parametri del protocollo. Il calcolo AI in sé avviene offchain, con gli smart contract che fungono da livello di regolamento e verifica a fiducia minimizzata.

Come posso verificare gli smart contract di un progetto?

Cerca gli indirizzi dei contratti su un block explorer (come Etherscan per Ethereum, Solscan per Solana o l'explorer pertinente per le altre chain). I contratti verificati mostrano il loro codice sorgente direttamente sull'explorer, consentendo a chiunque di leggere la logica effettiva. Controlla se il codice corrisponde alla documentazione del progetto, se il contratto è stato sottoposto ad audit e se il rapporto di audit è pubblicamente disponibile. Nelle schede progetto di DecAIHub, gli indirizzi dei contratti distribuiti e i rapporti di audit sono tracciati come evidenze Tier-1.

Riferimenti esterni

Vedi anche