Che cos'è un Hash? Il Motore Crittografico di Bitcoin
Che cos'è un Hash?
La parola "hash" deriva dal verbo inglese "to hash," che significa tritare o sminuzzare qualcosa in pezzi. È una descrizione efficace. Una funzione hash prende qualsiasi input, che si tratti di una parola, una frase, un record di transazione o un intero file, e lo trasforma in una stringa di caratteri a lunghezza fissa. Quell'output viene chiamato hash o valore hash.
Indipendentemente da quanto sia grande o piccolo l'input, l'output ha sempre esattamente la stessa lunghezza. Esegui SHA-256 su un singolo carattere o su un documento di 500 pagine, e il risultato è sempre una stringa di 64 caratteri.
Ecco come appare nella pratica:
bitcoin → 6b88c087247aa2f07ee1c5956b8e1a9f4c7f892a70e324f1bb3d161e05ca107b
Bitcoin → b4056df6691f8dc72e56302ddad345d65fead3ead9299609a826e2344eb63aa4
bitcoin! → 9f5b4fe16c6f4970dc17d6db04e76e6dc2d2e0b834fcdbb27b73f1c3c5bb0e65
Cambiare la prima lettera da minuscola a maiuscola, o aggiungere un singolo punto esclamativo, produce un risultato completamente diverso. Non esiste alcuna relazione visibile tra i due output. Questo comportamento non è un difetto. È una delle proprietà di sicurezza più importanti che una funzione hash può avere.
The Avalanche Effect
A single character change transforms the entire hash. There is no pattern between input and output.
Come Funziona una Funzione Hash
Una funzione hash è una macchina a senso unico. I dati entrano, un hash esce. Il processo non può essere invertito. Non esiste una formula che prende un hash e recupera l'input originale.
L'unico modo per scoprire quale input ha prodotto un determinato hash è provare gli input uno per uno fino a trovare una corrispondenza. Questo approccio si chiama brute-force. Per SHA-256, il numero di output possibili è 2^256. Questa cifra è più grande del numero stimato di atomi nell'universo osservabile. Eseguire una ricerca esaustiva non è fattibile con nessuna tecnologia esistente oggi o che i ricercatori considerino realistica nel prevedibile futuro.
In crittografia, questa proprietà si chiama resistenza alla preimmagine. È il motivo per cui gli hash possono essere usati come impronte digitali affidabili.
Le Cinque Proprietà di un Hash Crittografico
Affinché una funzione hash sia utile in sistemi critici per la sicurezza come Bitcoin, deve soddisfare cinque requisiti.
Deterministica. Lo stesso input produce sempre lo stesso output. Nessuna eccezione. Se oggi esegui l'hash della parola "blockchain" e lo rifai tra dieci anni usando SHA-256, otterrai lo stesso risultato entrambe le volte.
Efficiente. La funzione deve calcolare rapidamente. Bitcoin elabora migliaia di transazioni per blocco e le processa tutte. La velocità è fondamentale.
A senso unico. Dato un output hash, deve essere computazionalmente impossibile trovare l'input che lo ha prodotto. Questa è la proprietà che rende gli hash utili per proteggere i dati.
Resistente alle collisioni. Due input diversi non devono produrre lo stesso output hash. Quando accade, si chiama collisione hash. Una collisione in un contesto critico per la sicurezza significa che l'algoritmo è compromesso e non può più essere considerato affidabile.
Effetto valanga. Una piccola modifica all'input deve causare un cambiamento grande e imprevedibile nell'output. Questo garantisce che input simili non possano essere usati per approssimare o indovinare un hash.
In reality, SHA-256 has never produced a known collision. This diagram shows what a collision would look like if it occurred.
Collisioni Hash
Una collisione hash si verifica quando due input diversi producono lo stesso output hash.
Considera due utenti, Nakamoto e Finney, che inviano ciascuno una transazione diversa. Se i loro due input producessero in qualche modo lo stesso hash, la rete non avrebbe modo di distinguere le transazioni. Sarebbe un fallimento critico.
Per SHA-256, non è mai stata trovata alcuna collisione. Algoritmi più vecchi, tra cui SHA-1 e MD5, hanno documentate vulnerabilità alle collisioni e non sono più considerati sicuri per uso crittografico. SHA-256 è stato progettato con fondamenta matematiche significativamente più solide e rimane resistente alle collisioni nel 2026.
SHA-256: L'Algoritmo che Bitcoin Utilizza
Bitcoin usa SHA-256, che sta per Secure Hash Algorithm con una lunghezza di output di 256 bit. È stato sviluppato dalla National Security Agency degli Stati Uniti e standardizzato dal National Institute of Standards and Technology nel 2001 come parte della famiglia SHA-2.
Altri membri della famiglia SHA-2 includono SHA-224, SHA-384 e SHA-512. Il numero nel nome indica la lunghezza dell'output in bit. SHA-256 produce 256 bit, rappresentati come una stringa esadecimale di 64 caratteri usando le cifre da 0 a 9 e le lettere da a a f.
Bitcoin applica SHA-256 due volte in molte parti del protocollo, una pratica nota come double SHA-256 o SHA-256d. Il secondo passaggio di hashing aggiunge protezione contro alcune debolezze teoriche nell'hashing a singolo round, anche se SHA-256 stesso non ha richiesto questa difesa nella pratica.
Come gli Hash Fanno Funzionare Bitcoin
Gli hash non sono un dettaglio tecnico che gira silenziosamente in background. Sono il meccanismo che conferisce a Bitcoin le sue proprietà più fondamentali: resistenza alle manomissioni, consenso decentralizzato e cronologia verificabile delle transazioni. Compaiono in tre punti critici del protocollo.
Mining e Proof of Work
Quando i miner competono per aggiungere il prossimo blocco alla blockchain, stanno risolvendo un puzzle di hashing senza scorciatoie.
Il protocollo Bitcoin richiede che un header di blocco valido, quando sottoposto a hash con SHA-256, produca un risultato che inizia con un certo numero di zeri iniziali. Più zeri sono richiesti, più difficile è il puzzle. Questa soglia è stabilita dall'aggiustamento della difficoltà, che si ricalibra ogni 2.016 blocchi, circa ogni due settimane, per mantenere il tempo medio dei blocchi vicino a dieci minuti indipendentemente da quanta potenza di calcolo totale sia attiva sulla rete.
I dati delle transazioni all'interno di un blocco sono fissi. I miner non possono cambiarli. L'unica variabile che controllano è un piccolo numero nell'header del blocco chiamato nonce, abbreviazione di "number used once." I miner scorrono miliardi di valori nonce al secondo, eseguono l'hash dell'header del blocco ogni volta e verificano se il risultato è inferiore al target attuale. Quando un miner trova un hash valido, trasmette il blocco alla rete e raccoglie la ricompensa del blocco.
Questo processo si chiama Proof of Work. L'hash valido è la prova. Produrlo ha richiesto un vero sforzo computazionale e non c'è modo di falsificarlo o saltare il lavoro.
Il numero totale di tentativi di hash che la rete Bitcoin esegue al secondo si chiama hash rate. Nel 2026, l'hash rate collettivo di Bitcoin si trova nell'ordine delle centinaia di exahash al secondo, il che significa centinaia di quintilioni di calcoli ogni singolo secondo.
La Catena: Collegare i Blocchi Insieme
Ogni blocco Bitcoin memorizza l'hash del blocco che lo precede. Questo è ciò che trasforma una sequenza di blocchi in una vera catena.
Se qualcuno tenta di alterare una transazione in un blocco precedente, l'hash di quel blocco cambia. Ma il blocco successivo contiene l'hash originale. La catena ora ha una rottura. Ogni blocco dopo quello alterato non è valido.
Per riscrivere con successo la cronologia, un attaccante dovrebbe ri-minare il blocco alterato e ogni blocco successivo più velocemente di quanto la rete onesta continui a costruire in avanti. Con l'attuale hash rate di Bitcoin, ciò richiederebbe il controllo di oltre la metà di tutta la potenza di mining nel mondo simultaneamente. Questa è la base del modello di attacco al 51%. Alla scala attuale di Bitcoin, un tale attacco costerebbe più di quanto potrebbe mai guadagnare.
Alberi di Merkle e Integrità delle Transazioni
All'interno di ogni blocco, le transazioni sono organizzate usando una struttura chiamata albero di Merkle, dal nome dell'informatico Ralph Merkle.
Ogni transazione viene prima sottoposta a hash individualmente. Poi coppie di hash di transazione vengono combinate e sottoposte a hash insieme. Quel processo si ripete fino a quando rimane solo un hash in cima all'albero. Quell'hash finale si chiama Merkle root.
La Merkle root è memorizzata nell'header del blocco. Funziona come un'impronta digitale crittografica compatta per ogni transazione nel blocco. Se una singola transazione viene modificata, la Merkle root cambia, il che cambia l'hash del blocco, il che rompe la catena.
La struttura dell'albero di Merkle consente anche una verifica efficiente. Un nodo Bitcoin leggero può confermare che una specifica transazione è inclusa in un blocco senza scaricare ogni altra transazione in quel blocco. Questa capacità si chiama Simplified Payment Verification, o SPV, ed è stata descritta da Satoshi Nakamoto nel whitepaper originale di Bitcoin.
Hash e Indirizzi Bitcoin
Quando un portafoglio Bitcoin genera un indirizzo da una chiave pubblica, esegue due funzioni hash in sequenza: prima SHA-256, poi RIPEMD-160. Il risultato è il tuo indirizzo Bitcoin.
Questo significa che il tuo indirizzo è un hash di un hash della tua chiave pubblica, non la chiave pubblica stessa. Anche se in futuro venisse scoperta una debolezza nella crittografia a curve ellittiche, un attaccante dovrebbe comunque invertire due livelli di hashing per collegare il tuo indirizzo alla tua chiave pubblica sottostante. Ad oggi, questo è computazionalmente impossibile.
Hash e Informatica Quantistica
I computer quantistici sono progettati per risolvere certi problemi matematici molto più velocemente dei computer classici. Questo solleva una domanda legittima sulla sicurezza a lungo termine.
La preoccupazione specifica per SHA-256 riguarda un algoritmo chiamato algoritmo di Grover. Su un computer quantistico sufficientemente potente, l'algoritmo di Grover potrebbe cercare gli output hash significativamente più velocemente del brute-force su hardware classico. In termini pratici, questo ridurrebbe la sicurezza effettiva di SHA-256 da 256 bit a circa 128 bit.
Un livello di sicurezza a 128 bit è ancora considerato forte secondo gli standard convenzionali. Per confronto, la maggior parte delle infrastrutture bancarie oggi utilizza la crittografia simmetrica a 128 bit.
La minaccia quantistica più urgente per Bitcoin non è affatto SHA-256. Riguarda la crittografia a curve ellittiche usata per generare chiavi pubbliche e private. Un computer quantistico che esegue l'algoritmo di Shor potrebbe teoricamente ricavare una chiave privata da una chiave pubblica, il che è un problema che non riguarda SHA-256 allo stesso modo.
Nessun computer quantistico capace di eseguire entrambi gli attacchi alla scala richiesta esiste attualmente. La comunità degli sviluppatori Bitcoin segue gli sviluppi nella ricerca sull'informatica quantistica e ha discusso potenziali aggiornamenti del protocollo, inclusi schemi di firma post-quantistica, come misura di contingenza. Qualsiasi cambiamento del genere richiederebbe un ampio consenso nella rete, come tutti i cambiamenti al protocollo Bitcoin.
Riepilogo
Un hash è un'impronta digitale crittografica a lunghezza fissa generata da qualsiasi dato di input. SHA-256, l'algoritmo al cuore di Bitcoin, è deterministico, efficiente, a senso unico, resistente alle collisioni e produce output che cambiano completamente con la minima variazione dell'input.
In Bitcoin, gli hash svolgono tre ruoli essenziali: alimentano il processo di mining Proof of Work, collegano ogni blocco a quello precedente per creare una catena resistente alle manomissioni e organizzano le transazioni all'interno dei blocchi attraverso gli alberi di Merkle. Gli hash aggiungono anche uno strato protettivo agli indirizzi Bitcoin, ponendosi tra la chiave pubblica e l'indirizzo visibile sulla rete.
Senza le funzioni hash, le proprietà fondamentali di Bitcoin di immutabilità, consenso decentralizzato e cronologia verificabile delle transazioni non sarebbero possibili.
Fatti Chiave
SHA-256 produce un output di 64 caratteri indipendentemente dalla dimensione dell'input, che si tratti di una singola lettera o dell'intero testo di un libro.
Il numero di output possibili di SHA-256 è 2^256, un numero più grande del numero stimato di atomi nell'universo osservabile.
Se anche un solo carattere dell'input cambia, l'hash risultante cambia completamente. Questo si chiama effetto valanga.
I miner di Bitcoin eseguono collettivamente migliaia di miliardi di calcoli hash al secondo per trovare il prossimo blocco valido.
Ogni blocco Bitcoin contiene l'hash del blocco precedente, il che rende la catena resistente alle manomissioni.
Domande frequenti
Un hash è una stringa di caratteri a lunghezza fissa prodotta elaborando qualsiasi dato attraverso una funzione matematica. Indipendentemente dalla dimensione dell'input, l'output ha sempre la stessa lunghezza. Lo stesso input produce sempre lo stesso output ed è praticamente impossibile invertire il processo.
SHA-256 è considerato sicuro perché un attacco brute-force richiederebbe un numero astronomico di tentativi per trovare un input specifico a partire da un output dato. Nessun computer sulla Terra si avvicina a quel livello di potenza di calcolo, il che rende SHA-256 praticamente inviolabile con la tecnologia attuale.
L'effetto valanga significa che anche la più piccola modifica all'input produce un output hash completamente diverso. Non esiste alcuna relazione visibile tra l'hash originale e quello nuovo. Cambiare una lettera da minuscola a maiuscola è sufficiente a trasformare completamente il risultato.
Teoricamente, un computer quantistico sufficientemente potente potrebbe usare l'algoritmo di Grover per ridurre la sicurezza effettiva di SHA-256 da 256 bit a circa 128 bit. Questo sarebbe ancora considerato sicuro secondo la maggior parte degli standard. La comunità degli sviluppatori Bitcoin monitora questa minaccia e ha la capacità di aggiornare il protocollo se necessario.
Una collisione hash si verifica quando due input diversi producono lo stesso output hash. Per algoritmi sicuri come SHA-256, trovare intenzionalmente una collisione è considerato computazionalmente impossibile. Se venisse mai trovata una collisione in SHA-256, l'algoritmo sarebbe considerato compromesso e dovrebbe essere sostituito.
Fonti
- 1.Antonopoulos, Andreas M.: Mastering Bitcoin. O'Reilly Media, 2017
- 2.NIST: Secure Hash Standard (SHS), FIPS PUB 180-4
- 3.Nakamoto, Satoshi: Bitcoin: A Peer-to-Peer Electronic Cash System
- 4.Blocktrainer: Was ist ein Hash?
- 5.Bernstein, Daniel J. / Lange, Tanja: Post-quantum cryptography. Nature, 2017
Non è una consulenza finanziaria. CanoeBit pubblica esclusivamente contenuti educativi. Nulla di quanto scritto costituisce una raccomandazione di acquisto, vendita o detenzione di asset.
Continua il percorso Come funziona Bitcoin
Passo 3 di 11