Open drewstone opened 2 years ago
@temld4 there's a few things we'll need to do nonetheless if we want to catch and handle slashing conditions. I'd be curious to hear your thoughts on them and where you think we may fit it into the current workflow (if it's not there already).
For starters, we need to validate that the only messages we process are sent by valid parties. I think we have this implemented by would be worth double-checking. Next, we need a way of indexing signed messages received from other parties efficiently. If we reach a blame
stage at any phase of the protocol, it will require tracing back the misbehaving message to its signature.
Once we identify misbehavior and the misbehaving message and signature pair, we will submit this on-chain. There we will compute a slashing amount and slash that validator's staked / nominating balances. This will require having a 1:1 mapping between the signing key for gossip messages and the staking keys on-chain for the authorities.
Likely to catch offline nodes we may only be able to rely on an honest-majority reporting assumption.
Most parts of the protocol that deal with misbehavior that are not due to offline time are due to broadcasting invalid zero-knowledge proofs. Peers in the protocol broadcast zero-knowledge proofs of the data they're sharing with other participants in the DKG. Each peer verifies these proofs locally.
Same as #33
Overview
In order to report a misbehaviour we need to obtain and utilise proofs of this misbehaviour from underlying multi-party-ecdsa library (further MPE).
Research: