celestia-specs icon indicating copy to clipboard operation
celestia-specs copied to clipboard

Initial evidence types

Open adlerjohn opened this issue 5 years ago • 1 comments

Currently the only evidence type is double-signing. There should be additional types for anything slashable, i.e. anything that would trigger a fraud proof.

Upcoming new Tendermint evidence types: https://github.com/tendermint/tendermint/blob/proto-breakage/proto/types/evidence.proto

Also see: https://medium.com/tendermint/different-types-of-evidence-in-tendermint-5de4440fdd54

adlerjohn avatar May 06 '20 12:05 adlerjohn

Additionally to defining the exact data structures of different fraud proofs / evidence types, the specification should also stipulate who (which node types) generates them under which circumstances and what happens with the evidence after construction (does get included in the next block, does it trigger a slashing event, is it "only" gossipped in the p2p network - if yes to which nodes) and why it is generated in the first place. This is to actually guide the implementation.

In the context of erasure coding, for instance, this is needed to inform the APIs of the used libraries (e.g. see https://github.com/lazyledger/rsmt2d/pull/24 and github.com/lazyledger/rsmt2d#12).

Ideally, the spec also defined properties or invariants (if any) that are achieved by dispersing the evidence (e.g. a proposer can not propose an incorrectly encoded block without getting caught and getting slashed for that, etc).

liamsi avatar Apr 03 '21 15:04 liamsi