ATTUALITÀMATEMATICASCIENZEULTIMI ARTICOLI

Cosa è una Blockchain?

Un paio di secoli fa, un’isoletta sperduta dei Caraibi.

Il governatore dell’isola, uomo fidato della Compagnia delle Indie Occidentali, ha il compito di tenere a registro tutte le entrate e le uscite economiche.

Nel suo libro mastro annota tutte le transazioni che si svolgono sull’isola, dalla vendita di terreni, all’acquisto di partite di bótti di Rum.

Gli abitanti e la Compagnia delle Indie prendono il libro mastro del governatore come riferimento assoluto.
Se nascono delle controversie relative a una contrattazione, si va a controllare il libro mastro.
Se la Compagnia vuole fare delle proiezioni economiche per gli anni successivi, va a controllare lo storico del libro mastro.

La fiducia riposta nel governatore è forte, egli è uomo preciso e onesto.
Tuttavia, egli è umano e, in quanto tale, soggetto a delle pressioni emotive.

Si dà il caso che la marmaglia di pirati locali abbia preso in ostaggio la figlia del governatore.
I pirati sono furbi e sanno che, per quanto benestante, il governatore non dispone di somme di denaro tali da renderli immensamente ricchi.
Molto più remunerativo è invece chiedere come riscatto di manipolare a loro vantaggio le entrate del libro mastro, per arricchirsi di terreni e tesori a scapito della popolazione e della Compagnia delle Indie.

Il fatto che tutto il registro sia nelle mani di un individuo, che per quanto onesto costituisce l’unico punto di rottura, rende il sistema fragile dal punto di vista della sicurezza.

Come è possibile registrare le informazioni dell’isola caraibica in maniera più sicura?

Una possibile risposta informatica, a distanza di secoli, è rappresentata dalle Blockchain.

La struttura dati

Una Blockchain è una struttura dati della famiglia dei registri distribuiti: questo significa che il registro non è nelle mani di un singolo individuo (come potrebbe essere il governatore) ma è mantenuto da tutti i partecipanti alla rete.

Nello specifico una blockchain è una lista di dati, memorizzata lungo una sequenza di blocchi, collegati tra loro attraverso la crittografia.
Questa lista viene mantenuta da una rete di nodi (i partecipanti) che trovano tra loro un consenso per scrivere nuovi dati in maniera che tutti i dati siano immutabili e verificabili.

Tante informazioni in poche frasi, cerchiamo di spacchettarle e capirle meglio.

Possiamo immaginare una blockchain come un treno che parte solo con la locomotiva.

Ad ogni fermata del suo tragitto aggiunge un vagone alla sua coda.

Ogni vagone possiede due cose fondamentali:

  1.  La merce, ovvero i dati memorizzati.
  2.  Il collegamento al vagone che lo precede, per far in modo che segua il resto del treno.
    In che modo?

Questo collegamento è effettuato tramite una funzione di hash: queste funzioni prendono in pasto i dati contenuti in un vagone e restituiscono una sequenza di lettere e numeri.
Se è facile (per un computer) calcolare la funzione di hash di un vagone, è pressoché impossibile risalire solo dall’hash alla sequenza di lettere e numeri di vagone a cui fanno riferimento.

Per collegare il vagone a quello precedente basta inserirvi dentro la sequenza di lettere e numeri relativa al vagone che lo precede.
Ovvero, ogni blocco contiene l’hash del blocco che lo precede.

Figura 1: il trenino blockchain

Ad esempio, come da Figura 1, il primo blocco è la locomotiva.
Il secondo blocco è un vagone che contiene sia dati sia l’hash della locomotiva.
Analogamente, il terzo blocco contiene sia dati sia l’hash del secondo blocco.

In questa maniera, i dati inseriti sono sempre verificabili e non modificabili da malintenzionati pirati. (Intuitivamente, se qualcuno cambiasse i dati i collegamenti tra i vagoni salterebbero).

Inoltre, è sempre possibile verificare quale partecipante ha inserito un particolare dato.
Ogni partecipante possiede due chiavi, che possiamo pensare come la coppia (username, password): una privata (la password), che serve come firma per l’inserimento; una pubblica (lo username), che viene visualizzata da chi da fuori esamina l’inserimento.

Infine, non esiste una sola copia di questo treno, ma ogni entità che ha interesse sul carico dei vagoni ne possiede una copia, aggiornandola ad ogni stazione e verificando che ogni operazione sia compiuta correttamente.

Minare transazioni

Come si fa a scrivere su un nuovo blocco?
Cosa accade ad ogni nuova stazione quando viene collegato un nuovo vagone?

Nel seguito, faremo riferimento a quanto accade sulla piattaforma Ethereum, una delle più usate al momento.
(È probabile, inoltre, che in futuro le cose possano cambiare, per essere aggiornati vi consigliamo di consultare ad esempio [2]).

Ogni utente appartenente alla rete può acquistare la valuta della piattaforma, da utilizzare per effettuare operazioni di scrittura o scambiarla con altri utenti.

Possiamo pensare questa valuta come gettoni del casinò o delle sale giochi: non hanno valore intrinseco.

Una volta in possesso dei nostri gettoni, saremo in grado di scrivere sulla blockchain, cambiare lo stato del libro mastro, o, seguendo il linguaggio specifico, “invocare una transazione”.

Cosa potremmo voler scrivere?
Ad esempio, il passaggio di x gettoni dal nostro portafoglio digitale a quello di qualcuno che ci abbia offerto un servizio.

La transazione comporterà il passaggio di questi x gettoni, più una commissione da pagare a chi si prenderà in carico la scrittura su un nuovo blocco, ovvero il minatore della transazione.

Possiamo pensare l’invocare una transazione come il compilare un modulo per invio di un bonifico o di una raccomandata.

Una volta compilato il modulo, la nostra transazione finisce in una grande vasca con tutte le altre in attesa.
I minatori scelgono a loro discrezione (in base al prezzo della commissione) alcune transazioni dalla vasca da prendersi in carico.

A questo punto, parte una gara di velocità tra tutti i minatori che si sono presi in carico delle transazioni.

L’obiettivo è fare in modo che la funzione di hash calcolata su tutte le transazioni da inserire rispetti un vincolo molto rigido cercando di modificare un parametro.

Ad esempio, tale vincolo potrebbe essere che l’hash delle transazioni contenga almeno una determinata quantità di cifre “0”.

Per la natura crittografica delle funzioni di hash, non è possibile modificare il parametro di partenza in maniera furba per ottenere l’output sperato.
L’unico modo è provare tutte le possibili configurazioni finché non si ha fortuna.

Il primo minatore che riesce a completare l’obiettivo può scrivere il nuovo blocco e riscuotere le commissioni.
Tutti gli altri, controlleranno che l’obiettivo del vincitore sia corretto, aggiorneranno la propria copia della blockchain e ripartiranno da zero per la gara successiva.

Questa maniera di trovare consenso su chi scriverà il blocco viene chiamata “proof of work”.

I milioni (o addirittura miliardi) di tentativi effettuati da tutte le macchine per la scrittura di ogni singolo blocco, sono inutilizzabili per i blocchi successivi.
Il consumo di elettricità che viene sprecata in questa maniera è incredibile, così come l’inquinamento che questo comporta.

In questa direzione, la speranza è che vengano adottate a breve delle forme di raggiungimento di consenso molto meno dispendiose per l’ambiente.

Molto più di criptovalute

A livello mediatico, molta importanza viene data alle criptovalute, ovvero ai gettoni utilizzati dalle diverse piattaforme blockchain disponibili.

È opportuno ribadire il fatto che il valore intrinseco di una criptovaluta è [solitamente, n.d.r.] nullo. La quotazione delle criptovalute, non collegate al valore di nessun altro bene, dipende esclusivamente da logiche di mercato speculative.

Chi scrive questo articolo non si occupa di economia.
Gli sia però concesso di fare la seguente riflessione: come in tutti i sistemi complessi, è molto difficile fare predizioni attendibili sulle criptovalute a lungo termine.
Una previsione del meteo di domani fatta oggi ha una buona misura di attendibilità.
Una previsione del meteo di uno specifico giorno a mesi di distanza fatta oggi ha un’attendibilità quasi nulla.

Le potenzialità delle blockchain non si esauriscono con lo scambio di criptovalute, anzi.

Permettono di sviluppare soluzioni software per gestire tutte quelle situazioni in cui la fiducia reciproca delle parti in causa non è completa, fornendo ad esempio servizi di notarizzazione digitale.

Queste soluzioni non per forza devono essere collegate a grandi piattaforme pubbliche, ma possono magari essere private, caso in cui il ruolo dei gettoni digitali perde di importanza rispetto alla sicurezza del mantenimento dei dati.

Ad esempio, è possibile creare soluzioni che possano conservare in maniera sicura dati di origine medica, monitorare le filiere industriali, fornire e salvare certificazioni digitali che siano personali o aziendali.

Quindi devo fare in modo che tutti i miei dati siano conservati in una blockchain per tenerli al sicuro?
No, le blockchain sono strumenti molto potenti, ma allo stesso tempo costosi computazionalmente e non sono la panacea per la conservazione dei dati.

A seconda dell’utilizzo e di cosa si vuole ottenere, possono essere la soluzione migliore così come la meno consigliata.

Sempre con un pizzico di buon senso.

Fonti

[1]: Satoshi Nakamoto, “Bitcoin: A Peer-to-Peer Electronic Cash System”, 2009

[2]: Ethereum.org [ita]

[3]: Blockchain – Wikipedia [ita]

Lorenzo De Biase

Matematico, ricercatore e sbadato professionista. Non chiedetegli di fare i conti al ristorante, non è capace: vi ritroverete a dover pagare quantità immaginarie ed essere costretti a lavare i piatti per qualche settimana.

Un pensiero su “Cosa è una Blockchain?

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *