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

Adopt EIP-7688: Forward compatible consensus data structures #3844

Draft
wants to merge 19 commits into
base: dev
Choose a base branch
from

Conversation

etan-status
Copy link
Contributor

@etan-status etan-status commented Jul 15, 2024

EIP-4788 exposes the beacon root to smart contracts, but smart contracts using it need to be redeployed / upgraded whenever the indexing changes during a fork, even if that fork does not touch any used functionality.

This problem expands further to bridges on other blockchains, or even into wallet apps on a phone that verify data from the beacon chain instead of trusting the server. It is quite unrealistic to expect such projects to all align their release cadence with Ethereum's forks.

EIP-7688 fixes this by defining forward compatibility for beacon chain data structures. Electra Profile retain their Merkleization even when rebased to StableContainer definitions from future forks, enabling decentralized protocols to drop the requirement for trusted parties to periodically upgrade beacon state proof verifiers.

@etan-status
Copy link
Contributor Author

etan-status commented Jul 15, 2024

Only last commit is relevant, the rest is part of #3777.

@etan-status
Copy link
Contributor Author

etan-status commented Jul 16, 2024

The circleci errors (AttributeError) on this PR are because this needs protolambda/remerkleable#25 and the CI tests don't honor setup.py configuration. Running the tests locally works fine:

make clean
make install_test
make build_wheel
caffeinate -ims make -j generate_tests
find ../consensus-spec-tests/tests -depth -type d -empty -delete

@etan-status etan-status force-pushed the ef-eip7688 branch 2 times, most recently from 90c01f3 to 38ab5c4 Compare July 17, 2024 11:31
@etan-status
Copy link
Contributor Author

@etan-status etan-status force-pushed the ef-eip7688 branch 4 times, most recently from 15a049b to b647114 Compare September 20, 2024 21:10
etan-status and others added 2 commits October 9, 2024 22:07
EIP-4788 exposes the beacon root to smart contracts, but smart contracts
using it need to be redeployed / upgraded whenever the indexing changes
during a fork, even if that fork does not touch any used functionality.

This problem expands further to bridges on other blockchains, or even
into wallet apps on a phone that verify data from the beacon chain
instead of trusting the server. It is quite unrealistic to expect such
projects to all align their release cadence with Ethereum's forks.

EIP-7688 fixes this by defining forward compatibility for beacon chain
data structures. Electra `Profile` retain their Merkleization even when
rebased to `StableContainer` definitions from future forks, enabling
decentralized protocols to drop the requirement for trusted parties to
periodically upgrade beacon state proof verifiers.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants