Il futuro della blockchain? Gli smart contract

di Marco Scotti ♦ I prossimi sviluppi di una tecnologia che solo ora sta mostrando il suo lato più disruptive, dopo essere stata associata esclusivamente alle cripto valute: dal noleggio di un’auto, al business process management e a diversi altri usi industriali. Intervista con Florian Daniel, Politecnico di Milano

«Il futuro della blockchain passa necessariamente per gli smart contract, che hanno già ora una molteplicità di utilizzi possibili e che permetterebbero di rivoluzionare molti settori, da quello assicurativo a quello dell’auto a guida autonoma. Dal mio punto di vista ritengo che ci siano innumerevoli comparti interessanti, per esempio quello dei processi interaziendali, dell’intelligenza artificiale e dei pagamenti di servizi digitali. Ma attenzione, non sto parlando di bitcoin o di altre criptovalute, ma piuttosto del cambiamento delle modalità di erogazione di servizi digitali che oggi spesso è ancora “opaca”». Il professor Florian Daniel, ricercatore presso il Politecnico di Milano e docente di Informatica non ha dubbi quando si tratta di analizzare i prossimi sviluppi di questa tecnologia.

 







Florian Daniel, ricercatore presso il Politecnico di Milano e docente di Informatica

 

D. Professor Daniel, lei che è un esperto di blockchain, quale pensa sia il futuro di questa tecnologia?

R. Da qualche tempo ho focalizzato la mia attività di ricerca sui cosiddetti smart contract, ovvero dei “pezzi” di codice che, eseguiti all’interno di blockchain, permettono l’implementazione di clausole che vanno oltre la singola transazione. La parte più interessante è che oggi siamo ancora agli albori e non abbiamo per ora grandi sviluppi pratici. Ma se cambiamo orizzonte temporale e proviamo a fissarci su un futuro a 10 anni possiamo iniziare a vedere un internet che presenti delle garanzie proprie della tecnologia blockchain. E questo aprirebbe le porte a uno spettro di applicazioni distribuite che offriranno maggiori garanzie sui software rispetto a quanto avviene oggi.

D. A proposito di smart contract, c’è già stato un tentativo di rendere vincolanti i contratti con notarchain, un consorzio di notai che voleva predisporre gli atti in modo che fossero pubblici e immodificabili

R.È vero, questo è un primo esempio di quello che potrebbe succedere. Ma la notarchain si basa soprattutto su dati statici (gli atti notarili) e meno su algoritmi dedicati. E’ innegabile che, ad oggi, siamo ancora piuttosto indietro quanto a sviluppo di soluzioni avanzate. Gli smart contract, dal momento che si tratta di codice eseguibile, possono supportare algoritmi più complessi rispetto a quelli attuali. In questo modo diventa sostanzialmente impossibile “aggirare” questi contratti.

D.Ci faccia un esempio…

R.Prendiamo ad esempio il noleggio di un’auto: anziché avere un software tradizionale installato nei computer dell’autonoleggio, potremmo immaginare uno smart contract che si poggia sulla blockchain. Un cliente paga il costo del noleggio e il deposito cauzionale e lo smart contract, in automatico, rilascia un codice digitale. Un po’ come avviene con le biciclette a noleggio a Milano che vengono sbloccate tramite QR Code. Al termine del noleggio, se non vengono rilevati danni, lo smart contract rilascia la cauzione al cliente e il costo del noleggio all’autonoleggio. Inoltre, un’altra peculiarità fondamentale di questi contratti è di essere pubblici e visibili a monte dell’operazione: quindi se un utente non è d’accordo può cercare altrove un’altra offerta. Lo smart contract, insomma, fa da mediatore.

 

Blockchain applicata al settore agroalimentare (courtesy IBM)

D.Gli smart contract potrebbero essere applicati anche nell’agroalimentare, dove il rischio contraffazione è sempre piuttosto elevato? Ci sono già stati progetti che utilizzano blockchain per certificare provenienza, materie prime e via dicendo.

R.Sicuramente, ma in maniera meno importante. La tracciabilità è uno dei casi in cui la blockchain e gli smart contract servono più che altro per gestire dati, in fin dei conti si tratta soltanto di tenere traccia degli spostamenti di un singolo prodotto o delle caratteristiche organolettiche, cioè di dati statici.

D.Attualmente a che punto siamo nello sviluppo di soluzioni che abbiano come base la blockchain?

R.Al momento l’aspetto più dibattuto rimane ancora quello relativo alle criptovalute, mentre gli smart contract sono un sistema meno conosciuto e ancora in fase di sperimentazione dai potenziali utilizzatori. Ma sono convinto che soluzioni blockchain future non ne potranno fare a meno. È proprio per questo che ritengo cruciale studiarne le proprietà, supportarne lo sviluppo strutturato, e capire e comunicare bene anche a utenti non tecnici gli eventuali costi di esecuzione.

D.Quali sono le piattaforme più attive?

R.La piattaforma bitcoin è la più famosa per quanto riguarda le criptovalute, mentre se parliamo di eseguire contratti, in quel caso prevale Ethereum, che è stata la prima a lanciare smart contract e che presenta un linguaggio di programmazione “Touring complete” in grado di supportare lo sviluppo di algoritmi generici. Se parliamo di smart contract, insomma, oggi parliamo soprattutto di Ethereum. Poi è vero, ci sono altre piattaforme che stanno nascendo al ritmo di una a settimana.

D.Torniamo agli smart contract: quali sono i problemi che stanno sorgendo per una loro applicazione massiva?

R. Questi contratti permettono di codificare la logica all’interno della blockchain, ma al momento questo sta avvenendo in modo manuale, mancano strumenti di sviluppo o metodi dedicati e tutto sta all’esperienza del programmatore. Questo pone dei rischi: se si pubblica uno smart contract con un errore nel codice è impossibile modificarlo, proprio per la natura tipica di questa tecnologia. Per le proprietà della blockchain, infatti, non si può tornare indietro e modificare il codice di uno smart contract. Chi sviluppa software su una blockchain, quindi, deve stare molto attento, altrimenti una volta pubblicato può essere non funzionante e, di conseguenza, far perdere tempo e denaro. Un pagamento effettuato a seguito di uno smart contract “fallato” potrebbe infatti risultare nella perdita della criptovaluta, perché non c’è modo di correggere l’errore. Oggi questo problema non è ancora così grave perché i contratti sono ancora limitati e semplici, composti da qualche decina o centinaio di righe di codice. Prevedo, però, che in futuro ci possa essere l’internet basato su blockchain con applicazioni molto più complesse. E allora lo sviluppo a mano che avviene oggi non sarà più sostenibile perché l’umano non sarà in grado di gestire questa complessità.

 

D.Lei  sta studiando da tempo gli smart contract: dal punto di vista pratico, che scenari prefigura?

R. Ne vedo tanti, ma esaminiamone per esempio tre. Il primo è quello che riguarda i processi interaziendali. L’obiettivo del business process management, da questo punto di vista, è gestire il processo e coordinare persone o pezzi di software per far avanzare un processo aziendale. Questo allevia l’attore umano, per esempio un responsabile di reparto, dal correre dietro a un collega o dal fare cose che possono invece essere automatizzate. Immaginiamo ora un servizio complesso svolto da diversi partner che collaborano: in generale, è difficile monitorarne le interazioni. In presenza di un errore di comunicazione fra i partner, non è sempre facile risalire all’errore o a chi ha generato il problema, qualora insorga. Per questo uno smart contract potrebbe essere utile, per monitorare passo dopo passo le interazioni all’interno dei processi aziendali. Avendo una tecnologia blockchain su cui poggiare, possiamo certificare ogni singolo passaggio, rendendo il processo più fluido e minimizzando gli errori e i possibili blocchi nella catena. Oltre a monitorare un processo interaziendale, possiamo poi pensare anche a smart contract che coordinino loro i partner coinvolti nel processo in maniera trasparente. Ma siamo ancora a uno stadio embrionale.

D. Il secondo scenario qual è?

R.Il rapporto con l’intelligenza artificiale. Viviamo in una società in cui gli algoritmi hanno un peso sempre maggiore, arrivando a prendere decisioni anche complesse. Questo per un’infinità di motivi: perché le macchine sono più precise di noi, perché sono più rapide, perché sono più affidabili, perché riescono a gestire moli di dati superiori a quanto possa fare l’uomo. Pensi che hanno sviluppato sistemi di diagnostica che sono più affidabili del dottore in carne e ossa. Ma l’intelligenza artificiale può fare di più, ed essere impiegata, ad esempio, per decidere se una persona abbia commesso o meno un reato. Ci si basa sui dati passati, attraverso un algoritmo generico con un modulo di machine learning che consente di fare previsioni sul futuro.

 

Connected cars
E’ possibile utilizzare gli smart contracts anche nell’ambito dell’ utilizzo delle Connected cars

D.Uno scenario che sembra quasi fantascienza e che nasconde anche un problema filosofico…

R. Decisamente. Prendiamo come altro esempio le macchine a guida autonoma. Nel caso di impatto imminente, la macchina dovrà decidere che cosa fare: sacrificare la vita del guidatore, di un passante, di un ciclista, di un cane e via dicendo. Non stiamo più parlando di scenari futuristici, ma di realtà che sono in fase di test su strada. Anche in questo caso c’è un algoritmo che deve prendere decisioni o in tempo reale o considerando enormi moli di dati che fanno funzionare le cose. Il fatto importante è che questi algoritmi implementano valori etici che possono avere un impatto diretto sulla nostra vita. In questo caso, gli smart contract potrebbero servire per certificare il codice sorgente che viene impiegato, ad esempio, nei veicoli a guida autonoma o in tutte quelle situazioni in cui c’è un software che rimpiazza l’essere umano nel prendere decisioni e che non possono essere risolte semplicemente dicendo “vi stampo l’algoritmo”.

Anche perché oggi possiamo effettuare il “tuning” del motore, domani magari si potrà fare il “tuning” dell’algoritmo, per esempio installandone uno nettamente più favorevole a preservare la salute del conducente. Con gli smart contract questo sarebbe impossibile. Se, infatti, una parte del codice della macchina venisse eseguita all’interno della blockchain – proprio la parte decisionale – avremmo la garanzia che questi algoritmi siano immodificabili, mentre altre parti, meno interessanti, potrebbero continuare a essere svolte all’interno della macchina o del computer. Con gli smart contract tutti potrebbero vedere com’è scritto il codice, leggerlo, criticarlo, chiederne delle modifiche. Si tratterebbe di un nuovo strato tecnologico abilitante per la pubblicazione di codice di interesse pubblico.

D.Manca la “terza gamba” delle possibili applicazioni…

R.Si tratta dei pagamenti nativi. Penso soprattutto a un nuovo modello di business che si basa sul mondo open source. Oggi abbiamo aziende di software e, dall’altra parte, un ecosistema open source in cui però diventa difficile capire chi è proprietario della tecnologia, chi la usa e così via. Se avessimo degli smart contract più orientati al riuso, uno sviluppatore potrebbe pubblicare il suo codice open-source come smart contract e godere delle capacità naturali dello smart contract di accettare pagamenti. Sarebbe un nuovo modello di business, basato sull’uso effettivo del codice condiviso. A patto, ovviamente, un livello di astrazione decisamente superiore e un supporto al riuso e alla negoziazione dei parametri dei servizi che oggi, ancora, non c’è.














Articolo precedenteLa digital transformation in Italia: per ora un’occasione mancata
Articolo successivoLe strategie di Ibm nel mondo del cloud






LASCIA UN COMMENTO

Per favore inserisci il tuo commento!
Per favore inserisci il tuo nome qui