Loading Tool

Previous Block

Connecting blocks in the blockchain

Diagram showing the location of the previous block field inside the block header and how it connects the current block to the block below it in the blockchain.

The previous block field in the block header contains the hash of a previous block that the block builds on.

Each block links to a previous block, and this creates a chain of blocks. Or, as it's more commonly known, a blockchain.

Example

Below are the top 5 blocks in the blockchain. If you check them out, you'll see that they each contain the hash of the block below it in their block headers.

Height Block Hash
954,073 0000000000000000000009b11b5f094780757df89d17b4b7db6adc03efa1e0f9
954,072 000000000000000000010adb99c6b9e431015c9d4f4149662a11fb1e14d95e41
954,071 00000000000000000001e5d41cb9f2d75bf2c37ca83a22f2bf91d931b2a862e4
954,070 00000000000000000001a4753dbee37be1c22b95ccaebac56d458686211e9472
954,069 0000000000000000000033601149f8aaa3549b1ad810a056b58bce55046389c0

You can visit every block in the blockchain by starting at the tip and following the previous blocks all the way to the bottom.

Usage

When constructing a candidate block, a miner will put the block hash of the current tip of the blockchain in the previous block field.

Diagram showing how a candidate block referencing the tip of the blockchain through the previous block field in the block header.

All miners want to extend the current longest known chain of blocks, because the longest chain is what all nodes adopt as the canonical version of the blockchain, and they can only collect the block reward if the block makes it 100 blocks deep into the longest chain.

canonical – authorized; recognized; accepted
collinsdictionary.com

You can find the block at the current tip of the blockchain by running bitcoin-cli getbestblockhash.

All blocks must build upon an existing previous block. If you put a hash in the previous block field of a block that does not exist, the block will be invalid and will be rejected by nodes on the network.

Purpose

Why do blocks contain the hash of a previous block?

The previous block field is what connects blocks together in the blockchain.

A block hash is a unique reference for a block, and it's determined by the contents of the block. So by including a previous block's hash in the block header, you can create a reliable chain of data, where each chunk of data (i.e. block of transactions) is linked to the one before it.

Diagram showing how block hashes are used to create a chain of blocks.
The blockchain is just a chain of blocks connected by block hashes.

So if you tried to modify the content of an older block (e.g. by replacing or removing a transaction), this will change the hash for that block, and it will no longer be part of the same chain of blocks, because the block that builds upon it will no longer be referring to it anymore.

Diagram showing how changing the contents of a block will change its hash, and will therefore break the link in the blockchain.
If you change one of the block hashes you're removing it from the chain.

So basically, this chain of block hashes is what prevents anyone from going back in time and changing the blockchain. Because if you did, nodes would ignore the modified block as it would not be a part of longest-known chain.

This is what people mean when they refer to the blockchain as being an "immutable ledger".

immutable – Something that is immutable will never change or cannot be changed.
collinsdictionary.com

Genesis Block

The genesis block is unique in that its previous block field contains all zeros. This is because it's the very first block in the blockchain, and so there is no "previous block" for it to build upon.

That's the only interesting fact I have about the previous block field in the block header.

Resources