Subject: Re: [bitcoindev] Double Exponential Hash Rate Growth and Difficulty Adjustment

From: Anders <[email-masked]>
Date: Thu, 19 Dec 2024 12:00:55 -0800 (PST)

Okay, that sounds like a simple and clever approach without the need for a 
hard fork.

On Thursday, December 19, 2024 at 8:48:10 PM UTC+1 Michael Cassano wrote:

> 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 <[email-masked]> 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 [email-masked].
>> To view this discussion visit 
>> https://groups.google.com/d/msgid/bitcoindev/e86753f2-1c79-484d-8f61-47a5dd148b45n%40googlegroups.com 
>> <https://groups.google.com/d/msgid/bitcoindev/e86753f2-1c79-484d-8f61-47a5dd148b45n%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>

-- 
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 [email-masked].
To view this discussion visit https://groups.google.com/d/msgid/bitcoindev/ab246ea3-36ae-4c87-b4d1-32b0ec4f2603n%40googlegroups.com.