Il crescente interesse nei confronti della blockchain quale piattaforma tecnologica abilitante transazioni (non necessariamente di moneta, seppur virtuale) apre nuovi scenari di applicabilità in ambiti differenti da quello tradizionale finanziario, nell’alveo del quale questa tecnologia è nata.
Tanto che Gartner, in un report rilasciato lo scorso marzo, afferma che la blockchain sta evolvendo da infrastruttura per la gestione di moneta digitale a piattaforma per la trasformazione digitale e ne prevede una crescita importante: entro il 2025, il valore aggiunto della blockchain arriverà a poco più di 176 miliardi di dollari, per superare i 3,1 trilioni di dollari entro il 2030 (figura 1); questa crescita si spiega anche con la previsione secondo la quale entro il 2030 il 30% della “customer base” (cioè del mercato in generale) a livello mondiale sarà costituito da “cose” e queste “cose” utilizzeranno la blockchain come tecnologia fondamentale attraverso la quale condurre attività commerciali.
Figura 1 – Il mercato delle tecnologie blockchain 2017-2030 secondo Gartner
“Comprendere il potenziale economico della blockchain, per settore e per geografia, è essenziale per parametrare i propri investimenti e le proprie priorità”, affermano gli estensori del report che hanno messo a disposizione dei clienti Gartner un tool per prevedere l’impatto di questa tecnologia nel proprio specifico ambito.
Il processo di validazione alla base del consenso della blockchain
La definizione di blockchain è ormai ben nota: si tratta di un data base distribuito (una sorta di registro delle transazioni dove i dati non sono memorizzati su un solo computer, ma su più macchine collegate tra loro via Internet, attraverso un’applicazione dedicata che permette di interfacciarsi con la “catena”) fatto di blocchi di dati che memorizzano transazioni; per essere consolidato all’interno di un blocco, ogni dato, e successivamente ogni blocco prima di essere inserito nella “catena”, viene sottoposto a un processo di validazione.
Ed è proprio su questo processo di validazione che si basa un concetto fondamentale della blockchain, ossia il meccanismo di consenso decentralizzato che garantisce la sicurezza dell’intera catena: ogni blockchain è, di fatto, un’applicazione open source “decentralizzata” che rappresenta un contratto tra una rete (nel suo insieme) e i suoi utenti. La particolarità di questa applicazione è che il protocollo che la governa e i dati delle transazioni vengono archiviati nel database distribuito (quindi sui computer della “catena”) e nessuna organizzazione ne detiene il controllo (proprio come succede per tutte le applicazioni peer to peer): ogni decisione (dalla singola transazione ad adattamenti del protocollo) viene presa con il consenso degli utenti (automatizzato attraverso il processo di validazione).
È grazie a questo processo di validazione crittografato che la blockchain diventa una “trust machine” (per utilizzare la definizione di un celebre servizio di The Economist – come si vede a pag. 36 di ZeroUno n°413 di settembre 2017): di fatto, la crittografia rimpiazza l’intermediazione di una terza parte che faccia da garante in una transazione (la banca per le transazioni finanziarie, il notaio per la registrazione di un atto ecc.).
Ma se non esiste un supercomputer centrale nel quale questi dati siano archiviati, dove avviene il processo di validazione? È proprio questo l’elemento distintivo di una blockchain: il processo avviene nei computer distribuiti della rete, ma come?
Prima di procedere dobbiamo prendere dimestichezza con due termini: nodi della blockchain e miner. I primi sono i computer della rete che hanno scaricato la blockchain nella loro memoria; chiunque può diventare un nodo, tramite l’apposito programma (Bitcoin Core per esempio per Blockchain Bitcoin). I miner sono coloro che effettuano il controllo delle transazioni, grazie a computer molto potenti e attraverso un protocollo di validazione piuttosto complesso (spiegato più avanti), e il cui lavoro viene ripagato con un premio (il termine ormai condiviso per questa operazione è “minare”, italianizzando il termine inglese to mine ossia estrarre).
Il protocollo di validazione (che definisce gli algoritmi validanti e chi può essere un miner) rappresenta dunque l’elemento vitale principale della blockchain perché è proprio da questo che dipendono sostanzialmente la velocità della catena e la sua sicurezza (gli algoritmi che governano questo processo non solo validano che ogni nuova immissione risponda a determinati criteri, ma impediscono anche che possano essere manomessi i dati già presenti nella catena). È dunque in questo ambito che si vedono le principali evoluzioni e che si differenziano, dal punto di vista tecnologico, le diverse blockchain. È comunque importante sottolineare che non necessariamente un protocollo è migliore di un altro: l’utilizzo dell’uno o dell’altro dipende anche dal tipo di applicazione per la quale viene utilizzata la blockchain.
Figura 2 – Processo di inserimento e verifica dei blocchi di dati nella blockchain
Figura 3 – utilizzo di algoritmi hash nel processo di verifica
- Proof of Work – È il protocollo di validazione primigenio, sul quale si è basata la prima blockchain, Bitcoin, e a tutt’oggi ancora il più diffuso (figure 2 e 3). Ogni 10 minuti un nuovo blocco, contenente migliaia di transazioni, viene immesso nella blockchain seguendo questo protocollo:
- ogni transazione viene trasformata, utilizzando un algoritmo hash, in una stringa univoca che contiene tutti i dati della transazione precedente (pseudonimo del venditore e dell’acquirente, ammontare, orario ecc.) e quelli della transazione in oggetto;
- tutte le migliaia di transazioni che avvengono nell’arco dei 10 minuti vengono inserite in un blocco che viene sottoposto al processo di verifica dei miner;
- per poter minare il blocco, i miner devono risolvere un calcolo computazionale molto complesso, calibrato per essere risolto in 10 minuti (ogni due settimane viene rivisto il grado di difficoltà del calcolo ed eventualmente ricalibrato);
- il primo che risolve il calcolo (e se la soluzione è validata dal 51% dei miner) “sblocca” (in gergo, “mina”) il blocco che viene inserito nella catena e il miner riceve oggi, nel caso della blockchain Bitcoin, per esempio, un premio di 12,5 bitcoin di nuova emissione;
- mentre il processo di “sblocco” dura appunto circa 10 minuti, il processo di verifica da parte degli altri miner che la soluzione del calcolo sia corretta impiega pochi secondi.
La criticità di questo meccanismo risiede nella velocità per minare un blocco perché è un protocollo che, al crescere della blockchain, richiede sempre maggiore potenza elaborativa nei computer dei miner. Il tempo di validazione di una transazione (10 minuti) è uno dei motivi dal quale derivano le maggiori criticità in termini di scalabilità della tecnologia.
Esiste poi il problema che possano di fatto riprodursi meccanismi di concentrazione, con la creazione di enormi data center che centralizzano la funzione di mining (mining farm).
- Proof of Stake – Questo protocollo nasce per far fronte al problema della scalabilità del precedente protocollo, semplificando il processo di mining: mentre nel proof of work un vasto numero di miner deve verificare contemporaneamente gli hash da introdurre nella catena, il proof of stake assegna il processo di verifica ai membri della catena in base alle quote di partecipazione alla catena stessa (nel caso di criptovalute, per esempio, se si possiede il 10%, possesso dimostrabile attraverso il protocollo stesso, si può minare il 10% dei blocchi ecc.). Il protocollo prevede inoltre che quando viene aggiunto un nuovo blocco venga automaticamente scelto il creatore del blocco successivo (che non può essere l’account che ha una posizione dominante nella catena come, per esempio, chi possiede la maggior quantità di criptovaluta dato che altrimenti sarebbe colui che può creare tutti i blocchi); per effettuare questa operazione di selezione vengono oggi utilizzati metodi diversi:
- Nxt e BlackCoin: una funzione casuale randomizzata con una formula che cerca il valore hash più basso rapportato alla dimensione della somma in gioco;
- Peercoin: effettua una selezione casuale abbinandola al concetto di anzianità ossia il numero di giorni di possesso delle monete virtuali;
- Redcoin: utilizza un algoritmo basato sulla velocità delle transazioni per incoraggiare la movimentazione di criptovaluta piuttosto che il suo possesso.
Da questi esempi (che mostrano come non sia stato ancora identificato un metodo univoco e condiviso per questa delicata operazione) si evince che si tratta di un protocollo ancora non stabile e in continua evoluzione, oggetto di numerose critiche (la più grave di tutte addirittura relativa alla possibilità di “inquinare” la blockchain con autorizzazioni non legittime), ma resta una prima risposta alle problematiche di scalabilità del proof of work dato che la potenza elaborativa richiesta è molto inferiore (su questi temi, alla fine del 2015 Bitfury Group ha rilasciato un White Paper, che ha avuto un’ampia eco tra gli sviluppatori che si occupano dei vari protocolli blockchain, nel quale vengono sottolineate le differenze tra i due protocolli ed evidenziate le criticità del secondo. Il documento Proof of Stake vs Proof of Work, insieme ad altri molto interessanti sul tema, è disponibile su www.bitfury.com) .
È quindi in corso una grande attività da parte della comunità open source per sviluppare proof of stake affidabili: il progetto più importante è Casper Ethereum, sul quale stanno lavorando diversi sviluppatori, tra i quali anche Vitalik Buterin, uno dei fondatori della blockchain Ethereum (sulla quale ritorneremo più avanti); per essere aggiornati sul progetto si può seguire il blog https://blog.ethereum.org.
- Federated Byzantine Agreement (FBA) – Se quelli descritti sono i due protocolli principali, ne sono stati poi creati altri, in parte derivazione di questi, in parte con elementi totalmente nuovi. Tra i più interessanti segnaliamo Federated Byzantine Agreement (FBA), sviluppato da Stellar Development Foundation (e utilizzato dalla seconda metà del 2015 dalla blockchain Stellar) basato su unità di fiducia (quorum slices) decise dai singoli server che insieme stabiliscono il livello di consenso del sistema: rispetto ai modelli di validazione totalmente decentralizzati questo protocollo richiede poche risorse di calcolo e di banda di rete, consentendo applicazioni a più basso costo.
Le 3 evoluzioni della blockchain
Oggi le applicazioni blockchain possono essere suddivise in tre macrocategorie in base allo stadio di sviluppo delle tecnologie utilizzate.
La categoria Blockchain 1.0 riguarda tutte le applicazioni di carattere finanziario per la gestione di criptovalute (indipendentemente dal protocollo di validazione utilizzato) a partire dalla storica (e che attualmente detiene ancora la leadership delle criptovalute) Bitcoin che, da gennaio di quest’anno, ha avuto una vera e propria impennata in termini di valore, per subire poi un brusco arresto proprio nei giorni in cui stiamo andando in stampa: il 15 settembre, infatti, bitcoin ha vissuto il suo venerdì nero con un crollo del 40% del valore (recuperato poi nei giorni successivi), causato dalla decisione della Banca Popolare della Cina di dichiarare illegali le transazioni in criptovaluta, ordinandone il blocco.
La categoria Blockchain 2.0 estende la blockchain a settori diversi dal finanziario grazie all’implementazione degli smart contract: protocolli per computer che facilitano, verificano o fanno rispettare la negoziazione o l’esecuzione di un contratto (vedi riquadro a pag. 26). In pratica si tratta di contratti che si auto-eseguono e applicano in automatico le proprie clausole. Non una novità, dato che la loro ideazione risale alla seconda metà degli anni ’90 del secolo scorso; l’idea innovativa è avere abbinato gli smart contract alla logica della blockchain, idea messa in pratica dal gruppo di sviluppatori guidati da Vitalik Buterin che ha creato la piattaforma Ethereum (basata su blockchain sullo stile di Bitcoin, con una propria criptovaluta denominata Ether, e che, come abbiamo visto, è in prima linea per ridefinire il protocollo di validazione proof of stake) che consente l’esecuzione di piccoli programmi che incorporano una logica di business, ossia degli smart contract.
Figura 4 – Esempio di smart-contract in Ethereum espresso in istruzioni di alto livello
Nella blockchain Ethereum, gli smart contract sono micro-programmi con associato un database in miniatura:
- la modifica del database è possibile solo da parte del programma che lo controlla (codice e dati sono incapsulati);
- il programma può ricevere dall’esterno messaggi che devono essere firmati digitalmente e che vengono esaminati dal programma che decide se e come agire (figura 4).
Gli smart contract in Ethereum vengono eseguiti in una macchina virtuale presente su ogni nodo della rete: ogni step (transazione) del contratto viene attivato da un messaggio (approvato secondo la procedura appena descritta) e si passa allo step successivo; questo avviene in modo automatico e indipendente in tutti i nodi della rete. Ogni step ha un costo in Ether e la piattaforma ha introdotto dei meccanismi per evitare che vengano lanciati programmi “senza fine” e per correggere altre anomalie che potrebbero verificarsi.
Infine ricordiamo che se la blockchain è nata come modalità pubblica per effettuare transazioni (si tratta delle cosiddette blockchain permissionless alle quali chiunque può accedere), Blockchain 2.0 vede il diffondersi di questa tecnologia (in ambiti diversi dalle criptovalute) sempre più all’interno di ecosistemi più o meno chiusi, con la conseguente nascita di blockchain private (denominate permissioned perché richiedono, appunto, una specifica autorizzazione per accedervi).
Il passo successivo sarà quello della Blockchain 3.0 con la diffusione delle Dapp (decentralized applications): un futuro in cui tutti noi utilizzeremo le tecnologie blockchain, probabilmente senza neanche rendercene conto, perché incapsulate nelle “cose” connesse tra loro, senza intervento umano, con applicazioni che si autocompileranno.
Ma per il momento questo futuro non sembra alle porte anche proprio per l’immaturità di protocolli e standard.
Le opportunità della blockchain: consigli da Gartner ai CIO
Come devono dunque comportarsi le aziende, per non perdere il treno di queste nuove piattaforme?
Gartner, pur sollecitando i CIO di tutti i settori a informarsi sulle tecnologie blockchain e a comprenderne i meccanismi perché questo modello “semplifica alla radice la governance di transazioni interaziendali e sociali fino a rimuovere la necessità di arbitraggi centrali”, sottolinea (come del resto abbiamo visto in questo articolo) come molte di queste tecnologie non siano ancora pienamente sviluppate e che, di conseguenza, gli early adopters si troveranno a dover accettare livelli significativamente più elevati di rischio operativo nei prossimi cinque/sette anni. Sul versante dell’offerta, Gartner evidenzia che anche l’ecosistema dei vendor è ancora immaturo e mette in guardia dalle dichiarazioni di questi, affermando che per tutto il 2018, nell’85% dei casi i progetti che avranno il termine “blockchain” nella propria definizione, in realtà rappresenteranno più una dichiarazione d’intenti che un effettivo disegno strutturale che integra questa tecnologia.
Ma, indipendentemente dal fatto che possano essere vinte le sfide tecnologiche, Gartner sottolinea che persistono alcune considerazioni di carattere legale, per esempio, che richiedono molta attenzione, pertanto consiglia ai CIO e al top management di valutare con attenzione l’implementazione di progetti blockchain su vasta scala.
Figura 5 – Matrice SWOT per la blockchain elaborata da Gartner
Diventa quindi quanto mai fondamentale analizzare tutti i fattori della matrice SWOT (Strengths, Weaknesses, Opportunities e Threats) predisposta dalla società di analisi (figura 5) e cercare una risposta a 6 domande strategiche poste dalla stessa Gartner:
- Quali sono le piattaforme presenti oggi sul mercato, già disponibili per la sperimentazione o, addirittura, per andare in produzione?
- In che modo il potenziale sviluppo o l’acquisizione di tecnologie blockchain possono influenzare l’attuale piano strategico IT (in termini di utilizzo di open source, API o integrazione)?
- In che modo i registri distribuiti influenzano le strategie e le operazioni di gestione delle informazioni esistenti?
- Quali sono le competenze necessarie per valutare lo sviluppo e l’implementazione di blocchi?
- Quale sarà l’influenza della blockchain nei processi e nelle policy di gestione del rischio?
- Quali architetture e modalità di implementazione dovrebbero essere considerate in base al contesto aziendale?
Riportiamo infine alcune domande che generano non banali spunti di riflessione espressi da Domenico Gammaldi, Direttore Superiore del Servizio Supervisione sui mercati e sul Sistema dei Pagamenti di Banca d’Italia, nel corso della presentazione dei dati dell’Osservatorio Digital Finance del Politecnico di Milano; Gammaldi sollecita a guardare ai progetti in corso da una prospettiva più ampia: blockchain smetterà di essere una tecnologia per diventare una infrastruttura? Come dovrà quindi essere affrontato il tema della governance dell’infrastruttura? Come fronteggiare il rischio di una frammentazione su più blockchain private e non interoperabili? È sufficiente la sola crittografia a garantire la sicurezza di un’infrastruttura sistemica?