Smart contract: da distributori automatici a blockchain

da | Apr 29, 2019

Il termine smart contract (‘contratto intelligente’) indica un codice computazionale che regola lo scambio di denaro, proprietà, azioni e qualsiasi oggetto che abbia un valore.

Definiamo lo smart contract

La prima cosa da capire è che uno smart contract non è, in senso squisitamente giuridico, un contratto. E, da un certo punto di vista, non è neppure troppo intelligente.

Com’è noto, nel linguaggio giuridico il contratto è inteso come una fonte di obbligazioni, ovvero un istituto atto a vincolare due o più parti fra di loro. Uno smart contract è qualcosa di concettualmente diverso: si tratta di un programma software che si esegue in modo autonomo, generando un processo che non può essere interrotto né alternato a posteriori. Esso impone una relazione che avviene grazie a un codice crittografico.

In altri termini, lo smart contract è un programma che si esegue esattamente nel modo in cui il suo creatore lo ha impostato, con l’obiettivo di facilitare, verificare o imporre digitalmente la negoziazione o l’esecuzione di determinate condizioni contrattuali. E in ciò sta l’analogia con il contratto giuridicamente inteso, il quale delinea i termini di una relazione applicabile per legge. Ma, si potrebbe dire, non può esistere uno smart contract senza che prima sia stato stipulato un contratto.

Smart contract e blockchain

Gli smart contract sono diventati di grande attualità con l’avvento del paradigma della blockchain. In particolare se ne parla molto dal 2015, da quando cioè è operativa Ethereum, la prima blockchain dotata di funzionalità di sviluppo. Tuttavia, come vedremo più avanti, il concetto di smart contract è molto più antico.

Ethereum permette di sviluppare applicazioni decentralizzate (dapp) in un linguaggio denominato Solidity e di eseguirle sulle Ethereum Virtual Machine (EVM) che equipaggiano ogni nodo della rete peer-to-peel. Ogni dapp di Ethereum rappresenta uno smart contract. Essa può infatti essere utilizzata per regolare in modo automatico e non modificabile uno scambio fra le parti, ossia il trasferimento di un titolo di proprietà o un pagamento. Lo smart contract è copiato ed eseguito da tutti i nodi della rete.

Proprio grazie alle caratteristiche del modello blockchain, i contratti intelligenti consentono di effettuare transazioni attendibili tra diversi utenti della rete, senza la necessità di un’autorità centrale, di un sistema legale o di un meccanismo di applicazione esterno, rendendo così le transazioni rintracciabili, trasparenti e irreversibili. I contratti intelligenti contengono tutte le informazioni sui termini del contratto ed eseguono automaticamente tutte le azioni previste.

Smart Contract: la nascita

Il concetto di smart contract fu concepito per la prima volta nel 1996 da Nick Szabo nella sua pubblicazione Smart Contracts: Building Blocks for Digital Free Markets. Nell’articolo il grande informatico e crittografo americano descrisse come sarebbe stato possibile stabilire il diritto contrattuale e le relative pratiche commerciali attraverso la progettazione di protocolli di commercio elettronico tra estranei su Internet.

Szabo utilizzò queste parole per descrivere questo nuovo concetto:

“Il contratto, un insieme di promesse concordate in un ‘incontro delle menti’, è il modo tradizionale di formalizzare una relazione. Sebbene i contratti siano principalmente usati nelle relazioni d’affari, possono anche coinvolgere relazioni personali come i matrimoni. […]

[…] Nuove istituzioni e nuovi modi per formalizzare le relazioni che costituiscono queste istituzioni sono ora rese possibili dalla rivoluzione digitale. Chiamo questi nuovi contratti ‘intelligenti’, perché sono molto più funzionali dei loro antenati cartacei inanimati. Nessun uso dell’intelligenza artificiale è implicito. Un contratto intelligente è un insieme di promesse, specificate in forma digitale, inclusi i protocolli all’interno dei quali le parti eseguono tali promesse.”

Uno smart contract è quindi un protocollo per la regolamentazione dei contratti, che ha l’obiettivo di contribuire, verificare o implementare la negoziazione o l’esecuzione del contratto. Si tratta di contratti che si autoeseguono seguendo i termini dell’accordo, inseriti direttamente nelle righe codice del protocollo.

Come funzionano gli smart contract
Come funzionano gli smart contract

Una nuova era per i contratti

Gli smart contract sarebbero in grado di migliorare l’esecuzione di quelli che Szabo identifica come i quattro principali obiettivi di un contratto:

  • Osservabilità, ovvero la capacità delle parti di osservare l’esecuzione reciproca del contratto o di dimostrare la propria performance ad altri presidi.
  • Verificabilità, la capacità di un soggetto di dimostrare a un arbitro che un contratto è stato eseguito o violato, o la capacità dell’arbitro di scoprirlo con altri mezzi.
  • Privacy, il principio secondo cui la conoscenza e il controllo dei contenuti e delle prestazioni di un contratto dovrebbero essere distribuiti tra le parti solo per quanto è necessario per l’esecuzione di tale contratto.
  • Applicabilità, ovvero la capacità di eseguire un dato contratto.

Gli attuali contratti legali sono a volte difficili da comprendere e possono essere interpretati in modo diverso tra le parti. I contratti intelligenti sono scritti principalmente in codice e sono concepiti per funzionare in modalità on/off senza possibilità di libera interpretazione. In questo modo si può eliminare l’ambiguità del linguaggio contrattuale e la necessità di avvocati come mediatori del processo. Uno smart contract, quindi, necessita di un supporto legale solo per la propria stesura, ma non ne ha bisogno per funzionare.

Distributori automatici: antenati dello smart contract

Nonostante l’articolo del 1996 di Szabo sia il primo a trattare del concetto di smart contract, questa idea risale a circa 20 anni prima, quando nacque l’esigenza di gestire l’attivazione o disattivazione di una licenza software in funzione del pagamento o no da parte del cliente. In questo caso si decise di utilizzare una chiave digitale che permetteva il funzionamento del software una volta ricevuto il pagamento e ne bloccava l’accesso una volta scaduto il contratto.

Un esempio molto semplice per comprendere meglio questo concetto è rappresentato da quello che potremmo definire come il bisnonno degli smart contract: il distributore automatico.

Ipotizziamo di trovarci davanti ad una di quelle macchine che promettono di consegnarci una bottiglia d’acqua in cambio di 1€.  Si tratta di un accordo estremamente semplice. Questa interazione potrebbe apparire priva di valore, ma si tratta in realtà di un breve programma codificato in precedenza nella macchina, il quale si esegue quando si preme un determinato pulsante. Quello che avviene è quanto segue:

> if valuta ricevuta = €1,00
> & pulsante schiacciato è “Acqua”
> then consegna “Acqua”

Il codice scritto all’interno del computer che controlla la macchina è come un contratto, che può essere compreso sia dagli umani sia dalle macchine.

Il primo software che ha permesso l’esecuzione di un processo logico “if-this-then-that” è stato inserito nei distributori automatici.
Il primo software che ha permesso l’esecuzione di un processo logico “if-this-then-that” è stato inserito nei distributori automatici.

Che cosa cambia con la blockchain

Come abbiamo già avuto modo di osservare, uno smart contract traduce in codice software i termini di un contratto e verifica in modo automatico tali termini si verifichino. Inoltre esso esegue le azioni previste nel momento in cui le condizioni suddette siano soddisfatte.

In altre parole, lo smart contract si basa su un codice che “legge” sia le clausole concordate sia la condizioni operative nelle quali devono verificarsi le condizioni concordate. Si esegue automaticamente nel momento in cui i dati riferiti alle situazioni reali corrispondono ai dati riferiti alle condizioni e alle clausole concordate.

Smart contract e Blockchain
Smart contract e Blockchain

Come creare uno smart contract e partecipare al contratto

I contratti intelligenti non sono altro che una serie di istruzioni scritte con un linguaggio di programmazione basato sull’IFTTT, ovvero IF-THIS-THEN-THAT. Fondamentalmente si segue sempre questa logica: quando il software porta a termine la prima serie di istruzioni, si esegue la funzione successiva, e così via. Il processo continua a ripetersi fino alla fine del contratto.

Per creare uno smart contract, è prima di tutto necessario definire chi è il soggetto dello stesso. Il codice deve contenere gli accessi ai beni o servizi sotto contratto per poterli bloccare e sbloccare automaticamente. I termini di un contratto intelligente assumono la forma di un’esatta sequenza di azioni, ognuna delle quali scatena una conseguenza automatica.

Per partecipare al contratto, gli utenti devono firmare l’accordo utilizzando le proprie chiavi private e aderire a tutti i termini presenti nel codice del programma. Infine, è necessario caricare il contratto su una piattaforma decentralizzata e distribuita, com’è appunto la blockchain di Ethereum, per poterlo mettere in esecuzione. Naturalmente gli smart contract possono essere scritti ed eseguiti anche su altre blockchain. Una valida alternativa a Ethereum, per certi versi ancora più credibile, è senz’altro costituita da Hyperledger. Per l’architettura di riferimento per la gestione di smart contract su Hyperledger, si può vedere questo illuminante white paper.

Quando il codice di uno smart contract si integra all’interno di una blockchain, questo diventa operativo e si esegue automaticamente ogniqualvolta si verifichino delle specifiche condizioni di attivazione.

I vantaggi sono evidenti

L’integrazione delle tecnologie sopracitate rende tutti i contratti intelligenti incensurabili, immodificabili e impossibili da frodare. Infatti, i contratti intelligenti implementati sulla blockchain godono di tutti i vantaggi tipici di questa tecnologia:

  • Sicurezza: il contratto è codificato, sottoposto a crittografia e distribuito tra tutti i nodi della rete. Ciò garantisce che questo non possa essere eliminato o modificato senza il permesso dei proprietari.
  • Economia e velocità: quasi tutti i processi sono automatizzati, con relativa eliminazione degli intermediari. In questo modo l’esecuzione del contratto risulta più veloce. Inoltre si elimina il costo delle terze parti, come i notai.
  • Standardizzazione: esistono numerose tipologie di smart contract, è quindi possibile per ogni utente scegliere quello più adatto alle proprie esigenze.

Ma non mancano i rischi

Da un altro lato, questo tipo di contratto non è perfetto e presenta alcuni problemi che non devono essere sottovalutati:

  • Fattore umano: a scrivere il codice sono comunque esseri umani, i quali possono facilmente commettere un errore. Quando il contratto è caricato su una blockchain, questo non può essere modificato. Ad esempio, “The DAO” rappresenta perfettamente questo tipo di errore. Questa organizzazione autonoma, realizzata per creare un nuovo sistema di crowdsourcing decentalizzato, vide la nascita nel luglio 2016 su Ethereum. Purtroppo il codice presentava alcune vulnerabilità. Un gruppo di hacker ne approfittò per appropriarsi circa 50 milioni di dollari.
  • Stato giuridico incerto: attualmente, i contratti intelligenti non sono regolati da alcun governo.
  • Costi di implementazione: i contratti intelligenti non possono essere eseguiti senza programmazione. È infatti essenziale che una società adotti una struttura interna adeguata per poter comunicare correttamente con la blockchain e che all’interno del team siano presenti programmatori esperti per poter codificare degli smart contract privi di vulnerabilità ed errori.

La piattaforma di Bitcoin non è in grado di supportare gli smart contract. Ogni conto è posseduto da una coppia di chiavi pubbliche e private. Viceversa Ethereum è stata progettata proprio con l’obiettivo di sostituire il linguaggio restrittivo di Bitcoin con uno che consenta a ogni sviluppatore di integrare alla blockchain i propri programmi. Questo è possibile poiché si tratta di una macchina di Turing completa, che quindi supporta un maggior numero di istruzioni di calcolo rispetto alla piattaforma di Nakamoto.

Rapporti di dipendenza tra i contratti intelligenti

Ogni contratto intelligente può essere indipendente o collegato ad altri contratti con rapporti determinati “rapporti di dipendenza”. Questo vuol dire che ognuno di essi si attiva attraverso un messaggio proveniente da un utente o da un altro contratto.

Successivamente, i nodi della rete convalideranno la transazione se tutte le condizioni del contratto sono state soddisfatte. Come ultima cosa, è bene sottolineare che su Ethereum l’esecuzione di ciascun contratto richiede delle commissioni in Ether, le quali dipendono dalla quantità di potenza computazionale necessaria.

Dallo smart contract alla smart property

Szabo credeva che la naturale evoluzione degli smart contract sarebbe stata la smart property. Egli era convinto che, con la diffusione di questo nuovo tipo di contratti, le persone avrebbero iniziato a incorporarli all’interno delle loro proprietà fisiche, rendendole così delle “proprietà intelligenti”.

In questo modo, gli smart contract sarebbero in grado di garantire automaticamente l’accesso al legittimo proprietario e ai suoi ospiti in base ai parametri del contratto. Possiamo prendere come esempio il noleggio di un’automobile, dove il contratto sarebbe in grado di bloccare l’accesso all’affittuario in caso non effettui i pagamenti nei tempi prestabiliti, e restituire il controllo del veicolo al proprietario.

Valeria Vitale
Valeria Vitale
Ariete ascendente Leone, ma sono anche simpatica. La mia forma di espressione preferita è la danza, ma anche a scrivere me la cavo. Mi piace viaggiare, parlare francese e discutere di serie TV.

Potrebbe piacerti anche

Cybersecurity, arriva la NIS 2: cosa cambia per le infrastrutture critiche e come Spindox aiuta i suoi clienti

Cybersecurity, arriva la NIS 2: cosa cambia per le infrastrutture critiche e come Spindox aiuta i suoi clienti

Dal 17 ottobre 2024 la NIS 2 è pienamente vigente. La direttiva introduce nuove regole per la sicurezza informatica delle infrastrutture critiche e dei servizi essenziali in Europa. Le aziende nei settori energetico, sanitario, delle telecomunicazioni e altri sono chiamate ad adeguarsi a standard più elevati. Chi è impattato, i rischi di non conformità e il ruolo di Spindox nell’aiutare i clienti a migliorare la propria sicurezza.