Crypto glossary

Block header

Definition

A block header is the compact metadata at the top of each block, including the previous block's hash and the Merkle root, that links the chain together.

Every block is split into a header and a body. In Bitcoin the header is exactly 80 bytes and holds six fields: version, hash of the previous block, Merkle root summarising all transactions, timestamp, the encoded difficulty target and the nonce. Ethereum headers carry more fields, including state, transaction and receipt roots.

The header is what miners actually hash. Changing the nonce or other header fields and hashing again, trillions of times per second across the network, is the work in proof of work. Because each header includes the hash of the one before it, the headers alone form a verifiable chain, which is why light clients can follow a network by downloading only headers.

A header commits to the block's contents but does not contain them, so checking a header proves nothing about whether the transactions inside are valid. Its timestamp is also only loosely enforced: Bitcoin accepts a time later than the median of the previous 11 blocks and no more than two hours ahead of network time.

Example

A Bitcoin light wallet that downloads only headers needs about 80 bytes per block, under 100 MB for the whole chain's history, instead of hundreds of gigabytes of full blocks.

Related terms