Parity Technologies, having suffered a multi-signature wallet bug that froze hundreds of millions of dollars’ worth of Ether, noted ongoing issues with Ethereum in a recent blog suggesting a course of action to rescue the funds.
From its very beginning, users of Ethereum have had to deal with a command line interface with little tolerance for errors, sending thousands of Ether to 0x0, the blog noted. Any transaction with an improperly formed “to” address was read as a delivery to 0x0.
The DAO hack and the subsequent fork delivered problems with transactions that replayed across both Ethereum and the Ethereum Classic network. These issues were not widely recognized to anticipate that Ethereum Classic would more than survive – it would thrive, but leading to several issues. Such as Ether deposits to contracts that were never deployed to the Ethereum network to begin with.
Ether Becomes Frozen
An incident recently occurred with the Parity multi-signature wallet in which the contract holding the code governing the wallets’ behavior was deleted. Anyone with Ether tokens in Parity multi-signature wallets was unable to withdraw them.
All of the funds are not recoverable without a change to blockchain’s state, consensus rules modification or opcode upgrades, the blog noted. One can assume this was not the intention of the developers and users who deployed the contracts or sent the transactions.
There have been other issues. It has been too easy to have a typo in an address and end up sending Ether to the wrong address. Unfortunately, such errors can never be proven to be non-recoverable like the addresses where the Ethers sit and are valid and usable.
Numerous Factors Involved
No one should think that unlocking the stuck funds will amount to anything but a rescue operation, which only would be possible with a hard fork. The protocol in some cases was at fault. Client usability issues and issues with codebase maintained by both private parties and the Foundation code, the unanticipated appearance of a competitor network and simple user error have added to the present state of affairs.
Ethereum remains solid and continues to evolve, the blog stated.
Yet many millions of dollars have been lost to numerous groups on account of these and other issues. Much of it cannot be recovered on account of not being able to prove its status as lost or because of a lack of clarity in the sender’s intention.
Solutions Are Possible
Much of it can be recovered.
A hard fork is contentious. It marks a change to how we had expected the network to act. The question is whether these changes to the network’s expected behavior could bring negative effects when some users based their off- and on-chain behavior assuming behavior would not change. There are parallels to the earlier debate over changing the rate of issuance and its impact on miner behavior and incentives.
The problem of having such diverse roots should be expected and many solutions have been put forth ranging from partial coverage with strict rules on certain cases to solutions focusing on edge cases without strict definitions.
This marks a partial coverage with a strict rules solution. Such cases have a clear owner who can be identified with fairly inexpensive computation on the chain. This proposal, therefore, gives no explicit favor to any particular account, application or user. Such an approach fails to cover the funds locked in the Parity multi-signature wallets since the contract itself has code, and it would not permit recovery of tokens besides Ether.
Another solution is to address specific Ether and tokens recovery, a solution addressing capturing as many edge cases as possible, but it is not tightly defined. The solution would need those that “hold the pen” to define its scope. It is the most direct solution and would not alter the semantic behavior of the EVM but could address all cases raised previously.
Change The Protocol
A third solution that Parity suggested is to change the protocol that would permit the resurgence of suicided contracts and deployment of contracts for all users going forward. This would revive the Parity multi-sig and other problems in which contract addresses hold funds but have not had code deployed to them. Such a solution would also safeguard future similar incidents.
Another partial coverage with a strict approach, this represents enough change in behavior of the EVM that it could amount to a functional change to the platform since it will no longer make transaction ordering the key factor in a contract address. Parity prefers this solution since it adds functionality for users through the details being debated.
Accomplishing proper governance around protocol upgrades and hard forks on Ethereum has been ongoing. Consensus has been achieved on technical upgrades while non-enhancement hard forks have failed. The next discussion will be a critical test for how contention can transform into consensus.
Parity hopes the community will support rescuing the funds to help as many users as possible.