Double Exponential Hash Rate Growth and Difficulty Adjustment

Double Exponential Hash Rate Growth and Difficulty Adjustment
2024-12-19 17:25 ` Michael Cassano
  
From: Anders @ 2024-12-19  1:19 UTC (permalink / raw)
  To: Bitcoin Development Mailing List


[-- Attachment #1.1: Type: text/plain, Size: 2715 bytes --]

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.

[-- Attachment #1.2: Type: text/html, Size: 3110 bytes --]

 permalink raw reply	[|nested]
2024-12-19  1:19 [bitcoindev] Double Exponential Hash Rate Growth and Difficulty Adjustment Anders

  2024-12-19 20:00   ` Anders
  
From: Michael Cassano @ 2024-12-19 17:25 UTC (permalink / raw)
  To: Anders;  Bitcoin Development Mailing List

[-- Attachment #1: Type: text/plain, Size: 4136 bytes --]

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
> <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 bitcoindev+unsubscribe@googlegroups•com.
To view this discussion visit https://groups.google.com/d/msgid/bitcoindev/CAAg3Je1hVqcR_DGZEXhaeO7CEU1k-SLx_1QX%3DXmnS2Bn11joXw%40mail.gmail.com.

[-- Attachment #2: Type: text/html, Size: 4984 bytes --]

 permalink raw reply	[|nested]
2024-12-19 17:25 ` Michael Cassano

  
From: Anders @ 2024-12-19 20:00 UTC ( / )
  To: Bitcoin Development Mailing List




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 <blab...@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+...@googlegroups•com.
>> 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 bitcoindev+unsubscribe@googlegroups•com.
To view this discussion visit https://groups.google.com/d/msgid/bitcoindev/ab246ea3-36ae-4c87-b4d1-32b0ec4f2603n%40googlegroups.com.