EIP-999: Restore Contract Code at 0x863DF6BFa4

I mostly agree with @MicahZoltu. While working on EIP-867, I saw many people say things like “I hope you’re considering non-hard-fork solutions as well”, so I asked around and tried to collect a list of recovery options that didn’t require a hard fork. The only two options I found were:

  1. Retroactive insurance payouts.
  2. Tokenization of losses.

I don’t see Option 1 as viable to address past issues. I didn’t really understand @alexvandesande’s point toward the end of the article about why an insurance company would voluntarily take on enormous liabilities on Day 1. Even if some well meaning person wanted to, what investor would fund them?

Also, even for future incidents I’m skeptical. Imagine an insurance company starts up and is wildly successful. It pays out some small claims while making a great profit. Everyone is happy. Then, the big one hits. Why wouldn’t it push for a fork? It would potentially have huge resources available to run an aggressive PR/legal campaign.

For Option 2, I had considered that the recovery token contract would be funded by future recovery. At best, this would postpone a fork, and at worst it would just dupe a lot of people into buying worthless tokens. Alex did not make this assumption, but I think some of my other pros/cons still apply.

Pros

  • Immediate liquidity for some projects that are desperate for funds
  • Does not require an immediate hard fork (block reward will require a hard fork)
  • A reusable solution

Cons

  • The allocation of recovery tokens will itself be controversial.
  • New allocations of recovery tokens could devalue existing tokens by a lot. Knowing even a few minutes in advance of a decision would present an enormous advantage and (in my opinion) a much bigger potential for abuse than something like EIP-999.
  • It does not address stuck tokens
  • There is always the possibility that there is some clever way to recover stuck funds. Imagine a future upgrade of the EVM which seems totally unrelated actually makes some type of class of stuck ether recoverable. What then?
  • Which accounts will receive tokens? Won’t this process look almost exactly like the ERP process? If not, how will it work?
  • What if the Recovery Token contract has a bug? Would people support a recovery fork in that case? Who is responsible for the recovery token contract?
  • Would recovery tokens be viewed as securities?
  • People that hold recovery tokens will have an incentive to make them more valuable – what sort of behavior might that encourage (e.g. fighting against every recovery issue that comes after you, spreading rumors about a huge loss to get people to sell before you, a large donation promised that never actually takes place)?

I’m not entirely opposed to this approach, but these are the reasons I originally dismissed it. In the end, I think if people are willing to allocate recovery tokens and then allocate blocks rewards to back them, I don’t see why they wouldn’t be willing to just recover the funds in one go and avoid all this complexity and risk.

1 Like