Hi Anders,

Thank you for the question.

A solution is to keep miners on SHA256 (instead of switching to a hash that allows for a larger range of difficulty targets) but to require them to hash again to achieve a secondary difficulty target.

At max target difficulty miners would publish blocks when SHA256(header) == 1 and when SHA256(SHA256(header)) <= secondary_target where secondary_target adjusts up and down if primary_target is 1 (where primary_target represents today's target difficulty).

Nodes then verify blocks by checking that SHA256(header) is == 1 and that SHA256(SHA256(header) is less than secondary_target.

Best regards,
Mike

On Wed, Dec 18, 2024 at 6:21 PM Anders <blabline@gmail.com> wrote:
Hi,

I've been looking into the long-term implications of the Bitcoin hash rate growth for the difficulty adjustment mechanism, and I'd like to discuss a potential concern related to double exponential growth.

As we know, the difficulty adjustment mechanism aims to maintain an average block time of approximately 10 minutes by adjusting the target value every 2016 blocks. This target value, when represented in hexadecimal, effectively determines the number of leading zeros required for a valid block hash.

The Bitcoin hash rate has historically shown a strong exponential growth trend, driven by advancements in ASIC technology. However, some observations suggest that this growth might be accelerating, potentially exhibiting double exponential growth (meaning the rate of exponential growth is itself increasing exponentially).

If the hash rate were to continue to grow at a double exponential rate, the difficulty would need to increase at an accelerating pace to maintain the 10-minute block time. This would mean the number of leading zeros in the target value would also need to increase at an accelerating rate.

Since the target value is a 256-bit number (64 hexadecimal digits), there's a finite limit to the number of leading zeros it can have. With approximately 19-20 leading zeros currently observed, there are only about 44-45 zeros "left" before reaching this limit.

My concern is that with double exponential hash rate growth, we could reach this limit much faster than a simple linear projection would suggest, potentially within a decade. Once this limit is reached, the current difficulty adjustment mechanism would become ineffective, potentially leading to unstable block times and network instability.

My questions for the list are:

1. Has there been more formal analysis of the Bitcoin hash rate trend to assess the likelihood of double exponential growth? Are there any existing studies or analyses I should be aware of?

2. If double exponential growth continues, what are the most promising approaches to address this potential issue in the long term?

3. What are the trade-offs associated with different solutions, such as more frequent difficulty adjustments, changing the difficulty adjustment algorithm, or changing the proof-of-work algorithm entirely?

Thanks,

Anders

--
You received this message because you are subscribed to the Google Groups "Bitcoin Development Mailing List" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bitcoindev+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/bitcoindev/e86753f2-1c79-484d-8f61-47a5dd148b45n%40googlegroups.com.

--
You received this message because you are subscribed to the Google Groups "Bitcoin Development Mailing List" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bitcoindev+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/bitcoindev/CAAg3Je1hVqcR_DGZEXhaeO7CEU1k-SLx_1QX%3DXmnS2Bn11joXw%40mail.gmail.com.