block header
L'intestazione del blocco è la sezione di metadati di 80 byte di ogni blocco Bitcoin. Contiene sei campi: l'hash del blocco precedente, la radice Merkle di tutte le transazioni, un timestamp, il target di difficoltà, la versione e il nonce.
L'intestazione del blocco è una struttura dati di 80 byte che si trova in cima a ogni blocco Bitcoin. Contiene esattamente sei campi: il numero di versione del protocollo, l'hash dell'intestazione del blocco precedente (che lo collega alla catena), la radice Merkle (un singolo hash che impegna ogni transazione nel blocco), un timestamp Unix, il target di difficoltà codificato (chiamato bits) e il nonce. Questi sei campi sono ciò che i miner hashano ripetutamente nel processo di mining.
La radice Merkle è particolarmente importante: viene derivata hashando le transazioni a coppie fino a ottenere un unico hash radice. Ciò significa che se una qualsiasi transazione nel blocco viene alterata, la radice Merkle cambia, il che modifica l'hash dell'intestazione del blocco, invalidando il blocco. L'intero set di transazioni è quindi confermato in soli 32 byte all'interno dell'intestazione.
I miner hashano solo l'intestazione di 80 byte, non l'intero blocco, che può essere di diversi megabyte. Questo è efficiente: l'algoritmo di hashing SHA-256 può elaborare l'intestazione di 80 byte molto rapidamente, consentendo agli ASIC moderni di eseguire migliaia di miliardi di tentativi di hash al secondo. Quando un miner regola il nonce ed esaurisce tutti i quattro miliardi di valori possibili senza trovare un hash valido, modifica altri campi come il timestamp o la transazione coinbase per reimpostare lo spazio del nonce.