Skip to content

Update EIP-8141: Spec cleanup and clarifications#11814

Draft
morph-dev wants to merge 2 commits into
ethereum:masterfrom
morph-dev:eip8141
Draft

Update EIP-8141: Spec cleanup and clarifications#11814
morph-dev wants to merge 2 commits into
ethereum:masterfrom
morph-dev:eip8141

Conversation

@morph-dev

Copy link
Copy Markdown

Clean up of the EIP-8141 spec. Some highlighter changes:

  • sig.signer can be empty and defaults to tx.sender
  • raw sig.signature bytes are elided for all sig_hash
    • since all signatures need to be valid for tx to be valid -> committing to sig.msg indirectly commits to sig.signatures as well
    • if they are not elided, they can't be used for signature aggregation in the future
  • Mempool: Expiry Verifier Frame can only be the first frame in the frame list
  • Moved some content from one section to another where I though it would be more appropriate

Note

I left several TODO in the code where I think we might want to change / clarify something. These should be resolved before merging.

@github-actions github-actions Bot added c-update Modifies an existing proposal s-draft This EIP is a Draft t-core labels Jun 17, 2026
@eth-bot

eth-bot commented Jun 17, 2026

Copy link
Copy Markdown
Collaborator

File EIPS/eip-8141.md

Requires 1 more review from Authors: @derekchiang, @drortirosh, @fjl, @forshtat, @lightclient, @nerolation, @shahafn, @vbuterin, @yoavw

@eth-bot eth-bot added the a-review Waiting on author to review label Jun 17, 2026
Comment thread EIPS/eip-8141.md
- If `mode` is `SENDER` or `DEFAULT`:
- Return successfully as if calling empty code.

> TODO: Can we pass signature index as calldata? Why don't we support P256 signature scheme as well?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the signature index thing is mostly an optimization for quantum (since the outer signatures can be aggregated and then removed from the txns), which is not really useful here since the signature is ECDSA.

Re why no P256 support -- supporting P256 in the default code means that we'd have to support P256-EOAs, where the EOA address is derived from P256 pub key. My initial version of default code actually did support that, but after some discussions with @lightclient we decided to remove it since introducing a new class of passkey-derived EOAs may open a can of worms that is hard to put back.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

By the way, another TODO for the default code is that we need to define a gas schedule for it. Since the default code is implemented not in the EVM but rather in client code, it's not clear how much gas it costs, unless we define it.

Or, we could define the default code in terms of EVM bytecode.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think signature index makes design cleaner. Why would code iterate over all signatures and try to check which one of them matches the requirements (scheme, msg, target), when we can just pass the index and it only checks one. Also, having index would make it easier to design gas schedule (if we want it to be executed as client code rather than EVM bytecode).

Regarding P256 support, I can see that as a good enough reason. It's something we can easily add in the future.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

a-review Waiting on author to review c-update Modifies an existing proposal s-draft This EIP is a Draft t-core

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants