blockchainSchema_red
adv

Quando si sente parlare di Blockchain si pensa subito ai Bitcoin ma, in realtà, c’è molto di più.

La tecnologia Blockchain fu descritta la prima volta nel 1991 da un gruppo di ricercatori per marcare i documenti digitali in modo che non si potessero retrodatare ma solo nel 2009, tuttavia, ha raggiunto la notorietà grazie a Satoshi Nakamoto ed ai Bitcoin che su essa si basano. Spingendo lo sguardo oltre, tale tecnologia viene considerata una possibile soluzione a diverse problematiche di sicurezza e gestione, non solo in campo strettamente finanziario.

Sistemi distribuiti

Se si pensa ai sistemi informativi, comunemente, si immagina un server centrale con un suo database e vari client che afferiscono ad esso per eseguire applicazioni e lavorare sui dati.

Quest’architettura viene chiamata Centralized Ledger Technology dove Ledger è il “libro mastro”, unico custode dei dati. Nell’era del cloud e dei sistemi distribuiti si sono fatte avanti altre 2 architetture:

  1. Decentralized Ledger dove la centralizzazione viene scalata a livello locale, dunque abbiamo più nodi centrali comunicanti ed altri che afferiscono ad essi ma non ancora un sistema di parità.

  2. Distributed Ledger: tutti i partecipanti alla rete hanno le stesse informazioni, sono dunque pari. Un tipo di rete del genere è chiamata p2p (peer to peer), analoga a quella attualmente usata dalla tecnologia torrent o dal vecchio Napster.

La Blockchain è una possibile implementazione di quest’ultima architettura.

Catena di blocchi

Come dice il nome Blockchain è un paradigma architetturale costituito da blocchi legati fra loro. L’implementazione di un database a blocchi può avvenire grazie a varie tecnologie e vari software, quello che ci interessa descrivere è, tuttavia, la logica che ne guida il funzionamento.

Ciascun blocco è un’insieme di transazioni di varia natura, per ciascuna, verranno memorizzati nel blocco dati come mittente, destinatario, pagamento, marca temporale della transazione, firma digitale che ne validi l’autenticità, etc. Prima di essere finalizzato il blocco viene validato da tutti gli appartenenti alla rete Blockchain e, quindi, corredato di 2 codici hash generati da funzioni che, dato un qualunque tipo di dato in ingresso, generano una stringa alfanumerica univoca in uscita:

  1. Hash del blocco corrente: in tal modo si garantirà l’autenticità del blocco in esame, poiché ad ogni minima variazione del dato corrisponderà un hash totalmente diverso

  2. Hash del blocco precedente: questo costituisce la catena tra i blocchi; in tal modo non sarà possibile sostituire il blocco con un altro artefatto, si dovrebbe cambiare tutta la catena.

Finalizzato e validato il blocco, esso verrà aggiunto alla catena. Ciascun partecipante ha una copia della stessa catena, dunque di tutto il database, che verrà aggiornata automaticamente.

Una volta aggiunti i blocchi sono immutabili, la logica d’implementazione consente il solo append (aggiunta di ulteriori blocchi). Ne conseguirà un registro che traccia l’evoluzione di tutte le eventuali modifiche con ulteriori transazioni.

Una grande differenza nell’uso delle chiavi crittografiche rispetto ai sistemi di firma digitale è che non esiste un ente certificatore per le chiavi pubbliche, esse vengono generate dal sistema stesso all’atto della transazione.