-
Notifications
You must be signed in to change notification settings - Fork 37
Consider equivocation detection #19
Comments
Related paritytech/cumulus#492 :
|
Equivocation should be done using the relay block hash not the block height. However this needs to be punished on the validator as the collator doing equivocation can simply send its blocks to the validator to get accepted without sending them to other collators |
It would be good to clearly state the goals of equivocation for parachains and how that would fit in with the abstractions in Nimbus (e.g. there is no assumption about stakers). Here are some assumptions I start with.
In addition, I think punishment needs to be tuned to suit the goals. Consider that it is commonplace right now for collators to run multiple nodes with the same authoring keys. This is probably because it improves their block authoring rate and thereby their rewards. Punishment should be lenient enough that these operators can make appropriate changes without losing a substantial amount of their stake. On the other hand, we don't want punishment to be so loose that someone who steals an author's keys can abuse it with little repercussion. It is also important to understand how this impacts participants other than node operators (e.g. delegators in Moonbeam). In a sense, introducing equivocation slashing changes the rules and expectations for them. Whereas they previously might have expected staking to be a low-risk, low-maintenance operation (not that it is -- this isn't financial advice), it may put their funds at risk without sufficient warning. Given all of this, I propose a rough template for equivocation:
Some of this may not fit well into Nimbus, by the way. I think it's appropriate to ask whether or not this belongs here or which parts of it belong here. |
I also like the discussed idea of punishing equivocation by kicking guilty collators out of the selected candidate pool for a certain number of rounds. By preventing them from authoring blocks for these rounds, we are depriving them of any block rewards for this time. It also acts as a sort of time-out/penalty box for collators that are abusing their participation in consensus. The incentive to report equivocation in this case would be to knock competition out of the pool (more rewards for the other collators).
I think it should live in parachain-staking or whatever staking pallet is used. For parachain-staking, the internal implementation to temporarily kick a collator out of the pool would be trivial by using |
For sovereign chains hoping to use proof of stake, equivocation detection is necessary so validators who work on multiple chains can be slashed. Current nimbus does not have any such detection. Hopefully copying it from Aura will be straightforward, but I haven't looked into it.
In any case, equivocation detection is not necessary for manual seal or relay chain.
The text was updated successfully, but these errors were encountered: