Allow light client to verify signatures at period boundary #173
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
As the sync committee signs the previous block, the situation arises at
every sync committee period boundary, that the new sync committee signs
a block in the previous sync committee period. The light client cannot
reliably detect this condition (e.g., assume that this is the case when
it is currently on the last slot of a sync committee period), because
the last couple slots of a sync committee period may not have a block.
For example, when receiving a
FinalizedHeaderUpdate
that is constructedas in the following illustration, it is unknown whether
sync_aggregate
was signed by the current or next sync committee at
attested_header
.This patch addresses this edge case by including the slot at which the
sync_aggregate
was created into theFinalizedHeaderUpdate
object.Note that the
signature_slot
cannot be trusted beyond the purpose ofsignature verification, as it could be manipulated to any other slot
within the same sync committee period and fork version, without making
the
sync_aggregate
invalid.Related ethereum/consensus-specs#2805