Gli smart contract sono dei contratti racchiusi in un software, software che ne contiene termini, condizioni, e modalità di esecuzione. Gli smart contract sono memorizzati sulla Blockchain e vengono stipulati ed eseguiti automaticamente, cioè senza l’ausilio dell’intervento umano. Un pò come avviene con la macchinetta del caffé a gettoni dove a seguito dell’inserimento della moneta (stipula) avviene l’erogazione del prodotto (esecuzione). Il tutto però in un ambiente totalmente digitale dove il pagamento avviene solitaemente in Ether (la moneta del protocollo Ethereum) e l’esecuzione consiste nell’assegnazione di un titolo o diritto o altri Ether… insomma in un qualcosa di non fisico. Le possibili clausole e condizioni “contrattuali” sono infinite come in un contratto tradizionale.
I vantaggi di inserire un contratto in una Blockchian sono fondamentalmente:
- rendere impossibile la rottura del contratto evitando quindi discussioni, controversie, e magari costosi ricorsi legali;
- risparmiare risorse umane ed evitare errori umani;
- azzerare qualsiasi lungaggine burocratica.
Lo smart contract più frequente è quello che, a fronte di un pagamento in una determinata criptovaluta, restituisce “token” di nuova emissione, ovvero dei titoli o delle quote di una start-up che in questo modo si finanziano. Questi token sono quindi una nuova criptovaluta e queste nuove emissioni vengono chiamate ICO (Initial Coin Offering) e sono approfondite in questo articolo: ICO_Initiali_Coin_Offering
Gli smart contract, come quelli per una ICO, sono relativamente facili da realizzare/programmare. Esiste addirittura uno smart contract (Bancor) per fare gli smart contract… con cui chiunque, anche senza conoscenze di programmazione, può realizzarne uno. Ma attenzione; lanciare uno smart contract con un errore nella progettazione può essere la rovina del proponente in quanto la sua esecuzione sarà poi inarrestabile! Torniamo all’esempio della macchinetta del caffé e supponiamo che per un errore/svista il prezzo per l’erogazione di un espresso sia stato impostato ad 1 cent invece che ad un 1 euro… Il gestore del distributore subirebbe evidentemente una perdita, in questo caso un danno limitato… ma uno smart contract che abbia per oggetto dei valori di scambio elevati, magari uno smart contract nel settore della finanza, potrebbe portare ad enormi perdite per il proponente!!!
Un esempio famoso nella storia degli smart contract “bacati” è questo: La_brutta_storia_di_DAO
GLI ORACOLI negli SMART CONTRACT
Gli smart contracts possono essere programmati anche in modo da eseguire il contratto in modo diverso a seconda che si verifichino o meno determinati eventi esterni. Evidentemente una Blockchain non ha “contatti col mondo esterno”… e così entrano in gioco i cd ORACOLI e cioè degli “input di dati” dal mondo esterno che vengono inviati alla Blockchain da banche dati o da aziende specializzate in questi servizi.
Un esempio concreto realizzato di smart contract con oracolo è il caso di una compagnia di assicurazioni che offre una polizza (flightdelay) che risarcisce i viaggiatori se il loro aereo subisce dei ritardi. In sostanza chi vuole assicurarsi da tale evento paga un premio legato al suo volo (anche subito prima di imbarcarsi via smartphone in Ether…) e all’atterraggio lo smart contract provvederà a risarcire gli assicurati che hanno subito un ritardo, nella misura stabilita volta per volta… Tutto ciò è possibile grazie ad un oracolo che invia alla Blockchain tutti gli orari di arrivo previsti dei voli e tutti gli orari effettivi di arrivo registrati. Il tutto avviene in modo totalmente automatico: non c’è nessun “arbitro o arbìtrio” umano… ed il risarcimento è pagato in Ether che arrivano direttamente nel wallet dell’assicurato non appena l’oracolo ha trasmesso i dati.
Nel paragrafo successivo le cause di nascita e di “morte” di una criptovaluta