Blockchain: cos’è e come funziona. Intervista a Paolo Mori

Puoi darci una prima definizione di blockchain?
Per farla semplice possiamo paragonarla a un libro mastro, un registro. Una blockchain pubblica – d’ora in poi mi riferirò a questo tipo – è una collezione di registrazioni, raggruppate in blocchi collegati tra loro con tecniche crittografiche in modo da formare una sequenza o catena (da qui il nome). Il contenuto delle registrazioni varia a seconda del tipo di blockchain, nel caso di Bitcoin, per esempio, si riferisce a trasferimenti di criptovaluta.

Quali sono i principali punti di forza di questa tecnologia?
La blockchain funziona grazie alle risorse messe a disposizione da tutti i partecipanti, non esiste un’autorità centrale che ne garantisce il funzionamento. L’aspetto più innovativo è la capacità di assicurare l’integrità e la disponibilità delle registrazioni nel tempo, senza bisogno di rapporti di fiducia tra i partecipanti, senza cioè che nessuno debba farsi garante.

Come si regola un modello così decentralizzato?
In una blockchain chiunque può leggere le registrazioni e richiedere di inserirne di nuove. Chiunque può inoltre partecipare alla creazione di nuovi blocchi, ma solo ottenendo il consenso degli altri partecipanti tramite uno specifico algoritmo (che può variare da una blockchain all’altra). Uno dei più utilizzati è il “Proof of Work” (PoW) che permette di aggiungere un nuovo blocco a chi risolve per primo una sfida crittografica. Per questo motivo è una tecnologia ad alto consumo energetico: la risoluzione della sfida richiede moltissimo lavoro computazionale. Va ricordato infine che il vincitore, “abilitato” a inserire un nuovo blocco, riceve una ricompensa in criptovaluta.

Che cosa cambia nelle blockchain private?
La blockchain privata è gestita da un soggetto che decide chi può leggere i blocchi, inserirne di nuovi e sottomettere registrazioni. Quindi, diversamente dal caso della blockchain pubblica, i partecipanti devono fidarsi del soggetto gestore. Dato che esiste un soggetto che ne garantisce le proprietà (immutabilità del registro, persistenza delle transazioni), possono essere utilizzati algoritmi di consenso più semplici, quindi più economici dal punto di vista computazionale.

Lato user, potresti definire la blockchain una tecnologia alla portata di tutti?
Rispondere a questa domanda non è facile. Posso però dire che, come succede per altre tecnologie, gli utenti finali avranno a disposizione semplici interfacce grafiche per le specifiche applicazioni realizzate sopra la blockchain, in grado di “nascondere” la reale complessità.

Quante tipologie di blockchain esistono? 
Esistono tre generazioni di blockchain. La prima è nata circa dieci anni fa per lo scambio di denaro, ad esempio Bitcoin. Le blockchain di seconda generazione, come Ethereum, supportano la registrazione e l’esecuzione di semplici programmi, chiamati smart contract. La terza generazione risolverà i problemi di quelle precedenti, come ad esempio la scalabilità e la comunicazione tra blockchain diverse.

Quali sono i principali ambiti di applicazione?
Il primo è stato, appunto, lo scambio di criptovaluta senza bisogno di intermediari fidati. Con l’avvento degli smart contract sono nate poi molte altre applicazioni. La tecnologia blockchain può essere utilizzata con successo, ad esempio, nel campo della finanza e delle assicurazioni, per le applicazioni notarili e per il diritto d’autore, per il voto elettronico, per la gestione delle supply chain e delle filiere, come quella alimentare per la tracciabilità dei prodotti, per il commercio di energia, per le gift card, i programmi fedeltà e per le online social networks.

Le parole sicurezza e blockchain vanno di pari passo?
La blockchain non è di per se stessa un meccanismo di sicurezza. D’altro canto, fa uso di tecniche crittografiche per garantire l’integrità e la disponibilità delle registrazioni memorizzate nei suoi blocchi.

Quali attacchi possono minare la robustezza di una blockchain?
La sicurezza di una blockchain dipende da vari fattori. Uno dei più interessanti riguarda gli smart contract che, caricati sulle blockchain, diventano visibili a tutti. Se uno smart contract avesse una vulnerabilità, questa potrebbe essere rilevata e quindi sfruttata da chiunque. Nel 2018, alcuni ricercatori hanno analizzato un milione di smart contract e in 34.200 di essi hanno rilevato vulnerabilità. Eventuali attacchi potrebbero portare, ad esempio, a trasferimenti non autorizzati, perdite di criptovaluta o a computazioni inutili. Naturalmente, la responsabilità di produrre smart contract sicuri (senza vulnerabilità) è degli sviluppatori. Esistono però anche soluzioni, alcune già in uso altre allo studio, per rilevare eventuali falle prima che siano caricati e per mitigare l’impatto degli attacchi

Eventuali punti deboli su cui si sta lavorando?
Sicuramente la scalabilità, nel senso di capacità di incrementare il numero di registrazioni in un certo periodo di tempo, aspetto che rende anche difficile l’utilizzo della blockchain in applicazioni popolari. Nell’ottobre del 2017 venne lanciata, per esempio, l’applicazione Cryptokitties che, avendo molto successo, generò un elevato numero di registrazioni, portando alla congestione di Ethereum nei primi giorni di dicembre. Il semplice aumento delle risorse computazionali a disposizione non è però sufficiente a risolvere il problema della scalabilità, occorre agire anche sul modello di consenso. Un’alternativa all’algoritmo Proof of Work è il Proof of Stake che tiene conto della quantità di criptovaluta già posseduta da chi chiede di creare un nuovo blocco. Infine, un altro limite su cui si sta lavorando è la possibilità di fare interoperare blockchain differenti, come ad esempio Bitcoin ed Ethereum, aspetto che sicuramente potrebbe far aumentare molto le possibili applicazioni.