Three choices — and doing nothing is one of them
It has now been more than eight years since the Parity wallet freeze locked 513,774 ETH belonging to 598 wallets. In that time we have seen EIP-999, years of silence, the EFRP, and most recently the ODLR proposal by @tkwr441. With two concrete, well-specified proposals on the table I think it is worth taking a step back and looking honestly at the full decision space. As I see it there are now exactly three choices in front of the community. Doing nothing is one of them, and it deserves to be examined on its merits just like the other two — because not deciding is also a decision, we just don’t take responsibility for it.
Choice 1: The status quo — we do nothing and leave things as they are
The consequences of this choice are clear. The victims, who did not write a single line of the code that failed them, lose everything. A small affected minority is asked by a large unaffected majority to give up their funds permanently, in the name of immutability. Since this is the default choice it requires no EIP, no code and no effort, which is exactly what makes it so easy to drift into. But if we are going to make this choice, we should at least be honest about the arguments carrying it.
The first is immutability itself. With the greatest respect to those who hold immutability as absolute: that position was tested in 2016. The DAO fork moved 3.6 million ETH, and those who truly considered immutability inviolable had a home in Ethereum Classic. Almost the entire community, myself included, is here on the forked chain. Some will say the DAO was different because it threatened the network’s survival — but that concedes the point. In practice we have always treated immutability as a strong principle that can, in truly exceptional circumstances, be weighed against other values. The question was never whether we weigh it. The question is where we draw the line, and who ends up on the wrong side of it.
The second is a bitter irony that I feel gets far too little attention: the thing that destroyed these wallets is itself the immutability breaker. As was noted in the discussions that eventually led to EIP-6780, SELFDESTRUCT was the only opcode that broke the code immutability invariant — it permanently erased valid, deployed code from the chain. So the “do nothing” position asks us to preserve, in the name of immutability, the damage done by the one opcode that violated immutability. That is not defending a principle. That is defending a wound.
And the community has already acknowledged this. With the Dencun upgrade (EIP-6780, March 2024) the workings of SELFDESTRUCT were permanently changed, precisely because the opcode was recognized as problematic. A tragedy like the Parity freeze can never happen again. But we fixed it only for the future. We recalled the defective part for all future cars, and we tell the people whose cars already crashed that repairs are against our principles.
Even Bitcoin, held up as the gold standard of “code is law”, faced this exact dilemma. In August 2010 an integer overflow created 184 billion BTC out of thin air. Within five hours a patched client was released and the network abandoned the chain containing the exploit. Nobody today calls Bitcoin mutable, and nobody calls that intervention a bailout. When a bug threatens the integrity of the system, fixing the damage is maintenance, not betrayal.
Finally there is the question of scale and of justice. Research by Coinbase’s Conor Grogan (2025) conservatively estimates over 913,000 ETH — roughly $3.4 billion, about 0.76% of all circulating ETH — permanently lost to bugs and irreversible errors, and that excludes lost private keys. This is not one unfortunate incident; it is a structural property of the system as it stands. And let us be honest with ourselves: if 60% of ETH holders had been affected by the Parity freeze, it would have been fixed years ago — the DAO proved exactly that. A principle that binds only small minorities is not a principle. It is two-tier justice.
There is also now a clock on this choice. Verkle trees and state expiry are front-runners for the next upgrade cycle, and the dormant Parity contracts are precisely the kind of state that expiry mechanisms prune. Doing nothing today does not keep the question open for tomorrow. It quietly answers it, permanently, without anyone ever having to take responsibility for the answer.
Doing nothing places the entire cost of a systemic failure on innocent victims. In my eyes it is the most immoral of the three choices, precisely because it disguises itself as not choosing at all.
Choice 2: Develop the EFRP further and bring it online
The EFRP is a small, limited, but flexible governance solution. Its strength is that it is universal: it applies to every case — past, present and future — in which legitimate owners can still cryptographically prove ownership of their funds but have lost access, regardless of the specific technical cause. It requires no hard fork and no state change. Compromised ETH is burned forever, victims receive sETH 1:1, and the sETH is gradually redeemed by repurposing the EIP-1559 base fee that is currently being burned — net inflation of zero, immutability fully intact.
More fundamentally, the EFRP is an acknowledgment that Ethereum is still a young technology in which catastrophic mistakes will inevitably occur, with severe consequences for those affected. A standing, rule-based recovery mechanism does not weaken the network — it strengthens it, by significantly lowering the smart contract risk that today forms a real barrier to adoption for both individuals and institutions.
I will be honest about its weakest point, because others here have rightly pointed at it: the council, and the human factor it introduces. When I wrote the proposal I saw no way to automate the assessment work. Perhaps, with current AI capabilities, that is no longer true — a fully automated assessment with only a human emergency brake as a last resort. I consider this an open question and I welcome ideas on it.
Choice 3: Adopt the ODLR — a unique technical solution
The ODLR is not an ambitious universal recovery mechanism like the EFRP, and it does not try to be. It is an elegant, narrow, purely technical solution: restore the bytecode of a shared library that was destroyed by an unauthorized third party, via a mechanical rule with strict on-chain eligibility criteria, owner consent thresholds, and a public challenge protocol. No ETH moves. No storage changes. No case-by-case politics.
To me, developing the ODLR further is the logical consequence of EIP-6780. The community has already judged the SELFDESTRUCT opcode problematic enough to neutralize it for the future. Restoring the damage this same opcode already inflicted on innocent victims is simply the other half of that repair. For the Parity freeze specifically, it is the cleanest solution I have seen in eight years.
The choice in front of us
So there are three options on the table. Doing nothing places a disproportionate burden on innocent victims and, ironically, preserves the damage done by the very opcode that broke immutability — the most immoral choice, and the only one nobody has to argue for out loud. The EFRP is a limited but flexible governance solution for all cases, past and future, where legitimate ownership can still be proven. The ODLR is a one-time, elegant technical repair for the specific class of damage caused by an opcode the community has since neutralized.
The two proposals are not even mutually exclusive — one could repair the Parity class directly while the other covers everything the first cannot reach. The only outcome I hope we can avoid is choosing neither by silence.
I am truly curious which option people would choose, and why.