We've all heard the textbook definition: _each blockchain block contains the cryptographic hash of the previous block_. Yet this simplification obscures Bitcoin's actual mechanics—a reality that emerges only when inspecting raw block data. By dissecting consecutive blocks 920993 and 920994, we uncover the precise engineering that truly chains Bitcoin's blocks together.

The Header: Bitcoin's True Linking Mechanism

Contrary to popular belief, blocks aren't connected by hashing the entire preceding block. Instead, only the 80-byte header of block 920993 is hashed and embedded in block 920994. Even the "80-byte header" description requires qualification: production blocks prefix headers with an 8-byte magic number (0xf9beb4d9), meaning the true header spans bytes 9–88.

For block 920993, the header appears as:

00e0 ff3f e31d 6937 0e1c dba2 5321 5546
0ecc 00bf 678c a2e1 255e 0100 0000 0000
0000 0000 996f 2b91 fefc dc17 e530 6c70
9672 af27 4361 7608 1ded fde3 1157 10a5
200f 0f83 7022 ff68 21eb 0117 96f2 fbb6

Double Hashing and the Proof-of-Work Puzzle

Bitcoin applies double SHA-256 hashing to this header:

head -c 80 920993.dat | openssl dgst -sha256 -binary | openssl dgst -sha256

Yielding:

c2dfb57ef58275c27a6433c5edfddfc1af6ab9ae708c00000000000000000000

The trailing zeros aren't coincidental—they're proof of work (PoW) artifacts. Miners tweak nonces and transaction ordering until the header hash falls below a target threshold (often manifesting as leading zero bits). Crucially, this target isn't simply "leading zeros" but a dynamic numeric value adjusted by the network.

Endianness and the Chain Link

Inspecting block 920994's header reveals where the prior hash resides:

0000 002e c2df b57e f582 75c2 7a64 33c5
edfd dfc1 af6a b9ae 708c 0000 0000 0000
...

After the 4-byte version number, we see c2dfb57e...—the exact hash from block 920993. But why does the hash output display trailing zeros while appearing here without them? Byte order. Both Bitcoin headers and openssl hashes use _little-endian_ representation, reversing the conventional hexadecimal sequence.

Security Implications: Why Headers Suffice

The header contains the Merkle root—a cryptographic digest of all transactions. Altering any transaction would change this root, invalidating the header hash and breaking the chain.

This design efficiently secures the entire block while minimizing data referenced by subsequent blocks. The PoW requirement further ensures historical immutability: recalculating the trailing zeros for altered blocks demands infeasible computational power.

Beyond Simplifications

Understanding these mechanics matters. Developers building on Bitcoin must recognize that:
- Header hashing (not full-block hashing) enables lightweight verification
- Endianness affects hash representation in tools and APIs
- PoW targets are numeric thresholds, not just zero-bit counts

These nuances underscore blockchain's elegance—and why glossing over them risks flawed implementations. As one block's hash nestles into the next, it's not just data linking data; it's cryptographic proof linking effort, time, and irreversible computation.