Image

Nel 1994 l’informatico (laureato in legge) Nick Szabo definì per la prima volta uno smart contract come un protocollo di transazione computerizzato che esegue i termini di un contratto.

Possiamo considerarli una “trasposizione” in codice di un contratto; il principio alla base è semplice: “IF THIS, THAN THAT”. Ciò significa che al verificarsi di determinate condizioni (if this), allora si compiranno automaticamente delle azioni indipendentemente dal volere o meno delle parti (than that).

Gli obiettivi, fissati dallo stesso Szabo sono: soddisfare le condizioni contrattuali comuni (come ad esempio i termini di pagamento, …), ridurre al minimo le contestazioni sia dolose che accidentali, e ridurre al minimo la necessità di intermediari di fiducia. Obiettivi economici correlati includono la riduzione dei danni da frode, degli arbitrati, dei costi giudiziali e degli altri costi di transazione.

ETHEREUM:

Gli smart contracts che operano su una Blockchain sono una delle principali innovazioni introdotte da Ethereum; scritti utilizzando il linguaggio di programmazione Solidity, sono inseriti nella Blockchain. Ciò garantisce l’immutabilità del codice nel tempo, l’autosufficienza e la decentralizzazione (smart contract caricati in modo identico su tutti i nodi della rete).

FUNZIONAMENTO:

In sostanza si tratta di scrivere uno smart contract e inserirlo nella Blockchain; ma parliamo di azioni semplici da compiere? Per i più esperti (o smanettoni) del mondo informatico probabilmente sì, per quanto riguarda un utilizzo di massa è invece opportuno avere programmi che siano “distributori di contratti digitali”. Cioè l’utente attraverso interfacce user-friendly potrà facilmente impostare le condizioni contrattuali e poi il programma “tradurrà” in codice di programmazione. È proprio il caso di dire in questo contesto “code is law” (Lessing, 2006), ovvero il codice è legge. Secondo il codice civile “l’oggetto del contratto deve essere possibile, lecito, determinato o determinabile”; ammesso di poter identificare un oggetto nel caso degli smart contract, i concetti di possibile, lecito, determinato e determinabile devono essere pensati nell’ottica Blockchain. In Blockchain non esiste il concetto di possibile/impossibile ma quello di valido o non valido; le transazioni sono possibili se la matematica e i codici lo consentono.  La Blockchain conosce solo il protocollo formale e non la giurisdizione in cui opera il nodo della rete. Non esiste il giusto o sbagliato, buono o cattivo, esiste solo il codice; ciò che è scritto viene eseguito indipendentemente da considerazioni umane. Questo vuol dire che il legislatore ha il compito di fornire I requisiti per rendere uno smart contract al pari di un normale contratto civilistico, mentre la Blockchain può “soltanto” mantenerlo inalterato nel tempo e disponibile in qualsiasi momento. È chiaro come ciò implichi moltissimi vantaggi in termini di efficienza, per riduzione di costi e tempi, facilitando ad esempio la contrattazione a distanza o lo snellimento dei procedimenti burocratici.

Tutto ciò senza l’ausilio o l’intervento di intermediari.

LE ALTRE BLOCKCHAIN:

A Vitalik Buterin, primo ideatore di Ethereum, dobbiamo conferire il merito di aver creato la prima distributed computing platform per l’esecuzione di Smart Contract e Dapp. È proprio grazie a tali possibilità che si parla oggi di “Blockchain per il business” e non solo per un utilizzo monetario-finanziario.

Tuttavia, essendo la tecnologia blockchain/dlt in pieno sviluppo ed evoluzione, nuove piattaforme che propongono innovative soluzioni come Eos, Tron o Steem si stanno ritagliando un loro spazio nel settore. Ricordiamo che non esiste LA blockchain perfetta e migliore in assoluto, in base alle finalità potrebbe essere più efficiente una rispetto ad un’altra. Vediamo allora quali sono i fattori innovativi degli esempi sopracitati:

  • EOS, utilizza il linguaggio di programmazione C++ per compilare gli smart contracts nel suo ecosistema. Lanciata ufficialmente soltanto il 1 giugno 2018, sembra risolvere alcuni problemi di scalabilità di ETH grazie a costi di transazione minimi e un algoritmo di consenso (DPOS) più efficiente. Per il suo breve periodo di vita, questa piattaforma sta evidenziando numeri di crescita in termini di utilizzo e volume delle transazioni molto rilevanti e promettenti per il futuro.
  • TRON ha implementato la sua TVM (“Tron Virtual Machine”) che permette di fare il deployment di smart contract scritti direttamente in Solidity permettendo a utenti e sviluppatori di Ethereum di avvicinarsi in modo semplice ed intuitivo alla piattaforma. Un passo importante per la mass adoption della tecnologia sembra proprio essere l’interoperabilità tra diverse blockchain.
  • Steem, la blockchain-social, permette di utilizzare Javascript per gli smart contract che vengono deployati sulla sua side-chain.

La scelta del linguaggio da utilizzare nella compilazione degli smart contracts è fondamentale non solo per le differenze operative dei diversi linguaggi ma anche per il target che si vuole raggiungere; un linguaggio conosciuto e rodato come C++ è molto più fruibile e alla portata di molti sviluppatori rispetto ad un linguaggio giovane e poco noto a livello main stream.

SMART CONTRACT IN ITALIA: 

Il 7 febbraio la Camera dei Deputati ha approvato il “decreto semplificazioni”, nel quale è contenuta una prima definizione legale degli smart contracts.

Spetterà all’AGID (Agenzia per l’Italia Digitale) il compito di individuare gli standard tecnici per rendere legalmente riconosciuta la memorizzazione di un documento informatico su Blockchain (o su DLT) ed in particolare di dare valore legale alla validazione temporale elettronica.

La call degli esperti Blockchain del Mise e l’adesione alla “Blockchain partnership” dei Paesi Ue sono un chiaro tentativo da parte del nostro Governo di mettersi al passo con i tempi, anzi, di volerli quasi anticipare.

La strada è lunga, soprattuto per la dialettica tra mondo informatico e legale, ma una direzione almeno sembra essere stata tracciata.