Mining

Funzione di hash

Detto anche: hash, hashing, funzione hash

Una funzione di hash trasforma qualsiasi dato in un'impronta di lunghezza fissa, impossibile da invertire. È il calcolo alla base del mining.

Una funzione di hash prende in ingresso un dato di qualsiasi dimensione, una parola, un file o un'intestazione di blocco, e produce un'impronta di lunghezza fissa chiamata hash. Con SHA-256, usata da Bitcoin, questa impronta misura sempre 256 bit, cioè 64 caratteri esadecimali, che si tratti di una semplice frase o di un'intera enciclopedia.

Una buona funzione di hash crittografica ha tre proprietà. È deterministica: lo stesso input dà sempre la stessa impronta. È a senso unico: è impossibile risalire all'input partendo dal risultato. E ha un effetto valanga: cambiare un solo carattere stravolge completamente l'impronta. È questo che rende il mining equo: nessuno può prevedere il risultato, bisogna fare il calcolo per conoscerlo.

L'hashrate di una macchina conta proprio quanti hash calcola al secondo. Bitcoin applica SHA-256 due volte di seguito a ogni intestazione di blocco. Altre monete hanno scelto funzioni diverse, come Scrypt, kHeavyHash o Blake3, ed è per questo che serve una macchina diversa per ciascuna. Quando una scheda prodotto indica un algoritmo, in realtà vi dice quale funzione di hash i suoi chip sanno calcolare.

La nostra pagina che confronta ASIC e schede grafiche mostra perché un chip specializzato calcola queste impronte molto più velocemente di un processore generico.