FYI.

This story is over 5 years old.

Tecnologia

Zettabyte, algoritmi e chiavi: la matematica allucinante dietro Bitcoin

I secondi passati dal Big Bang ad oggi sono un’inezia rispetto al numero di portafogli disponibili nella blockchain.
Immagine via: Flickr/Bitcongress

Vi ricordate quando Carl Sagan disse che c’erano tante stelle nell’universo quanti granelli di sabbia sulla terra? Un sacco di matematici e fisici hanno dibattuto a partire da questa frase. E se vi dicessi che il numero di wallet — portafogli virtuali per gestire delle criptovalute — disponibili all’interno della blockchain di Bitcoin è circa due volte tanto quello delle stelle nell’universo?

Questa estate su Quora è apparsa una domanda interessante la cui risposta ha rivelato alcuni aspetti misteriosi della matematica, "Ho ricevuto 68 bitcoin da un indirizzo casuale. Cosa dovrei fare, chiamare la polizia?" Dando un attimo per scontato che questa assurda eventualità sia realmente avvenuta, ci sono due cose che stupiscono. Uno: quella quantità di Bitcoin è davvero succulenta, sono più di 300.000€. Due: ricevere del denaro da uno sconosciuto, a meno che tu non abbia condiviso pubblicamente l'indirizzo del tuo wallet, è molto difficile. Perché? Analizziamo la cosa dal punto di vista matematico.

Pubblicità

Ci sono diversi modi per creare un wallet Bitcoin: potremmo iscriverci su blockchain.info oppure scaricare uno dei tanti servizi di wallet disponibili per smartphone. Siti come bitaddress.org permettono di dare una sbirciata al processo di creazione vero e proprio di un wallet.

Il processo di generazione di un wallet Bitcoin su bitaddress.org.

Ogni indirizzo di un wallet Bitcoin è costituito di due parti. La chiave pubblica, ovvero il vero e proprio indirizzo che useremo per ricevere i pagamenti, e la chiave privata, che deve ASSOLUTAMENTE rimanere tale. Bitaddress ad esempio ci permette di creare un wallet cartaceo, una soluzione perfetta per chi ha paura di attacchi malware e intrusioni hacker sul proprio computer. Stampando il wallet fisico saremo al sicuro da tutto. Tranne che dai ladri in casa, ovviamente.

Per generare un indirizzo di un wallet Bitcoin su bitaddress.org viene utilizzato un algoritmo di hashing — lo SHA 256, ovvero un algoritmo che permette di criptare un messaggio, creato dall'NSA nei primi anni '90 — che userà il movimento del vostro mouse e gli input provenienti dalla vostra tastiera per generare del rumore utile alla creazione dell'indirizzo Bitcoin più casuale (e quindi più sicuro) possibile. Alla fine del processo bitaddress.org vi fornirà la chiave pubblica e quella privata del vostro wallet Bitcoin.

I grandi numeri sono il primo nemico degli hacker, ed è questo il motivo per cui le chiavi private sono a prova di penetrazione.

Pubblicità

Il valore della chiave privata viene moltiplicato tramite una funzione di crittografia ellittica e successivamente usato sia come parametro dell'algoritmo di hashing SHA 256 che in quello, meno noto, del RIPEMD160. Gli algoritmi di hashing sono in grado di elaborare una gran quantità di informazione e di restituiscono stringhe di numeri e lettere a partire da esse e, sopratutto, non sono invertibili.

Questa proprietà è davvero importante, perché un algoritmo (facilmente) invertibile nel campo della sicurezza è sintomo di vulnerabilità. Basta pensare a una funzione crittografica come ad una semplice funzione matematica in cui l’input è un numero che viene elevato alla seconda e l’output è il risultato: se così fosse, ci ci basterebbe calcolare la radice quadrata per invertire la funzione e scoprire l’input a partire dall’output.

La chiave pubblica, ovvero l’indirizzo del nostro wallet, ottenuta attraverso questo processo è una serie alfanumerica tra i 26 e i 35 caratteri in formato HEX58. Questa serie di numeri è qualcosa di mai visto: sarete i primi al mondo ad aver creato quella striscia di numeri e lettere e, se vi va bene, sarete gli unici ad ammirarla. Suona strano, no? Provatela a vedere in quest’altro modo. Se voi lanciaste una moneta per 160 volte e segnaste l’ordine in cui escono testa (1) e croce (0), in quanti, al mondo, si ritroverebbero con la vostra stessa serie binaria? Le statistiche dicono nessuno. Quella sequenza di 160 monete lanciate è il vostro indirizzo.

Pubblicità

I grandi numeri sono il primo nemico degli hacker ed è questo il motivo per il quale le chiavi private sono a prova di penetrazione. Ci sono così tanti indirizzi bitcoin da poter generare che se anche noi riuscissimo a penetrare in uno di questi probabilmente non ci troveremmo nulla. Perché sarebbe inutilizzato!

Se anche ogni persona sul pianeta avesse a disposizione un’applicazione in grado di aprire mille miliardi (10^12) di indirizzi Bitcoin al giorno il sistema sarebbe sicuro. Facciamo due calcoli: ipotizziamo che 7 miliardi di persone utilizzino la app per controllare gli indirizzi Bitcoin e immaginiamo che questi controlli vengano ripetuti tutti i giorni dell’anno per ben 100 anni. Il risultato finale è è 1.788.500.000.000.000.000.000.000.000. Più o meno la quantità di granelli di sabbia presenti sul pianeta.

Se esistessero 10^29 indirizzi disponibili vuol dire che le possibilità di trovare un indirizzo contenente una somma di denaro sarebbe a uno su un milione per cent’anni. Bassino, eh? Ma il bitcoin ha 10^48 possibili cassetti, entra nell’ordine dei quindecillioni. Una cifra allucinante, e ce ne rendiamo conto facendo due paragoni piuttosto divertenti. I secondi passati dal Big Bang ad oggi sono un’inezia rispetto al numero di cassetti disponibili nella blockchain di Bitcoin.

E se si ipotizzasse di creare un database per registrare tutti gli indirizzi di Bitcoin trovati? Una buona idea, di nuovo annichilita dai grandi numeri. Se sommiamo la disponibilità di memoria di massa di tutti i computer della Terra otteniamo un zettabyte (10^21 byte), ma per registrare tutti gli indirizzi Bitcoin avremmo bisogno di 25 yottabyte… E uno yottabyte sono 1.000 zettabyte. Per dirla in un mondo ancora più meccanicistico, non esiste sul pianeta Terra una quantità di fonti energetiche tale da poter creare un database simile.

Ricevere in modo accidentale dei Bitcoin è davvero strano e, se succede, si rischia di entrare in un affascinante noir dell’era digitale, i cui personaggi sono ladri di criptovalute, aziende specializzate in tracciamento di Bitcoin (e dai quali potrebbero risalire al vostro indirizzo) e agenzie segrete governative.