💔 Breaking Changes — Issue No. 64
/📰News
This week saw the completion of two audits of the "ProgPoW" hashing function, which might replace Ethash as the algorithm used for mining on the Ethereum network. The proposed change aims to limit the upside of specialized mining machines, known as ASICs. Though Ethash was initially designed to be ASIC resistant as well, the network's hashpower is now widely believed to be dominated by purpose built hardware. Some see this as a risk towards centralization. Others in the community see the proposed move to ProgPoW as needlessly risky in itself. Neither audit found any technical flaws with ProgPoW, and both acknowledged the algorithm confounds the current strategies employed by ASIC manufacturers. Both audits also point out, however, that advances in other techniques may still allow specialized hardware to prevail. The results give both sides of the debate reasons to believe they are right. Link.While the debate around ProgPoW has garnered much of the attention, it's not the only contentious change being considered for Ethereum's impending upgrade. Ethereum Improvement Proposal (EIP) number 1884 would raise the gas fees charged for certain smart contract operations. Gas fees are paid by users to execute computations on the network. Over time, it's become clear that certain operations are underpriced relative to their computational load. Raising their cost would be a boon to Ethereum's sustainability, and could modestly improve scalability as well. There's a catch, however. Existing smart contracts on the network may have internal assumptions about their execution costs. The increased costs may make certain smart contract operations economically infeasible, or in some cases, cause them to fail outright. Because smart contract code can't be changed once it's deployed, this makes for a very tenuous situation. Link.
To get a better understanding of the potential impact of this change, some members of the Ethereum community performed a static analysis of many contracts currently live on the mainnet. The results found at least 200 contracts that would be impacted, including relatively popular ones like the Kyber Network exchange. One contract, controlled by EbcFund, currently holds 580 ETH. That money is at risk of being locked permanently if not moved before the upgrade. This analysis seems to confirm fears that real-world users may end up being impacted should this breaking change be deployed. Link.
I wrote in issue 50 of this newsletter that this upgrade, codenamed Istanbul, would be a stress test for Ethereum's governance. We're now a couple months away from the expected hardfork date, and that prediction seems to be on track.
First, there's ProgPoW. From my perspective, the debate appears to be a classic collective action problem. The change seems to be modestly distasteful to a large portion of the community, but a minority— in particular miners— are vocally supportive because they have a lot to gain. Will the diffuse and dispassionate objections of one group be enough to overcome the vociferous lobbying from a motivated minority? Probably not. But it could foment some resentment in the community, and that resentment could bubble over if ProgPoW somehow failed. That said, for the moment, there doesn't seem to be any risk of ProgPow resulting in a contentious hardfork of the network.
The case of EIP-1884 is more subtle but also potentially more important. It's forcing the community to consider all kinds of heady issues. What kind of backwards compatibility guarantees should a public blockchain give developers, especially when deployed code can't be changed? Clearly the ideal answer is that deployed code should never be broken, but how do you reconcile that when the changes are viewed as critical for the sustained, healthy functioning of the network? Is there a threshold of "breakage" that can be considered acceptable? If so, where is that line, who gets to draw it, and how critical does the proposed change need to be in order to justify going over it? These are all issues the community is currently wrestling with, and the decision made here could set an important precedent.
The coming months will be crucial for the future of Ethereum. Not only does the community need to sort out these tricky and contentious governance decisions, they also need to execute on the hardfork at a technical level. If all goes smoothly on both counts, the network would be well positioned to cruise into 2020, when ETH 2.0 discussions will really start to heat up. If things falter at the social or implementation layers, though, it could reduce confidence in the long term viability of the network. Buckle up, and enjoy the ride. Things may get bumpy!