
Pianificazione della produzione
Ottobre 26, 2021
NFT crypto: cosa sono e quali saranno gli scenari futuri
Novembre 17, 2021Blockchain Smart Contract: cosa sono?
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.
Cosa sono i Blockchain 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.
Come funzionano i Blockchain Smart Contract?
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:
- Autenticazione: ogni transazione viene fatta da un account che è univoco e nessun altro si può mascherare per esso.
- Integrità: le transazioni non possono essere modificate dopo essere avvenute. Ogni modifica ad una transazione esistente invaliderà la transazione e quindi la firma dell’emittente.
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.
Cosa contiene uno smart contract?
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:
- Identificare le parti: due o più.
- Programmare le condizioni e gli eventi risultanti desiderati.
- Inserire lo smart contract nella Blockchain prescelta.
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:
- Accounts. Le parti prese in causa che possono essere persone fisiche, entità giuridiche o un gruppo di persone. Ogni parte sarà identificata ognuna tramite un indirizzo di un proprio wallet che verrà usato per interagire con il registro distribuito (ledger) della blockchain di riferimento.
- Assets. I beni che vengono scambiati tramite lo smart contract: possono essere beni materiali o immateriali come i servizi,
- Contract. Il contratto con la logica delle azioni che mediano il trasferimento di token e dati tra le parti.
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.
Uno smart contract ha validità giuridica in Italia?
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.
Quali sono i vantaggi degli smart contract?
Utilizzare un blockchain smart contract al posto di un contratto tradizionale può comportare una serie di vantaggi, eccone alcuni:
- indipendenza da intermediari, per cui non è necessario avvalersi della figura di avvocati o notai che approvino il contratto, anche se è sempre consigliato avvalersi di tali figure nella fase di setup;
- il codice dello smart contract è immodificabile per cui non è necessario chiedere il parere di un esperto che confermi la validità del contratto;
- risparmio economico dettato dall’esclusione di determinate figure professionali molto costose nelle fasi di verifica e approvazione, ma non nella fase di creazione;
- semplificazione delle operazioni di contrattazione e transazione;
- riduzione degli errori, essendo eseguito tutto in modo automatico una volta creato.