hash
Una funzione matematica che converte qualsiasi input in una stringa di caratteri a lunghezza fissa. Bitcoin usa SHA-256 per collegare i blocchi e verificare i dati. Gli hash sono unidirezionali: l'input originale non può essere recuperato dall'output.
Una funzione hash è un algoritmo matematico che prende qualsiasi input, che si tratti di una singola parola, di un record di transazione o di un intero blocco di dati, e produce una stringa di caratteri a lunghezza fissa chiamata hash o digest. Indipendentemente da quanto grande o piccolo sia l'input, l'output ha sempre la stessa lunghezza. Bitcoin usa SHA-256, che produce un output di 256 bit, tipicamente visualizzato come una stringa esadecimale di 64 caratteri.
Le funzioni hash sono unidirezionali: dato un output hash, è computazionalmente impossibile determinare l'input originale. Sono anche deterministiche, il che significa che lo stesso input produce sempre lo stesso output. Anche una piccola modifica all'input, alterare un singolo carattere, produce un hash completamente diverso. Questa sensibilità è nota come effetto valanga e rende gli hash strumenti affidabili per rilevare qualsiasi modifica ai dati.
In Bitcoin, gli hash svolgono diversi ruoli critici. Ogni blocco contiene l'hash del blocco precedente, che li collega insieme e rende la blockchain resistente alle manomissioni. Il mining richiede di trovare un output hash che cada al di sotto di un valore obiettivo specifico, il che richiede un enorme sforzo computazionale. Anche gli identificatori delle transazioni sono hash, consentendo a chiunque di cercare qualsiasi transazione nella blockchain tramite la sua impronta digitale unica.