Cosmos-sdk: Write Slashing Spec Tracking

Created on 14 Jun 2018  路  13Comments  路  Source: cosmos/cosmos-sdk

Including:

  • Definitions (unbonding period, revocation, equivocation, discovery)
  • Specification of when a delegation or validator is slashable
  • Specification of how successive slashing works
  • Implementation psuedocode for double sign slashing & downtime slashing
  • Example "network attack" scenarios and what would happen in each one

Sub-concerns:

  • [x] #1348
  • [x] #1378
  • [x] #1440
  • [x] #1673
  • [ ] #1678
  • [x] #1789
  • [x] #1814
  • [x] #1867
  • [x] #1896
meta-issue spec slashing

Most helpful comment

More reasons to write a precise "slashing security model": #1378, #1440

All 13 comments

Sounds comprehensive 馃憤 - we should structure the spec to be consistent with the other specs - to have detailed outline of the state, and reference all transactions/events as to how they affect that state.

Sounds like some of this is in https://github.com/cosmos/cosmos-sdk/pull/1263/files but we should go through it again and make sure every thing is clear

We haven't thought through / categorized "network attack scenarios" yet, I think that would be useful.

Also still to-do in the spec: slashing transactions (MsgUnrevoke).

More reasons to write a precise "slashing security model": #1378, #1440

thanks for posting these links - commented on both

Another note: the Tendermint validator-set-delayed-by-a-block changes need to change the slashing rules, since stake now contributes to voting power a block after it was unbonded/redelegated.

Also tagging https://github.com/tendermint/tendermint/issues/2112 which would need to be implemented by the SDK also if we decide to add it to Tendermint.

Just a couple more items here!

Just a couple more items here!

Well, yes and no. The logic is relatively well specified, but we have little of the attack scenario enumeration, economic cost analysis, and light client-related explanation (successfully lying to a light client should always be a slashable offense).

More work has been done here right @cwgoes? Do you mind updating this issue with the remaining Slashing spec work to be done?

I think we still lack a comprehensive explanation of the incentive design rationale. The original issue's list of requirements are accurate.

I plan to work on this while rectifying staking/slashing code / spec, hopefully next week.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

faboweb picture faboweb  路  3Comments

rigelrozanski picture rigelrozanski  路  3Comments

rigelrozanski picture rigelrozanski  路  3Comments

johnmcdowall picture johnmcdowall  路  3Comments

mossid picture mossid  路  3Comments