introduzione
Negli anni ’90, Nick Szabo propose per primo il concetto di contratti intelligenti. A quel tempo, definì i contratti intelligenti come strumenti che standardizzano e garantiscono la sicurezza delle reti informatiche combinando protocolli e interfacce utente.
Szabo ha discusso del potenziale utilizzo dei contratti intelligenti in varie aree legate agli accordi contrattuali, come i sistemi di credito, i processi di pagamento e la gestione dei diritti sui contenuti.
Nel campo delle criptovalute, i contratti intelligenti possono essere definiti come applicazioni o programmi in esecuzione sulla blockchain. In genere, funzionano come un protocollo digitale imposto da regole specifiche. Queste regole sono predefinite dal codice del computer e vengono replicate ed eseguite da tutti i nodi della rete.
I contratti intelligenti Blockchain supportano la creazione di protocolli trustless. Ciò significa che le parti di un contratto assumono un impegno tramite la blockchain senza conoscersi o fidarsi l’una dell’altra. Le parti hanno stabilito che se le condizioni non fossero state soddisfatte, il contratto non sarebbe stato eseguito. Inoltre, l’utilizzo dei contratti intelligenti elimina la necessità di intermediari, riducendo significativamente i costi operativi.
Sebbene i contratti intelligenti siano supportati dal protocollo Bitcoin da molti anni, sono diventati popolari grazie alle mani del creatore e co-fondatore di Ethereum Vitalik Buterin. Vale la pena notare che ciascuna blockchain implementa i contratti intelligenti in modo diverso.
Questo articolo si concentrerà sui contratti intelligenti in esecuzione nella Ethereum Virtual Machine (EVM), una parte importante della blockchain di Ethereum.
Come funzionano i contratti intelligenti?
In poche parole, uno smart contract è un programma deterministico che esegue compiti specifici quando vengono soddisfatte determinate condizioni. Pertanto, i sistemi di contratto intelligente di solito seguono istruzioni condizionali "se... allora...". Sebbene il concetto di “contratto intelligente” sia ben noto, non è né un contratto legale né intelligente. Sono solo un pezzo di codice in esecuzione in un sistema distribuito blockchain.
Nella rete Ethereum, i contratti intelligenti sono responsabili dell'esecuzione e della gestione delle operazioni blockchain quando gli utenti (indirizzi) interagiscono tra loro. Gli indirizzi al di fuori dei contratti intelligenti sono chiamati "Account esterni (EOA)". Pertanto, i contratti intelligenti sono controllati dal codice informatico, mentre gli account esterni (EOA) sono controllati dagli utenti.
I contratti intelligenti di Ethereum consistono fondamentalmente in un codice contratto e due chiavi pubbliche. La prima chiave pubblica viene fornita dal creatore del contratto, mentre l'altra chiave pubblica è il contratto stesso e viene utilizzata come identificatore digitale univoco per ogni contratto intelligente.
Tutta l’implementazione dei contratti intelligenti avviene tramite transazioni blockchain e viene attivata solo quando viene chiamato un account esterno (EOA) o un altro contratto intelligente. Tuttavia, i contratti intelligenti vengono generalmente attivati da un account esterno (EOA), ovvero dall’utente per la prima volta.
Caratteristiche principali
I contratti intelligenti di Ethereum hanno le seguenti caratteristiche comuni:
distribuito. I contratti intelligenti vengono replicati e distribuiti su tutti i nodi della rete Ethereum. Questo è molto diverso da altre soluzioni centralizzate basate su server.
Certezza. I contratti intelligenti eseguono azioni pre-progettate solo quando i requisiti vengono soddisfatti. E, indipendentemente da chi lo fa, i risultati rimangono coerenti.
autonomia. Rispetto ai programmi “autoeseguibili”, i contratti intelligenti completeranno automaticamente varie attività. Nella maggior parte dei casi, i contratti intelligenti non attivati rimangono in uno stato di "sonno" e non eseguono alcuna azione.
Immutabilità. I contratti intelligenti non possono essere modificati dopo la loro implementazione. I contratti intelligenti possono essere "cancellati" solo dopo che sono state implementate funzioni specifiche. Quindi, potremmo anche dire che i contratti intelligenti forniscono un codice a prova di manomissione.
Personalizzazione. Prima della distribuzione, i contratti intelligenti vengono codificati in vari modi. Pertanto, può essere utilizzato per creare un'ampia varietà di applicazioni decentralizzate (DApp). Ciò va di pari passo con il fatto che Ethereum è una blockchain completa di Turing.
Diffidare. Due o più parti possono interagire tramite contratti intelligenti senza bisogno di conoscersi o fidarsi l'una dell'altra. Inoltre, la tecnologia blockchain garantirà l’accuratezza dei dati.
Trasparenza. La base dei contratti intelligenti è una blockchain pubblica, quindi il codice sorgente non è solo immutabile, ma anche aperto e trasparente per tutti.
I contratti intelligenti possono essere modificati o eliminati?
Una volta distribuiti, i contratti intelligenti di Ethereum non possono aggiungere nuove funzioni. Tuttavia, finché il creatore del contratto riserva la funzione "SELFDESTRUCT" nel codice, questa funzione può successivamente "eliminare" lo smart contract e sostituirlo con un nuovo contratto. Se questa funzione non è riservata nel codice, lo smart contract non può essere eliminato.
Vale la pena notare che attraverso i cosiddetti contratti intelligenti aggiornabili, gli sviluppatori possono operare in modo più flessibile sull’immutabilità del contratto. Esistono molti modi per creare contratti intelligenti aggiornabili, ciascuno con diversi livelli di complessità.
Come semplice esempio, supponiamo che uno smart contract sia suddiviso in più contratti più piccoli. Alcune parti sono progettate per essere immutabili, mentre altre abilitano le funzioni di "eliminazione". Cioè, parti del codice (contratti intelligenti) possono essere cancellate e sostituite, mentre altre funzionalità rimangono invariate.
Vantaggi e casi d'uso
In quanto codici programmabili, i contratti intelligenti sono altamente personalizzabili, progettati in molti modi e forniscono un’ampia varietà di servizi e soluzioni.
Essendo programmi decentralizzati e autoeseguibili, i contratti intelligenti aumentano la trasparenza e riducono i costi di gestione. A seconda dell’implementazione, i contratti intelligenti possono anche migliorare l’efficienza dell’implementazione e ridurre i costi ingombranti.
I contratti intelligenti sono particolarmente utili quando si tratta di trasferimenti di fondi o transazioni tra due o più parti.
In altre parole, i contratti intelligenti possono essere personalizzati per un’ampia gamma di casi d’uso, inclusa la creazione di asset tokenizzati, sistemi di voto, portafogli di criptovaluta, scambi decentralizzati, giochi e app mobili. I contratti intelligenti possono essere implementati anche con altre soluzioni blockchain che coprono aree quali sanità, beneficenza, catena di fornitura, governance e finanza decentralizzata (DeFi).
CER-20
I token emessi sulla blockchain di Ethereum seguono lo standard ERC-20. Questo standard specifica la funzionalità principale di tutti i token Ethereum. Pertanto, queste risorse digitali sono spesso chiamate "token ERC-20" e rappresentano gran parte delle criptovalute esistenti.
Molte aziende e startup blockchain hanno implementato contratti intelligenti per emettere autonomamente token digitali sulla rete Ethereum. Dopo l'emissione di un token, la maggior parte delle aziende distribuisce i propri token ERC-20 tramite un'offerta iniziale di monete (ICO). Nella maggior parte dei casi, l’uso dei contratti intelligenti può realizzare efficacemente transazioni di fondi e distribuzione di token in modo trustless.
limitazioni
I contratti intelligenti consistono in codice informatico scritto dall’uomo. Il codice presenterà difetti e lacune, che comporteranno molti rischi. Idealmente, i contratti intelligenti dovrebbero essere scritti e implementati da programmatori esperti, soprattutto quando sono coinvolte informazioni sensibili e grandi quantità di denaro.
Inoltre, alcune persone credono che i sistemi centralizzati possano fornire la maggior parte delle soluzioni e delle funzioni dei contratti intelligenti. La differenza principale è che i contratti intelligenti vengono eseguiti in una rete P2P distribuita anziché in un server centralizzato. Inoltre, gli smart contract si basano su sistemi blockchain e quindi spesso non possono essere manomessi o difficilmente modificabili.
L’immutabilità dei contratti intelligenti presenta evidenti vantaggi, ma in alcuni casi può essere controproducente. Ad esempio, nel 2016 l'organizzazione autonoma decentralizzata "The DAO" è stata violata e milioni di monete Ethereum (ETH) sono scomparse perché il codice del contratto intelligente presentava dei difetti.
Poiché i contratti intelligenti sono immutabili, gli sviluppatori non possono correggere il codice. Ciò alla fine ha portato ad un hard fork, da cui è nata la seconda catena di Ethereum. In poche parole, una catena (parte dell’attuale blockchain di Ethereum) viene “ripristinata” allo stato in cui era prima dell’hacking, restituendo i fondi ai proprietari originali. L'altra catena, ora conosciuta come Ethereum Classic, ha deciso di non intervenire nell'hacking, insistendo sul fatto che gli eventi che accadono nella blockchain non dovrebbero mai essere manomessi.
È importante notare che questo problema non è causato dalla blockchain di Ethereum, ma da un’errata esecuzione dei contratti intelligenti.
Un’altra limitazione dei contratti intelligenti è legata ai loro effetti giuridici poco chiari. I contratti intelligenti si trovano in una zona grigia nella maggior parte dei paesi e non si applicano ancora agli attuali quadri giuridici.
Ad esempio, molti contratti richiedono che entrambe le parti coinvolte nella transazione debbano superare un'adeguata autenticazione del nome reale e avere più di 18 anni. Tuttavia, l’anonimato della tecnologia blockchain e la mancanza di intermediari entreranno in conflitto con i requisiti contrattuali. Una soluzione a questo problema potrebbe apparire in futuro. Tuttavia, i contratti intelligenti vengono eseguiti in una rete distribuita senza confini, rendendo molto difficile l’applicazione della legge.
Svantaggi
Alcuni entusiasti della blockchain vedono i contratti intelligenti come soluzioni autonome che sostituiranno gran parte dei sistemi aziendali e burocratici esistenti. Sebbene l’idea possa concretizzarsi, c’è ancora molta strada da fare prima che diventi la norma.
I contratti intelligenti sono davvero una tecnologia interessante. Tuttavia, caratteristiche come la distribuzione, il determinismo, la trasparenza e l’immutabilità talvolta riducono l’attrattiva dei contratti intelligenti.
Lo svantaggio essenziale dei contratti intelligenti è che non possono risolvere bene molti problemi pratici. In effetti, alcune organizzazioni utilizzano attualmente le tradizionali soluzioni server come soluzione provvisoria.
Rispetto ai contratti intelligenti, i server centralizzati sono più facili e meno costosi da mantenere e spesso presentano importanti vantaggi in termini di velocità e comunicazione tra reti (interoperabilità).
Riassumere
Non c’è dubbio che i contratti intelligenti abbiano avuto un profondo impatto sul campo delle criptovalute e abbiano effettivamente apportato importanti cambiamenti nel campo della blockchain. Gli utenti finali non interagiscono necessariamente direttamente con i contratti intelligenti. Ma nel prossimo futuro, i contratti intelligenti saranno utilizzati in modo più ampio, coprendo vari settori come i servizi finanziari e la gestione della catena di fornitura.
Insieme, i contratti intelligenti e la blockchain stanno sconvolgendo quasi ogni ambito della società odierna. Ma solo il tempo dirà se queste tecnologie rivoluzionarie riusciranno a superare gli ostacoli e, infine, a raggiungere un’adozione di massa.

