diff --git a/docs/spec/blockchain/blockchain.md b/docs/spec/blockchain/blockchain.md index 7ef0d768c..eb34f4c87 100644 --- a/docs/spec/blockchain/blockchain.md +++ b/docs/spec/blockchain/blockchain.md @@ -372,16 +372,23 @@ against the given signature and message bytes. ## Evidence -TODO +There is currently only one kind of evidence: ``` -TODO +// amino: "tendermint/DuplicateVoteEvidence" +type DuplicateVoteEvidence struct { + PubKey crypto.PubKey + VoteA *Vote + VoteB *Vote +} ``` -Every piece of evidence contains two conflicting votes from a single validator that -was active at the height indicated in the votes. -The votes must not be too old. +DuplicateVoteEvidence `ev` is valid if +- `ev.VoteA` and `ev.VoteB` can be verified with `ev.PubKey` +- `ev.VoteA` and `ev.VoteB` have the same `Height, Round, Address, Index, Type` +- `ev.VoteA.BlockID != ev.VoteB.BlockID` +- `(block.Height - ev.VoteA.Height) < MAX_EVIDENCE_AGE` # Execution