Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Added post-unbond holding time

...

  • The maximum number of active validators
  • The maximum number of "queued" validators
  • The maximum unbonding rate (N validators per 100 blocks)
  • The post-unbonding stake holding time (measured in blocks)
  • The minimum bond amount
  • The maximum bond amount
  • Cryptographic evidence for proof-of-performance (both for joining and for slashing)

...

Unbonding is triggered when the PoS contract is invoked (again in the normal way) with the signature of an existing validator (this signature could be on the hash of the parent of the block after which they want to be unbonded) along with a return channel. On the return channel, an unforgable name is sent, which the now ex-validator can listen on. After the post-unbonding stake holding time has elapsed, a purse containing the validatorex-validaor's stake is sent on that name, thus allowing the validator to recover their bond. The unbonding is successful so long as it does not exceed the unbonding rate specified for the region. As mentioned above, when unbonding happens a new validator from the queue will become active if the queue is non-empty. Note  Note that no rewards are distributed at this time, only the exact original stake (minus any slashed amount) is returned. Rewards can be withdrawn form from the shard's local PoS contract after unbonding has occurred (see below). The unbonding is successful so long as it does not exceed the unbonding rate specified for the region.

During the post-unbonding stake holding period the validator is not active, but their stake is still held by the PoS contract and they can still be slashed by other validators. The purpose of this holding time is to prevent a variant of the "long range attack" in which a validator "re-writes history" on a separate chain from the main one. If, after a validator unbonds, they get their stake back immediately then they can start producing a different chain off a past block where they had stake without fear of being slashed for equivocation because their stake has already been recovered in the main chain. By holding the stake for a period after the validator is no longer active they can still be slashed for attempting a long range attack during that time. If the time is long enough that the network has moved sufficiently far ahead since the validator unbonded then "weak subjectivity" should be enough to combat a long range attack attempted after the holding period.

As mentioned above, when unbonding happens a new validator from the queue will become active if the queue is non-empty. 

Slashing

Slashing is triggered when the PoS contract is invoked with the following arguments:

...