-
Notifications
You must be signed in to change notification settings - Fork 1k
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
Fix sync protocol next_sync_committee_branch
verification and remove active header
#2829
Conversation
next_sync_committee_branch
verification and and remove active headernext_sync_committee_branch
verification and remove active header
The changes seem a bit rushed to me.
Re perspective of builder:
Other related PRs (building on top of the previous approach, but the edge cases are discussed there as well): |
Agree with @etan-status on most points. In regular mainnet conditions we can always wait for a finalized update which gives you the highest security guarantee at no extra cost |
The work here is covered by #2932 |
closing in favor of #2932 |
Discussed with @vbuterin today:
update.next_sync_committee_branch
Merkle branch verification, it should be onattested_header
rather than usingactive_header
that may befinalized_header
.update_period
should be fromattested_header
rather than usingactive_header
.apply_light_client_update
intoupdate_sync_committees_from_update
andupdate_new_finalized_header
.LightClientUpdate
builder, no need to fill emptynext_sync_committee_branch
.From the perspective of a
LightClientUpdate
builder:attested_header
with the recent block headerattested_header
state should point to thefinalized_checkpoint
next_sync_committee
andnext_sync_committee_branch
next_sync_committee
andnext_sync_committee_branch
corresponding toattested_header
finalized_header != BeaconBlockHeader()
finality_branch
corresponding to the state of theattested_header
finalized_header
withBeaconBlockHeader()
finality_branch
with[Bytes32() for _ in range(floorlog2(FINALIZED_ROOT_INDEX))]
sync_aggregate
is always theSyncAggregate
ofattested_header
fork_version
is forsync_aggregate
/cc @etan-status @jinfwhuang @dapplion if you have time to review :)