Blocks and chains
A block is a batch of transactions plus a header. The header is where all the cleverness lives — hashes, difficulty, nonce and timestamp.
In this lesson
- List the fields of a typical block header
- Explain what block height means
- Read a block as JSON and identify each part
Anatomy of a block
| Field | Purpose |
|---|---|
| Previous hash | Fingerprint of the parent block — the chain link. |
| Merkle root | Single hash committing to every transaction in this block. |
| Timestamp | When the block was found (approximate, agreed by consensus). |
| Difficulty / target | How hard the block was to produce. |
| Nonce | The counter miners grind to satisfy the target. |
| Height | How many blocks precede it since genesis. |
{\n "height": 800000,\n "previous_hash": "00000000000000000002a7c4...9f3c1e",\n "merkle_root": "3f2a1c...b7d9",\n "timestamp": 1700000000,\n "nonce": 289174923,\n "tx_count": 2405\n}
Example · Block height as a ruler
Bitcoin's genesis block is height 0; today's tip is height 800k+. Height is how wallets say "you have N confirmations": your transaction in a block at height H has tip - H + 1 blocks stacked on top of it.
Two structural choices do most of the work:
- Fixed-size batches — transactions arrive continuously, but the chain advances in discrete, comparable units.
- Hash commitment — the Merkle root compresses thousands of transactions into 32 bytes, so light clients can verify a single transaction without downloading the block.
Open a block
Use the lab to create a block, inspect its fields, then modify a transaction and watch the root change.
How big is a block?
Bitcoin caps around 1-4 MB (roughly 2,000-4,000 transactions); Ethereum targets ~15 MB worth of "gas" per slot with much shorter block times.
Can two blocks share a height?
Yes — a temporary fork. Consensus resolves it by keeping the branch with the most cumulative work.