Sezione per curiosi: come funziona un hash
Se sei arrivato fin qui per sapere cosa sia una blockchain, teoricamente puoi fermarti.
Questo paragrafo infatti è un’aggiunta che serve a fare chiarezza su un’altra tecnica che sembra complessissima quando la sua base è molto semplice: il calcolo dell’hash.
Sembra infatti tutto molto misterioso, ma in realtà si potrebbe ricostruire con un po’ di matematica delle elementari. La funzione di hash più semplice possibile è il resto della divisione.
Immagina che il nostro sistema di hash sia un complicatissimo algoritmo: “dividi per due”.
Se il mio messaggio segreto è 5 applichiamo la nostra funzione di hash (diviso 2) e troviamo come risultato 1. Questo è il nostro hash.
5 % 2 = 1 (% = resto della divisione)
Ora passiamo ad un’altra persona il nostro hash risultato (1) e questa persona (usando lo stesso algoritmo di hash) può verificare se un messaggio è quello segreto (che lui non conosce) o meno, applicando lo stesso algoritmo e confrontando il risultato con l’hash che gli abbiamo passato.
Noi potremmo quindi essere in possesso dell’hash (1) e sapere come è fatto il nostro algoritmo di hash (diviso 2) e da qui fare una verifica se ci passassero un numero casuale per capire se il numero è valido.
Il numero di partenza era 5 ? Applico il mio algoritmo di hash (diviso 2) e confronto il risultato con l’hash che mi è stato condiviso (1). Se il conto torna per me 5 è valido.
Ovviamente con un algoritmo semplice come questo le possibilità di falsi positivi, ovvero casi in cui ci sembra che il nostro hash sia corretto ma non lo è è molto alta
7%2 = 1
9%2 = 1
…
Per questa ragione gli algoritmi di hash usati nel mondo reale sono molto più complessi, ma le proprietà sono le stesse del nostro algoritmo super semplificato.
La parte importante è che noto l’hash (1) e noto l’algoritmo (diviso 2) io non ho alcun modo per indovinare il numero di partenza.
Tutto chiaro?
Non è così complicato come dicono, vero?