Block Time

Published by Mario Oettler on

Bitcoin tries to maintain a constant average time of ten minutes between finding two blocks. This time is called block time. There is no reason why exactly ten minutes were chosen. Maybe it seemed to be not too long and not too short either.

Why is it essential to have a not too long block finding time? The longer it takes to find a block (or better the correct hash puzzle solution), the longer it takes until a transaction is confirmed.

Why is it essential to have a not too short block finding time? One could argue that a shorter block finding time increases the transaction speed, which is a good thing. Right, but with a too-short block finding time the impact of the network latency increases.

Imagine a miner finds a block B building on block A and submits it to the network. It takes a few seconds until this block is available everywhere in the world. During this broadcasting time, another miner could found another block B’ building on A. This is a race condition and only one fork will survive in the end. But it takes longer until the network has decided which fork. The lower the block finding time is, the more such tiny forks occur. So, it is more difficult to agree on the canonical chain.

The situation with long block finding time.
The situation with short block finding time. There are significantly more “mini forks”.

With technical progress and increasing popularity of a particular blockchain, the hashing power (number of hashes calculated per second) of the network increases. Either by more miners joining the network or by more powerful and faster hardware. This would result in an ever-decreasing block finding time.

On the other side, miners could leave the network, either because they find it not profitable anymore or due to natural disasters or political pressure, which would lead to longer block finding times.

This makes a dynamic balancing of the difficulty necessary.

There are different ways how the network can adjust the difficulty. Here we explain the way Bitcoin is doing it.

Categories:

if()