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

Electra EIPs for discussion #3449

Closed
djrtwo opened this issue Jul 12, 2023 · 14 comments
Closed

Electra EIPs for discussion #3449

djrtwo opened this issue Jul 12, 2023 · 14 comments
Labels

Comments

@djrtwo
Copy link
Contributor

djrtwo commented Jul 12, 2023

Please comment with EIPs to be discussed for inclusion in Electra upgrade
For discussion:

EIP Title CL specs EL change? Inclusion status
EIP-6110 Supply validator deposits on chain alpha Y Included
EIP-6914 Reuse validator indices alpha N No
EIP-7002 Execution layer triggerable exits alpha Y Included
EIP-7251 Increase the MAX_EFFECTIVE_BALANCE resource collection N Discussion
EIP-7547 Inclusion lists draft, resource collection Y Discussion
EIP-7549 Move committee index outside attestation alpha N Included
EIP-7594 PeerDAS - Peer Data Availability Sampling draft N Discussion
SSZ-ification Discussion
1. EIP-6404 SSZ Transactions Root Y
2. EIP-6465 SSZ Withdrawals Root Y
3. EIP-6466 SSZ Receipts Root Y
4. EIP-6493 SSZ Transaction Signature Scheme Y
5. EIP-7495 SSZ StableContainer Y
@mkalinin
Copy link
Collaborator

@dapplion
Copy link
Collaborator

@etan-status
Copy link
Contributor

If this is the Verkle fork, some form of SSZ for the other _root beside state_root.

Still have to revamp the EIPs based on the latest feedback from #typed-transactions, but tracking them here for awareness.

@djrtwo
Copy link
Contributor Author

djrtwo commented Jul 24, 2023

EIP 6914: Reuse validator indices

@abcoathup
Copy link

Upgrade was named Electra on ACDC 113 when Danny was away: ethereum/pm#823 (comment)

@hwwhww hwwhww changed the title E-star EIPs for discussion Electra EIPs for discussion Jul 31, 2023
@dapplion
Copy link
Collaborator

dapplion commented Dec 8, 2023

EIP-7549: Move committee index outside Attestation

@abcoathup
Copy link

Add EIP7594: PeerDAS
https://github.com/ethereum/EIPs/pull/8105/files

@g11tech
Copy link
Contributor

g11tech commented Jan 18, 2024

imo:

sszification + 6110 (on chain deposits) + 7002 (el triggered exits/partial withdrawals) makes sense for EL side cleanup pre-verkle

on CL side: PeerDAS looks exciting and could be the show stopper of the next fork , 7549 + 6914 looks easy enough and EIP 7251 looks important enough to stall/slow (or even reverse) the growth of the beacon state

plus would love to see some of the containers to move to Partial/Extensible containers on the lines of the EIPs suggested by @etan-status

@g11tech
Copy link
Contributor

g11tech commented Jan 18, 2024

@etan-status
Copy link
Contributor

The complete list of the "SSZ-ification" section:

  1. EIP-7495: SSZ StableContainer
  2. EIP-6493: SSZ Transaction Signature Scheme
  3. EIP-6404: SSZ Transactions Root
  4. EIP-6466: SSZ Receipts Root
  5. EIP-6465: SSZ Withdrawals Root

The one that @g11tech mentioned above is EIP-7495: SSZ StableContainer -- I think the idea is to also transition BeaconBlockBody, ExecutionPayload and so on to a format where members retain their location in the merkle tree across forks (e.g., right now, in whisk, some gindex has to be re-assigned from Capella, changing tree shape).

Having a stable tree shape means that clients that want to validate presence of specific information can do so without continuously updating their Merkle proof validation logic, as long as the queried information retains its semantic meaning.

@g11tech
Copy link
Contributor

g11tech commented Jan 19, 2024

another think which I think would greatly benefit solo stakers:

@g11tech
Copy link
Contributor

g11tech commented Jan 19, 2024

The complete list of the "SSZ-ification" section:

1. [EIP-7495: SSZ StableContainer](https://eips.ethereum.org/EIPS/eip-7495)

2. [EIP-6493: SSZ Transaction Signature Scheme](https://eips.ethereum.org/EIPS/eip-6493)

3. [EIP-6404: SSZ Transactions Root](https://eips.ethereum.org/EIPS/eip-6404)

4. [EIP-6466: SSZ Receipts Root](https://eips.ethereum.org/EIPS/eip-6466)

5. [EIP-6465: SSZ Withdrawals Root](https://eips.ethereum.org/EIPS/eip-6465)

The one that @g11tech mentioned above is EIP-7495: SSZ StableContainer -- I think the idea is to also transition BeaconBlockBody, ExecutionPayload and so on to a format where members retain their location in the merkle tree across forks (e.g., right now, in whisk, some gindex has to be re-assigned from Capella, changing tree shape).

Having a stable tree shape means that clients that want to validate presence of specific information can do so without continuously updating their Merkle proof validation logic, as long as the queried information retains its semantic meaning.

+1, least we can do in Electra is StableContainers for BeaconBlockBody and ExecutionPayload

@protolambda
Copy link
Collaborator

protolambda commented Jan 25, 2024

EIP-6466, SSZ receipts, is incredibly impactful for its small scope: it makes receipt-proving a lot more viable.

Currently EVM receipts just concatenate log events of completely different contracts, which means applications have no control over their ability to make their log event provable without the user having to prove a potentially multi-megabyte preimage (worst-case does not fit in EVM).
That said, merkleizing to separate log events, each with their contract address source as a mix-in, would also work for some use-cases.

Edit: also, apologies for posting here, there's a longer thread of SSZ related comments here. Happy to move it all into eth-magicians forum if this isn't the right place.

@etan-status
Copy link
Contributor

etan-status commented Jan 25, 2024

Another interesting addition could be:

This does not have to be tied to a fork specifically, but most of the work is necessary as preparation for Verkle anyway, and adding support for minority ELs to use an eth_getProof based "database" (without locally storing anything) would grant them veto power, drastically reducing the possibility of a Geth bug to issue a VALID verdict for an incorrect block. Geth is the only EL with an install base that can finalize a fake-valid block, so it would have to be the only one providing efficient eth_getProof access while processing engine_newPayload (before engine_forkchoiceUpdated).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

9 participants