Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add EIP: Delayed execution #9376

Open
wants to merge 6 commits into
base: master
Choose a base branch
from

Conversation

nerolation
Copy link
Contributor

@nerolation nerolation requested a review from eth-bot as a code owner February 18, 2025 10:22
@eth-bot
Copy link
Collaborator

eth-bot commented Feb 18, 2025

File EIPS/eip-7886.md

Requires 1 more reviewers from @g11tech, @lightclient, @SamWilsn

@eth-bot eth-bot added e-consensus Waiting on editor consensus e-review Waiting on editor to review labels Feb 18, 2025
@github-actions github-actions bot added the w-ci Waiting on CI to pass label Feb 18, 2025
@nerolation nerolation changed the title Delayed exec eip Add EIP: Delayed Execution Feb 18, 2025
@github-actions github-actions bot added c-new Creates a brand new proposal s-draft This EIP is a Draft t-core and removed w-ci Waiting on CI to pass labels Feb 18, 2025
@eth-bot eth-bot changed the title Add EIP: Delayed Execution Add EIP: Delayed execution Feb 18, 2025
EIPS/eip-7886.md Outdated
)
```

By signing over the header, the `COINBASE` address explicitly accepts responsibility for the upfront inclusion costs *of this block*. Therefore, the recovered address MUST equal the block's `COINBASE`. The `COINBASE`'s commitment is protected from replay attacks, because the header is a commitment to the block, so the signature only serves as an authorization for the exact block for which the `COINBASE` has agreed to take responsibility.
Copy link
Contributor

Choose a reason for hiding this comment

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

Little bit more rationale in here. I'm going to stop commenting on this; you get the idea.

EIPS/eip-7886.md Outdated

### Static block validation

We split up a block's validation from its execution. In the ethereum/execution-specs, static validation is done in `validate_block`, after which a block is guaranteed to be valid and can be attested to, while execution remains within `apply_body`. In `validate_block`, we do some formal checks, as well as:
Copy link
Contributor

Choose a reason for hiding this comment

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

In the ethereum/execution-specs, static validation is done in validate_block [...]

You should link explicitly to lines in a specific commit, in case things move around or are refactored in EELS.

EIPS/eip-7886.md Outdated

### Block execution

This logic is implemented into the ethereum/execution-specs, in `apply_body`.
Copy link
Contributor

Choose a reason for hiding this comment

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

Again, specific link is preferred.

@github-actions github-actions bot added the w-ci Waiting on CI to pass label Feb 18, 2025
Copy link

The commit a89b74d (as a parent of 37db202) contains errors.
Please inspect the Run Summary for details.

@github-actions github-actions bot removed the w-ci Waiting on CI to pass label Feb 19, 2025
EIP-7623: Fix linter issues

EIP-7623: Fix linter issues

EIP-7623: Fix linter issues

EIP-7623: Fix linter issues
Copy link

@rkrasiuk rkrasiuk left a comment

Choose a reason for hiding this comment

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

very cool. would also be great to see in the consideration section what potential challenges there are with increasing the delay window (coinbase balance decrease and gas limit are two that immediately come to mind)

class Header:
parent_hash: Hash32
ommers_hash: Hash32
coinbase: Address

Choose a reason for hiding this comment

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

should we exclude the coinbase from header?

chain_id,
header.parent_hash,
header.ommers_hash,
header.coinbase,

Choose a reason for hiding this comment

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

here as well

The final header structure then is:

```python
class Header:

Choose a reason for hiding this comment

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

Deferred comment on the field is a little bit confusing given that these parent_* fields are validated immediately


## Abstract

This proposal makes (execution) blocks statically verifiable through minimal checks that only require the previous state, but no execution of the block's transactions, allowing validators attest to a block's validity without completing its execution. We allow transactions to be skipped when invalid at execution time, without invalidating the whole block. To ensure that even skipped transactions pay for their resources, the `COINBASE` pays for all inclusion costs upfront (base cost, calldata and blobs), and recovers the costs only when transactions are successfully executed.

Choose a reason for hiding this comment

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

one unmentioned consideration here is that this will require EL clients to bring back or introduce signer management for local payload building

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
c-new Creates a brand new proposal e-consensus Waiting on editor consensus e-review Waiting on editor to review s-draft This EIP is a Draft t-core
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants