Need help drafting an EIP

Dear Magicians,

We’re a group of community members, victims of the Parity drama from 2017, working on a proposal for an Ethereum Assets Recovery Protocol, aimed at helping recover lost or inaccessible funds on the network due to bugs or unintended smart contract behavior.

While we’re passionate about this cause, we recognize we lack the technical expertise and experience of many of you here. We’re reaching out for collaboration, feedback, and advice on shaping this EIP into something that can truly benefit the ecosystem.

We’d deeply appreciate any guidance on how we can refine the proposal and bring it closer to something the Ethereum community can rally behind.

We need all the help we can get to ensure that this proposal serves the broader Ethereum community. Don’t wanna make another 999… :smiley:

Would love to connect with the right people, and get some help. And leads & directions would be greatly appreciated

9 Likes

Thank you for posting this!

As one of the victims I hope to see a positive outcome of this case and other similar cases. For myself and others who have found themselves in such an unfortunate situation.

Let’s create an EIP that contributes positively to the whole of the ETH ecosystem!

1 Like

Any help is very much appreciated :pray: after all there are more than 100k eth affected by this issue and I’m one of the affected users. Can anyone from the ethereum community support?

I’m sorry for everyone who loses funds.

I doubt there is much chance of community support of a single incident recovery EIP such as EIP-999: Restore Contract Code at 0x863DF6BFa4469f3ead0bE8f9F2AAE51c91A907b4. The chances are more likely to decrease over time (it is now nearly 7 years).

A generic mechanism like EIP-867: Standardized Ethereum Recovery Proposals may have a slightly greater chance of support but it would be a long uphill struggle.

I’d suggest collating information on previous attempts, why they failed and how your approach would address the concerns raised. You could then gauge what community support there is.

Previous discussions:

4 Likes

As someone who has experienced this firsthand, I’m hopeful for a positive resolution in this case and others like it. For everyone who’s been in a similar unfortunate position, let’s work together to create an EIP that benefits the entire Ethereum community!

I was thinking about a solution like this:

Proposal: the tx.origin (EOA) of a deployed smart contract should be able to revive the smart contract if it was killed

Intention: this would allow smart contracts that were mistakenly or maliciously killed to be revived and lost funds to be recovered.

Example of Implementation:

  1. Ethereum inplements an oracle specifically to revive killed smart contracts only

  2. The tx.origin deployer of a killed smart contract would have to sign a specific message where it is mentioned the killed smart contract address

  3. The ethereum oracle would receive this signed message and would validade the signature onchain with a specific smart contract for this purpose, and if the signature matches with the tx.origin address deployer of the killed smart contract, the contract would be revived

Note: this solution allows only the deployer EOA to revive a killed smart contract, not the EOA that killed the smart contract. Why? Because malicious actors (Like in the case of the parity locked funds) can maliciously kill a smart contract and like this only the EOA deployer would have the rights to reverse such action, if we would allow the EOA that killed a smart contract to revive the contract this implementation would be pointless.

@abcoathup what do you think about such solution?

@everyone any input is very much appreciated

2 Likes

How many cases are there where this would cause a negative outcome vs the one case where you want a positive outcome? I doubt that it would be supported.

2 Likes

Many cases of lost funds because of this issue:

Polkadot: 306,276 ETH ($ 962 077 233)

ICONOMI: 114,939 ETH ($ 361 047 536)

Centrality: 21,704 ETH ($ 68 176 821)

Musiconomi: 16,476 ETH ($ 51 754 575)

Hedge Token: 4,525 ETH ($ 14 213 975)

Moeda: 4,361 ETH ($ 13 698 816)

Wysker: 1,577 ETH ($ 4 953 688)

Viewly: 1,400 ETH ($ 4 397 694)

Fluence: 1,376 ETH ($ 4 322 304)

Live Stars: 672 ETH ($ 2 110 893)

IMMLA: 600 ETH ($ 1 884 726)

Silent Notary: 286 ETH ($ 898 386)

Mirocana: 285 ETH ($ 895 244)

DAO.Casino: 150 ETH ($ 471 181)

Fiinu: 145 ETH ($455 475)

Jincor: 58 ETH ($ 182 190)

Can you elaborate on this? What do you mean it would cause a negative outcome?

Multiple avenues are being considered what would you say are the cons of allowing killed contracts to be restored by the deployer EOA on a later date?

I assume the projects listed with stuck funds are all related to a single instance of a contract being SELFDESTRUCTed.

Someone would need to research every single instance of a contract being SELFDESTRUCTed and what the impact would be in every single case if the contract was allowed to be resurrected by the deployer of the contract.

Someone would need to do this research to determine the various outcomes, some of which could be negative. This is one of the issues with a broad change like this.

2 Likes

Thanks a million for all the input people :blue_heart::nerd_face:

I went through the answers and I can smell a scent of hope :smiley:

@ciluman I believe 514k ETH is inaccessible right now. I don’t even think the expression “locked” is right.

@abcoathup thanks for the reading material. I’ve read the majority of 999 before already, now reading my way through 867. Loads of very compelling comments & arguments in there! :nerd_face:

What would you say are the chances now, 7 years later? Like… how has the ecosystem changed that it would favor such a systemic change and how has it changed so that it would more likely reject it?

I personally believe that at least emotionally, the landscape has cleared a bit around the drama. Minds have softened a bit. Code is Law is moving ever towards Code is Change if I understood right.

If you were to advise us how to approach and gauge the community support here efficiently?

Thanks again for the input Andrew! :pray:t2: We’ll do our homework and come back once we have something figured out.

On a state change for one single incident 7 years ago, zero.
As part of a generic framework for recovering stuck/lost funds, very low (but not impossible).

I am not a core dev, this is my personal opinion only as part of the Ethereum community.

0%. I’m sorry. It is not something the core devs will pursue.

1 Like

Hi Matt, thanks for pitching in even tho it’s a hard hit hearing point blank 0%, ngl :sweat_smile:

For what reasons is this not something the core devs would pursue, if I may ask?

@matt, @abcoathup - we have a discord community where we discuss a whole range of possible solutions for this.

Would love to have someone from the magicians come and speak to us & tell us why it is(n’t) possible.

Would you be open to come have a short Q&A with our group?

I don’t have anything more to add. I’ve given you my perspective.

Hi everyone,

I’m really sorry to hear about the Parity incident and the impact it had on many in our community. Your initiative to develop an Ethereum Assets Recovery Protocol is both timely and essential. Here are some thoughts and ideas that might help refine your proposal:

Unified Recovery Mechanism

Single Smart Contract Approach:
Instead of multiple contracts, a single, well-audited smart contract can streamline the recovery process. This contract would handle proposals and executions of fund recoveries, ensuring simplicity and security.

Balanced Oversight:

  • Multi-Sig Admins: Implement a multisignature setup (e.g., 3 out of 5 admins) to propose and approve recovery actions. This reduces the risk of any single admin acting maliciously.
  • User Approvals: Allow users who have been affected by frozen funds to approve or veto recovery actions. This ensures that the community has a say in the process, preventing unilateral decisions by admins.

Governance Integration

Community-Driven Decisions:
Drawing inspiration from EIP-867 and EIP-999, it’s crucial to ensure that recovery actions are not only technically sound but also have community backing. By requiring both admin and user approvals, we create a system that’s resilient against collusion and maintains trust.

Transparent Processes:
All actions, from proposals to approvals and executions, should be logged transparently on-chain. This makes the entire process auditable and builds trust within the community.


Let me know your thoughts if relevant

1 Like

Hi @tms1337,

Thanks a lot for pitching in.

What do hardcore neysayers have to say on this? @abcoathup @matt - would just love to hear some constructive criticism other than a blunt “No” or “0%”.

If you give us the why then maybe we can address it? Nobody I’ve spoken to thinks that these people don’t deserve their money back and that the ecosystem couldn’t benefit from a solid fund recovery system…

:pray:t3::nerd_face::pray:t3:

is it a start? @abcoathup @Cova @matt

Ethereum Assets Recovery Protocol Proposal

Abstract:

The Ethereum Recovery Protocol aims to create a standardized mechanism for recovering inaccessible or locked funds due to unintended smart contract behavior or bugs. By introducing a protocol that works in harmony with Ethereum’s existing consensus and fee models, this EIP lays the groundwork for safely, securely, and equitably redistributing inaccessible funds in a manner that benefits both the affected parties and the broader Ethereum ecosystem. The proposal addresses the lessons learned from EIP-999 & 867 and creates a more holistic and flexible solution.

Motivation:

The increasing complexity of decentralized applications (dApps) and smart contracts on Ethereum has highlighted vulnerabilities in contract design, leading to locked or lost funds through no fault of the users. The Parity Wallet bug serves as a prime example, where approximately 500,000 ETH (~$1.5B today) was locked permanently due to a smart contract bug. These funds, if recoverable through a transparent, decentralized, and auditable mechanism, could greatly benefit the ecosystem while respecting Ethereum’s commitment to immutability.

The key motivation of this EIP is to provide a mechanism that allows for the careful recovery of locked funds while preventing any moral hazard. This solution will not only return funds to affected users but also establish a framework for future recovery cases that minimizes risks to Ethereum’s security and decentralization.

What you are describing is recovery of assets on Ethereum.

This is the single most downvoted issue in the history of the community review of Ethereum changes: Standardized Ethereum Recovery Proposals (ERPs) by phiferd · Pull Request #867 · ethereum/EIPs · GitHub

Also discussed at Restore Contract Code at 0x863DF6BFa4469f3ead0bE8f9F2AAE51c91A907b4 by 5chdn · Pull Request #999 · ethereum/EIPs · GitHub

In fact the response was so strong that another proposal was written specifically to address how proposals likes yours should be addressed. It says they should not be enacted.


Arguments abound on why we should not violate the guarantees of a decentralized system, such as this proposal recommends.

And is just one citation (link to specific comment):


I disagree with this proposal and it should not be implemented.



Futhermore, I believe Etherum Mainnet should not go through any further changes period. Because it is a decentralized system. And the contract has already been made. And Vitalik should relinquish control of the Ethereum trademark so that others people may propose changes to the Ethereum software rather than only himself.

3 Likes