Discussing slash/penalty of different providers

Blobber Penalty

  • Penalty is incurred on a blobber for all the challenges that this blobber failed to verify.

  • Penalty is slashed from the blobber's stake pool when the blobber tries to redeem a successful challenge, where the smart contract checks whether the last challenge (before the one being processed) was accepted or not, if not, the slashing process is executed over this blobber.

  • The blobber is penalized for the time period between the latest successful challenge and the latest finalized challenge (described in the system's time_unit) w.r.t the time remaining until the expiration of the allocation as follows:

rdtu := time.Duration(alloc.Expiration - latestSuccessfulChallenge) / conf.TimeUnit
dtu := time.Duration(latestFinalizedChallenge - latestSuccessfulChallenge) / conf.TimeUnit
move := (dtu / rdtu) * ChallengePoolIntegralValue // ChallengePoolIntegralValue total token value in the challenge pool
move = move - validatorRewards // refer to rewards page for the calculation of validatorRewards
penalty = move * conf.BlobberSlash // BlobberSlash is mentioned down in the config variables
  • This penalty amount will be slashed from the blobber's stake pool, and the move amount will be moved back from the challenge pool to the allocation write pool.

  • Penalty calculation depends on a couple of configuration variables:

    • storagesc.time_unit in sc.yaml: a duration that it's considered the unit of time for the time calculations for challenges, allocations and other operations related to the storage smart contract. For example, If the expiration of the allocation is 3 this means it's 3 * time_unit.Used in the calculation of rdtu and dtu

    • storagesc.validator_reward in sc.yaml: defines the ratio of the challenge reward that goes to all the validators of the challenge. This is deducted from the challenge reward before the slashing happens.

    • storagesc.blobber_slash in sc.yaml: defines the ratio of the challenge reward that will be slashed from the blobber's stake pool as a penalty for the failed challenge.

Last updated