Uno smart contract non è un contratto intelligente: è codice eseguito da una blockchain. Può muovere token e applicare regole, ma non comprende il contesto.
Il nome “smart contract” fa pensare a un contratto capace di capire una situazione e prendere decisioni. In realtà è quasi il contrario: uno smart contract è codice che esegue regole definite in anticipo su una blockchain.
La definizione tecnica di Ethereum è molto più utile del marketing: uno smart contract è un programma che risiede a un indirizzo della rete, possiede funzioni e stato e può essere attivato da transazioni.
Immagina una procedura del tipo: se arriva un certo input e sono rispettate determinate condizioni, esegui un’azione. Lo smart contract riceve la transazione, verifica la logica prevista dal codice e aggiorna lo stato della blockchain.
Può trasferire token, registrare informazioni, gestire autorizzazioni, distribuire ricompense o far funzionare parti di un’applicazione decentralizzata. È questo passaggio che trasforma la blockchain da semplice registro a infrastruttura programmabile.
Ethereum è stato progettato proprio per eseguire programmi distribuiti. La sua macchina virtuale consente agli sviluppatori di pubblicare codice che viene eseguito dai nodi secondo regole condivise.
È il motivo per cui capire Ethereum significa andare oltre l’idea di criptovaluta: ETH serve anche a pagare il calcolo necessario per eseguire queste operazioni.
Il codice può applicare una condizione tecnica, ma non interpreta intenzioni, eccezioni o contesto come farebbe un giudice. Se una regola è scritta male, il software esegue comunque ciò che è stato programmato.
Per questo “code is law” è una formula potente ma incompleta. Il codice può governare una transazione digitale; i diritti e gli obblighi giuridici dipendono invece dalla legge, dalla giurisdizione e dalle condizioni concrete.
Una blockchain conosce bene ciò che accade dentro la propria rete. Se uno smart contract deve sapere il prezzo di una valuta, il risultato di una partita o la temperatura rilevata da un sensore, serve una fonte esterna chiamata spesso oracle.
Qui compare un paradosso: un programma decentralizzato può dipendere da un dato fornito da un soggetto o da un’infrastruttura esterna. La qualità e la sicurezza dell’oracle diventano quindi parte della sicurezza del contratto.
Bug, errori logici, permessi amministrativi e vulnerabilità possono avere conseguenze economiche immediate. La natura pubblica del codice aiuta l’audit, ma non elimina il rischio. Inoltre molti sistemi sono aggiornabili o dipendono da altri contratti: l’idea di un codice immutabile e completamente autonomo è spesso più semplice della realtà.
Gli smart contract hanno senso quando più soggetti devono condividere regole e stato senza affidare tutto a un singolo database controllato da una parte. Sono utili per token, scambi, garanzie digitali, governance e protocolli finanziari.
Non sono invece una soluzione automatica per qualunque processo. Se tutti i partecipanti si fidano già di un unico operatore, un database tradizionale può essere più semplice, economico e veloce.