Come funziona uno Smart Contract su Ethereum

Tempo di lettura: 8 minuti
.
Abbiamo visto nel nostro precedente contributo come funziona uno smart-contract, vediamo ora quali sono le caratteristiche di uno smart-contract basato sulla blockchain di Ethereum, criptovaluta nata proprio con lo scopo di facilitare l’implementazione di simili protocolli.
.
Ricordiamo innanzitutto che la definizione “smart-contract” è fuorviante, non stiamo infatti parlando di veri e propri contratti, quanto piuttosto di meccanismi applicativi automatici che eseguono un pagamento o autorizzano una determinata azione.
 .
Il contratto, inteso sia come documento contrattuale che come accordo negoziale, è quindi un concetto distinto e separato rispetto all’algoritmo che ne automatizza o facilita una fase esecutiva.
 .
Ethereum si propone come blockchain strutturata proprio per contenere tali algoritmi, gli account ethereum infatti non si limitano a registrare transazioni, ma possono contenere “oggetti”, ovvero linee di codice.
 .
Sul sito Ethereum è possibile, se si ha dimestichezza con la programmazione, progettare un “contratto” base (“Hello World“) ovvero un Token (un “gettone” virtuale che identifica un soggetto ovvero consente a chi lo possiede di effettuare determinate azioni od accedere a determinati servizi, i token/criptotoken sono la “valuta” a supporto della maggior parte dei progetti ICO, ovvero Initial Coin Offerings, una forma di finanziamento di tipo crowfunding non regolamentata).
 .
Ethereum nasce nel 2014, quando l’allora diciannovenne Vitalik Buterin pubblicava il White Paper di Ethereum nel quale vengono esposti i motivi per i quali Ethereum è una piattaforma particolarmente efficace per creare smart-contract ed altre applicazioni complesse basate sulla tecnologia blockchain.
 .
Nel momento in cui Buterin scriveva esistevano già degli strumenti basati su blockchain indirizzati alla realizzazione di contenuti complessi assimilabili a smart-contract, il creatore di Ethereum nel White Paper ne cita, in particolare, tre:
 .
Namecoin, il cui slogan è il seguente: “Bitcoin frees money – Namecoin frees DNS, identities, and other technologies.” si basa su una blockchain autonoma ma strutturata come quella di bitcoin (è infatti uno dei primi Altcoin e risale al 2010) e si propone come strumento di identificazione univoco ed affidabile, proponendo un’identità unica come codice tipo hash (di fatto un codice che appare come nell’esempio di seguito:  1LW79wp5ZBqaHW1jL5TCiBCrhQYtHagUWy).
Il vantaggio di namecoin è che consente l’identificazione univoca di un soggetto (nessuno può “rubare” la mia identità in codice hash in quanto se prova a registrarla dopo che è stata assegnata a me il sistema lo impedirà), in questo modo si riesce ad evitare che terzi estranei impersonino soggetti identificati e ciò senzal al necessità che il processo di identificazione sia gestito dal fornitore del servizio, in quanto questo è “esternalizzato” sulla blockchain.
.
ColoredCoins, un protocollo per creare altre criptovalute, con regole di funzionamento proprie. Il sistema assegna un colore alla nuova moneta creata come Bitcoin UTXO (Unspent Transaction Output,in buona sostanza si tratta di un input “vergine”, “non speso” di una transazione in bitcoin) questo “marker” colorato del Bitcoin UXTO consente di creare un portafogli contenente solo le monete di tale colore.
Questi “bitcoin colorati” consentono svariate applicazioni:
– si pensi ad una compagnia che vuole vendere quote sul mercato, le quote concesse sotto forma di Colored Coins consentiranno al soggetto che le possiede di votare o riscattare i dividendi esibendo il particolare “colore” della criptovaluta come prova del suo diritto;
– si pensi ancora ad una società di noleggio di auto che assegna un colore ad ognuna delle vetture possedute e che subordina l’accensione ad una firma che contenga prova del possesso del Colored Coin corretto;
– si pensi ad una comunità locale o ad un’impresa che voglia creare la propria valuta da spendere al suo interno;
– si pensi infine ad un sistema per regolare gli accessi ad una piattaforma web o ad un sistema di trasporto pubblico, si potrebbe consentire l’accesso solamente a chi è in grado di effettuare una firma che contenga prova del possesso del bitcoin del colore corretto.
.
Metacoins, anche in questo caso parliamo di tipologie di sidecoin (basate quindi sulla blockchain di bitcoin), che però aggiungono una funzionalità (‘Apply’) alla moneta. Questa tipologia di criptovalute sfrutta l’affidabilità della piattaforma blockchain di bitcoin ma amplia le possibilità di utilizzo inserendo in sostanza una funzione (del tipo ITTT – if this than that) che permette di realizzare smart-contract.
Mentre Colored Coins e Metacoins si basano quindi sulla blockchain di bitcoin per sfruttarne la sicurezza (più una blockchain è utilizzata e più transazioni sono registrate sulla blockchain, più è difficile che malintenzionati possano frodare il sistema), Namecoin è invece un progetto autonomo, come Ethereum.
.
Namecoin ha inoltre il vantaggio di sviluppare blockchain indipendenti per ogni singolo progetto, garantendo massima indipendenza fra i progetti.
Il rovescio della medaglia è però costituito dai costi in termini di implementazione e di mantenimento delle singole blockchain così create.
Per questi motivi il creatore di Ethereum ha deciso di proporre una blockchain unica sulla quale potessero trovare spazio una serie potenzialmente infinita di applicativi, ottenendo quindi indipendenza dal network bitcoin (così potendo creare una blockchain nativamente predisposta per ospitare smart-contract), ma non rinunciando ad una soluzione alla portata di progetti più piccoli e traendo vantaggio dalla sicurezza del network data dal sommarsi delle varie operazioni ospitate sulla struttura.
Come è facile intuire, questi smart-contract hanno sinora trovato applicazione in una fetta (pur significativa, ma) limitata di mercato, vediamo le tipologie di contratti ed i settori principali nei quali questi sono utilizzati.
Le principali tipologie di smart-contract sono le seguenti:
.
– Criptotoken per ICO

– smart-contract con oracoli

criptotoken per ICO sono i più semplici da implementare e da comprendere: sulla blockchain di Ethereum innesto un programma che detta le regole e le condizioni di concessione della mia personale criptovaluta, che potrà essere acquistata al fine di finanziare il mio progetto su blockchain.

Inserisco quindi sul mio account un codice che consenta l’emissione di “gettoni” legati al mio progetto (progetto che può essere di qualsiasi tipo, i token e la blockchain regolano necessariamente solo la fase di crowfunding), lo stesso codice regolamenta la cessione e le regole di utilizzo dei token.
.
Gli smart-contract con oracoli sono quelli invece che fanno dipendere un’autorizzazione o un pagamento da un evento esterno alla blockchain, interpretato appunto da un c.d. “oracolo”.
Ad esempio pensiamo ad un contratto di assicurazione per cui se a Verona farà brutto tempo il giorno in cui è programmata una fiera, verrà riconosciuto un risarcimento predeterminato in capo all’espositore.
L’oracolo è un programma su blockchain che consulta vari siti meteo (predeterminati dalle parti) il giorno successivo all’esposizione e decide di conseguenza ed in autonomia se erogare o meno il risarcimento.
L’oracolo è quindi l’unico elemento del contratto che “esce” dal sistema blockchain per ottenere le informazioni necessarie per l’esecuzione automatica del contratto.
Una interessante implementazione degli smart-contract con oracoli è quella che prevede l’utilizzo di un portafogli multisig (multi-signature) che coinvolge ad esempio tre soggetti, uno di questi fa da “arbitratore” designato preventivamente dalle parti. L’accesso al portafogli da parte dei un soggetto è consentito solamente in se questo viene controfirmato da un altro dei soggetti firmatari.
Nell’ipotesi fisiologica non ci sarà bisogno di ricorrere all’arbitratore e il soggetto che ha inserito i fondi nel portafogli consentirà il pagamento a quello che ha adempiuto alla propria prestazione. Nell’ipotesi in cui invece le parti dovessero essere in disaccordo interverrà l’arbitratore (è anche possibile prevedere in automatico, alla controfirma dell’arbitratore, che una percentuale della somma svincolata passi sul conto personale dell’arbitratore a titolo di compenso per l’opera prestata).
Normalmente sarebbe necessario l’intervento di un’istituto di credito per evitare di dover “affidare” all’arbitratore le somme. Nel caso di portafogli multisig invece l’arbitratore non avrà comunque accesso alle somme in portafogli e non sarà necessario rivolgersi a un istituto di credito o a più istituti di credito nel caso di operazioni transfrontaliere per garantire la sicurezza dell’affare.
Un passo ulteriore è quello invece di sostituire l’arbitratore con un oracolo, che analizzi vari elementi online per determinare la soluzione della lite su dati predeterminati.
Si segnala che un utile strumento di interrogazione per gli oracoli è senz’altro Wolfram-Alpha, un motore di ricerca computazionale di conoscenza, il quale, anziché proporre risultati dal web, interpreta le parole chiave inserite dall’utente e propone direttamente una risposta.
 .
Questa tipologia di contratti ha trovato il suo settore di elezione nel campo delle microassicurazioni.
 .
Le ragioni di questa settorializzazione delle operazioni in smart-contract è presto detta, stiamo parlando infatti di contratti che nella più parte delle ipotesi prevedono un’immobilizzazione finanziaria consistente e duratura.
 .
Se un’azienda deve scegliere se acquistare un macchinario con contratto “tradizionale” e pagamento a tot giorni dalla data di fatturazione oppure con smart-contract, è chiaro che peserà, nella valutazione dell’azienda, il fatto che con il contratto “tradizionale” l’acquirente potrà disporre del capitale finalizzato all’acquisto fino al momento del pagamento, ed impiegarlo ad altri scopi nel mentre.
Il settore delle microassicurazioni, comportando una poco significativa immobilizzazione ed una decisione semplice sull’erogare o meno le somme che fondano lo smart-contract, è per questo motivo uno dei settori principali per lo sviluppo di questo tipo di contratti.
Altra ipotesi interessante è quella di negoziare con smart-contract una caparra, così da limitare al minimo il capitale immobilizzato.

Altro rilevante problema riguardante gli smart-contract basati su Ethereum è la volatilità della criptovaluta in cui questi sono, di preferenza, negoziati. Se lo scopo del contratto è inevitabilmente quello di immobilizzare un valore è evidente che fare ciò in una valuta estremamente volatile espone a rischi di perdita di valore.

Ethereum, di fatto, si presenta come una piattaforma di servizi piuttosto che come uno strumento di investimento, ciononostante l’apertura alla negoziazione “semplice” (quindi non legata alla negoziazione di smart-contract) in Ethereum fa sì che anche questa criptovaluta sia esposta a rilevanti oscillazioni.

Possibili alternative ad Ethereum
 .
Ethereum è senz’altro la più famosa piattaforma per creare smart-contract, ma non è l’unica.
 .
Paradossalmente il promo concorrente di Ethereum che è d’obbligo citare è una diversa “versione” della stessa Ethereum: Ethereum Classic, che si propone anch’essa come piattaforma per implementare smart-contract.
La storia di Ethereum ed Ethereum Classic è singolare, infatti la attuale versione di Ethereum nasce da una “separazione” della sua blockchain (in gergo tecnico si parla di hard-fork) in due distinte versioni.
Su Ethereum era stato implementato, nel 2016, un complesso smart contract, chiamato DAO (Decentralized Autonomous Organization), che prevedeva l’implementazione di progetti su blockchain (DAPPS), qualora questi raggiungessero un consenso del 20% dei soggetti facenti parte del DAO.
Per semplificare potremmo pensare al DAO come ad un fondo di investimento smart.
Nel caso in cui qualcuno non fosse convinto dei progetti, pur approvati, poteva ritirarsi dal DAO e riottenere i suoi Ethereum.
In questa fase di “passaggio” fra lo smart-contract DAO e la valuta Ethereum si è inserito un attacco hacker che replicava all’infinito la richiesta di “rimborso”, riuscendo così ad accumulare un valore di circa 50 milioni di dollari.
A questo punto fra gli investitori ed i programmatori Ethereum è nato un dibattito, se mantenere la blockchain originale di Ethereum con queste operazioni fraudolente “convalidate”, semplicemente bloccando l’account che aveva accumulato le somme contestate, oppure se ritornare alla data della prima transazione viziata e da lì prendere una strada diversa, separando le blockchain e lasciando morire il ramo con le transazioni oggetto di attacco hacker.
La scelta è stata quella di andare in questa seconda direzione, ma non tutti erano d’accordo e, pertanto, il “ramo secco” che convalida le transazioni viziate è oggi vivo e vegeto e fa concorrenza ad Ethereum, presentando questa sua refrattarietà agli interventi calati dall’alto e decisa dai programmatori come il suo vero punto di forza.
 .
Altra piattaforma interessante è Lisk, che è una sidechain della blockchain Crypti e si propone come una piattaforma per smart-contract predisposta per l’utilizzo su piattaforma java e con api dedicate.
. ..
Rimane da citare infine Stratis, che permette di progettare smart-contract in linguaggio di programmazione C#.
.
Avv. Riccardo Berti
.

Leave a Reply

Your email address will not be published. Required fields are marked *