Smart contracts e automazione contrattuale: vantaggi e criticità di un sistema quasi “maturo”

di Paolo Di Marcantonio

La rapida ascesa della criptovaluta bitcoin ha spinto molti sviluppatori ed esperti del settore IT ad investire le proprie risorse nel miglioramento della blockchain originaria. L’obiettivo è stato raggiunto nel 2015 con la pubblicazione del white paper Ethereum, che ha rapidamente trasportato le criptovalute nella fase che gli esperti del settore hanno definito come “Blockchain 2.0”.

Il nuovo protocollo, non limitando più le criptovalute ad una funzione di mera transazione valutaria, ha consentito lo sviluppo della piattaforma per l’esecuzione degli smart contract su Blockchain. La possibilità di cristallizzare la volontà di una o più parti in modo indelebile ed immutabile, garantendo che, ad una certa premessa, corrispondesse un risultato sicuro al verificarsi di determinate condizioni, si è potuta realizzare solo (inizialmente) grazie ad Ethereum.

Definizione e funzionamento

Gli smart contracts (o contratti intelligenti) possono essere dunque definiti come protocolli informatici in cui, al ricorrere di una condizione informaticamente verificabile attraverso una combinazione di bit, il sistema esegue in via automatica una determinata prestazione capace di incidere sui diritti e sui doveri delle parti che hanno stipulato il contratto. Per rendere l’esecuzione delle clausole contrattuali sicure e certe, il sistema alla base degli smart contracts prevede l’applicazione della funzione crittografica di hash, algoritmo matematico progettato per essere unidirezionale (ovvero teoricamente impossibile da invertire) e che permette di mappare un messaggio in una stringa alfanumerica prefissata, certificando l’integrità e l’immodificabilità del contratto scritto in codice binario.
L’esecuzione del contratto stipulato tra le parti, avverrà secondo il principio di auto-attuazione delle clausole contrattuali, variabile in funzione dei diritti dedotti e dai termini pattuiti dalle parti. È difatti possibile inserire nel codice (divenuto vero e proprio testo del contratto) dei trigger point[1],la cui verifica certa ed immediata provocherà l’esecuzione delle clausole previste. Si parla invero di contratto condizionato qualora vi siano eventi tali che possano essere verificati esclusivamente attraverso fonti pubbliche / istituzionali ovvero da privati. In quest’ultimo caso occorrerà avere una conferma allargata ovvero è indispensabile l’ausilio di una piattaforma online specializzata nella certificazione delle informazioni circolanti su Internet che, esaminato lo stato della rete avendo riguardo della condizione da verificare, dà conferma della veridicità dell’evento al raggiungimento di un determinato numero di riscontri positivi.

Dopo questa sintetica disamina sul funzionamento specifico degli smart contracts, è necessario, prima di affrontare il discorso della contrattualistica pura, effettuare una distinzione fra le varie tipologie di smart-contracts oggi esistenti. Generalmente, sono due le macrocategorie entro le quali questi contratti vengono fatti rientrare in base alla natura delle condizioni presenti al loro interno:

Smart legal contracts: dove il contenuto legale del contratto è essenziale. Ad esempio, la certificazione notarile di un documento o il trasferimento della proprietà di un certo dominio internet.
Smart code contracts: nel contratto in questione, in fase di sperimentazione da parte dei grandi gruppi assicurativi, il codice acquisisce informazioni dai prodotti dell’IoT (Internet of things) che possono influire e creare determinate condizioni di svantaggio e di svantaggio nei confronti di una parte (ex. Autovetture con a bordo sistemi di rilevazione connessi ad internet. In questo caso  i limiti di velocità stradali, una volta superati, potrebbero essere letti dal contratto come pericoli tali da provocare una modifica contrattuale sul valore del premio assicurativo).

Automazione contrattuale

Anche se i contratti comunemente intesi ed i “contratti intelligenti” prevedono gli stessi effetti previsti dalla nozione ex art. 1321 c.c., la tutela dell’auto-attuazione delle clausole inserite negli smart contracts potrebbe essere erroneamente equiparata alle tutele previste ex art. 1218 c.c. e 2048 c.c. in caso di inadempimento contrattuale. Difatti, il contratto “tradizionale” è essenzialmente garantito e protetto dal suo carattere giuridicamente vincolante ex art 1372 c.c. ma tale vincolatività è, tuttavia, naturalmente soggetta ad incertezza: le parti possono volontariamente violare le promesse fatte – la legge può essere violata – e in un successivo giudizio gli arbitri o i giudici possono essere chiamati a modificare, annullare o far eseguire le obbligazioni assunte[2]. Di conseguenza, finché una delle parti è disposta a sopportare le conseguenze legali del suo comportamento (in questo caso inadempimento) è fondamentalmente libera di non adempiere al contratto stipulato in precedenza. L’accordo inserito in una blockchain, al contrario, non fa affidamento sulla sua vincolatività legale o sulla sanzione della parte inadempiente quali strumenti a tutela della sua esecuzione. L’architettura alla base dei contratti intelligenti non lascia spazio alla volontaria violazione delle condizioni stabilite in quanto, alla base di tale tecnologia vi è l’automazione contrattuale, basata sulla teoria di Lawrence Lessig e denominata code is law theory[3],secondo la quale è lo stesso sviluppatore che, durante l’elaborazione dell’architettura tecnologica di un protocollo informatico, influenza il comportamento degli individui, andando a comprimere ab origine la libertà delle parti impedendo un comportamento indesiderato e forzandolo verso quello concordato dalle parti nella stipulazione.

Il momento dell’esecuzione di un accordo, che viene delegata ad una rete di computer decentralizzata, permetterebbe dunque la scomparsa di comportamenti illeciti e la possibilità di far a meno di terze parti certificatrici, con la conseguente riduzione dei costi e della percentuale degli errori, oltre alla riduzione sostanziali di controversie dinanzi l’autorità giurisdizionale. Oltre queste certezze sostanziali, vi è una ulteriore certezza formale quale la marca temporale informatica dell’inserimento del contratto nella blockchain, virtualmente – e nella pratica – impossibile da violare e modificare la quale permette di tenere una traccia esaustiva dell’intera concatenazione di vicende ed operazioni che hanno interessato le clausole previste all’interno del contratto.
Data la natura giuridica dello smart contract, tuttavia, vi sono problematiche che sorgono allo stato dell’arte. I problemi principali – al momento – per l’applicazione efficiente del modello sono due:

Il limite della comprensibilità: la problematica principale in questo caso è un utilizzo esclusivo del linguaggio binario codicistico per il funzionamento del computer, il quale provoca una barriera semantica che non può essere eliminata ma solamente ristretta da interfacce user friendly. Vi sarebbe quindi l’obbligo delle parti di affidarsi ad un esperto informatico che predisponga il testo in forma binaria per la comprensione del contratto da parte dei computer. L’ostacolo linguistico potrebbe, a parere di chi scrive, rivelarsi temporaneo. Non è esclusa che la diffusione di competenze di programmazione, in ambienti legali e non, possano eliminare il problema della comprensibilità del codice. Lo sviluppo della tecnologia informatica potrebbe, inoltre, permettere ai computer di comprendere ed elaborare complesse istruzioni espresse in linguaggio naturale, un compito che, attualmente, non sono in grado di svolgere.

La rigidità del codice. Se da un lato elimina le incertezze della interpretazione del linguaggio naturale e non permette l’esecuzione di azioni contrarie alle clausole contrattuali, dall’altro limita la discrezione degli individui sulle modalità delle azioni volte all’esecuzione del contratto. I computer hanno bisogno di proposizioni univoche e predefinite per “comprendere” le istruzioni loro impartite ed elaborarle autonomamente; il problema sorge in virtù del fatto che taluni accordi richiedono una certa flessibilità nell’interpretazione (condotta seguendo le norme contenute negli artt. 1362-1371 c.c.) e nell’esecuzione che rimarrebbero dunque al di fuori dell’applicazione degli smart contracts.

La soluzione proposta attualmente dagli studiosi del settore sarebbe quella di effettuare una soft fork[4]delle blockchain pubbliche per la creazione di blockchain private. Tale operazione consentirebbe alle parti (e ad eventuali soggetti terzi di mediazione o giudiziari), di intervenire per modificare le clausole previste all’interno dello smart contract.  L’esigenza di garantire la governabilità della piattaforma si scontra, tuttavia, con la filosofia stessa e i vantaggi prospettati dai registri decentralizzati. Da un lato la privatizzazione delle blockchain può garantire loro una sorta di legittimità strutturale e dall’altro lato l’ibridizzazione reinserisce intermediari e punti di vulnerabilità nelle architetture decentralizzate, minimizzando i benefici della blockchain in termini di costi, velocità, sicurezza.


[1] Con il termine si fa riferimento ad eventi particolari, la cui verifica è demandata ai sistemi informatici cui sono inseriti gli smart contract (ex. Lo scadere di un termine, l’esercizio di una determinata opzione, o il verificarsi di un determinato evento);

[2] P. Cuccuru, Blockchain ed automazione contrattuale. Riflessione sugli smart contract, Nuova Giur. Civ., 2017 pp. 107- 115;

[3] L. Lessig, Code and Other Laws of Cyberspace, Basic Books, 1999;

[4] Distaccamento dei dati fino ad ora acquisiti nella blockchain, mantenendo identiche le caratteristiche del sistema, per effettuare operazioni non previste nel white paper originario.


Autore