La blockchain è ancora giovane, ma alcune applicazioni sono già operative: tracciabilità degli alimenti, messa in sicurezza delle transazioni commerciali, disintermediazione nella pubblicità, indennizzo da parte di un assicuratore, digitalizzazione dei titoli finanziari, possesso di oggetti in un videogioco… Ma quali sono i principi fondamentali della blockchain? Un tema di attualità, quello delle criptovalute, ambito in cui è nato il concetto, offre l’occasione per un’affascinante indagine matematica.
Bitcoin, la cui capitalizzazione ammonta a 120 miliardi di dollari, è la criptovaluta più nota. Alcune aziende di commercio elettronico accettano già pagamenti in Bitcoin. Facebook, con il suo progetto di criptovaluta Libra (alla fine ostacolato dalle autorità pubbliche), punta a rendere più fluidi gli scambi commerciali B2B («business to business»: attività di un’azienda rivolte a una clientela aziendale) o B2C («business to customer»: attività di un’azienda rivolte direttamente al consumatore) su scala mondiale, ad aumentare il numero degli operatori in questi ambiti e quindi a generare nuove esigenze pubblicitarie che ne accresceranno i ricavi. Le criptovalute suscitano dunque l’opposizione delle autorità di regolamentazione, delle banche centrali e degli Stati.
Alcuni principi di crittografia
-----------------------------------
La blockchain non esisterebbe senza la crittografia, l’arte di rendere riservati i dati e, soprattutto, di autenticarli. Sono essenziali due primitive, algoritmi di basso livello: l’hashing (hash) e la firma.
L’hashing calcola, a partire da un dato in ingresso, un’impronta digitale che permette di identificare rapidamente il dato iniziale, proprio come una firma permette di identificare una persona. Lo standard ISO SHA (Secure Hash Algorithm) trasforma in modo imprevedibile e non invertibile un blocco di alcuni kilobyte in un hash di 256 bit. È impossibile ricavare il messaggio iniziale dall’hash. Si tratta però di un’impossibilità pratica: in realtà basterebbe provare tutte le combinazioni per ritrovarlo, ma occorrerebbe un tempo di calcolo mostruoso. L’hashing può applicarsi a un grande volume di dati, suddividendoli in blocchi e concatenando i calcoli (il calcolo dell’hash del blocco i + 1 incorpora il risultato del calcolo sul blocco i).