-
Notifications
You must be signed in to change notification settings - Fork 2.6k
BEEFY: add support for slashing validators signing forking commitments #14744
base: master
Are you sure you want to change the base?
BEEFY: add support for slashing validators signing forking commitments #14744
Commits on Aug 7, 2023
-
sc-consensus-beefy: add BEEFY fisherman to gossip network
Signed-off-by: Adrian Catangiu <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for ee6c180 - Browse repository at this point
Copy the full SHA ee6c180View commit details -
sp-consensus-beefy: add invalid fork vote proof and equivalent BeefyApi
Signed-off-by: Adrian Catangiu <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for ce03ec8 - Browse repository at this point
Copy the full SHA ce03ec8View commit details -
pallet-beefy: add stubs for reporting invalid fork votes
Signed-off-by: Adrian Catangiu <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for e95e316 - Browse repository at this point
Copy the full SHA e95e316View commit details -
sc-consensus-beefy: fisherman reports invalid votes and justifications
Signed-off-by: Adrian Catangiu <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 6651b32 - Browse repository at this point
Copy the full SHA 6651b32View commit details -
GRANDPA finalization proof is not checked, which leads to slashing on forks. This is fine since honest validators will not be slashed on the chain finalized by GRANDPA, which is the only chain that ultimately matters. The only material difference not checking GRANDPA proofs makes is that validators are not slashed for signing BEEFY commitments prior to the blocks committed to being finalized by GRANDPA. This is fine too, since the slashing risk of committing to an incorrect block implies validators will only sign blocks they *know* will be finalized by GRANDPA.
Configuration menu - View commit details
-
Copy full SHA for 7f988ef - Browse repository at this point
Copy the full SHA 7f988efView commit details -
change primitive: vote -> commitment
instead of using votes as the underlying primitive, rather use commitments since they're a more universal container for signed payloads (for instance `SignedCommitment` is also the primitive used by ethereum relayers). SignedCommitments are already aggregates of multiple signatures. Will use SignedCommitment directly next.
Configuration menu - View commit details
-
Copy full SHA for 2ab4f5b - Browse repository at this point
Copy the full SHA 2ab4f5bView commit details -
Configuration menu - View commit details
-
Copy full SHA for 06260f0 - Browse repository at this point
Copy the full SHA 06260f0View commit details -
Configuration menu - View commit details
-
Copy full SHA for 0642a81 - Browse repository at this point
Copy the full SHA 0642a81View commit details -
Configuration menu - View commit details
-
Copy full SHA for c6c36e3 - Browse repository at this point
Copy the full SHA c6c36e3View commit details -
Configuration menu - View commit details
-
Copy full SHA for 6078b41 - Browse repository at this point
Copy the full SHA 6078b41View commit details -
Configuration menu - View commit details
-
Copy full SHA for 5da5631 - Browse repository at this point
Copy the full SHA 5da5631View commit details -
EquivocationOffence.{offender->offenders}
previously assumed equivocation report for singular malicious party. With fork equivocations, the expectation should be that most equivocation reports will be for multiple simultaneous equivocators.
Configuration menu - View commit details
-
Copy full SHA for 98db7cf - Browse repository at this point
Copy the full SHA 98db7cfView commit details -
Configuration menu - View commit details
-
Copy full SHA for 1a45cbe - Browse repository at this point
Copy the full SHA 1a45cbeView commit details -
Configuration menu - View commit details
-
Copy full SHA for 4bd78eb - Browse repository at this point
Copy the full SHA 4bd78ebView commit details -
Configuration menu - View commit details
-
Copy full SHA for f4496c9 - Browse repository at this point
Copy the full SHA f4496c9View commit details -
Configuration menu - View commit details
-
Copy full SHA for 61f9a45 - Browse repository at this point
Copy the full SHA 61f9a45View commit details -
Configuration menu - View commit details
-
Copy full SHA for 53a1a88 - Browse repository at this point
Copy the full SHA 53a1a88View commit details
Commits on Aug 9, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 7e0ec77 - Browse repository at this point
Copy the full SHA 7e0ec77View commit details -
Configuration menu - View commit details
-
Copy full SHA for e8b97b3 - Browse repository at this point
Copy the full SHA e8b97b3View commit details -
reduce find_mmr_root_digest trait constraint
reduce from Block to Header: less restrictive.
Configuration menu - View commit details
-
Copy full SHA for d5ceb23 - Browse repository at this point
Copy the full SHA d5ceb23View commit details -
Configuration menu - View commit details
-
Copy full SHA for 3b274fa - Browse repository at this point
Copy the full SHA 3b274faView commit details -
Configuration menu - View commit details
-
Copy full SHA for 8701d7f - Browse repository at this point
Copy the full SHA 8701d7fView commit details -
Configuration menu - View commit details
-
Copy full SHA for 7c2cdfd - Browse repository at this point
Copy the full SHA 7c2cdfdView commit details -
remove duplic. in check_{signed_commitment, proof}
check_signed commitment wasn't complete anyway. good to have both interfaces since BeefyVersionedFinalityProof is what's passed on the gossip layer, and SignedCommitments are naturally reconstructed from multiple sources, for instance submit_initial calls on Ethereum.
Configuration menu - View commit details
-
Copy full SHA for 98eb692 - Browse repository at this point
Copy the full SHA 98eb692View commit details -
Configuration menu - View commit details
-
Copy full SHA for 91ce777 - Browse repository at this point
Copy the full SHA 91ce777View commit details -
redundant vs report_fork_equivocation
Configuration menu - View commit details
-
Copy full SHA for 3c3fc1c - Browse repository at this point
Copy the full SHA 3c3fc1cView commit details -
Configuration menu - View commit details
-
Copy full SHA for f2a9745 - Browse repository at this point
Copy the full SHA f2a9745View commit details -
Configuration menu - View commit details
-
Copy full SHA for faea8d9 - Browse repository at this point
Copy the full SHA faea8d9View commit details -
create_beefy_worker: only push block if at genesis
No need to trigger first session if chain's already had blocks built, such as with generate_blocks_and_sync, which needs to build on genesis. If chain is not at genesis and create_beefy_worker, it will panic trying to canonicalize an invalid (first) block.
Configuration menu - View commit details
-
Copy full SHA for c3df631 - Browse repository at this point
Copy the full SHA c3df631View commit details -
create_beefy_worker: opt. instantiate with TestApi
can pass in Arc of TestApi now. Required since fisherman reports should be pushed to `reported_fork_equivocations`, and should be logged with the same instance (see upcoming commit).
Configuration menu - View commit details
-
Copy full SHA for f1f2bb0 - Browse repository at this point
Copy the full SHA f1f2bb0View commit details -
push to reported_fork_equivocations
mock api's `submit_report_fork_equivocation_unsigned_extrinsic` pushes reported equivocations to runtime_api.reported_fork_equivocations
Configuration menu - View commit details
-
Copy full SHA for b0ed4ae - Browse repository at this point
Copy the full SHA b0ed4aeView commit details -
add generate_fork_equivocation_proof_vote to tests
Generates fork equivocation proofs from a vote and a header.
Configuration menu - View commit details
-
Copy full SHA for 113076c - Browse repository at this point
Copy the full SHA 113076cView commit details
Commits on Aug 10, 2023
-
test: Alice snitches on Bob's vote equivocation
i.e. a fork equivocation triggered by a vote
Configuration menu - View commit details
-
Copy full SHA for 772e3b8 - Browse repository at this point
Copy the full SHA 772e3b8View commit details -
store reference to key_store in fisherman
required for fisherman to *not* report own equivocations - see next commit.
Configuration menu - View commit details
-
Copy full SHA for 7d21f52 - Browse repository at this point
Copy the full SHA 7d21f52View commit details -
test: Alice doesn't snitch *own* vote equivocation
i.e. a fork equivocation triggered by a vote
Configuration menu - View commit details
-
Copy full SHA for 6646665 - Browse repository at this point
Copy the full SHA 6646665View commit details -
Configuration menu - View commit details
-
Copy full SHA for c97c963 - Browse repository at this point
Copy the full SHA c97c963View commit details
Commits on Aug 17, 2023
-
Configuration menu - View commit details
-
Copy full SHA for e4a39b2 - Browse repository at this point
Copy the full SHA e4a39b2View commit details
Commits on Aug 24, 2023
-
Alice reports Bob & Charlie's signed commitment
Robert Hambrock authored and Robert Hambrock committedAug 24, 2023 Configuration menu - View commit details
-
Copy full SHA for 10540ec - Browse repository at this point
Copy the full SHA 10540ecView commit details -
Configuration menu - View commit details
-
Copy full SHA for 50cd76e - Browse repository at this point
Copy the full SHA 50cd76eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 809784b - Browse repository at this point
Copy the full SHA 809784bView commit details -
Configuration menu - View commit details
-
Copy full SHA for 37ec6c9 - Browse repository at this point
Copy the full SHA 37ec6c9View commit details -
Configuration menu - View commit details
-
Copy full SHA for 4c2e0ba - Browse repository at this point
Copy the full SHA 4c2e0baView commit details -
Co-authored-by: Adrian Catangiu <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 3b655a1 - Browse repository at this point
Copy the full SHA 3b655a1View commit details
Commits on Aug 28, 2023
-
Configuration menu - View commit details
-
Copy full SHA for a36a01d - Browse repository at this point
Copy the full SHA a36a01dView commit details