#EIP-999: Why A Vote To Release Parity Locked Funds Evoked So Much Controversy
Parity’s recent call for a vote on their submitted EIP-999, which would allow for affected users to regain access to their assets stored in the multisig wallet, caused a stir within the Ethereum community, even prompting Vitalik Buterin himself to call for a boycott of Consensus 2018, stating “sensationalist” coverage of EIP-999 as part of the reason.
The situation started with the July 2017 Parity hack, which resulted in the loss of 150,000 Ethereum (ETH). Parity fixed the vulnerability in the code, but unfortunately the redeployed smart contract code came with yet another vulnerability. This new vulnerability was accidentally exploited by a Parity user in Nov. 2017, causing over 513,774 ETH held in 587 different wallets to be frozen.
The mechanics of the improvement proposal
As a result, parity submitted an Ethereum Improvement Proposal (EIP-999). Their motivation behind the proposal was outlined on GitHub:
“This proposal is necessary because the Ethereum protocol does not allow the restoration of self-destructed contracts and there is no other simple way to enable the affected users and companies regaining access to their tokens and Ether.”
A vote on whether or not to implement the proposed solution was opened on April 17 and ran until April 24. The result was close but came back with a majority 55 percent “no” vote, with 39.4 percent for the proposed change, and a further 5.6 percent of voters saying they don’t care.
A couple of things important to remember - firstly, the 513,774 ETH (worth around $360 mln according to recent price analysis) is not lost or stolen, it’s exactly where it was intended to be stored - i.e. in the Parity multisig library. The problem is that access to these funds has been destroyed due to a vulnerability in the code.
Secondly, EIP-999 was not an outline for a hard fork in the Ethereum blockchain. The proposed solution was for a “patched version of the WalletLibrary” (to the contract source code), which would basically give owners of these dependant multisig wallets access to their closed off funds.
The debate about a hard fork emerged because it seemed two of the biggest Ethereum software companies, namely Geth, a multipurpose command line tool for Ethereum, and Parity Technologies, a popular client for interacting with the Ethereum blockchain, had conflicting thoughts on the implementation of EIP-999.
However, this sentiment has since been quashed by both Geth and Parity, with Geth developer Péter Szilágyi clarifying his position directly on Twitter and Parity founders Jutta Steiner and Gavin Wood stating in a blog post for Parity Technologies they do not plan to provoke a split in the Ethereum blockchain. Although the proposed update was voted down, the controversy surrounding it still lingers.
The controversial vote
The actual vote itself was a source of much controversy, with the voting mechanism coming under a lot of scrutiny. It took place via a coin vote, meaning that instead of assigning every Ethereum user one vote, each vote was weighted with the amount of ETH held by a voter.
Those with large amounts of ETH would therefore have a distinct advantage in influencing the direction of the vote. Generally, this is not an issue as every voter owns the same asset and therefore the logical thinking is that everyone would choose a course of action that protects the wellbeing of that asset, no matter how big your stake is.
In this instance, because casting a vote meant simply signing a message from an Ethereum account, instead of transferring a certain amount of ETH, users whose funds are locked up in the Parity library, could also cast a vote.
As it turns out, one of the biggest affected parties is Polkadot, a blockchain startup owned by Gavin Wood, co-founder of Parity and who is ultimately responsible for the vulnerability in the code that allowed for the 513,774 ETH to become stuck.
Polkadot could therefore use its large holding locked up in the Parity library, being some 306,000 ETH, for a yes vote on a proposal that was effectively submitted by Gavin Wood, albeit through Parity. This made a lot of community members uncomfortable, especially since EIP-999 would only patch the Parity wallet and be of huge benefit to its founders, while having no benefit for the wider Ethereum community as a whole.
One Reddit user noticed:
“Gavin Wood is the founder of both Polkadot and Parity, therefore he obviously has financial incentive to restore these funds. This connection seems to be why people think Parity has something to gain financially from EIP999 passing.”
In fact, some ETH holders not connected to the saga thought it would be better if the 500,000 or so ETH stayed frozen, meaning their own ETH tokens would gain a certain degree of scarcity that could potentially push the price up.
Many community members were not against EIP-999 per se, but actually against having the vote in the first place. Opponents of the EIP-999 vote argued that it would compromise the immutability of the blockchain network should it pass:
“It's the crux of the matter, though. The Parity multisig library, as an autonomous agent, fulfilled its programming exactly to the letter and self-destructed when it was instructed to. Reversing that will require interference with that autonomous agent's state outside of the rules under which it was created.
That is exactly what Ethereum, and blockchains in general, are supposed to prevent. It's a "you literally had one job" situation for a blockchain. If blockchains don't prevent unauthorized interference with their state then we might as well just run these smart contracts on an Amazon cloud server and save a whole lot of time and money.”
If developers were simply allowed to update and patch faulty code, it would affect the decentralized nature of the blockchain, where certain individuals would have the power to effectively reverse unwanted transactions.
Why “no”?
This has happened in the past with the DAO hack, which eventually caused a split in the Ethereum blockchain, between those who were in favour of returning the funds to the rightful owners, and those who firmly believed that the code is the law that secures the immutability of the network. They chose to follow the original version of the Ethereum blockchain and called it Ethereum Classic.
An interesting question becomes why was it a “yes” on the DAO vote but a “no” on the Parity vote? While it is impossible to know the reasoning behind individual votes, some in the community felt that this improvement proposal was designed purely as a bailout for the Polkadot funds:
“It's a bailout pure and simple. I'm STILL not convinced this would have been treated the same if it was another company in the space that had lost the funds.”
Another point of view is that the decision comes down to the defence of Ethereum eco-system:
“Let's make things really simple here: Is the eco-system and thus the entire future and growth of the Ethereum blockchain at risk? With the DAO - it was Yes thus requiring a hardfork to protect the Ethereum protocol and eco-system. With Parity - it is No thus not requiring a hardfork because neither the Ethereum protocol nor the eco-system are at risk”
Finally, if the vote succeeded it would potentially open the floodgates to a myriad of requests from people who lost ETH in past due to no fault of their own (whether as a result of a hack or faulty code) to have their funds returned through a similar solution.
On Ethereum community online messaging board, one user remarked:
“Making this change will ensure that we continue to revisit requests like this on a regular basis. That will continue to distract us from efforts to improve the technology for everyone. Becoming a project which constantly debates fund restoration EIPs will make Ethereum a “not much fun” open source project to contribute to, thus deterring new contributors.”
This, in turn, could cause developers of future projects to be less thorough in their coding as they would see a vote like this as a safety net in case they make errors.
Whatever your stance on the situation, EIP-999 feels like an important point in Ethereum’s history, even for blockchain as a whole, one where two fundamental principles of this industry, egalitarianism and immutability, were pitted directly against each other.
For now, at least, egalitarianism fought to save immutability and both seems to have triumphed.