Capire Bitcoin – che cos’è un hash

Vi siete mai chiesti perché “Ho dimenticato la password” vi fa sempre creare una nuova password invece di dirvi semplicemente qual era la vostra vecchia password?

È perché il sito web su cui vi siete registrati non sa quale fosse la vostra vecchia password! Ha solo salvato l’hash della password e non ha alcun modo di capire quale fosse l’originale. Questo per una questione di sicurezza. Immaginate di salvare le password in chiaro nel database. Chiunque ne avesse l’accesso potrebbe vedere le password di ciascuno di noi.

Quando si effettua l’accesso e si preme sul tasto Login, il sito web prende la nostra password e la sottopone ad una funzione di hashing, quindi la confronta con l’hash memorizzato nel database e se corrisponde ci concede l’ingresso nel sito.

Le funzioni che generano gli hash sono un concetto chiave in informatica, in crittografia e, ebbene sì, anche in bitcoin.

È impossibile spiegare come funziona il bitcoin senza prima capire che cos’è un hash.

In informatica gli hash sono usati per tutti i tipi di cose. Per iniziare a comprenderne l’importanza facciamo finta che un hash sia come un’impronta digitale. La funzione di hash è un particolare generatore di impronte in cui possiamo inserire qualsiasi dato e informazione e lei ci tirerà fuori un’impronta digitale.

Può essere utilizzata qualsiasi funzione matematica, ma una buona funzione di hash garantirà sempre che i diversi dati di input inseriti avranno ciascuno impronte digitali univoche. Non importa la quantità di informazioni che vengono immesse, l’hash risultante è sempre diverso. Se, invece, inseriamo medesime informazioni la funzione di hash presenterà sempre lo stesso identico risultato.

La funzione di hash SHA-256

Una delle funzioni di hash più comuni utilizzate oggi si chiama SHA-256, che sta per “Secure Hash Algorithm 256 bits”.

Questa funzione ci garantisce due cose importanti:

  1. è molto probabile che ogni impronta digitale sia unica al mondo
  2. se fornisco solo l’impronta digitale non c’è modo di indovinare quali siano i dati di input

Per approfondire il secondo concetto vi presento una domanda di esempio a cui dovete provare a rispondere: quali sono i dati di input che hanno generato l’hash SHA-256 seguente?

bab62dfc96a96e1d6479f5fada6658cc4fc4bf18efa1713f97189df135ab188a

Qualcuno ha qualche idea idea?
Non credo proprio! Secondo quello che sappiamo sulla matematica è praticamente impossibile capire la risposta a questa domanda. I dati di input potrebbero essere qualsiasi cosa. Forse è la lettera “S”, o forse è l’intero testo del “Signore degli anelli”. Non lo sapremo mai a meno che non sia io a comunicarlo. La risposta è Blog di Sergio Casizzone

Per verificare che sto dicendo la verità potete provare ad andare su questo sito dove potete divertirvi a controllare e a fare i vostri esperimenti https://xorbin.com/tools/sha256-hash-calculator


Vai al capitolo precedente: Capire Bitcoin – Che cos’è la crittografia

Vai al prossimo articolo: Capire Bitcoin: che cos’è il mining

3 Risposte a “Capire Bitcoin – che cos’è un hash”

I commenti sono chiusi.