Se ne parla sempre di più di Blockchain Smart Contract in sempre più ambiti applicativi, dalle transazioni finanziarie ai premi assicurativi fino al tracciamento di filiera: oggi scopriamo cosa sono e come funzionano gli smart contract.
I Blockchain Smart Contract sono programmi per computer che operano sui registri distribuiti Blockchain e che permettono il corretto e automatico svolgimento di un contratto con la simulazione della logica delle clausole presenti in esso.
In questo articolo anticipiamo sempre la parola smart contract con “blockchain” perché ci riferiamo agli smart contract che girano su tecnologia blockchain. Gli smart contract possono funzionare su tutte le DLT Distribuited Ledger Technology che possono anche non essere Blockchain.
Il concetto di smart contract risale ai primi anni ’90, ancor prima dell’esistenza della tecnologia blockchain, con la definizione di Nick Szabo:
The basic idea of smart contracts is that many kinds of contractual clauses (such as liens, bonding, delineation of property rights, etc.) can be embedded in the hardware and software we deal with, in such a way as to make breach of contract expensive (if desired, sometimes prohibitively so) for the breacher.
Nick Szabo
Traduzione:
“L’idea di base dello smart contract è che molti tipi di clausole contrattuali (come la garanzia, l’assunzione dell’obbligazione, la delimitazione di un diritto di proprietà, ecc.) possono essere incorporati nell’hardware e nel software che trattiamo, in modo da rendere la violazione del contratto costosa (se desiderato, addirittura proibitiva) per il soggetto inadempiente”.
Troviamo inoltre alcuni primi cenni di contratti intelligenti fin dagli anni ’70 con le prime licenze digitali software e con l’attivazione di specifiche funzionalità secondo il tipo di licenza acquistata.
Un altro esempio di predecessore di uno smart contract sono i distributori automatici, che offrono oggetti, cibo o servizi in base alla scelta effettuata. Questi dispositivi hanno embeddati dei piccoli programmi condizionali che permettono di offrire in modo automatico secondo la scelta effettuata.
I blockchain smart contract sono equivalenti ad un programma per computer oppure un protocollo transazionale (TPDU -protocolli basati su pacchetto designati per transazioni finanziarie) e funzionano con lo schema delle logiche di carattere binario IFTTT (If-This-Then-That). Questo tipo di schema è presente nella maggior parte dei linguaggi di programmazione e al verificarsi di un determinato evento il programma avvia l’esecuzione di un’azione specifica pre-impostata.
In una rete blockchain il pacchetto originale con l’informazione delle logiche dello smart contract viene distribuito in una rete di nodi che replica e re-invia il pacchetto ricevuto al nodo successivo fino ad arrivare a destinazione.
Nel processo di distribuzione di uno smart contract nella rete, avviene anche la verifica dello stato e delle condizioni, cosicché venga costantemente verificato l’avverarsi delle condizioni al suo interno e avviati gli automatismi programmati.
Le transazioni su blockchain, e quindi anche le transazioni dettate da smart contract, rispettano i seguenti principi:
Le attività dello smart contract possono avvenire in modo automatico all’avvenire di determinate casistiche prestabilite oppure dopo un claim di uno o più account che deve essere discusso e approvato da tutte le parti prima di essere avviata una transazione sulla blockchain.
Lo smart contract funziona esattamente come un normale contratto: secondo il tipo di articoli esplicitati con le relative clausole si potranno avviare o meno determinate procedure.
Per capire la struttura e il funzionamento degli smart contract può essere utile pensare ai diagrammi ad albero.
Nel caso degli smart contract si parte da un unico punto di partenza che rappresenta l’accordo tra le parti, da cui si ramificano diverse strade. Solo una porta alla conclusione del contratto mentre le altre sono tutte possibili situazioni che si possono verificare.
Uno smart contract solitamente contiene all’interno del suo codice gli estremi di ciò che può essere scritto in un contratto: identifica quali sono le parti prese in causa e quali sono le condizioni contrattuali con le clausole da attivare/disattivare in base al caso.
Si possono dunque intravedere 3 passaggi necessari per creare uno smart contract:
Una volta pubblicato lo smart contract, è la stessa Blockchain diventa il garante del contratto e quando nella rete si verificano determinate condizioni e si ottiene il consenso, il contratto esegue le sue condizioni.
Un blockchain smart contract si struttura in 3 elementi principali:
Ogni account è unico e interagisce con il registro distribuito detto libro mastro in modo univoco: nessun altro può identificarsi in modo fraudolento con esso poiché le transazioni sono tutte tracciate e identificate accertando l’unicità dell’account.
Sì, gli smart contract in Italia sono stati convalidati nel 2018 con il decreto semplificazioni dove troviamo nell’art. 8-ter del D.L. 14 dicembre 2018, n. 135, convertito in legge con L. 11 febbraio 2019, n. 12 la seguente frase:
“Si definisce “smart contract” un programma per elaboratore che opera su Tecnologie basate su registri distribuiti e la cui esecuzione vincola automaticamente due o più parti sulla base di effetti predefiniti dalle stesse”.
Inoltre nella stessa legge aggiungono che gli smart contract soddisfano il requisito della forma scritta previa identificazione informatica delle parti interessate.
Infine a livello giuridico ciò che accomuna lo smart contract ad un contratto tradizionale e lo rende valido è l’accordo comune tra le parti, non la sua esecuzione. Così come c’è scritto anche nel codice civile con la definizione di “contratto” data dal Codice Civile, art. 1321: “Il contratto è l’accordo di due o più parti […] per costituire, regolare o estinguere tra loro un rapporto giuridico patrimoniale”.
Per cui gli smart contract hanno validità giuridica.
Inoltre anche la comunità europea si è pronunciata in merito facendo osservazioni a quelle italiane, per cui gli smart contract hanno validità giuridica anche in Europa.
Utilizzare un blockchain smart contract al posto di un contratto tradizionale può comportare una serie di vantaggi, eccone alcuni: