20 dicembre 2018

Blockchain

​Bello, ma a cosa può servire?

Forse è capitato anche a voi. Comprare un oggetto tecnologico affascinante, bellissimo, particolare o semplicemente curioso, non perché vi serve, ma appunto perché vi piace. E dopo averlo comprato avere solo il problema di trovare qualcosa da fare con il meraviglioso oggetto. Ad esempio, un termometro ad infrarossi. E usarlo per misurare la temperatura del naso del cane (22°) o della coda del gatto che penzola dalla mensola sul termosifone (34°).

Il fatto è che queste cose sembrano succedere anche nelle aziende, e perfino nei governi. 
Recentemente ci è capitato qualcosa di simile con blockchain. Durante una conversazione qualcuno ha detto qualcosa come "…ma perché non lo facciamo con blockchain?". Il che in quel contesto suonava un po' come se si dicesse, relativamente al piantare un chiodo nel muro "…ma perché non lo facciamo col termometro a infrarossi?". Tecnicamente si potrebbe forse fare, la forma è quella di un martello, e se il chiodo è piccolo e il muro molle, si potrebbe pure riuscire. Ma usare un martello sarebbe più logico ed efficace! 

La verità è che qui non abbiamo idea di cosa si potrebbe fare di utile con blockchain. E soprattutto cosa si potrebbe fare, dove le caratteristiche peculiari di questa tecnologia possano fare la differenza.

Satoshi Nakamoto (in realtà uno pseudonimo) ha descritto blockchain come possibile strumento per l'implementazione di una valuta elettronica "priva di intermediari", dove le transazioni avvengono direttamente tra gli interessati, senza interventi di una autorità di controllo. Abbiamo quindi pensato che poteva essere utile partire dal problema: quali erano gli obiettivi di Nakamoto che si sarebbero raggiunti con blockchain e non con altre strutture dati più convenzionali.

Ovviamente non abbiamo la competenza per spiegare bitcoin o blockchain, e nemmeno sarebbe questo il luogo per farlo. Per chi volesse approfondire, questo può essere un punto di partenza: https://bitcoin.org/en/. Qui trovate il documento originale su bitcoin: https://bitcoin.org/en/bitcoin-paper

Ma un minimo di introduzione è necessario, per avere una base concettuale comune.
Una moneta convenzionale ha una consistenza fisica, fatta di banconote non riproducibili, con numeri seriali univoci. Il possesso fisico della banconota è
ciò che ne definisce la proprietà. La banca centrale emette le banconote e con questo definisce il valore globale del circolante. Anche le transazioni elettroniche passano da una o più banche, di cui ci dobbiamo fidare. 

Con una moneta logica, concettuale, la banconota non esiste, e non esiste (o non serve) nemmeno il seriale univoco. Basta sapere quanto possiedono i singoli, non serve identificare chi ha quale particolare banconota. E blockchain è il meccanismo per gestire proprio questo: chi possiede quanto (non cosa) e soprattutto chi ha dato quanto a chi altro.

Quindi: cosa serviva a Nakamoto, cosa doveva fare?

1-Una base dati
Nel senso più generico del termine, quindi non un database relazionale o isam o altro. Diciamo un qualcosa dove si potessero scrivere informazioni (le transazioni) e poi rileggerle inalterate in seguito. Blockchain è la struttura dati dove risiedono le transazioni e che quindi stabilisce chi ha quanto. 


2-distribuita
Una delle premesse nella introduzione di bitcoin è proprio l'idea di una valuta senza un intermediario, senza un controllore. Le transazioni sono sempre dirette tra gli interessati, con la comunità che fa da garante e da testimone. Quindi il blockchain non è "sui server di qualcuno" ma casomai è sui server di tutti.

3-
non modificabile
Le scritture non devono essere modificabili. Una volta scritte nella base dati rimangono lì per sempre, proprio come le scritture contabili in un ERP rispettabile. E proprio grazie alla condizione 2, i dati non sono "martellabili", cioè non sono modificabili intervenendo manualmente nella base dati, come lo sarebbero se tutto il blockchain fosse ospitato nei server di un singolo.

4-
senza un garante
Secondo Nakamoto uno dei limiti delle valute convenzionali è le necessità di "fidarsi" di qualcuno. Bitcoin invece opera "senza fiducia". Questo probabilmente spiega come mai piace tanto a trafficanti e criminali. L'assenza di una entità di controllo, sostituita da un meccanismo dove la maggioranza decide cosa è vero, fa sì che non ci si debba fidare di nessuno. Si deve solo essere convinti che gli algoritmi siano sicuri e che la maggioranza dei nodi partecipanti alla gestione sia "onesta" (virgolette d'obbligo).

5-
che consenta l'anonimato
Senza una unità centrale di controllo diventa facile garantire l'anonimato ai  partecipanti, che esistono solo in forma di strutture dati (i portafogli) e di chiavi criptografiche. Siccome non serve fidarsi, non serve nemmeno sapere chi è la controparte. Altro motivo per cui bitcoin piace a chi non può transare alla luce del sole. Comunque questa non è tanto una caratteristica di blockchain in sé, ma del modo con cui sono costruiti i portafogli e le transazioni ospitate da blockchain.

L'ultima condizione non è poi così vincolante, e comunque può essere soddisfatta da qualsiasi database, è più che altro questione di implementazione applicativa. Anche la 3 è fattibile con un database implementato correttamente (ma ci si deve fidare…), mentre 4 (e un po' anche 2) sono peculiari e non immediatamente realizzabili con soluzioni classiche. Infine è importante osservare che la 3 esiste solo insieme a 2 e 4, nel senso che un blockchain in mano a un singolo è modificabile. 

Sicuramente blockchain ha anche molti limiti. Uno di questi potrebbe essere il fatto di non essere adatto a gestire basi dati voluminose, cosa da tenere presente se si vuole utilizzarlo in applicazioni reali. 

Una considerazione interessante su bitcoin/blockchain è questa: che motivazione hanno i nodi che partecipano a gestire il sistema? Come mai sono disponibili a essere "testimoni" e garanti delle transazioni? Semplice: facendolo guadagnano bitcoin, anzi i bitcoin si "creano" solamente in questo modo. Analogamente, una comunità potrebbe essere interessata a gestire in modo distribuito un blockchain se tutti i partecipanti hanno un beneficio (non necessariamente in denaro) dalla sua esistenza, e sono contenti del fatto che sono soddisfatte le 5 condizioni.

Blockchain è una struttura dati complessa, con caratteristiche che le consentono di raggiungere gli obiettivi descritti (e probabilmente altri) in modo efficiente. Ma è interessante perché fa almeno queste 5 cose. Se la applichiamo a problemi che non hanno queste esigenze, allora forse ci stiamo complicando la vita, stiamo usando un termometro come martello. 

Ps. Una curiosità: nel documento originale su bitcoin la parola "blockchain" non compare. E non compare nemmeno "block chain", ma compaiono le due parole, separate e in contesti differenti. La concatenazione è avvenuta in seguito.


Segui la nostra
pagina su LinkedIn