Ethereum’s community is preparing for the second upgrade of a two parts hardfork plan to address a number of bugs that were exploited last month which slowed down the network to almost a halt.
The first of the two parts hardfork was just under a month ago with Jeffrey Wilcke, founder of Ethlabs and one of Ethereum’s Geth developers, stating that the second hardfork will initiate at block number 2,675,000 which is expected in about seven days. All node operators therefore, especially any Ethereum based business and miners, will now need to upgrade to the newly released Geth client or the Parity Client within the next seven days.
There was some discussion regarding the block number with Gavin Wood, founder of Ethcore, which maintains Parity, Ethereum’s second most popular client, initially suggesting that ethereum will fork at block 2,642,462. At the time, Wood told CCN that it would be the palindrome number or “likely to be very close to that number” and stated in response to my request for a general summary of the new improvements as follows:
“Basically, it’s the 3 EIPs we proposed… They cover ensuring that ethereum mainnet transactions are not replayable on other ethereum-like networks (155), alteration of the pricing for the exponential operation to make it more closely reflect real computation cost (160), and ensuring empty accounts take up no resources for full nodes (161).”
The three changes should, hopefully, address any known problems with ethereum which were brought to light just before Devcon2’s opening. In a week, therefore, the network should return to normal functionality, with the focus shifting on other ecosystem developments and Casper, the much-anticipated network upgrade that replaces proof of work with proof of stake.
Ethereum’s Fifth Fork
This is the fifth overall fork for Ethereum’s network since inception. The first one introduced the difficulty bomb to incentivize an upgrade to proof of stake. The second hardfork was Homestead this spring which marked the first stable release. The third hardfork was to return approximately $170 million worth of appropriated eth during this summer. The fourth was just a few weeks ago in response to exploitations of contract mispricing which almost grinded the network to a halt. The fifth hardfork is, in many ways, a continuation of the fourth. Developers decided that there were certain changes which needed to be implemented as a matter of urgency, with the final optimizations saved for the now upcoming fifth fork.
The only controversial and publicly debated fork was the third hardfork, better known as the DAO fork, due to arguments over immutability. The overwhelming majority decided, whether as an exception or as a more general fail safe mechanism, to freeze the DAO smart contract and send almost 11 million eth, that had or was in the process of being appropriated, to a new withdrawal only smart contract. Around ten percent of the community held the view that smart contracts should not be changed by the network regardless of the consequences or circumstances. They therefore maintained the old network with the appropriated currency and named it Ethereum Classic, or ETC.
ETC has already hardforked, incorporating unchanged Eth’s fourth hardfork. It is probable they will hardfork for the second time, incorporating, again probably largely unchanged, Ethereum’s fifth hardfork. However, the fifth hardfork does interfere with accounts as the network is to remove empty accounts created by the gas mispricing exploiter during this autumn. Some in the ETC community therefore have stated they do not support ETC’s second fork.
The Different Approaches to Hardforking
The concept of a hardfork itself became controversial during bitcoin’s lengthy blocksize debate. According to some Bitcoin Core developers, bitcoin has never hardforked with Luke Dashjr, an Open Hash Contractor for Blockstream and Bitcoin Core developer stating that a bitcoin hardforks requires the agreement of every single individual, which, in practice, is as good as impossible. Bitcoin Core developers, therefore, seem to take the view that bitcoin will not hardfork under any circumstance with any changes undertaken through usually much slower and complicated soft-forks.
ETC accepts protocol level hardforks, such as fixing a bug or changing gas pricing parameters, as non-controversial, but objects to any hardfork that changes the state of an address or smart contract, with the boundaries of such objection becoming clear only after their second hardfork.
Ethereum’s community seems to take the view that, as well as protocol level hardforks, in certain highly exceptional circumstances, the network can collectively decide to correct a grave mistake or exploitation. However, that has only happened once, therefore we cannot generalize to an overall approach not least because there is a difference of view on whether it was an exception based on highly unique circumstances or whether it is a more generalized fail-safe mechanism.
It appears, therefore, that the digital currency space has mutated to provide all three approaches which have their own benefits and disadvantages as well as their own conceptual difficulties regarding the boundaries. As such, it is far too early to, somewhat objectively, say which approach is best with time alone, through direct experience and experimentation, left to decide.
Featured image from Shutterstock.