-
Notifications
You must be signed in to change notification settings - Fork 1.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
Broadcast Slashing on equivocation #14693
base: develop
Are you sure you want to change the base?
Broadcast Slashing on equivocation #14693
Conversation
// Check for equivocation before inserting into fork choice | ||
slashing, slashingErr := s.detectEquivocatingBlock(cfg.ctx, cfg.roblock) | ||
if slashingErr != nil { | ||
return errors.Wrap(slashingErr, "could not detect equivocating block") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this should probably log instead of returning and preventing FCU? could not check for block equivocation
seems more accurate
I think this should probably be done in the gossip validation of beacon blocks for two reasons:
Fwiw I am just an interested bystander using this as a learning opportunity. Feel free to ignore or let me know if this is unhelpful |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
When moving this check to the right spot instead after the call to ReceiveBlock
we don't have the root yet (since we only hash after we know we haven't seen the block), we should check if the signatures are different instead, as a different root will result in a different signature.
Hey @potuz, Thanks for the review, addressed the changes that were requested |
…nto broadcast-equivocating-blocks
… broadcast-equivocating-blocks
…nto broadcast-equivocating-blocks
} | ||
|
||
// Type assert to get the existing block | ||
existingSignedBlock, ok := existingBlock.(interfaces.ReadOnlySignedBeaconBlock) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
s.seenBlockCache
in the Sync package never returns a block , we set it for example in setSeenBlockIndexSlot
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
okay, current approach wouldn't work then. As suggested by you, made changes to use headBlock instead of blockCache for equivocation Detection.
…nto broadcast-equivocating-blocks
…yam-patel-kira/prysm into broadcast-equivocating-blocks
… broadcast-equivocating-blocks
…nto broadcast-equivocating-blocks
fixes #13088
The PR implements immediate broadcasting of slashing messages when detecting equivocating blocks, helping the network react more quickly to malicious behavior without relying on the full slasher service processing.