top of page
Smart Contract Advanced
68.png
Smart Contract: cosa sono, come funzionano e cosa offrono?
Uno smart contract è un particolare insieme di istruzioni memorizzato sulla blockchain. Ha la capacità di auto-eseguire azioni secondo una serie di parametri già programmati. Tutto questo in modo immutabile, trasparente e completamente sicuro.

Negli ultimi anni, dopo la creazione di Bitcoin e il lancio della sua prima versione nel XNUMX, sono stati realizzati molti progetti interessanti che hanno apportato nuove idee e soluzioni decentralizzate a molti dei processi o delle applicazioni centralizzate che tutti usiamo oggi. A questo punto ti chiediamo: ti suonano familiari gli smart contract?

Ebbene, questa volta parleremo approfonditamente di questi meccanismi. Gli smart contract mirano a eliminare gli intermediari per semplificare i processi e quindi permettere al consumatore di risparmiare sui costi. La maggior parte delle informazioni relative agli smart contract è disponibile solo in inglese. Ecco perché noi di Finbase, grazie anche a un primo capitolo della nostra guida che fa da introduzione agli smart contract, non vogliamo che tu rimanga con dubbi e senza comprendere appieno cosa siano questi smart contract e quali siano le loro potenzialità.

Parleremo dell'origine degli smart contract. Successivamente analizzeremo la situazione attuale e in terzo luogo presenteremo alcuni dei più importanti progetti alternativi a Bitcoin. E infine descriveremo qual è il futuro di questa tecnologia.
 

Cos'è uno smart contract?

Per capire uno smart contract, dobbiamo prima ricordare qual è il significato di contratto. Un contratto non è altro che un accordo tra due o più parti, una situazione in cui si definisce cosa si può fare, come si può fare, cosa succede se qualcosa non viene rispettato . Ovvero regole del gioco che consentono, a tutte le parti che lo accettano, di capire in cosa consisterà l'interazione che intendono mettere in atto.

Fino ad ora i contratti erano documenti verbali o costosi documenti scritti. Questi documenti sono soggetti alle leggi e giurisdizioni territoriali e talvolta richiedono notai. Cioè più costi, più tempo e terze parti coinvolte nel processo. Per questo motivo, non sono accessibili a tutti. E il peggio deve ancora venire: il contenuto di ciascun contratto può essere soggetto a interpretazione. Tieniti forte!

Invece, uno smart contract è in grado di realizzarsi e di farsi rispettare in modo autonomo e automatico, senza intermediari o mediatori. Non essendo verbale né scritto in nessuna delle lingue che parliamo, evita il problema dell'interpretazione personale. Gli smart contract sono degli "script" (codice informatici) scritti con linguaggi di programmazione. Ciò significa che i termini del contratto sono pure decisioni e comandi all'interno del codice che li costituisce.

D'altra parte, uno smart contract può essere creato e denominato da persone fisiche e/o giuridiche. Ma anche da macchine o altri programmi che funzionano in modo autonomo. Uno smart contract è valido senza dipendere dalle autorità. Ciò è dovuto alla sua natura: è un codice visibile a tutti, che non può essere modificato in quanto presente sulla tecnologia blockchain. Questo gli conferisce un carattere decentralizzato, immutabile e trasparente.

 

Gli smart contract e il loro enorme potenziale

In base a quanto detto, sicuramente sei stato in grado di immaginare l'enorme potenziale posseduto da questi smart contract. È importante notare che, poiché è distribuito tra migliaia di computer, per una grande azienda risulta impossibile controllarli e custodirli, il che elimina la burocrazia, la censura e i grandi costi/tempi coinvolti in questo processo.

Se uniamo i principi di uno smart contract con la creatività di tanti imprenditori del pianeta, il risultato sarà rappresentato da possibilità mai viste prima, accessibili a tutti e a costi che rasentano il gratuito. Ecosistemi senza figure autoritarie che sottomettono i vari membri alla loro volontà. Stiamo parlando di un mondo più giusto.

Immagina un'auto Tesla a guida autonoma, acquistata in gruppo e in grado di autogestirsi e noleggiarsi da sola. Tutto questo senza che un'azienda come Uber prenda il 10%. Detto questo, possiamo dire: Benvenuto nel mondo degli smart contract.

I primi smart contract

La prima volta che gli smart contract vengono resi noti è attraverso Nick Szabo, il giurista e crittografo Nick Szabo che ne ha fatto menzione pubblicamente in un documento del 1995. Due anni dopo, nel 1997, ha portato a termine un documento molto più dettagliato per spiegare meglio cosa fossero gli Smart Contracts.

Sfortunatamente, pur definendone la teoria, è stato impossibile renderla una realtà con l'infrastruttura tecnologica del momento. Affinché gli smart contract possano utilizzarsi, è necessario che ci siano transazioni programmabili e un sistema finanziario che le riconosca, digitalmente nativo.

Precisamente, quello che Szabo ha definito inesistente nel 1995, nel 2009 (quasi 15 anni dopo) è diventato realtà con la comparsa di Bitcoin e della sua tecnologia, la catena di blocchio blockchain.

Bitcoin e gli smart contract.

Bitcoin possiede alcuni smart contract già creati che vengono eseguiti automaticamente e in modo trasparente per l'utente. Quando parliamo di contratti di distribuzione ci riferiamo a uno dei casi d'uso di Bitcoin per creare accordi tra persone tramite la blockchain. Bitcoin, tra tutti i suoi vantaggi, consente di aggiungere logica al denaro, qualcosa di unico: è denaro programmabile. Questa logica applicata al denaro ci permette di risolvere problemi comuni che possiamo riscontrare oggi, ma aumentando il livello di fiducia durante tutto il processo automatizzato in cui avviene l'interazione.

Alcuni esempi di smart contract in Bitcoin

A titolo esemplificativo, potrebbero essere sviluppati nuovi prodotti o applicazioni quali:

  • Mercati distribuiti che consentano l'uso di contratti P2P y trading nei mercati con Bitcoin proponendosi come un completo rivale dell'attuale sistema finanziario.

  • Proprietà come automobili, telefoni, case o elementi non fisici controllati tramite la blockchain fanno parte delle cosiddette smart property. Attraverso l'uso di smart contract e smart property, il livello di fiducia sarebbe molto più alto, si ridurrebbero le frodi, le commissioni di mediazione per terze parti e sarebbe possibile portare le operazioni a un nuovo livello.

  • Automatizzazione in caso di eredità che stabilisce la ripartizione dei beni dopo la morte. Non appena si verifica la morte, il contratto entrerebbe in vigore e verrebbe messo in atto, in questo caso distribuendo i fondi alle parti indicate nel contratto.

  • Assicurazione: denunce di incidenti, pagamenti aziendali per riparazioni, riduzione delle frodi sugli incidenti ...

Il fatto che gli smart contract usino la tecnologia Bitcoin per "esistere" rappresenta per Bitcoin un qualcosa di fantastico poiché gli sta facendo ricevere molta più visibilità attraendo centinaia di migliaia di nuovi utenti nel suo ecosistema. In effetti, non è difficile trovare affermazioni come: gli smart contract sono la killer APP di Bitcoin".

Questa logica, che può essere applicata alle transazioni Bitcoin, viene eseguita tramite l'uso di un tipo di linguaggio proprio, permettendo che sia la stessa blockchain a stabilire cosa fare in base alle indicazioni programmate. Ciò significa che abbiamo una transazione con delle istruzioni definite in modo distribuito e immutabile. Il che offre una completa sicurezza e senza dare spazio all'interpretazione.

Uno smart contract non è quello che pensi

Oggi tutto è controllato da sistemi informatici. Tutto interagisce con loro. Nello sviluppo di applicazioni è normale che i programmatori creino una serie di "porte" alle loro applicazioni (chiamate API). Queste porte consentono ad altri programmatori di accedere a un'applicazione per creare o ottenere informazioni. Quasi tutti i siti web o programmi hanno le loro. Cioè, viene definito un protocollo, un contratto, una maniera conosciuta con cui chiamare l'applicazione e con una struttura dati. È attraverso questa porta che si ottiene una risposta, ma con una struttura dati prevedibile. In questo caso, affinché la comunicazione non fallisca e, con essa, i programmi.

Ma questo contratto non è garantito. Il server delle applicazioni è controllato da qualcuno che ha la capacità di far funzionare il programma in modo diverso, da un giorno all'altro. È centralizzato e può mutare su decisione di quella terza parte. Non è "smart".

Le persone hanno bisogno di contesti prevedibili, trasparenti e incorruttibili. Gli smart contract sono pezzi di codici simili, cioè ci sono vari modi per chiamarli e ottenere risposte, hanno un contratto, ma sono anche immutabili perché sono distribuiti in migliaia di nodi che non possono alterarne il contenuto. In questo modo si ottiene un programma che agirà sempre allo stesso modo, senza richiedere la buona volontà di terze parti: una cosa necessaria da usare in vari contesti. Gli Smart Contract sono programmi cloud che agiscono sempre allo stesso modo e consentono di archiviare informazioni che non possono essere modificate a tradimento. Sono i programmi più sicuri mai creati nell'umanità e falliscono solo quando sono mal programmati.

Smart contract programmati male

Gli Smart Contract sono in grado di gestire gli asset digitali soggetti a un determinato valore economico; pertanto essi, in realtà, possono gestire del denaro. Ciò richiede un'enfasi particolare sulla loro corretta programmazione, in quanto uno Smart Contract potrebbe presentare falle di sicurezza o problemi che genererebbero errori di esecuzione o comportamenti imprevisti.

Quando accade questo, il denaro potrebbe andare completamente perduto. Non poche volte si è verificato ciò e senza il Know How necessario continuerà a succedere a diverse iniziative.

Purtroppo questo accade frequentemente, quindi è davvero importante prestare particolare attenzione durante lo sviluppo e il test di questi software.

Come si crea uno smart contract in Bitcoin?

Affinché tutto ciò sia possibile, deve esserci un processo completamente sicuro che garantisca che almeno due parti possano stipulare il contratto senza doversi fidare l'una dell'altra o addirittura conoscersi.

I contratti utilizzano il sistema decentralizzato di Bitcoin per applicare accordi finanziari senza fare affidamento su agenti esterni, come i sistemi giudiziari, riducendo il rischio di trattare con entità sconosciute nelle transazioni finanziarie.

Processo di creazione di uno smart contract

Ci sono diversi passaggi per creare smart contract sicuri. Prendiamo ad esempio il caso di voler effettuare versamenti sicuri su qualsiasi sito web che accetti bitcoin. A nessuno piace perdere i propri soldi, giusto?

Insieme tutte queste caratteristiche non solo consentono la costruzione di nuovi e interessanti strumenti finanziari sulla blockchain di Bitcoin ma, poiché ogni smart contract è composto da persone o macchine, le possibilità di innovazione nei campi di Internet of Things, Insurtech, Logistica, Amministrazione sono così ampie che è probabile che molto presto vengano create le prime killer app o applicazioni rivoluzionarie di questi settori.

 

Passaggi per creare uno smart contract

  • L'utente e la pagina web si scambiano una chiave pubblica appena creata.

  • Quindi l'utente crea la prima transazione senza trasmetterla, mettendo ad esempio 5 BTC in un output, che deve essere firmato sia dall'utente che dal sito web.

  • L'utente invia l'hash della prima transazione alla pagina web.

  • Il portale crea una seconda transazione corrispondente al contratto. In questa seconda transazione, la prima viene spesa e restituita all'utente tramite l'indirizzo fornito nel primo passaggio. Ma poiché la prima transazione richiede due firme (utente e pagina web) questa operazione non risulta ancora completata. È qui che entra in gioco un nuovo parametro: nLockTime. Questo può essere aggiunto in una transazione bitcoin impostando una data futura ad esempio di 6 mesi. Prima di questa data, tali fondi non potranno essere incorporati in nessun'altra transazione. Il Sequence Number dell'input viene impostato su 0.

  • Infine, l'intera transazione non firmata viene restituita all'utente. Questo controlla che tutto sia corretto e che le monete tornino in suo possesso. Ovviamente, dopo i 6 mesi stabiliti con nLockTime. Avendo il Sequence Number a 0, questo contratto potrebbe essere modificato in futuro se entrambe le parti lo riterranno conveniente. Ma ovviamente ... Se gli amministratori del sito scompaiono, come potrebbe l'utente recuperare i fondi?

  • Tieni presente che lo script dell'input (istruzioni registrate in ogni transazione) non è ancora terminato. Lo spazio riservato alla firma dell'utente è ancora costituito da un insieme di zeri, dopo che il portale creerà la seconda transazione. A questo punto, manca nel contratto solo la firma dell'utente.

  • A partire da qui, trascorsi i 6 mesi che sono stati determinati, verranno trasferite sia la prima che la seconda transazione e i 5 BTC della prima transazione verranno restituiti all'utente in questione.

Insieme tutte queste caratteristiche non solo consentono la costruzione di nuovi e interessanti strumenti finanziari sulla blockchain di Bitcoin ma, poiché ogni smart contract è composto da persone o macchine, le possibilità di innovazione nei campi di Internet of Things, Insurtech, Logistica, Amministrazione sono così ampie che è probabile che molto presto vengano create le prime killer app o applicazioni rivoluzionarie di questi settori.

Situazione attuale degli smart contract su Bitcoin

Non dimentichiamo che quando parliamo di Bitcoin ci riferiamo a un nuovo dinamico ecosistema in costante crescita ma, come abbiamo indicato precedentemente, anche a smart contract. Poco alla volta vengono introdotti nuovi aggiornamenti relativi agli smart contract su Bitcoin ma, attualmente, sono presenti già alcune funzionalità che probabilmente ti suoneranno familiari come i portamonete multi firma, in cui due o più parti devono approvare il completamento di una transazione prima che i fondi vengano rilasciati.

Insieme agli indirizzi multi-firma, i doppi depositi sono una delle funzioni che facilitano il corretto funzionamento degli smart contract di questo tipo. Questa funzione è stata introdotta da BitHalo ed è innovativa in quanto elimina la necessità che una terza parte agisca come arbitro. Fondamentalmente prevede che le parti, ad esempio un acquirente e un venditore, eseguono ENTRAMBE una versamento collegato a uno smart contract. Il programma del contratto ha validità per un certo periodo prima che scada. Se le persone coinvolte nell'accordo non lo portano a termine entro quel lasso di tempo, i fondi dei depositi verranno bruciati, cioè verranno inviati a un indirizzo di cui nessuno conosce la chiave privata, il che costringe le parti a fare uno enorme sforzo nella ricerca delle soluzioni.

Sebbene Bitcoin disponga di un linguaggio di programmazione per aggiungere logica, c'è chi pensa che a volte non sia all'altezza. Questo è il motivo per cui sono state create soluzioni che portano gli smart contract verso nuovi orizzonti, con linguaggio Turing completo. Conosciamo alcune di queste nuove opzioni.

Cos'è Counterparty?

Counterparty è nato nel 2014. È una piattaforma open source in cui è possibile sviluppare applicazioni peer to peer. Inizialmente queste applicazioni sono state orientate al settore finanziario, sulla blockchain Bitcoin: attualmente il protocollo implementa e supporta la creazione di asset, l'emissione di obbligazioni da tali asset, il pagamento di dividendi, il trading di asset utilizzando un mercato decentralizzato, scommesse binarie e contratti per differenza (CFD). Il suo protocollo open source, oltre a permettere di creare e operare con asset digitali, permette anche di scrivere smart contract, permettendo di trasformare molte delle azioni nel mondo reale in codice che funziona automaticamente senza bisogno di intermediari ed esistente ai guasti.

 

In Counterparty è presente anche un token (o criptovaluta) chiamato XCP. Questo viene utilizzato per offrire alcune possibilità che, al momento, non sono tecnicamente possibili utilizzando BTC (bitcoin).

Sebbene l'interesse per smart contract più potenti sia stato annunciato fin dall'inizio del progetto, solo recentemente è stato confermato che la EVM di Ethereum sarà finalmente introdotta all'interno di Counterparty,, che consentirà l'esecuzione di smart contract identici a quelli di Ethereum ma sulla rete Bitcoin, consentendo un'enorme diversità di applicazioni come Organizzazioni Autonome Decentralizzate (DAO), sistemi di identità, sistemi di voto basati sul consenso, tra gli altri. A partire da questo capitolo della Guida Bitcoin, il Ethereum Virtual Machine (EVM) è operativa solo sulla testnet di Counterparty. Com'è possibile che abbiano potuto riutilizzare il software libero EVM? Counterparty utilizza lo stesso linguaggio di programmazione per contratti intelligenti, chiamato Solidity.

Secondo Trevor Altpeter, direttore della Counterparty Foundation, EVM sarà ora in grado di fare tutto ciò che fa Ethereum, solo che nella blockchain di Bitcoin.

Per eseguire i contratti viene utilizzata la valuta di Counterparty, l'XCP.

Cos'è RootStock?

RootStock (RSK), noto come l'Ethereum di Bitcoin, è un'altra piattaforma che cerca di portare smart contract a Bitcoin per sfruttare l'effetto rete e la sicurezza di Bitcoin senza il bisogno di creare qualcosa da zero (è stato comunicato che la piattaforma sarà compatibile anche con Ethereum). È una piattaforma open source per la creazione di smart contract che premieranno i miner che partecipano attivamente. Il suo obiettivo principale è aggiungere valore e funzionalità all'ecosistema Bitcoin attivando smart contract sicuri in rete, aggiungendo opzioni per pagamenti immediati e maggiore scalabilità. Per fare ciò, RootStock utilizza catene laterali (sidechain), collegate alla catena di Bitcoin, e il suo token (Roots), che verrà utilizzato solo per essere scambiato con bitcoin.

Nonostante sia relativamente nuovo, Rootstock ha già ottenuto 1 milione di dollari da parte della Digital Currency Group (DGC) durante il suo ultimo giro di finanziamenti.

Lo stesso Nick Szabo ha detto sul suo twitter: "il meglio di Bitcoin (valuta e liquidità del sistema) + il meglio di Ethereum (ecosistema di programmazione di contratti intelligenti)"

 

Piattaforme che innovano con gli smart contract

Non tutti i progetti ruotano esclusivamente attorno alla rete Bitcoin e ci sono già diverse alternative. Primo fra tutti Ethereum e, nel corso del 2016, anche Lisk. Entriamo un po' nel dettaglio per descrivere entrambi.

Smart Contract su Ethereum

Ethereum, che è uno dei progetti più famosi nel settore degli smart contract , è una piattaforma informatica distribuita basata su una blockchain pubblica come Bitcoin e permette inoltre di applicare smart contract P2P (tra i nodi, senza server centrali) in una macchina virtuale decentralizzata chiamata Macchina virtuale Ethereum (EVM).

Si basa sull'intera teoria di Bitcoin in quanto al fatto di essere distribuito, avere la propria criptovaluta, miner e persino la sua blockchain tra le altre cose ma, a differenza di Bitcoin, Etherum ha creato un interprete del linguaggio di programmazione molto più ampio (Turing completo), consentendo di aggiungere una logica molto più complessa all'interno della blockchain. In altre parole, potrebbe essere paragonato a un computer distribuito, che utilizza la sua criptomoneta (l'ether) come la "benzina" di cui ha bisogno il contratto affinché i miner possano applicarlo. Cioè, ora con Ethereum i contratti sono programmi con molte più funzionalità e possibilità. Anche se per questo (e questo è qualcosa che molte persone criticano) hanno dovuto creare da zero una rete completamente nuova, rinunciando alla rete Bitcoin (la più potente al mondo).

Puoi consultare, studiare o copiare un ampio elenco di applicazioni decentralizzate sviluppate su Ethereum su State of Dapps. Vuoi saperne di più su Ethereum? Ecco un'infografica in spagnolo che potrebbe interessarti.

 

Smart contract su Lisk

Lisk è una piattaforma per creare ed applicare smart contract in modo decentralizzato. È stato lanciato nel XNUMX presentandosi come una delle migliori opzioni per sviluppare smart contract sicuri e veloci grazie all'utilizzo di Javascript (il linguaggio di programmazione più utilizzato) come il linguaggio per la creazione degli smart contract , diventando così un'alternativa a Ethereum (in cui il linguaggio di programmazione utilizzato è Solidity.)

Dopo una prevendita di successo della valuta, che avrà bisogno del contratto per funzionare (il LSK), durante la quale sono stati raccolti più di 14,000 bitcoin, Lisk si trova ancora in una fase iniziale ma dispone già di diversi concetti di DAPP su cui si sta lavorando, come la 'proof of existence' o un social network per artisti chiamato Discovr.

 

Gli oracoli

Non possiamo dimenticare gli oracoli. Una delle caratteristiche più importanti, affinché uno smart contract possa interagire con il mondo reale, sono i cosiddetti oracoli(oracles in inglese). Gli oracoli sono strumenti che permettono di modificare stati interni di uno smart contract attraverso informazioni esterne (generalmente ottenute tramite API), ad esempio ottenendo il prezzo di un'azione o di una valuta o se un pacco è stato inviato dall'azienda di trasporto.

Per spiegarlo meglio, immaginiamo uno smart contract su una scommessa di calcio, Madrid - Barça. Il contratto utilizzerebbe una fonte ufficiale come oracolo, ad esempio il sito web della Lega calcio spagnola. A seconda del risultato, i fondi vengono rilasciati al vincitore. Chi ha bisogno di un centro scommesse che trattiene una percentuale dei tuoi soldi? L'oracolo diventerebbe un centro scommesse senza commissioni, sicuro e senza intermediari (decentralizzato).

Gli oracoli funzionano anche in modo autonomo. Tuttavia, va tenuto presente che la fonte utilizzata dall'oracolo è una terza parte di cui ci si deve fidare e che potrebbe essere corrotta dal suo proprietario, potrebbe essere craccata o il suo server potrebbe semplicemente fallire; potrebbe succedere qualcosa di negativo insomma: stiamo CENTRALIZZANDO la fiducia, al contrario della filosofia blockchain. Fortunatamente già esistono alcuni progetti che stanno sviluppando soluzioni per questo problema, come per esempio Orisi e Oraclize. In sostanza, questi programmi mettono insieme i risultati di tutti i fornitori di informazioni che vengono indicati e prendono una decisione in base a ciò che dice la maggioranza. Cioè decentralizza l'ottenimento del risultato, qualcosa di geniale.

Un mondo dominato dagli Smart Contract

Riuscite a immaginare che, tra qualche decennio, i politici del momento presenteranno uno smart contract come programma di 4 anni, in cui definiranno come saranno distribuiti i soldi e le quote che avranno?

In questo modo, la società dovrebbe votare solo (attraverso la tecnologia blockchain, ovviamente) lo smart contract che vuole utilizzare durante quel nuovo periodo.

Ciò garantirebbe che venga rispettato il voto della gente, che ci sia totale trasparenza e che vengano monitorate le spese. Qualcosa che, visti i tempi che corrono, sarebbe già urgente ...

Tra non molto anche le elezioni potrebbero svolgersi in questo modo.

Questo è solo l'inizio

Si ferma qui, per ora, il nostro viaggio attraverso questo entusiasmante ramo della tecnologia blockchain. Come si è potuto vedere, alcune piattaforme competono col fine di trovare soluzioni simili in un ambiente di costante creatività e tutte con lo stesso obiettivo: eliminare i punti critici del sistema tradizionale per far risparmiare tempo e denaro alle persone. A pochi anni dai primi passi di Bitcoin, solo pochi si prenderanno la briga di leggere questo testo (sentiti fortunato), ancora meno saranno quelli che lo approfondiranno e pochissimi quelli che decideranno di farsi avanti e passare all'azione. Tutto deve essere ancora fatto, ci sono molti problemi, molte cose che non funzionano bene: non è un'opportunità unica per fare qualcosa?

Appena si comincia a immaginare, si intravede un domani senza grandi multinazionali che monopolizzano i settori, ma codici trasparenti che vivono all'infinito su una catena di blocchi e sono in grado di orchestrare la fornitura di tutti i tipi di servizi a costo zero (o un costo ridicolo rispetto a quello attuale). Ci stiamo muovendo verso un mondo globale ma distribuito, senza intermediari o grandi aziende che, nell'ombra, organizzano tutto a loro piacimento. Un mondo globale con servizi globali, dove gli smart contract hanno tutte le carte in regola per essere il seme di un cambiamento senza precedenti: si calcolano oltre 25 miliardi di dispositivi connessi a Internet nel 2017, tutti in grado di applicare e condividere tra di loro smart contract ogni giorno.

Questo e molto altro rappresentano gli smart contract. Ora dobbiamo solo creare semplici punti di interazione che sfruttino questo potenziale in casi specifici. Sei pronto?

bottom of page