ethereumproject / ECIPs

The Ethereum Classic Improvement Proposal
55 stars 40 forks source link

ECIP-1036: Fallback Complete Difficulty Bomb Diffusion #80

Closed sorpaas closed 6 years ago

sorpaas commented 7 years ago

(Rendered)

Abstract

This ECIP describes a fallback plan if an extension of ECIP-1010 does not activate. If that is the case, then completely diffuse the difficulty bomb at block 5452163.

Motivation

There is currently a small probability that an extension of ECIP-1010 might not be able to be activated. The probability is really slight, but it is still possible. Please see the discussion of that issue for reasonings from different parties. This ECIP provides a fallback plan, to give assurance for those who might be impantient or worried of the difficulty bomb, so as to avoid a possible community split or an unexcepted hard fork.

Block 5452163 is chosen as the fork block number. This is a totally arbitrary and meaningless number. In this way, we avoid collisions of the fork block number with other protocol upgrade hard forks.

whilei commented 6 years ago

What about using a smaller block number instead, like 5123456. I wanted to choose the smallest, and nearest, possible block number that can be achieved across human consensus.

Given @splix's expected difficulty from https://github.com/ethereumproject/ECIPs/blob/master/ECIPs/ECIP-1010.md, we can expect to see difficulty raise ~quickly~ exponentially after the "explosion."

With this changes min difficulty value will become:

Block 2,500,000 == 2**23 == 8,388,608
Block 3,000,000 == 2**28 == 268,435,456
Block 4,000,000 == 2**28 == 268,435,456
Block 5,000,000 == 2**28 == 268,435,456
Block 5,200,000 == 2**30 == 1 TH
Block 6,000,000 == 2**38 == 274 TH
sorpaas commented 6 years ago

Difficulty bomb increases x2 every 100,000 blocks. So if at block 5,200,000 it is 1GH, then at block 5452163 it would be at most 8GH. If we can still have 8TH/s hashrate (which is our current, but we should question this assumption), then it would mean less than 1s block time increase.

Just for reference, 5452163 is around March or April, three months after ECIP1017. If it is done too early (5123456 is around January or February), miners and users might have problem upgrading their clients.

whilei commented 6 years ago

I'm for it; and the sooner these changes are included in code+releases the better, in my opinion.

Proposed changes implemented in geth classic PR here: https://github.com/ethereumproject/go-ethereum/pull/409.

sorpaas commented 6 years ago

Looks like we're going to use ECIP-1041 (#87) instead. Closing this.