Skip to content

Update EIP-8141: add support for guarantors#11555

Draft
derekchiang wants to merge 4 commits intoethereum:masterfrom
derekchiang:eip-8141-guarantor
Draft

Update EIP-8141: add support for guarantors#11555
derekchiang wants to merge 4 commits intoethereum:masterfrom
derekchiang:eip-8141-guarantor

Conversation

@derekchiang
Copy link
Copy Markdown
Contributor

@derekchiang derekchiang commented Apr 21, 2026

We are still iterating on this idea but wanted to share it for early feedback.

The idea is to introduce the concept of a "guarantor," which is a payer that pays for the transaction even if sender validation fails. As long as a transaction has a guarantor, mempool nodes do not need to check if the sender validation succeeds, and can skip simulation for sender validation altogether.

As a result, transactions with a guarantor can use any sender validation logic, including access to shared state, environmental opcodes, etc., and still safely pass through the public mempool.

In practice, we expect guarantors to be either other accounts that the user owns, or third-parties who are willing to take on the risks of guaranteeing transactions for the user because 1) they have some sort of commercial or trust relationship with the user, or 2) they have some out-of-protocol knowledge that assures them that the transactions will not revert.

@github-actions github-actions Bot added c-update Modifies an existing proposal s-draft This EIP is a Draft t-core labels Apr 21, 2026
@eth-bot
Copy link
Copy Markdown
Collaborator

eth-bot commented Apr 21, 2026

✅ All reviewers have approved.

@github-actions github-actions Bot added w-ci Waiting on CI to pass and removed w-ci Waiting on CI to pass labels Apr 21, 2026
Comment thread EIPS/eip-8141.md
return keccak(rlp(tx_copy))
```

A frame signature hash elides only the data of that frame, identified by index:
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

If we don't elide the data in VERIFY frames, doesn't this mean we will struggle to aggregate and elide the frames themselves in the future?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

This is a good point -- maybe one solution is that blocker builder (who aggregates) can include the frame signature hashes (for each frame who accesses the hash via TXPARAM) in the block. After all, we are still not letting frames access signatures directly; we are just letting them access frame hashes that hash over signatures.

if (_frameMode(nextFrame) != MODE_DEFAULT) revert InvalidBumpNonceFrame();
if (_frameGasLimit(nextFrame) < MIN_BUMP_NONCE_GAS) revert InvalidBumpNonceFrame();
if (_frameDataLen(nextFrame) != BUMP_NONCE_DATA_LEN) revert InvalidBumpNonceFrame();

Copy link
Copy Markdown
Contributor

@forshtat forshtat Apr 22, 2026

Choose a reason for hiding this comment

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

Should we have something along the lines of:

uint256 bumpFlags = _frameFlags(nextFrame);
if (bumpFlags & ATOMIC_BATCH_FLAG != 0) revert InvalidBumpNonceFrameBatch();

to make sure the nonce bump cannot be tied with a different frame?

Upd: I see now that nonce bump is a DEFAULT frame - but still, in case we ever need to add flags we don't know about yet?

@github-actions
Copy link
Copy Markdown

The commit 2edb6b5 (as a parent of b40bb00) contains errors.
Please inspect the Run Summary for details.

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

Labels

c-update Modifies an existing proposal s-draft This EIP is a Draft t-core w-ci Waiting on CI to pass

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants