Discussion: EIP-7702 Support on FEVM (Set EOA Account Code) #1143
Replies: 5 comments
-
|
The main issue is that, given deferred execution, an "evil" account could:
At the moment, we'll only include message 2 if the account has enough funds to cover the gas. If, when message 2 is executed, the account doesn't have the funds; we charge the miner that included the message. At the moment, we can do this reliably (mostly) because message 1 has to declare the amount of funds its sending in the message itself so the miner packing the block can keep a running total of the available balance as it packs messages, ensuring that all accounts will have enough funds to send them. I say mostly because tipsets throw a bit of a wrench in this mess but the current system is "good enough". The solution we've discussed in the past is multi-stage execution:
This fixes the problem by reserving the funds needed to pay for gas before any accounts can "steal it" from themselves. This change isn't actually that hard to implement and gets us much closer to supporting full account abstraction so.... I'm all for it, TBH. |
Beta Was this translation helpful? Give feedback.
-
|
Hi @snissn 👋 — thanks for kicking off the EIP-7702 discussion! Below is exactly what Core Devs need before we can add this item to the next call (the agenda is for concrete, spec-level proposals rather than early brainstorming).
How to move forward
If we can land the mini-spec this week, we should comfortably hit the next Core Devs call and stay aligned with Ethereum’s Pectra timeline. Looking forward to shaping this out and please reach out if you need any help! |
Beta Was this translation helpful? Give feedback.
-
|
Thank you everyone for the valuable discussion so far. Following up on @Tanisha-fil's requirements for moving forward and addressing the architectural points raised by @Stebalien, we have formalized the implementation strategy for EIP-7702 on FEVM and drafted a comprehensive FIP. Below is a summary of the value proposition and the specifics of our proposed implementation. What EIP-7702 Does and Why It Matters for FilecoinEIP-7702 (Set Code for EOAs) is a crucial update as the Ethereum ecosystem evolves toward enhanced wallet functionality and account abstraction. It allows standard Externally Owned Accounts (EOAs)—the typical user wallet—to delegate execution capabilities to a smart contract. This effectively lets an EOA behave like a smart contract wallet without requiring the user to migrate assets or change their address. The primary benefits for the Filecoin ecosystem are:
FEVM Implementation DetailsOur approach integrates EIP-7702 entirely within the existing EVM actor architecture, avoiding modifications to the core Filecoin account actors. 1. The
|
Beta Was this translation helpful? Give feedback.
-
|
On further thinking and review I think it makes more sense to consider the resolution to the gas pre‑reservation concerns raised by @Stebalien as a separate FIP. It’s orthogonal to 7702: pre‑reservation alters the consensus execution pipeline for all messages, while 7702 is about EOA delegation semantics. Refining the gas pre-reservation is an orthogonal change to EOA and resolves the concern. Splitting them lets us stage, benchmark, and activate the economic change independently, without slowing down the EOA feature. It also makes review cleaner—miners’ incentives, packer behavior, and test vectors for reservation deserve focused scrutiny that would bloat the 7702 spec. |
Beta Was this translation helpful? Give feedback.
-
|
Here is a discussion for the related Multi‑Stage Gas Reservation feature: #1210 |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
I’d like to open a discussion around implementing EIP-7702 in the FEVM. This EIP introduces a new transaction type (
0x04) that allows EOAs to set their code to a special delegation designator (0xef0100 || address), effectively forwarding execution to a target contract. This enables EOAs to behave like lightweight smart contract wallets, unlocking features such as:It’s forward-compatible with account abstraction approaches like ERC-4337, without committing to any specific standard. I’m planning to implement this for the FEVM.
I’d appreciate feedback on any concerns or suggestions around delegation designators, Filecoin’s actor model, and the delayed execution model. For example, I recall @Stebalien previously raising cases where contracts are created and then used within the same transaction—something that may require special handling in the context of Filecoin’s execution semantics.
EIP-7702 is slated for inclusion in Ethereum’s upcoming Pectra upgrade, with a tentative ethereum mainnet launch date of May 7th. Including support in FEVM would help keep us aligned with evolving wallet and tooling expectations.
Looking forward to your thoughts!
Beta Was this translation helpful? Give feedback.
All reactions