MASTERING-BITCOIN Β· Unit 12 Β· Video 2
| Concept | Value / Formula | Description |
|---|---|---|
| Header size | bytes | Version + PrevHash + MerkleRoot + Timestamp + Target + Nonce |
| Block hash | 32-byte fingerprint, computed fresh by each node | |
| Block identity | Block hash (unique) vs Block height (positional) | Hash is one-to-one; height can collide during forks |
| Genesis block | Height , hash | Hardcoded in every Bitcoin node |
The block header is exactly 80 bytes, split across six fields. Use the dropdown to inspect each field and see what it does.
Conceptual question: Which two fields do the heavy structural work that makes Bitcoin tamper-evident?
β interactive visualization β coming to this page format soon
Notice: The Previous Block Hash chains this block backward in time, while the Merkle Root commits to every transaction in the body. Together they make the chain tamper-evident β change anything, and the hashes downstream all change.
The header is tiny β about a tweet's worth of bytes. The transaction body it commits to can be tens of thousands of times bigger. Adjust the body size below to see the ratio.
Conceptual question: How is it possible for 80 bytes to "anchor" 4 megabytes of data?
β interactive visualization β coming to this page format soon
Reflect: The header doesn't contain the body β it commits to the body through the merkle root. That single 32-byte hash is a cryptographic summary of every transaction. Flip one bit anywhere in the body and the merkle root, header, and block hash all cascade into completely different values.
Block height is positional β just a count from genesis. Block hash is the unique SHA-256 fingerprint of the 80-byte header. During a fork, two blocks can share the same height but have different hashes. Toggle the fork to see this.
Conceptual question: Why is "block 800,001" ambiguous during a fork, but the block hash never is?
β interactive visualization β coming to this page format soon
Notice: Two competing valid blocks can both legitimately claim height N+1 for a few seconds during a race condition. Their hashes, however, are completely different β the hash is the unforgeable identity, the height is just a counter.
Question 1
Sum the six fields of a Bitcoin block header: Version, Previous Block Hash, Merkle Root, Timestamp, Target, and Nonce. What is the total size of the header?
β Correct! The header is exactly 80 bytes.
β Not quite. Remember that the two SHA-256 hashes (Prev Hash and Merkle Root) are 32 bytes each, while the other four fields are 4 bytes each.
Solution:
The six header fields and their sizes:
The two 32-byte fields (Previous Hash and Merkle Root) dominate the header, because SHA-256 outputs are always 32 bytes.
Question 2
A miner changes a single byte inside a transaction in the block's body (the transaction list). Which of the following is true as a result?
β Correct! This cascade is what makes Bitcoin tamper-evident.
β Not quite. The merkle root is a cryptographic summary of the entire transaction list β any change to the body changes the root, which changes the header, which changes the block hash.
Solution:
The merkle root is a hash that commits to every transaction in the body. So:
That cascade is precisely why Bitcoin is tamper-evident.
Question 3
True or False: The 32-byte block hash is one of the fields physically stored inside the block.
β Correct! Each node computes the block hash fresh from the header β it isn't stored.
β Not quite. The block hash is computed by each node, not stored. Storing it would defeat the trustless verification model.
Solution:
False. The block hash is not stored inside the block. Every node computes it fresh, from the 80-byte header, when the block arrives:
This is a critical security property: if the hash were stored, a malicious actor could lie about it. Because each node recomputes the hash independently, there's nothing to trust β only math to verify.
The four header fields stored in the block are Version, Previous Block Hash, Merkle Root, Timestamp, Target, and Nonce. The block's own hash is derived, not stored.
Question 4
During a brief network fork, two miners independently produce valid blocks at the same height N+1 within seconds of each other. Which statement correctly distinguishes block height from block hash?
β Correct! Hash is one-to-one with a block; height is just a position counter.
β Not quite. Forks at the same height are exactly the case the video discussed. The blocks differ in transactions, timestamps, and nonces β so their hashes differ even though their heights match.
Solution:
So during a fork at height N+1, you might see one block with hash
00000abc... and another with hash 00000def.... Both are valid until the network
converges on one chain.
This is why block hash is the unambiguous identifier of a block, while block height is only positional.
Solved: 0 / 4