Thread
Did you know that Bitcoin maintains a 10 min avg time between blocks regardless of the amount of hash power that on the network?

It’s possible because of a mechanism called the difficulty adjustment and it’s incredibly important to understand.

Let me break it down for you 👇
The difficulty refers to how hard it is for a miner to find a hash that would be considered a valid block on the network.

A higher difficulty translates to more hashes needing to be calculated on average whereas a lower difficulty means less hashes are needed on average.
If we recall from my previous thread on how mining works we know that a miner is hashing random values in search of an output that is less than some target.

When they find an input that produces an output below this target they are able to produce a block and claim the reward
This means this target value is directly related to how difficult it is to find a valid block.

We can control the difficulty by controlling this target value.
The difficulty adjustment refers to the mechanism used to adjust this target value and thus the overall difficulty.

This mechanism is the key to maintaining the production of blocks every 10 minutes.
Let’s say with the current network hashrate and current difficulty that it takes miners on average 10 minutes to find a block.

If we never adjusted the difficulty but the amount of miners that joined the network increases then the average time to find a block would drop.
The inverse is also true, if the difficulty was not adjusted but the amount of miners dropped significantly then the average time to find a block would also increase significantly.

Adjusting the difficulty allows the network to maintain a consistent 10 minutes between blocks.
The difficulty is adjusted every 2016 blocks which is roughly every two weeks.

This means within that two week period if lots of miners join or leave the network the average time between blocks can increase or decrease but every two weeks it will reset back to 10 minutes.
You might be wondering how you can calculate what the target or difficulty should be to maintain a 10 minute average block time?

The algorithm basically looks at the recent history of blocks produced and is able to see how fast or slow they have been found.
If they have been found faster than 10 minutes on average then we can calculate roughly how much hashing power has been added to the network and adjust the difficulty appropriately.

If they have been found slower than 10 minutes then we can do the inverse.
Okay so I get that the difficulty adjustment is used to maintain consistent block production but why should I care?

Well consistent block production translates to a consistent supply schedule for the production of new Bitcoin.

This is an incredibly powerful concept.
It means miners cannot produce more Bitcoin even if the price increases.

In markets like the gold market, the price of gold is a major factor for how much gold is produced.

If the price of gold increases it makes sense for mining companies to spend more money to dig more gold
Essentially price increases in traditional markets often are met with additional supply that creates negative price pressure.

In Bitcoin, there is no such feedback loop.

Increased prices do not lead to the ability to generate more supply of Bitcoin.
I hope this helped you understand what the difficulty adjustment is, how often it happens, and why it is important.

Please share this information as education is the number one driver of adoption and we’re all here to accelerate the adoption of Bitcoin.
Mentions
See All
NVK @nvk · Jan 27, 2022
  • Post
  • From Twitter
Great thread