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 top of.

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
842,452 000000000000000000013976cac6ca47e04d0341f62581f470d72fb0afe1a7c6
842,451 0000000000000000000096ae940c568a1fe292db17b0779b7b024ea1ea7d48ce
842,450 0000000000000000000304fb7564f934cb5981e49507ffa4f605a9bb78ad4c09
842,449 0000000000000000000240e69532f1c8f7dd7dc64387013f8bbe5d4e815de040
842,448 000000000000000000017699bdfb984ed6cff1133e149f24013d630e28ebb6da

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 in to 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 contents 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