Blockchain Block Structure

Every piece of data on a blockchain lives inside a block. A block is not just a random container — it has a precise internal structure designed to make tampering detectable, enable verification, and maintain the chain relationship between blocks. This topic opens up a single block to examine every component inside it.

What Is a Block?

A block is a data package that groups together a set of verified transactions and seals them permanently. Think of a block as one page in a permanent ledger book. The page has a page number, a date, a list of entries, and a reference to the previous page — all organized in a standard format so any reader can understand it immediately.

The Two Parts of Every Block

Every block on a blockchain contains two major sections:

  1. Block Header – Contains metadata about the block itself
  2. Block Body – Contains the actual transaction data

Block Header – The Control Room

The block header carries six key fields. Each field has a specific purpose in maintaining the chain's integrity.

+==================================================+
|                  BLOCK HEADER                    |
+==================================================+
| Previous Block Hash : 0000a1b2c3d4e5f6...        |
| Timestamp           : 2024-01-15 10:23:45 UTC    |
| Merkle Root         : 7d8e9f0a1b2c3d4e...        |
| Nonce               : 48291                      |
| Difficulty Target   : 00000000abc...             |
| Block Version       : 4                          |
+==================================================+

Previous Block Hash

This is the hash of the block that came immediately before the current block. This single field creates the "chain" in blockchain. If someone alters any block, that block's hash changes, breaking the connection to the next block. The chain of hashes is the mechanism that makes tampering mathematically detectable.

Timestamp

The timestamp records the exact date and time (in Unix format) when the miner created the block. Timestamps establish the chronological order of blocks and make it impossible to insert an old transaction into a future block or backdate a record.

Merkle Root

The Merkle Root is a single hash that represents all transactions inside the block. It is generated through a process called a Merkle Tree — a tree-shaped structure where all transaction hashes combine step-by-step into one final hash. Even if one transaction changes, the Merkle Root changes completely.

Nonce

The nonce (Number Used Only Once) is a number that miners adjust repeatedly while trying to solve the block puzzle. Miners keep changing the nonce until the block's hash meets the network's difficulty requirement. Finding the right nonce is what makes mining computationally expensive.

Difficulty Target

The difficulty target specifies what the block's hash must look like to be valid. For example, the Bitcoin network might require the hash to start with 18 leading zeros. The network automatically adjusts this difficulty every 2016 blocks to keep block creation time close to 10 minutes regardless of how many miners join or leave.

Block Version

The version number tells nodes which set of rules to use when validating this block. As blockchains upgrade over time, new rules get version numbers so that older and newer nodes can still understand each other during transition periods.

Block Body – The Transaction List

The block body holds the actual transactions the block is recording. Bitcoin blocks hold approximately 2,500 transactions on average. Ethereum blocks hold several hundred to a few thousand transactions, depending on gas usage.

+==================================================+
|                   BLOCK BODY                     |
+==================================================+
| Transaction Count: 2,341                         |
|--------------------------------------------------|
| TX 001: Alice → Bob      | Amount: 0.5 BTC       |
| TX 002: Carol → Dave     | Amount: 2.1 BTC       |
| TX 003: Eve → Frank      | Amount: 0.003 BTC     |
| TX 004: Grace → Hank     | Amount: 1.7 BTC       |
| ...                                              |
| TX 2341: Ivan → Jane     | Amount: 0.08 BTC      |
+==================================================+

The Merkle Tree – How Transactions Combine into One Hash

The Merkle Tree is a clever way to summarize all transactions in a block with a single hash. The process works bottom-up, combining pairs of transaction hashes until only one hash remains — the Merkle Root stored in the block header.

Transactions:    TX1      TX2      TX3      TX4

Step 1 – Hash each transaction:
                H(TX1)   H(TX2)   H(TX3)   H(TX4)

Step 2 – Combine pairs:
              H(TX1+TX2)         H(TX3+TX4)

Step 3 – Combine into root:
                   MERKLE ROOT
                H(TX1+TX2+TX3+TX4)

Any change to TX1 changes H(TX1)
--> changes H(TX1+TX2)
--> changes the Merkle Root
--> the block header changes
--> the block hash changes
--> tamper detected immediately

The Full Block Diagram

+-----------------------------------------+
|              BLOCK #500,000             |
+-----------------------------------------+
|            BLOCK HEADER                 |
|  Prev Hash  : 00000a1b2c3d4e...         |
|  Timestamp  : 2024-01-15 10:23:45       |
|  Merkle Root: 7d8e9f0a1b2c...           |
|  Nonce      : 1482910                   |
|  Difficulty : 00000000abc...            |
|  Version    : 4                         |
+-----------------------------------------+
|            BLOCK BODY                   |
|  TX 001: Alice --> Bob  | 0.5 BTC       |
|  TX 002: Carol --> Dave | 2.1 BTC       |
|  TX 003: ...            | ...           |
|  (2,341 transactions total)             |
+-----------------------------------------+
|  Block Hash: 00000a1b2c3d4e5f6...       |
+-----------------------------------------+
           |
           | (This hash becomes Prev Hash of Block #500,001)
           v
+-----------------------------------------+
|              BLOCK #500,001             |
|  Prev Hash: 00000a1b2c3d4e5f6...  <---  |
|  ...                                    |
+-----------------------------------------+

The Genesis Block

The very first block on any blockchain is called the Genesis Block. It has a special property: its "Previous Block Hash" field contains all zeros because no block came before it. Satoshi Nakamoto mined Bitcoin's Genesis Block on January 3, 2009. It encoded a message inside the block data:

"The Times 03/Jan/2009 Chancellor on brink of second bailout for banks"

This headline from the UK newspaper The Times served as a timestamp proving the Bitcoin network did not exist before that date. Every subsequent block traces its lineage back to this Genesis Block through the chain of previous hashes.

Block Size

BlockchainBlock Size LimitBlock TimeAverage Transactions per Block
Bitcoin1–4 MB~10 minutes~2,500
EthereumGas limit based~12 seconds~200–300
Solana~10 MB~0.4 seconds~5,000+

Summary

  • Every block has a header (metadata) and a body (transactions)
  • The block header contains the previous hash, timestamp, Merkle Root, nonce, difficulty, and version
  • The previous hash is the chain link that connects blocks together
  • The Merkle Root summarizes all transactions in one tamper-detectable hash
  • The nonce is what miners adjust to solve the block puzzle
  • The Genesis Block is the first block — it anchors the entire chain
  • All blocks trace their ancestry back to the Genesis Block

Leave a Comment