You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
eip7688: use forward compatible SSZ types in Gloas
EIP-4788 exposed the beacon root to smart contracts, but smart contracts
need to be redeployed / upgraded whenever generalized indices change
during a fork, even if that fork does not touch any used functionality.
That is analogous to an OS without ABI stability, requiring programs
to be maintained and re-compiled due to random breakages in OS updates.
This issue expands further to bridges on other blockchains, and also
into wallets / dApps that verify data from the beacon chain instead.
Such projects do not typically share Ethereum's release cadence.
- https://eips.ethereum.org/EIPS/eip-4788
EIP-7688 introduces forward compatibility for beacon chain structures.
Generalized indices remain same when list capacities evolve over forks,
containers no longer get re-indexed when reaching a new power-of-2
number of fields, and fields can be deprecated, leaving a gap in the
Merkle tree instead of triggering re-indexing.
- https://eips.ethereum.org/EIPS/eip-7688
EIP-7688 was requested for inclusion by popular projects:
- For Electra by Rocketpool: https://xcancel.com/KaneWallmann/status/1816729724145795258
- For Fulu by Lido: ethereum/pm#1356 (comment)
|`AggregationBits`|`Bitlist[MAX_VALIDATORS_PER_COMMITTEE * MAX_COMMITTEES_PER_SLOT]`| Combined participation info across all participating subcommittees |
132
+
|`AttestingIndices`|`List[ValidatorIndex, MAX_VALIDATORS_PER_COMMITTEE * MAX_COMMITTEES_PER_SLOT]`| List of attesting validator indices |
133
+
|`DepositRequests`|`List[DepositRequest, MAX_DEPOSIT_REQUESTS_PER_PAYLOAD]`| List of deposit requests pertaining to an execution payload |
134
+
|`WithdrawalRequests`|`List[WithdrawalRequest, MAX_WITHDRAWAL_REQUESTS_PER_PAYLOAD]`| List of withdrawal requests pertaining to an execution payload |
135
+
|`ConsolidationRequests`|`List[ConsolidationRequest, MAX_CONSOLIDATION_REQUESTS_PER_PAYLOAD]`| List of withdrawal requests pertaining to an execution payload |
136
+
126
137
## Constants
127
138
128
139
The following values are (non-configurable) constants used throughout the
@@ -293,11 +304,11 @@ class ConsolidationRequest(Container):
0 commit comments