Smart contracts: cosa sono, quali sono le loro applicazioni e perchè vengono considerati così rivoluzionari

Di smart contracts ci siamo occupati spesso e volentieri in numerosi articoli, tuttavia da quello che leggo sui social mi viene spontaneo pormi il problema che forse ogni volta che abbiamo toccato l’argomento l’abbiamo fatto dando arbitrariamente per scontato che i lettori fossero al corrente di cosa stessimo parlando. Che ci si ritrovi immancabilmente a parlare di smart contracts ogni volta che si parla di blockchain o si presenta una delle maggiori piattaforme tra quelle che popolano l’universo delle criptovalute è una cosa anche normale dal momento che parliamo di uno degli aspetti più interessanti di questa tecnologia, tuttavia credo che sia doveroso dedicare un po’ di attenzione in più a questi strumenti e provare a definire in maniera più accurata cosa sono, come funzionano e in quali ambiti possono essere impiegati con maggior successo.

 Storia degli smart contracts

 Il termine “smart contract” è un neologismo coniato nel 1994 da Nick Szabo (uno dei maggiori esperti di criptografia a livello mondiale, lo stesso che nel 1998 inventò BitGold, una sorta di antesignano di bitcoin) che per primo intuì l’importanza di coniugare alcuni aspetti del diritto (in primis la pratica contrattuale) alla scrittura di protocolli per lo scambio elettronico tra estranei sul web. Ovviamente quella che fino alla fine del secolo scorso appariva una pura dichiarazione d’intenti o, in maniera meno ottimistica, la visione utopistica di un esperto di informatica, con la nascita di bitcoin passa direttamente dallo status di chimera a quello di concetto concretamente realizzabile; questo (la realizzazione concreta di un concetto che all’inizio appariva puramente accademico) si materializza nella realtà con la nascita di Ethereum, la prima piattaforma blockchain pensata per permettere di scrivere e far funzionare concretamente nella vita di ogni giorno un contratto intelligente. Nonostante quindi bitcoin esista da circa 10 anni il concetto di smart contract lo precede anche di molto e può essere fatto risalire a ben 24 anni fa; questo non significa però che tale strumento sia sviluppato da altrettanto tempo, infatti, come accennato, è solo con la nascita di ETH (nel 2015) che diventa possibile sviluppare concretamente uno smart contract. Potremmo quindi affermare che tali strumenti, almeno in termini accademici, esistono da più di 20 anni, ma che la tecnologia che li ha resi disponibili al grande pubblico è di molto più giovane avendo appena 3 anni di vita (dal momento che possiamo far corrispondere la sua nascita alla nascita di ethereum).

 Che cosa sono e cosa non sono gli smart contracts

 La definizione stessa di contratto intelligente può suscitare qualche confusione per il semplice motivo che si sovrappone automaticamente alla normale definizione che diamo al termine “contratto”; quando parliamo di un normale contratto, infatti, questo non è altro che una raccolta delle clausole che regolano il rapporto tra due o più soggetti. Uno smart contract è insieme qualcosa di più e qualcosa di meno di un normale contratto; proviamo a fare degli esempi per capirci meglio. Immaginiamo il caso di due persone che chiameremo Anna e Alfredo, Anna possiede un cane ma non ha il tempo per portarlo a spasso, Alfredo ha il tempo per portare a spasso il cane di Anna ma non possiede una lavatrice; possiamo quindi immaginare che Anna e Alfredo decidano che l’una laverà gratuitamente i panni dell’altro mentre il secondo porterà a spasso il cane di Anna tre volte al giorno. Per regolare questo tipo di rapporto Anna e Alfredo sottoscrivono un contratto in cui non solo definiscono strettamente quali sono i loro obblighi reciproci ma anche quali sono le loro responsabilità al verificarsi di determinate condizioni; se Anna ad esempio dovesse rovinare una camicia bruciandola col ferro da stiro sarà tenuta a ricomprarne una identica a quella rovinata, mentre se Alfredo dovesse malauguratamente perdere il cane mentre lo porta a spasso sarà tenuto a impegnarsi attivamente a tentare di ritrovarlo. Se ti stai chiedendo il perché di questo esempio la risposta è molto facile, questo esempio ci serve per dimostrare che non tutti i contratti che possono essere stipulati tra due o più persone trovano automaticamente un loro equivalente sotto forma di smart contract. Per quale motivo il contratto di Anna e Alfredo non può essere regolato da uno smart contract? Perché non c’è trasmissione di denaro ma solo lo scambio reciproco di servizi (lavare i panni e portare a spasso il cane). L’errore che non si deve fare, quindi, è considerare uno smart contract come la semplice archiviazione di un normale contratto su una blockchain. Questo ovviamente può essere fatto, Anna e Alfredo, in altre parole, possono sicuramente archiviare il loro “accordo” su una blockchain al fine di conferirgli al contempo sia validità che immutabilità, ma la cosa finisce li. Uno smart contract, invece, come abbiamo avuto modo di accennare, è qualcosa di più di un semplice contratto, è un contratto le cui clausole scattano da sole in presenza di determinate condizioni e che ogni volta che tali condizioni si manifestano prevede lo sblocco di una certa quantità di denaro (attenzione, questo non è propriamente esatto, ma lo vedremo meglio nel prossimo paragrafo). Facciamo ancora una volta un esempio per capirci meglio e questa volta immaginiamo che Anna affitti il suo appartamento ad Alfredo; i due possono decidere di gestire questo rapporto con un semplice smart contract che al primo giorno di ogni mese sblocca il pagamento dell’affitto dal conto di Alfredo a quello di Anna. In pratica quello che succede è che il programma ogni giorno si pone una domanda del tipo “oggi è il primo del mese?” se la risposta a questa domanda è si il pagamento dell’affitto parte in automatico, altrimenti non viene mossa alcuna somma dal conto di Alfredo. In altre parole gli smart contract potrebbero essere definiti come un insieme di “istruzioni condizionali” che si basano sul classico IF-THEN-ELSE che ogni programmatore conosce bene e che potremmo tradurre in un linguaggio colloquiale con la seguente forma “se si manifesta la condizione X allora esegui l’istruzione Y altrimenti esegui l’istruzione Z”. Il concetto è molto semplice per cui proviamo a definirlo in italiano per renderlo accessibile a chiunque, in pratica il programmatore pone una condizione e se la condizione risulta vera lo smart contract compirà una determinata azione; nell’esempio dell’affitto, semplificando, il programma segue questo percorso logico: SE (if) oggi è il primo del mese ALLORA (then) sblocca il pagamento ALTRIMENTI (else) ricontrolla domani.

 Un possibile caso d’uso di uno smart contract in assenza di transazioni economiche

 Nel paragrafo precedente abbiamo scritto che uno smart contract funziona ed ha senso solo quando c’è da movimentare una somma di denaro; questo ovviamente non è assolutamente vero ed è solo una semplificazione. Chi ha anche solo una vaga idea di cosa sia una blockchain sa che su una catena di blocchi si può registrare qualunque tipo di informazione e non solo necessariamente una transazione economica. Prendiamo ad esempio il caso della proprietà intellettuale; un tipico caso d’uso di una blockchain è proprio quello di attribuire in maniera precisa e irrevocabile la proprietà intellettuale. Per intenderci immaginiamo una blockchain sulla quale sia possibile archiviare fotografie. Per assicurarmi che due soggetti diversi non carichino due volte la stessa foto attribuendola a due persone differenti possiamo impiegare un semplicissimo smart contract; in pratica quando un utente carica una nuova foto il nostro contratto intelligente verifica che sulla nostra blockchain non sia caricata due volte la stessa immagine. Ecco quindi il “ragionamento” che lo smart contract seguirebbe: SE (if) è presente un’altra foto uguale ALLORA (then) non registrare l’immagine sulla blockchain ALTRIMENTI (else) archivia la nuova immagine.

 In quali settori possono essere impiegati gli smart contracts

 Gli ambiti di utilizzo degli smart contracts sono potenzialmente infiniti e vanno dalle assicurazioni (se si verifica un incidente eroga il risarcimento), ai rapporti lavorativi (eroga il compenso alla consegna del lavoro), passando per la proprietà intellettuale (come abbiamo visto nel paragrafo precedente) fino ad arrivare a coinvolgere potenzialmente ogni possibile settore dell’attività umana. Ovviamente, come chiunque può capire, in questo articolo abbiamo affrontato alcuni casi di utilizzo piuttosto classici e molto semplici, ma uno smart contract può essere uno strumento estremamente complesso e sofisticato, come ad esempio quando lo si applica al fintech (immaginiamo ad esempio il caso in cui uno smart contract venga impiegato per gestire prodotti finanziari estremamente complessi come nel caso dei famosi “derivati”). Al netto delle mie semplificazioni, quindi, non si deve sottovalutare la portata di questo genere di strumenti che sono infatti estremamente versatili e possono essere impiegati per gestire un gran numero di esigenze differenti divenendo via via sempre più complessi per adattarsi alle differenti necessità per cui vengono sviluppati.

 Conclusioni

 Il senso di questo articolo, oltre a spiegare cosa sia uno smart contract e quali siano le origini di questi strumenti, era prima di tutto dimostrare che, contrariamente a quanto si può leggere in giro, non tutti i normali contratti possono essere trasformati in smart contracts; il motivo non è solo nella natura e nel modo in cui questi strumenti funzionano ma anche nell’effettiva utilità di fare un’operazione del genere. L’utilità, ad esempio, di trasformare un contratto pre-matrimoniale (nei paesi in cui questo tipo di contratti hanno validità) in uno smart contract è sostanzialmente pari a zero; allo stesso tempo l’utilità di gestire una polizza assicurativa mediante l’utilizzo di strumenti di questo tipo appare evidente a tutti. Ridurre l’intervento umano, automatizzare e velocizzare la gestione di una pratica assicurativa, abbattere i costi di gestione delle polizze sono tutte motivazioni ottime per estendere l’uso degli smart contracts in ambito assicurativo. Era poi importante evidenziare come il termine stesso “contratto intelligente” possa confondere le idee di coloro che non hanno sufficienti competenze dal momento che più che di un contratto in senso stretto parliamo di veri e propri programmi e come tali bisognerebbe continuare ad intenderli; uno smart contract, in altre parole, ad un’analisi più attenta assomiglia più a un software che a un contratto vero e proprio e questo appare vero da ogni punto di vista lo si voglia guardare, dalla stesura al funzionamento, dalle opportunità che offre ai diversi ambiti in cui può essere utilizzato. Basti pensare, banalmente, che un contratto vero e proprio può essere annullato in qualunque momento da un giudice mentre, allo stato attuale delle cose, uno smart contract si “autoesegue” al manifestarsi di determinate condizioni e, quindi, una volta che tali condizioni si verificano l’istruzione viene eseguita e non c’è più modo di revocarla.