La tecnologia blockchain sta assumendo con il passare del tempo un interesse sempre più crescente. Ciò è dovuto al fatto che le applicazioni basate su blockchain interessano vari settori fra i quali, di maggior espansione, i servizi finanziari e in generale l’Internet delle Cose (IoT). In sintesi la funzione della blockchain è quella di tenere la “contabilità” di transazioni di varia tipologia che possono avvenire in luoghi decentrati. Effettivamente, il blockchain è una sorta di libro mastro. Attualmente vi sono alcune sfide che gli sviluppatori della tecnologia blockchain devono affrontare e superare, in particolar modo riguardanti essenzialmente le problematiche di sicurezza e di limitazione delle dimensioni dei blocchi. Questo articolo vuole esporre una panoramica completa sulla tecnologia blockchain, quindi in primo luogo la descrizione dell’architettura e i relativi algoritmi utilizzati nelle diverse tipologie operative del blockchain. Saranno inoltre sinteticamente descritti i progressi più recenti e le tendenze future.
Introduzione
Per meglio comprendere l’importanza del blockchain, si consideri che questa tecnologia nasce dalla fondazione Bitcoin, ovvero dalla necessità di estendere quanto più possibile a livello mondiale lo sviluppo, in sicurezza, delle transazioni finanziarie, ma non solo, sia nel mondo dell’industria che a livello del privato. Attualmente nel settore finanziario la valuta codificata, o meglio criptata, di uso pubblico, ossia il Bitcoin, sta avendo un successo incredibile, come dimostrato dai miliardi di dollari calcolati negli anni e relativi a transazioni nel mercato mondiale. Proposta nel 2008 e realizzata nel 2009, la tecnologia blockchain è nata dalla necessità di realizzare una struttura in rete pubblica di archiviazione dei dati di transazioni in Bitcoin. Concettualmente, come suddetto, il blockchain può essere considerato un libro mastro informatizzato, ovvero un registro di archiviazione delle transazioni. Le transazioni sono memorizzate in un elenco composto da blocchi sequenziali. Man mano che vengono eseguite delle transazioni, cresce continuamente il numero dei blocchi. Il compito del blockchain è di tenere costantemente aggiornato il registro dei blocchi crittografati e, nel contempo, di eseguire gli algoritmi necessari a garantire la sicurezza dell’utente. La peculiarità della blockchain si fonda principalmente sulle caratteristiche di operatività decentrata, garanzia di anonimato e affidabilità nelle attività di verifica delle credenziali di accesso dell’utente. Senza l’intervento esterno di banche o di qualsiasi altro intermediario, il blockchain consente di effettuare transazioni finanziarie, come ad esempio pagamenti on-line, servizi relativi a beni digitali, oppure attività come la stipula dei cosiddetti contratti intelligenti, servizi pubblici di vario genere, servizi di sicurezza e applicazioni inerenti l'IoT. Un’altra importante caratteristica che rende l’adozione del blockchain appetibile in molti campi è l’immutabilità, ovvero i blocchi del registro blockchain non possono essere alterati una volta memorizzati all’interno del blockchain. Infatti le aziende che vogliono attirare i clienti, vantano nella loro politica commerciale l’adozione del blockchain quale strumento di garanzia di elevata affidabilità e di onestà nel rapporto azienda - cliente. Nonostante l’enorme potenzialità, la tecnologia blockchain risulta menomata a causa della necessità di mantenere ridotta la dimensione del blocco. Questa limitazione tecnica rappresenta un grosso problema da risolvere anche perché implica fattori esterni al blockchain. Attualmente la dimensione del blocco Bitcoin è limitata a 1 MB e, mediamente, viene trattato ogni 10 minuti, mentre la rete Bitcoin è limitata ad una velocità di 7 transazioni per secondo, quindi il risultato è che la rete Bitcoin non è in grado di effettuare transazioni ad alta frequenza. D’altro canto, consentire blocchi di maggiori dimensioni significa impegnare uno spazio di archiviazione maggiore con la negativa conseguenza di creare un rallentamento del traffico di rete. Inoltre, ridotte dimensioni del blocco non creano soltanto il problema di un altrettanto ridotto quantitativo di informazioni, ma anche l’impossibilità di implementare complessi e pesanti algoritmi operanti all’interno del blocco e necessari a garantire un elevato grado di sicurezza. Del resto è necessario il solito compromesso fra volume di transazioni e risorse disponibili. Purtroppo anche un giusto compromesso potrebbe non risolvere il serio problema di perdita di privacy di utenti durante le transazioni, sia con la loro chiave pubblica che privata, e questo inconveniente sicuramente è uno di quei casi che richiede un'urgente risoluzione.
Il blocco del blockchain
Blockchain è una sequenza di blocchi, che contiene un completo elenco delle registrazioni delle transazioni. La figura 1 illustra un esempio di un blockchain.
Un blocco blockchain consiste dell'intestazione del blocco (block header) e del corpo del blocco. La figura 2 mostra come è composto un blocco del blockchain.
In particolare l'intestazione del blocco comprende:
- Versione del blocco: indica le regole di validazione del blocco da rispettare
- Hash: è il valore di tutte le transazioni nel blocco
- Time stamp: è l’ora corrente nel tempo universale
- nBits: è la soglia target di un hash di blocco valido
- Nonce: è un campo a 4 byte, che di solito inizia con 0 e aumenta ad ogni calcolo di hash
- blocco hash padre: è un valore hash a 256 bit che punta al blocco precedente.
Il corpo del blocco è composto da un contatore di transazioni (transaction counter) e dalle transazioni (TX). Il numero massimo di transazioni che può contenere il blocco dipende dalla dimensione del blocco e dalla dimensione di ogni transazione. Blockchain utilizza una crittografia asimmetrica, un meccanismo per convalidare l'autenticazione delle transazioni. La firma digitale basata sulla crittografia asimmetrica viene utilizzata in ambienti inaffidabili.
La Firma Digitale
Ogni utente possiede una coppia di chiavi, chiave privata e chiave pubblica. La chiave privata viene utilizzata per firmare le transazioni e deve essere riservata. Le transazioni firmate digitalmente sono trasmesse su tutta la rete. Tipicamente la firma digitale è strutturata in due fasi: firma e verifica. Con un semplice esempio vediamo cosa avviene in pratica: l’utente Maria vuole inviare un messaggio all’utente Claudio. Nella fase di firma, Maria crittografa i suoi dati relativi al messaggio con la sua chiave privata e invia a Claudio il risultato crittografato dei dati originali. Nella fase di verifica, Claudio convalida i dati ricevuti con la chiave pubblica di Maria. In quel modo Claudio potrebbe facilmente verificare se i dati sono stati manomessi o meno.
Caratteristiche del blockchain
Essenzialmente il blockchain ha le seguenti caratteristiche chiave: decentralizzazione, persistenza, anonimato e verificabilità.
- Decentralizzazione. Nella transazione centralizzata convenzionale, ogni transazione deve essere convalidata attraverso un ente centrale di fiducia (ad esempio la banca centrale), con conseguenti inevitabili costi e colli di bottiglia comportanti il degrado delle prestazioni dei server centrali. Nel sistema blockchain, contrariamente al sistema centralizzato, non è più necessaria l’intermediazione di terze parti, poiché gli algoritmi di consenso in blockchain sono usati per mantenere coerenza dei dati nella rete distribuita durante le transazioni decentrate.
- Persistenza. Le transazioni possono essere [...]
ATTENZIONE: quello che hai appena letto è solo un estratto, l'Articolo Tecnico completo è composto da ben 1975 parole ed è riservato agli ABBONATI. Con l'Abbonamento avrai anche accesso a tutti gli altri Articoli Tecnici che potrai leggere in formato PDF per un anno. ABBONATI ORA, è semplice e sicuro.
buongiorno Fulvio, un bel articolo, hai fatto una panoramica su una tecnologia che sarà il futuro, complimenti.
Permettimi di esprimere un mio pensiero, in questo momento difficile per il nostro paese, che alla fine di questo periodo dovrà affrontare una situazione finanziaria non semplice, se il governo italiano utilizzasse la tecnologia Blockchain per creare una nuova moneta elettronica nazionale, implementare servizi, smart contract e tutto il resto, riuscendo ad anticipare il futuro come nazione potremmo risollevarci in modo strepitoso, da Italiani !
Ma ripeto è un mio pensiero 🙂