Ethereum Devs Reconsider ‘Difficulty Bomb’ Timing as Hard Forks Loom

fuxe-3
3 December 2019

A newly proposed ethereum hard fork may punt a key network feature two years down the road to avoid complicating ethereum’s transition to proof-of-stake (PoS).

Ethereum improvement proposal (EIP) 2387, created in mid-November, would tentatively schedule a Jan. 6 hard fork to delay the “difficulty bomb” or “Ice Age” from going off for another 4,000,000 blocks or about 611 days. The hard fork is dubbed “Muir Glacier,” after the retreating Alaskan glacier.

Slated for block number 9,069,000, the hard fork contains a bridge between the current chain, based on a proof-of-work (PoW) consensus mechanism, and the Beacon Chain, or the first phase of the so-called Eth 2.0 transition to PoS.

With other networks like EOS, Binance Chain and Substrate looking to pick off projects from ethereum, developers voiced concerns on a call last Friday over maintaining the current chain’s health as the transition to Eth 2.0 occurs. Complicating matters, the network’s next major hard fork, Istanbul, is now slated for Saturday.

If developers fail to agree on Muir Glacier soon, which remains unlikely after reaching rough consensus on a developer call last week, block times will continue to move upwards, restricting the current network’s capabilities as transaction fees crowd out users. 

The difficulty bomb, explained

A piece of code embedded in 2015, the difficulty bomb is one of two components which gradually increases the hashing difficulty on the ethereum blockchain, meant to force the network towards PoS with the Serenity network overhaul, currently slated for 2021.

Similar to bitcoin, ethereum features a mining difficulty adjustment scheme to control the output of ether rewards for mining on the network, of which the bomb is a part of.

Unlike bitcoin, ethereum’s difficulty bomb increases the time it takes to mine a block – typically between 10 and 20 seconds – every 100,000 blocks. Since the difficulty bomb is based on when blocks are mined, knowing when the network will feel the effects is more art than science.

EIP 2387 would be the third time since 2015 the bomb’s fuse has been extended, first by 3 million blocks in the 2018 Byzantium hard fork and then by another 2 million blocks in the February 2019 Constantinople hard fork. 

Source: TrueBlocks, LLC

High settlement times are not alien to ethereum. As data provider Etherscan shows, block times soared before both the Byzantium and Constantinople hard forks, hitting over 30 and 20 seconds, respectively. 

Source: Etherscan.io

“It looks like given faster block times since Constantinople, it was a bit underestimated on when [high transaction fees] would hit again,” ethereum developer Eric Conner said in a private message. “People were under the assumption we had until the next fork after Istanbul, but actually it’s slowly kicking in now.”

In light of the earlier-than-expected uptick, Conner drafted EIP 2384, the Istanbul/Berlin Difficulty Bomb Delay, included in EIP 2387. In a little over six weeks, block times have increased from 13.1 to 14.3 seconds, Conner said. And, as the difficulty bomb is an exponential feature of ethereum, a one-second change has large implications down the road. 

Keeping up with the network

Although an original feature of ethereum, some developers have called for getting rid of the difficulty bomb altogether. After all, it has been punted every time it becomes inconvenient.

Some see the logic in maintaining the original design, however. It does force ethereum clients to keep up to date with the network or face increasing costs to run on the network.

“The strongest argument for keeping some kind of expiry is to ensure that there is no option for ‘do nothing,’” ethereum developer Micah Zoltu said in a private message. 

“The issue is more around stakeholders just simply no longer paying attention and not upgrading their clients,” he said. “The bomb is about ensuring people have to make a conscious decision to fork in the face of regular network upgrades.”

For now, EIP 2384 currently stands on last call for comment among ethereum developers. EIP 2387 reached rough consensus in last Friday’s call, but awaits both finalization of EIP 2384 and acceptance by ethereum clients such as Parity or Geth before network implementation.

“I’m on the fence between cutting out the bomb entirely, and just changing the way the bomb works,” Zoltu said. “What I’m against is keeping the bomb implemented as it is.”