Slashing

In Creditcoin, slashing serves as a means to discourage malicious behavior by imposing penalties on validators who act against the network's interests. Validators who partake in harmful activities may face a reduction in their staked tokens through slashing. This mechanism plays a vital role in upholding the network's security and integrity by incentivizing validators to prioritize the network's well-being.

In the event of a slash, any nominators who were backing the slashed validator will also have their stake slashed. This creates a reputational incentive for validators to maintain good behaviour which is required to attract nominator stake, and simultaneously, incentives nominators to thoroughly evaluate any validators before backing them, resulting in increased overall network security. Regardless of whether you nominate validators directly or through a nomination pool, your stake is susceptible to slashing.

Types of Offences

There are three types of offences in the Creditcoin network which can lead to a validator getting slashed:

  • Inactivity: being offline during a designated time slot

  • Block production: producing more than one block in a designated time slot

  • Block finalization: finalizing blocks on two different versions of the chain (forks) in the same time slot

Each offence has its own penalty calculation. Inactivity goes from a minor warning that chills the validator (removes it from the active set) up to slashing 7% of the their total stake if several validators go offline during a single era.

Validators who commit production or finalization offences get between 0% and 100% of their stake slashed depending on how many offences of the same type where recorded in that particular era.

Slashing calculations

Offence

Formula

Range

Inactivity

min((3 * (offending_validators - (total_validators / 10 + 1))) / total_validators, 1) * 0.07

0% (chill) - 7%

Block production offence

(3 * offender_count) / total_validator_count) ^ 2

0% - 100%

Block finalization offence

(3 * offender_count) / total_validator_count) ^ 2

0% - 100%

Last updated