Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Handle fraud proofs and slash validators #856

Closed
cwgoes opened this issue Apr 12, 2018 · 7 comments
Closed

Handle fraud proofs and slash validators #856

cwgoes opened this issue Apr 12, 2018 · 7 comments
Assignees

Comments

@cwgoes
Copy link
Contributor

cwgoes commented Apr 12, 2018

Correctly handle fraud proofs from Tendermint and slash validators according to slashing conditions defined in the Cosmos specification (which will need to be unified / clarified in some cases).

Include tests somehow - CC @melekes recommendations for the best way to simulate fraud from the Tendermint side?

@melekes
Copy link
Contributor

melekes commented Apr 12, 2018

https://github.com/tendermint/abci/blob/master/specification.rst#beginblock

You can just construct abci.Evidence{height: 1, pubkey: pubKey.Address()}
https://github.com/tendermint/tendermint/blob/c28784de5e77095e89ed6480f655394a26497b1c/state/execution.go#L200-L203

I think we also want to include evidence itself because right now it's just pubkey and height. It's WIP pretty much

@melekes
Copy link
Contributor

melekes commented Apr 12, 2018

Refs tendermint/tendermint#1012

@cwgoes
Copy link
Contributor Author

cwgoes commented Apr 12, 2018

CC @rigelrozanski is this in the scope of #713?

@rigelrozanski
Copy link
Contributor

rigelrozanski commented Apr 13, 2018

The actual slashing will be performed by staking. however the fraud discovery doesn't need to explicitly a part of staking, a slashing keeper can be exposed by the stake module

@martindale martindale added this to the Staking milestone Apr 16, 2018
@cwgoes
Copy link
Contributor Author

cwgoes commented Apr 16, 2018

Discussion at SDK design meeting:

  • Simple double-signature evidence will be included in BeginBlock, Tendermint provides consensus on this evidence, so the SDK can modify application state
  • Some kinds of fraud proofs may be transactions
  • Complex evidence not implemented yet, may not be necessary at launch
  • Need list of fraud proofs to be handled automatically at launch

@martindale martindale modified the milestones: Staking, 1.0 Code Freeze Apr 16, 2018
@cwgoes cwgoes modified the milestone: 1.0 Code Freeze Apr 27, 2018
@cwgoes cwgoes self-assigned this May 7, 2018
@cwgoes
Copy link
Contributor Author

cwgoes commented May 16, 2018

Currently planning to implement just two slashing conditions at launch: double-signing and liveness (both of which will also automatically unbond).

@cwgoes
Copy link
Contributor Author

cwgoes commented Jun 4, 2018

Closing in favor of slashing v2 - #1117.

@cwgoes cwgoes closed this as completed Jun 4, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants