l’HASH, o impronta digitale, è il risultato di un algoritmo chiamato appunto funzione di Hash.
Le funzioni di Hash hanno 2 caratteristiche principali:
- da una stringa di lunghezza arbitraria danno una stringa di lunghezza definita;
- sono funzioni irreversibili, e cioè dal risultato ottenuto (la striga di lunghezza definita) non è possibile risalire alla stringa di lunghezza arbitraria di partenza.
Cliccando qui http://www.xorbin.com/tools/sha256-hash-calculator si trova un calcolatore di funzione “S.H.A. 256” che è appunto una delle funzione HASH usata dal sistema bitcoin e che ha la caratteristica di dare come risultato una stringa alfanumerica lunga sempre 64 caratteri a prescindere dalla lunghezza (arbitraria appunto) della stringa di partenza; e si chiama S.H.A. 256 perché di fatto trova un numero binario di 256 cifre/bit (cioè una successione di 265 zeri e uno) che trasformato in esadecimale risulta essere una stringa di 64 caratteri.
Volendo fare degli esperimenti si noterà che inserendo nel campo “data” del calcolatore di S.H.A. 256 il proprio nome di battesimo o un testo più lungo, anche l’intera Enciclopedia Britannica volendo…, e premendo il pulsante “Calculate”, il risultato sarà sempre una stringa lunga 64 caratteri. Si noterà inoltre che variando anche di un solo carattere la stringa di partenza, ad es. metto prima “Federico” e poi riprovo con “Federica”, il risultato ottenuto sarà totalmente diverso da cui si può (almeno) intuire che la funzione non sia reversibile.
Nel paragrafo successivo vedremo come il Sistema Bitcoin utilizza questa funzione per rendere immodificabile il contenuto dei blocchi ed il loro ordine cronologico: