Pietre e blockchain

La blockchain, finalmente

“E la blockchain?
La blockchain continua a viaggiare nell’universo telematico, inattaccabile, infrangibile, inesorabile, raccogliendo nuove transazioni e certificando la proprietà di beni assolutamente immateriali”.

Con questa immagine aerea concludevo l’ultimo articolo scritto per questo blog, facendo solenne promessa che nel successivo articolo avrei fornito finalmente una spiegazione più dettagliata della tecnologia della blockchain.
L’articolo successivo sarebbe questo, ma voi, miei prodi lettori, avrete ormai capito di quale cialtroneria io sia capace pure di venir meno alla parola data… Eppure voglio mettercela tutta, anche se, principiando questo nuovo articolo, non so se alla fine veramente avrò contribuito alla vostra erudizione a riguardo delle blockchain

Breve ripasso

Abbiamo grosso modo visto con quale obbiettivo sia stata sviluppata la tecnologia delle blockchain, a che questioni essa vuole dare risposta.

La blockchain, in definitiva, è una struttura dati che permette di rappresentare un registro di transazioni il quale deve avere la caratteristica fondamentale di non necessitare di un intermediario che ne curi e ne garantisca la consistenza.

Perché si può aver bisogno di un registro così congeniato? Sostanzialmente per definire il possesso di beni e gestirne lo scambio senza istituire un organismo centrale di controllo. Il controllo sarebbe intrinseco al registro stesso.
Questo registro, dicevamo, dovrebbe essere disponibile per tutti, non essere modificabile se non per registrare legittime transazioni e certificare la proprietà di un bene.

Informaticamente parlando, la struttura dati che rappresenterà questo registro dovrà essere velocemente disponibile a tutti gli interessati al sistema (magari perché ospitata da un’architettura distribuita e non su un server centrale, e quindi esistente simultaneamente in un numero sufficiente di copie identiche ospitate da più nodi informatici) e protetta intrinsecamente da ogni modifica non legittima: questa struttura dati è, appunto, la blockchain, così come la immaginò il suo ideatore, il mitologico Satoshi Nakamoto, che la ideò per supportare il suo sistema di moneta immateriale, il Bitcoin.

Pietre, blocchi e catene

Facciamo ora un excursus e qualche passo indietro nella storia dell’umanità.
C’è stato un tempo nel quale il possesso di un bene era certificato dal fatto che quel bene stava con me. Sono un pastore, ho delle pecore con me: quelle pecore sono mie. Se ho bisogno di farina, prendo una pecora e la do a te che hai con te della farina, e tu mi dai in cambio una quantità congrua della tua farina. La pecora è certificata essere mia perché è con me, e la farina è certificata essere tua perché sta con te. Quando io ti do la pecora, la pecora da quel momento starà con te e sarà tua. Allo stesso modo la farina diviene mia, perché la porto via con me. Non c’è bisogno di nulla che certifichi il possesso di questi beni.

Certo, oltre che per lo scambio il possesso può mutare anche per qualche forma di furto. D’altra parte, quanti legittimi patrimoni attuali aventi origini remote sono sorti da qualche forma di acquisizione furtiva…

Anche quando il bene diventa unità di scambio (la pecora diviene pecunia), è il fatto di averlo con sé che certifica il suo possesso. Così vale per le monete di oro o di argento: è il fatto di averle tra le mani, o nella bisaccia, che certifica chi ne è il possessore.

Ma se il bene di scambio è inamovibile, o di difficile spostamento, oppure risulta pericoloso spostarlo, perché si rischia il furto, lo smarrimento, il degrado o la perdita, occorre trovare strumenti di rappresentazione di quel bene. Questi strumenti saranno la carta moneta, i documenti di credito, o magari i traveler’s cheque, tutti beni senza un valore intrinseco ma rappresentanti altri beni usati come unità di scambio. Tutti questi strumenti implicano l’esistenza di un’istituzione di garanzia, una banca, ad esempio.

Ma si può fare anche diversamente.

Gli abitanti dell’isola di Yap, un’isola della Micronesia, circa seicento anni fa, vennero a conoscere la rocce calcaree presenti nella “vicina” isola di Palau. Siccome a Yap non c’è roccia calcarea, agli occhi degli “yappesi” quel tipo di roccia parve assai preziosa. Si cominciò a far estrarre il calcare di Palau e a farlo portare, via piroga, a Yap. Attenzione, non si trattava di semplici pietruzze, ma veri e propri megaliti che in origine dovevano essere a forma di pesce (infatti il nome di queste pietre è rai, che è il nome con il quale a Yap si chiamano le balene, le quali, certo, non sono pesci, ma hanno la forma di pesce).
Col tempo queste pietre presero la forma di cerchio, una forma più comoda per il trasporto, e furono dotate di un foro centrale, per essere appese a bastoni di dimensioni adeguate, sempre allo scopo di favorirne il trasporto da Palau a Yap.

Tra Palau e Yap ci sono circa quattrocentocinquanta chilometri di distanza via mare, e quindi non solo la produzione, ma anche il trasporto assumeva contorni epici. Così il valore di un pietra era dato dalla sua bellezza ma anche dalla storia complicata della sua estrazione e del suo trasporto (che poteva durare molto tempo e costare la vita di qualche marinaio).

Le pietre rai non erano però solo un bene di prestigio, divennero un bene di scambio, una vera e propria moneta, ciascuna con il proprio valore unico, legato alla storia della pietra.
Le pietre, una volta posizionate a Yap, raramente vennero spostate dal luogo dove furono poste. Poteva mutare il possessore, ma la pietra restava dov’era. Effettivamente: un bene di scambio ma inamovibile.

Le pietre passavano virtualmente di mano in mano a motivo di matrimoni, acquisto di beni, eredità, ma senza che venissero spostate. Addirittura di alcuni rai, coinvolti in naufragi, non si sapeva l’esatta posizione sul fondo dell’oceano: eppure avevano un possessore, un valore e una storia che certificava l’uno e l’altra.

Proprio così: il valore di una pietra e il suo possesso erano certificati dalla sua storia, raccontata e condivisa dalla gente di Yap. Tutti conoscevano la storia di un determinato rai, e chi ne fosse l’attuale possessore, e quali scambi l’avevano vista protagonista.

Quando il possessore di un rai voleva cederlo a qualcuno in cambio di qualcosa, doveva fare in modo di rendere la cosa nota a tutta la gente di Yap, la quale anzitutto certificava che quel rai era di suo possesso; quindi ciascuno memorizzava il nuovo episodio della storia di quel rai, cioè il cambio di proprietà per l’acquisizione di un certo bene. La storia del rai cambiava e tutti ne erano a conoscenza, e aggiornavano il registro virtuale mentale, condiviso oralmente, relativo a quel rai.
Insomma, l’uso dei rai come moneta di scambio era regolato da un registro condiviso, la cui veridicità era sancita dal consenso del gruppo di utilizzatori.

Ecco, ai giorni nostri un sistema simile a questo può essere gestito dalle blockchain: la blockchain è la tecnologia che rende operabile una struttura dati che emula il funzionamento del sistema dei rai

Ed ecco la blockchain!

Chissà se Satoshi Nakamoto conosceva la storia di Yap e dei rai al momento di mettere a punto la sua moneta virtuale, il Bitcoin. Certo è che avendo a che fare con un bene di scambio intangibile, e quindi inamovibile poiché non dotato di spazialità, e non volendo affidarsi a un meccanismo di mediazione per gestire gli scambi (anzi: l’idea era proprio quella di creare una moneta che fosse indipendente da qualsiasi autorità di mediazione), il nostro necessitava una struttura dati con caratteristiche simili a quelle del registro orale condiviso degli abitanti di Yap.

Questa struttura dati, e le tecnologie che la gestiscono, è la blockchain, dicevamo.

Un sistema di blocchi incatenati

Come ci racconta il suo nome, la blockchain è una catena di blocchi di dati connessi (incatenati) tra loro in maniera non modificabile.
Ogni blocco contiene le informazioni riguardanti una transazione: nel caso dei bitcoin, il passaggio di questa valuta da un utente a un altro.

Per inciso, come ogni struttura dati la blockchain può essere usata per memorizzare dati relativi a oggetti, situazioni, applicazioni differenti, cose insomma che non siano bitcoin. Possiamo dire che non esistono i bitcoin senza blockchain, ma esistono blockchain senza bitcoin.

Riguardo alla non modificabilità dei dati, requisito fondamentale perché un sistema di scambio possa essere affidabile e contare con la fiducia dei suoi utenti, una blockchain garantisce la veridicità delle transazioni che tiene registrate (la “storia” che viene raccontata dalla blockchain, per restare nella metafora dei rai) attraverso tre meccanismi: gli hash dei blocchi, l’esistenza di più copie identiche della blockchain, la proof of work (il sigillo) della transazione.

 

Lo “hash” di un blocco, la sua impronta unica

Ogni blocco concatenato possiede un’impronta unica, che dipende direttamente dal suo contenuto. Se varia il contenuto, varia anche l’impronta (hash in “informatichese”).

In una blockchain ogni blocco contiene l’impronta informatica del blocco che lo precede nella catena. Se qualcuno tenta di modificare un blocco della catena, l’impronta contenuta nel blocco che lo segue non combacerà più con la nuova situazione del blocco malvagiamente modificato.

Per far tornare le cose, il falsificatore dovrebbe modificare anche il blocco successivo, ma questa modifica porterebbe alla modifica dell’impronta di questo blocco, e quindi le modifiche dovrebbero essere fatte su tutti i blocchi che seguono.

Un lavoraccio!

 

Una blockchain, tante copie

Ora, la cosa sembra complicata, però con la capacità di elaborazione che hanno i moderni computer, non è impensabile che un falsificatore possa modificare in tempi brevi tutte le impronte di una blockchain, facendola apparire come veritiera.

Qui ci viene in soccorso il fatto che una blockchain non sia ospitata su un server centralizzato, poiché il sistema è volutamente decentralizzato e non esiste un’autorità di garanzia unica.

Il sistema è gestito da più nodi (server) indipendenti, ciascuno dei quali ospita una copia della blockchain, si occupa di tenerla aggiornata e di condividerla con gli altri nodi, e verifica la correttezza delle transazioni.

Insomma, all’interno di un sistema (ad esempio quello dei bitcoin) esistono tante copie della blockchain quanti sono i nodi (cioè i server) che partecipano al sistema. Questo fatto fa sì che non sia sufficiente falsificare una copia della blockchain, ma occorre falsificare anche tutte le altre copie, o almeno la maggioranza.

Un po’ come se a Yap, per falsificare l’attestazione della proprietà di un rai, ci si mettesse a convincere tutti gli abitanti a cambiare la storia di quel rai

Una blockchain, insomma, è basata sul consenso, ancorché un consenso elettronico.

 

Sigillare le transazioni

C’è poi un terzo meccanismo che aiuta a rendere improbabile la falsificazione di una blockchain, ed è la proof of work, potremmo dire l’applicazione di un “sigillo” alla singola transazione.
È l’aspetto che mi è parso più complicato da capire, per cui proverei a spiegarmi mostrando passo a passo la registrazione di una transazione nel sistema dei bitcoin.

Supponiamo che un utente decida di trasferire una quantità di bitcoin a un altro utente.
Dopo essere stata creata e firmata digitalmente, la transazione sarà inoltrata ai nodi che gestiscono il sistema; magari, per motivi di efficienza, neppure a tutti, ma solo a quelli più prossimi.
La transazione non viene immediatamente inserita nella blockchain, ma viene collocata nell’apposita area di memoria che ciascun nodo riserva alle transazioni che sono in attesa di ricevere il “sigillo”, cioè che su ciascuna di esse venga eseguita la proof of work.

Ma chi, e come, esegue le proof of work?
Nel sistema della blockchain non operano solo i nodi, che come abbiamo visto hanno come compito principale quello di rendere disponibili una copia della blockchain stessa, ma anche quelli che in gergo sono chiamati miner, “minatori”, i quali si occupano di sigillare, appunto, le nuove transazioni affinché possano essere legittimamente inserite nella blockchain, nel registro condiviso.

L’operazione di sigillo consiste nel calcolo di un numero che sarà assegnato alla transazione, un numero che tiene conto del contenuto della transazione e che quindi la identifica. Questo calcolo è pensato per essere abbastanza complicato, in modo che ci voglia un certo tempo per eseguirlo. I “minatori” offrono le risorse dei loro computer per eseguire questo calcolo in cambio di una ricompensa: il primo “minatore” che estrae il sigillo della nuova transazione riceve una somma.

Dato che questa somma, nel caso dei bitcoin, non proviene dai beni in circolazione, ma si aggiunge ad essi, si capisce bene il motivo della metafora della miniera e del minatore. Come un minatore trova una pepita d’oro, o un cavatore di roccia calcarea estrae un nuovo rai, aggiungendo nel sistema di scambio un bene che prima non c’era, così i minatori dei bitcoin, risolvendo il calcolo per ottenere il “sigillo” della nuova transazione, aggiungono al sistema di scambio una nuova porzione di bene, che diviene di loro proprietà.

Qualcuno dirà: d’accordo, è un bel giochetto, ma a che serve? Il calcolo della proof of work serve a ottenere un numero che sigilli la transazione, però in modo che per calcolarlo ci voglia un certo tempo (nel caso del sistema dei bitcoin si dice che in media ci vogliono dieci minuti), così che se qualcuno avesse in mente di falsificare la blockchain dovrebbe fare i conti con il tempo biblico necessario per rieseguire i calcoli che servono per sigillare tutte le transazioni, almeno da un certo punto della catena in avanti. D’altro lato il meccanismo della ricompensa è necessario per stimolare i “minatori” a offrire alla causa le proprie risorse di calcolo.

Qualcun altro a sua volta dirà: ma se ci vuole così tanto tempo per calcolare il sigillo di ogni transazione, quanto tempo ci vorrà per verificare la blockchain ogni qual volta lo si ritiene necessario? In effetti il trucco sta nel fatto che il problema matematico che dà come risultato il numero-“sigillo” (che viene chiamato nonce) richiede tempo per essere risolto, ma la verifica che quel numero sia il risultato corretto richiede assai meno tempo.

Proprio come a scuola: impiegavamo un sacco di tempo a risolvere i problemi di matematica, ma poi il professore impiegava un niente a verificare che la nostra soluzione fosse corretta…Quindi nessun problema da questo punto di vista.

 

Per finire: niente inflazione!

Bah! Ci sarebbe un sacco da dire ancora sulle blockchain, e magari quello che ho raccontato vi sarà parso marginale o poco chiaro. E vabbè…

Mi piacerebbe però concludere con un’annotazione che riguarda il sistema Bitcoin (quindi un caso di blockchain particolare) e uno degli aspetti che ritengo geniali nella sua progettazione.

In fondo il sistema Bitcoin è un sistema completamente virtuale, ma vorrebbe simulare sistemi che stanno nel mondo reale, e magari sostituirsi ad essi, avendo conseguenze con il mondo reale. Insomma: il sistema Bitcoin non è un videogioco, lo scambio di moneta virtuale permette di acquisire beni nel mondo reale, malgrado il Bitcoin nel mondo reale non esista… Adesso però non voglio perdermi in disquisizioni su cosa si intende per “mondo reale”.

Quello che voglio dire è che un lingotto d’oro gode ai nostri occhi di una certa realtà (ancorché possa trovarsi in un remoto forziere di Fort Knox) e di un certo valore, così come un rai gode agli occhi di un abitante di Yap di una certa realtà (ancorché possa trovarsi in fondo all’oceano) e di un certo valore. Inoltre recuperare nuovo oro o tagliare nella roccia calcarea nuovi rai non sono imprese semplici: oro e rai sono insomma risorse preziose perché limitate e difficili da reperire.

Ma una criptomoneta? Non c’è il rischio che sia troppo facile “estrarla”? Abbiamo visto infatti che per ogni nuova transazione c’è l’estrazione e la messa in circolo di una certa quantità di bitcoin.

Quello che mi sembra geniale è che il progettista del sistema Bitcoin abbia fin dall’inizio stabilito che anche i bitcoin fossero una risorsa limitata: non potranno esistere più di ventun milioni di bitcoin. Nel momento in cui scrivo non sono ancora tutti in circolazione, ne vengono di volta in volta “estratti” di nuovi, ma ci sarà un momento nel quale si raggiungerà il totale di ventun milioni di bitcoin in circolazione e quindi non ci sarà più possibilità di estrazione. Geniale: dare un limite a qualcosa che essendo virtuale potrebbe essere illimitato. In un certo senso è far violenza a se stessi e al senso di infinito che ci abita, quello che se mal vissuto può diventare delirio di onnipotenza. Ma più prosaicamente parlando, si tratta di evitare il pericolo di inflazione.

Di più: ogni quattro anni circa l’importo della ricompensa per i “minatori” si dimezza. Per fare un esempio, fino al 2023 il compenso per ogni transazione “sigillata” era di 6,25 bitcoin, dal 2024 è di 3,125 bitcoin. Più ci avviciniamo all’“esaurimento” dei “giacimenti” di bitcoin, più l’estrazione si dirada…

Ma quindi sarà sempre meno conveniente fare il “minatore”? C’è il rischio che il sistema Bitcoin collassi perché i “minatori” cesseranno di offrire il loro indispensabile contribuito?

Sembra che non ci sia questo pericolo. Da un lato già oggi già oggi i miner ricevono anche una parte delle commissioni che sono pagate da coloro che effettuano le transazioni: un domani, esauriti i bitcoin da estrarre, resterà comunque questa fonte di guadagno. Sarà minore? Probabilmente sì, ma forse solo nominalmente, poiché si prevede che i bitcoin acquisiranno un valore reale maggiore dell’attuale. D’altro lato forse spariranno i piccoli “minatori”, mentre quelli più grandi, che avranno accumulato una congrua quantità di bitcoin, avranno interesse a mantenere funzionante il sistema: non potranno permettersi di mettere fuori corso la criptomoneta di cui hanno pieni i loro forzieri!

 

È ora di finirla, veramente

Direi che è ora di concludere.
Non so se vi ho aiutato a capire qualcosa della tecnologia delle blockchain: forse chi si è giovato di più di quest’articolo è stato il sottoscritto…
E chissà? Forse in futuro ritorneremo su questo argomento: nel frattempo vi saluto. State bene!

Stefano Deponti