My attitude on protocol changes affecting particular Ethereum accounts
There is an attempt to institutionalize requests to recover lost funds in Ethereum. Before these requests arrive, I should prepare for them by setting guidelines for myself. Others can do what they please.
I am not going to move a finger for a protocol change affecting particular accounts. In the rest of this post, I describe more precisely “not moving a finger for” and “affecting particular accounts.”
“Not moving a finger for” means, I am not going to make an active, favorable contribution while the change is getting accepted. For those changes, I’m not going to take the tiniest bureaucratic steps, like recording favorable decisions in a coredev call. I set aside an exception; when the change is already active on the test network, and is planned for the next main net fork, I admit that the change is coming. Then, I might maintain specifications or test cases.
What kind of protocol change affects particular accounts? This is harder to specify than I thought. Maybe I can check whether the change mentions an address or not, but what about “the biggest address with more than 1000 wei”? That doesn’t mention an address, but it is specific enough. Another kind of indication is when the motivation mentions a person or a company. Then the change probably affects the ability of the private keys held by these people. Here is one exception: although precompiled contracts live on particular addresses, I’m fine with setting up and modifying precompiled contracts. Another exception is when the whole network is at risk (for example, when there is a single party that can easily become a 1/3 staker in proof-of-stake).
What if a Casper contract is broken and a huge amount of ETH is stuck there? I wouldn’t move a finger for a recovery unless the amount is going to a few parties that can threaten the network (then I would prefer vaporizing away the amount rather than giving it back). Validators receive rewards for this risk among others.
The choice comes from my personal belief that each user of Ethereum is responsible for their use of Ethereum. I also believe that, if others pay for a user’s mistake, the payment should be voluntary donations (as opposed to freeing stuck tokens). And, originally, I just wanted a simple, deterministic virtual machine that doesn’t change frequently.