Expand description
A slashing implementation for NPoS systems.
For the purposes of the economic model, it is easiest to think of each validator as a nominator which nominates only its own identity.
The act of nomination signals intent to unify economic identity with the validator - to take part in the rewards of a job well done, and to take part in the punishment of a job done badly.
There are 3 main difficulties to account for with slashing in NPoS:
- A nominator can nominate multiple validators and be slashed via any of them.
- Until slashed, stake is reused from era to era. Nominating with N coins for E eras in a row does not mean you have N*E coins to be slashed - you’ve only ever had N.
- Slashable offences can be found after the fact and out of order.
We only slash participants for the maximum slash they receive in some time period (era), rather than the sum. This ensures a protection from overslashing.
In most of the cases, thanks to validator disabling, an offender won’t be able to commit more than one offence. An exception is the case when the number of offenders reaches the Byzantine threshold. In that case one or more offenders with the smallest offence will be re-enabled and they can commit another offence. But as noted previously, even in this case we slash the offender only for the biggest offence committed within an era.
Based on research at https://research.web3.foundation/Polkadot/security/slashing/npos
Structs§
- Represents an offence record within the staking system, capturing details about a slashing event.