introduzione

Nick Szabo descrisse per la prima volta i contratti intelligenti negli anni ’90. Allora, definì un contratto intelligente come uno strumento che formalizza e protegge le reti di computer combinando protocolli con interfacce utente.

Szabo ha discusso del potenziale utilizzo dei contratti intelligenti in vari campi che coinvolgono accordi contrattuali, come i sistemi di credito, l'elaborazione dei pagamenti e la gestione dei diritti sui contenuti.

Nel mondo delle criptovalute, possiamo definire uno smart contract come un'applicazione o un programma che gira su una blockchain. In genere, funzionano come un accordo digitale applicato da uno specifico insieme di regole. Queste regole sono predefinite dal codice del computer, che viene replicato ed eseguito da tutti i nodi della rete.

I contratti intelligenti Blockchain consentono la creazione di protocolli trustless. Ciò significa che due parti possono assumere impegni tramite blockchain, senza doversi conoscere o fidarsi l’una dell’altra. Possono essere sicuri che se le condizioni non saranno soddisfatte, il contratto non verrà eseguito. Oltre a ciò, l’uso dei contratti intelligenti può eliminare la necessità di intermediari, riducendo significativamente i costi operativi.

Sebbene il protocollo Bitcoin supporti i contratti intelligenti da molti anni, sono stati resi popolari dal creatore e co-fondatore di Ethereum, Vitalik Buterin. Vale la pena notare, tuttavia, che ciascuna blockchain può presentare un metodo diverso di implementazione dei contratti intelligenti.

Questo articolo si concentrerà sui contratti intelligenti eseguiti sulla Ethereum Virtual Machine (EVM), che è una parte essenziale della blockchain di Ethereum.


Come funzionano?

In termini semplici, uno smart contract funziona come un programma deterministico. Esegue un compito particolare quando e se vengono soddisfatte determinate condizioni. Pertanto, un sistema di contratto intelligente spesso segue le dichiarazioni "se... allora...". Ma nonostante la terminologia popolare, i contratti intelligenti non sono contratti legali, né intelligenti. Sono solo un pezzo di codice in esecuzione su un sistema distribuito (blockchain).

Sulla rete Ethereum, i contratti intelligenti sono responsabili dell'esecuzione e della gestione delle operazioni blockchain che avvengono quando gli utenti (indirizzi) interagiscono tra loro. Qualsiasi indirizzo che non sia uno smart contract è chiamato account di proprietà esterna (EOA). Pertanto, i contratti intelligenti sono controllati dal codice informatico e gli EOA sono controllati dagli utenti.

Fondamentalmente, gli smart contract di Ethereum sono costituiti da un codice contratto e due chiavi pubbliche. La prima chiave pubblica è quella fornita dal creatore del contratto. L’altra chiave rappresenta il contratto stesso, agendo come un identificatore digitale unico per ogni contratto intelligente.

L'implementazione di qualsiasi contratto intelligente viene effettuata tramite una transazione blockchain e può essere attivata solo quando richiesto da un EOA (o da altri contratti intelligenti). Tuttavia, il primo trigger è sempre causato da un EOA (utente).


Caratteristiche principali

Uno smart contract Ethereum presenta spesso le seguenti caratteristiche:

Distribuito. I contratti intelligenti vengono replicati e distribuiti in tutti i nodi della rete Ethereum. Questa è una delle principali differenze rispetto ad altre soluzioni basate su server centralizzati.

Deterministico. I contratti intelligenti eseguono solo le azioni per cui sono stati progettati, purché i requisiti siano soddisfatti. Inoltre, il risultato sarà sempre lo stesso, indipendentemente da chi li esegue.

Autonomo. I contratti intelligenti possono automatizzare tutti i tipi di attività, funzionando come un programma autoeseguibile. Nella maggior parte dei casi, tuttavia, se uno smart contract non viene attivato, rimarrà “dormiente” e non eseguirà alcuna azione.

Immutabile. I contratti intelligenti non possono essere modificati dopo la distribuzione. Possono essere "cancellati" solo se in precedenza è stata implementata una determinata funzione. Pertanto, potremmo dire che i contratti intelligenti possono fornire un codice a prova di manomissione.

Personalizzabile. Prima dell’implementazione, i contratti intelligenti possono essere codificati in molti modi diversi. Pertanto, possono essere utilizzati per creare molti tipi di applicazioni decentralizzate (DApp). Ciò è legato al fatto che Ethereum è una blockchain completa di Turing.

Senza fiducia. Due o più parti possono interagire tramite contratti intelligenti senza conoscersi o fidarsi l'uno dell'altro. Inoltre, la tecnologia blockchain garantisce che i dati siano accurati.

Trasparente. Poiché i contratti intelligenti si basano su una blockchain pubblica, il loro codice sorgente non solo è immutabile ma anche visibile a chiunque.


Posso modificare o eliminare uno smart contract?

È impossibile aggiungere nuove funzioni a uno smart contract Ethereum dopo averlo distribuito. Tuttavia, se il suo creatore include una funzione chiamata SELFDESTRUCT nel codice, sarà in grado di "eliminare" lo smart contract in futuro e sostituirlo con uno nuovo. Al contrario, però, se la funzione non è inclusa in anticipo nel codice, non sarà possibile eliminarla.

In particolare, i cosiddetti contratti intelligenti aggiornabili consentono agli sviluppatori di avere maggiore flessibilità rispetto all’immutabilità dei contratti. Esistono molti modi per creare contratti intelligenti aggiornabili, con vari gradi di complessità.

Facendo un esempio semplificato, immaginiamo che uno smart contract sia suddiviso in più contratti più piccoli. Alcuni di essi sono progettati per essere immutabili, mentre altri hanno la funzione "elimina" abilitata. Ciò significa che parte del codice (contratti intelligenti) può essere cancellata e sostituita, mentre altre funzionalità rimangono intatte.


Vantaggi e casi d'uso

Essendo un codice programmabile, i contratti intelligenti sono altamente personalizzabili e possono essere progettati in molti modi diversi, offrendo molti tipi di servizi e soluzioni.

In quanto programmi decentralizzati e autoeseguibili, i contratti intelligenti possono fornire maggiore trasparenza e costi operativi ridotti. A seconda dell’implementazione, possono anche aumentare l’efficienza e ridurre le spese burocratiche.

I contratti intelligenti sono particolarmente utili in situazioni che comportano il trasferimento o lo scambio di fondi tra due o più parti.

In altre parole, i contratti intelligenti possono essere progettati per un’ampia varietà di casi d’uso. Alcuni esempi includono la creazione di asset tokenizzati, sistemi di voto, portafogli crittografici, scambi decentralizzati, giochi e applicazioni mobili. Potrebbero anche essere implementati insieme ad altre soluzioni blockchain che affrontano i settori dell’assistenza sanitaria, della beneficenza, della catena di fornitura, della governance e della finanza decentralizzata (DeFi).


CER-20

I token emessi sulla blockchain di Ethereum seguono uno standard noto come ERC-20. Lo standard descrive le funzioni principali di tutti i token basati su Ethereum. In quanto tali, queste risorse digitali vengono spesso chiamate token ERC-20 e rappresentano gran parte delle criptovalute esistenti.

Molte aziende e startup blockchain hanno implementato contratti intelligenti per emettere i propri token digitali sulla rete Ethereum. Dopo l'emissione, la maggior parte di queste società ha distribuito i propri token ERC-20 attraverso eventi ICO (Initial Coin Offer). Nella maggior parte dei casi, l’uso di contratti intelligenti ha consentito lo scambio di fondi e la distribuzione di token in modo affidabile ed efficiente.


Limitazioni

I contratti intelligenti sono costituiti da codice informatico scritto da esseri umani. Ciò comporta numerosi rischi poiché il codice è soggetto a vulnerabilità e bug. Idealmente, dovrebbero essere scritti e distribuiti da programmatori esperti, soprattutto quando coinvolgono informazioni sensibili o grandi quantità di denaro.

Oltre a ciò, alcuni sostengono che i sistemi centralizzati possono fornire la maggior parte delle soluzioni e funzionalità offerte dai contratti intelligenti. La differenza principale è che i contratti intelligenti vengono eseguiti su una rete P2P distribuita, anziché su un server centralizzato. E poiché si basano su un sistema blockchain, tendono ad essere immutabili o molto difficili da cambiare.

Essere immutabili può essere fantastico in alcune situazioni, ma molto negativo in altre. Ad esempio, quando un'organizzazione autonoma decentralizzata (DAO) chiamata "The DAO" è stata violata nel 2016, milioni di ether (ETH) sono stati rubati a causa di difetti nel codice del contratto intelligente.

Poiché il loro contratto intelligente era immutabile, gli sviluppatori non sono stati in grado di correggere il codice. Ciò alla fine ha portato a un hard fork, dando vita a una seconda catena Ethereum. In poche parole, una catena ha "annullato" l'hacking e ha restituito i fondi ai legittimi proprietari (questo fa parte dell'attuale blockchain di Ethereum). L’altra catena ha deciso di non interferire con l’hack, affermando che le cose che accadono su una blockchain non dovrebbero mai essere cambiate (questa catena ora si chiama Ethereum Classic).

È importante notare che il problema non deriva dalla blockchain di Ethereum. Invece, è stato causato da un’implementazione difettosa dello smart contract.

Un’altra limitazione dei contratti intelligenti è legata al loro status giuridico incerto. Non solo perché si trovano in una zona grigia nella maggior parte dei paesi, ma anche perché i contratti intelligenti non si adattano all’attuale quadro giuridico.

Ad esempio, molti contratti richiedono che entrambe le parti siano adeguatamente identificate e abbiano più di 18 anni. La pseudonimia fornita dalla tecnologia blockchain, combinata con la mancanza di intermediari, potrebbe minacciare tali requisiti. Sebbene esistano potenziali soluzioni a questo problema, l’applicabilità giuridica dei contratti intelligenti rappresenta una vera sfida, soprattutto quando si tratta di reti distribuite senza confini.


Critica

Alcuni entusiasti della blockchain vedono i contratti intelligenti come una soluzione che presto sostituirà e automatizzerà gran parte dei nostri sistemi commerciali e burocratici. Sebbene questa sia una realtà possibile, probabilmente è lungi dal diventare la norma.

I contratti intelligenti sono sicuramente una tecnologia interessante. Ma il fatto che siano distribuiti, deterministici, trasparenti e in qualche modo immutabili può renderli meno attraenti in alcune situazioni.

Essenzialmente, le critiche si basano sul fatto che i contratti intelligenti non sono una soluzione adeguata per molti problemi del mondo reale. In effetti, alcune organizzazioni si trovano meglio se utilizzano alternative convenzionali basate su server.

Rispetto ai contratti intelligenti, i server centralizzati sono più facili ed economici da mantenere e tendono a presentare una maggiore efficienza in termini di velocità e comunicazione tra reti (interoperabilità).


Pensieri conclusivi

Non c’è dubbio che i contratti intelligenti abbiano avuto un grande impatto nel mondo delle criptovalute e abbiano sicuramente rivoluzionato lo spazio blockchain. Anche se gli utenti finali potrebbero non interagire direttamente con i contratti intelligenti, è probabile che questi alimenteranno un’ampia gamma di applicazioni in futuro, che vanno dai servizi finanziari alla gestione della catena di fornitura.

Insieme, i contratti intelligenti e la blockchain hanno il potenziale per sconvolgere quasi tutti gli ambiti della nostra società. Ma solo il tempo dirà se queste tecnologie rivoluzionarie riusciranno a superare i numerosi ostacoli all’adozione su larga scala.