SHA-256

 Definizione

SHA-256 (Secure Hash Algorithm 256-bit) è una funzione hash crittografica che produce un output a lunghezza fissa di 256 bit (32 byte) a partire da qualsiasi dato di input arbitrario, rappresentando un pilastro fondamentale della tecnologia blockchain e della sicurezza delle criptovalute. Sviluppato dalla National Security Agency (NSA) degli Stati Uniti e pubblicato dal National Institute of Standards and Technology (NIST) nel 2002 come parte della famiglia SHA-2, SHA-256 è lo specifico algoritmo di hashing utilizzato nel meccanismo di consenso proof-of-work di Bitcoin , nell'hashing dell'intestazione del blocco, nella generazione dell'ID di transazione e nella costruzione dell'albero di Merkle. La funzione è deterministica (lo stesso input produce sempre lo stesso output), resistente alle collisioni (è computazionalmente impossibile trovare due input diversi che producano lo stesso hash), resistente alla preimmagine (non è possibile risalire all'input a partire dall'output) e presenta l' effetto valanga (una minima modifica nell'input cambia completamente l'output). Nel mining di Bitcoin, i miner calcolano ripetutamente gli hash SHA-256 (in realtà un doppio SHA-256, applicando la funzione due volte) per trovare un hash al di sotto di una determinata soglia di difficoltà: questo è il lavoro computazionale che protegge l'intera rete. Oltre a Bitcoin, SHA-256 viene utilizzato nelle firme digitali, nei certificati SSL/TLS, nella verifica dell'integrità dei dati e in numerosi altri protocolli blockchain.

 Origine e storia

Data Event
1993 La NSA progetta SHA-0, il primo algoritmo della famiglia Secure Hash Algorithm.
1995 SHA-1, pubblicato come versione migliorata, è stato ampiamente adottato per la sicurezza digitale.
2002 Il NIST pubblica SHA-256 come parte della famiglia SHA-2 (FIPS PUB 180-2)
2002 SHA-256 si sta diffondendo nei certificati SSL/TLS e negli standard di firma digitale.
2008 Satoshi Nakamoto sceglie SHA-256 come algoritmo di hashing principale per Bitcoin
2009 La rete Bitcoin viene lanciata, rendendo SHA-256 la funzione hash più significativa dal punto di vista economico nella storia.
2010 Le prime implementazioni di mining SHA-256 basate su GPU aumentano drasticamente l'hash rate di Bitcoin.
2013 I miner ASIC progettati specificamente per il calcolo SHA-256 entrano nel mercato, rivoluzionando il mining.
2017 La velocità di hash SHA-256 di Bitcoin supera i 10 exahash al secondo (EH/s)
2024 La velocità di hash SHA-256 della rete Bitcoin supera i 600 EH/s, con miliardi di dollari che ogni anno proteggono la rete.

“La prova di lavoro consiste nella ricerca di un valore che, una volta sottoposto ad hashing con SHA-256, produca un hash che inizia con un certo numero di bit zero.” — Satoshi Nakamoto, Whitepaper di Bitcoin (2008)

 Come funziona

“` +——————————————————————+

| PROCESSO DI HASHING SHA-256 | +——————————————————————+

INGRESSO (qualsiasi dimensione)
"Ciao, Bitcoin!"
v
+—————————————————————trapano
+—————————————————————trapano
v
+—————————————————————trapano
+—————————————————————trapano
v
+—————————————————————trapano
+—————————————————————trapano
v
+—————————————————————trapano
+—————————————————————trapano
v
+—————————————————————trapano
+—————————————————————trapano
v
USCITA (sempre a 256 bit):
b80e58bc0ffd8646b2d44a22e4cd1ae5e24ad3e42d5e3b3b4c8a0db3a6ad0b49
DIMOSTRAZIONE DELL'EFFETTO VALANGA:
Input: “Bitcoin”  → 6b88c087247aa2f07ee1c5956b8e1a9f…
Input: “bitcoin”  → cd5babe8b0b0c8830f87e68f6270bb28…
(Una singola modifica al carattere equivale a un hash completamente diverso!)

+——————————————————————+ “`

Proprietà Descrizione Importanza per la blockchain
Deterministico Lo stesso input produce sempre lo stesso output Consente la verifica indipendente delle transazioni e dei blocchi
Uscita fissa Produce sempre un hash a 256 bit, indipendentemente dalla dimensione dell'input. Standardizza le intestazioni dei blocchi e gli ID delle transazioni
Resistente alla preimmagine Impossibile invertire l'hash per trovare l'input protegge chiavi private e scoperta di nonce nel settore minerario
Resistente alle collisioni È praticamente impossibile trovare due input con lo stesso hash Garantisce l'unicità delle transazioni e dei blocchi
Effetto valanga Una piccola variazione nell'input corrisponde a un output drasticamente diverso Rende l'attività mineraria imprevedibile, garantendo una concorrenza leale.
Calcolo veloce Calcolo diretto efficiente Consente la rapida convalida delle transazioni da parte di tutti i nodi

 In parole semplici

  1. SHA-256 è una macchina per impronte digitali — gli si fornisce un dato qualsiasi (una frase, un file, un intero blocco blockchain) e produce un'impronta digitale esadecimale univoca di 64 caratteri, praticamente impossibile da risalire ai dati originali tramite ingegneria inversa.
  2. Fornisce energia al mining di Bitcoin — i minatori competono per trovare un numero (nonce) che, combinato con i dati del blocco e processato due volte con SHA-256, produca un hash con un numero sufficiente di zeri iniziali. Questa è la "prova di lavoro" che protegge Bitcoin.
  3. Garantisce l'integrità dei dati — se anche un solo bit di una transazione blockchain viene alterato, l'hash SHA-256 cambia completamente, rivelando istantaneamente qualsiasi tentativo di manomissione a ogni nodo della rete.
  4. Si tratta di una funzione unidirezionale — Sebbene il calcolo di un hash SHA-256 richieda millisecondi, non esiste alcuna scorciatoia matematica nota per risalire all'input originale a partire dall'hash. Questa asimmetria è ciò che lo rende crittograficamente sicuro.
  5. Crea la catena nella blockchain — ogni intestazione di blocco Bitcoin contiene l'hash SHA-256 del blocco precedente, creando una catena cronologica indistruttibile in cui la modifica di qualsiasi blocco precedente richiederebbe il ricalcolo di ogni hash successivo.

 Esempi del mondo reale

Scenario Implementazione/Attuazione Risultato
Estrazione Bitcoin L'hardware ASIC esegue trilioni di calcoli SHA-256 al secondo per trovare hash di blocco validi La rete elabora circa 7 transazioni al secondo con un budget di sicurezza annuale di oltre 30 miliardi di dollari da parte dei miner.
Verifica della transazione Ogni ID di transazione Bitcoin (TXID) è un doppio hash SHA-256 dei dati serializzati della transazione. Ogni nodo può verificare autonomamente l'autenticità di una transazione senza dover fare affidamento su un'autorità centrale.
Costruzione dell'albero Merkle Tutte le transazioni in un blocco Bitcoin vengono sottoposte a hashing pairwise utilizzando SHA-256 in una radice Merkle. Consente ai wallet SPV leggeri di verificare l'inclusione delle transazioni senza scaricare interi blocchi
Archiviazione delle password negli exchange di criptovalute Le password degli utenti vengono sottoposte a hashing SHA-256 (con salting) prima di essere memorizzate nei database degli exchange. Anche in caso di violazione del database, le password originali non possono essere recuperate dagli hash memorizzati.

 Vantaggi

Vantaggio Descrizione
Sicurezza comprovata Oltre due decenni di crittanalisi senza aver trovato vulnerabilità pratiche; rimane computazionalmente impossibile da decifrare
Adozione diffusa Utilizzato da Bitcoin, numerosi altcoins, SSL/TLS e sistemi governativi, garantendo un ampio supporto e strumenti
Verifica efficiente Sebbene il mining sia computazionalmente intensivo, la verifica di un hash è estremamente veloce, consentendo una partecipazione dei nodi più leggera.
Ottimizzazione hardware L'ampio sviluppo di ASIC per SHA-256 ha creato la rete computazionale più sicura della storia umana.
Standardizzazione Lo standard federale certificato NIST (FIPS 180-4) garantisce l'accettazione e l'interoperabilità a livello normativo.

 Svantaggi e rischi

Rischio Descrizione
La minaccia del calcolo quantistico I computer quantistici teorici con un numero sufficiente di qubit potrebbero utilizzare l'algoritmo di Grover per ridurre la sicurezza di SHA-256 da 2^256 a 2^128
Consumo di energia Il mining di proof-of-work SHA-256 consuma enormi quantità di elettricità, sollevando preoccupazioni ambientali.
Centralizzazione dell'ASIC L'hardware specializzato per il mining SHA-256 concentra la potenza di calcolo nelle mani di operazioni ben finanziate, minacciando potenzialmente la decentralizzazione.
Nessun sale incorporato SHA-256 da solo è vulnerabile agli attacchi rainbow table per l'hashing delle password; richiede meccanismi di salting aggiuntivi
Rischio fisso dell'algoritmo La dipendenza di Bitcoin da un'unica funzione hash implica che qualsiasi futura vulnerabilità di SHA-256 richiederebbe una modifica del protocollo a livello di rete.

Suggerimenti per la gestione del rischio:

  • Monitorare gli sviluppi in calcolo quantistico e sostenere la ricerca sulle funzioni hash crittografiche post-quantistiche
  • Diversificare il portafoglio di criptovalute su blockchain che utilizzano diversi algoritmi di hashing per ridurre il rischio legato a un singolo algoritmo.
  • Sostieni le iniziative di decentralizzazione del mining e i pool che distribuiscono la potenza di calcolo geograficamente
  • Quando si utilizza SHA-256 per l'hashing delle password, è sempre consigliabile combinarlo con l'aggiunta di salt e l'estensione della chiave (bcrypt, scrypt, Argon2).
  • Rimani informato sugli standard di crittografia post-quantistica del NIST e sulle loro implicazioni per la sicurezza della blockchain.

 FAQ

D: Perché Satoshi Nakamoto ha scelto SHA-256 per Bitcoin?

A: SHA-256 è stato scelto perché era la funzione hash crittografica più rigorosamente analizzata e affidabile disponibile nel 2008. Era certificata NIST, non presentava vulnerabilità note, offriva un livello di sicurezza a 256 bit ritenuto sufficiente per la sicurezza a lungo termine ed era sufficientemente efficiente dal punto di vista computazionale per un'implementazione diffusa, pur essendo abbastanza complessa da fornire una prova di lavoro significativa.

D: Cosa significa “double SHA-256” in Bitcoin?

A: Bitcoin applica SHA-256 due volte in sequenza: l'output del primo hash viene utilizzato come input per un secondo calcolo SHA-256. Questo viene scritto come SHA-256(SHA-256(dati)). Questo doppio hashing fornisce una protezione aggiuntiva contro alcuni attacchi teorici, come gli attacchi di estensione della lunghezza, che possono influenzare le funzioni hash a passaggio singolo.

D: L'algoritmo SHA-256 potrebbe mai essere violato?

R: Sebbene al momento non esistano attacchi pratici contro SHA-256, gli algoritmi crittografici possono teoricamente essere indeboliti nel tempo con l'avanzare della potenza di calcolo e la scoperta di nuove tecniche matematiche. La minaccia più discussa è il calcolo quantistico, ma anche un computer quantistico su larga scala ridurrebbe la sicurezza effettiva di SHA-256 a soli 128 bit tramite l'algoritmo di Grover, un valore comunque estremamente elevato per gli standard attuali.

D: In cosa si differenzia SHA-256 da SHA-3?

A: SHA-256 (parte della famiglia SHA-2) e SHA-3 sono entrambe funzioni hash approvate dal NIST, ma utilizzano architetture interne completamente diverse. SHA-256 utilizza una costruzione Merkle-Damgaard, mentre SHA-3 utilizza una costruzione sponge (Keccak). Producono output diversi per lo stesso input e SHA-3 è stato progettato come backup nel caso in cui fossero state scoperte vulnerabilità in SHA-2, non come sostituto.

D: Qual è l'hash rate SHA-256 della rete Bitcoin?

A: Nel periodo 2024-2025, la velocità di hash SHA-256 combinata della rete Bitcoin superava i 600 exahash al secondo (EH/s), il che significa che la rete eseguiva collettivamente oltre 600 quintilioni (600 x 10^18) di calcoli di doppio hash SHA-256 al secondo, rendendola la più grande rete di calcolo dedicata nella storia dell'umanità.

 Termini correlati

[[ Nonce ]], [[ Intestazione del blocco ]], [[ Albero di Merkle] ]

 fonti

  • NIST FIPS PUB 180-4 — Standard di hash sicuro
  • Whitepaper di Bitcoin — bitcoin.org/bitcoin.pdf (Satoshi Nakamoto, 2008)
  • Crittografia applicata di Bruce Schneier
  • Padroneggiare Bitcoin di Andreas M. Antonopoulos
  • Dati sulla velocità di hash di Blockchain.com — blockchain.com/charts/hash-rate

Consiglio di UPay: Comprendere SHA-256 è fondamentale per capire come Bitcoin e molte altre blockchain mantengono la sicurezza. Sebbene non sia necessario conoscere la matematica alla base di ogni ciclo di compressione, sapere che SHA-256 crea impronte digitali univoche e irreversibili aiuta a comprendere perché i dati della blockchain sono considerati a prova di manomissione e perché il mining richiede un reale lavoro computazionale.

Disclaimer: Questo contenuto ha solo scopo didattico e non costituisce consulenza finanziaria. Si consiglia di condurre sempre le proprie ricerche (DYOR) e di consultare consulenti finanziari qualificati prima di prendere decisioni di investimento.

UPay — Rendere le criptovalute un'enciclopedia

Novità & Eventi speciali