Bitcoin employs a fixed 80-byte block header structure that has remained consistent since genesis. The header is double-SHA256 hashed for proof-of-work validation.
┌──────────────┬────────────────────────────────────────────────────────┐
│ Offset │ 0 4 8 12 16 20 24 28 32 36 │
├──────────────┼────────────────────────────────────────────────────────┤
│ 0x00 (0) │ Version (4 bytes) │ Previous Block Hash (32 bytes) │
│ │ [LE uint32] │ [Internal byte order] │
├──────────────┼───────────────────┴────────────────────────────────────┤
│ 0x24 (36) │ Merkle Root (32 bytes) │
│ │ [Internal byte order - root of transaction tree] │
├──────────────┼────────────────────────────────────────────────────────┤
│ 0x44 (68) │ Timestamp (4) │ Bits/Difficulty (4) │ Nonce (4) │
│ │ [LE uint32] │ [LE uint32 compact] │ [LE uint32] │
└──────────────┴────────────────┴─────────────────────┴────────────────┘
Total: 80 bytes (fixed)
Unique Features: Fixed size, double-SHA256 proof-of-work, compact difficulty encoding
Ethereum uses RLP (Recursive Length Prefix) encoding for variable-length headers. Post-merge changes significantly altered consensus fields.
┌─────────────────────────────────────────────────────────────────────┐
│ RLP-Encoded Array of Fields (Variable Length) │
├─────────────────────────────────────────────────────────────────────┤
│ [0] parentHash │ 32 bytes │ Keccak256 of parent header │
│ [1] ommersHash │ 32 bytes │ Hash of uncle list │
│ [2] beneficiary │ 20 bytes │ Miner/validator address │
│ [3] stateRoot │ 32 bytes │ Root of state trie │
│ [4] transactionsRoot │ 32 bytes │ Root of transaction trie │
│ [5] receiptsRoot │ 32 bytes │ Root of receipt trie │
│ [6] logsBloom │ 256 bytes │ Bloom filter for logs │
│ [7] difficulty │ Variable │ PoW difficulty (big-endian) │
│ [8] number │ Variable │ Block number (big-endian) │
│ [9] gasLimit │ Variable │ Block gas limit │
│ [10] gasUsed │ Variable │ Gas consumed │
│ [11] timestamp │ Variable │ Unix timestamp │
│ [12] extraData │ ≤32 bytes │ Arbitrary data │
│ [13] mixHash │ 32 bytes │ PoW mix hash/RANDAO │
│ [14] nonce │ 8 bytes │ PoW nonce │
│ [15+] baseFeePerGas │ Variable │ EIP-1559 base fee │
│ Additional fields added by various EIPs... │
└─────────────────────────────────────────────────────────────────────┘