mirror of
https://github.com/tendermint/tendermint.git
synced 2026-09-04 07:07:13 +00:00
spec: remove evidences (#153)
This commit is contained in:
@@ -250,61 +250,6 @@ Valid Duplicate Vote Evidence must adhere to the following rules:
|
||||
|
||||
- Time must be equal to the block time
|
||||
|
||||
### AmensiaEvidence
|
||||
|
||||
`AmnesiaEvidence` represents a validator that has incorrectly voted for another block in a
|
||||
different round to the the block that the validator was previously locked on. This form
|
||||
of evidence is generated differently from the rest. See this
|
||||
[ADR](https://github.com/tendermint/tendermint/blob/master/docs/architecture/adr-056-proving-amnesia-attacks.md) for more information.
|
||||
|
||||
```go
|
||||
type AmnesiaEvidence struct {
|
||||
*PotentialAmnesiaEvidence
|
||||
Polc *ProofOfLockChange
|
||||
}
|
||||
```
|
||||
|
||||
Valid Amnesia Evidence must adhere to the following rules:
|
||||
|
||||
- Validator Address and Height must be the same and the Round must be different.
|
||||
|
||||
- The BlockID's must be different and the BlockID of the first vote must not be nil.
|
||||
|
||||
- The vote signature must be valid (using the chainID).
|
||||
|
||||
- The evidence either must have a complete and valid `ProofOfLockChange` or have stood in the nodes evidence pool for the `ProofTrialPeriod`.
|
||||
|
||||
- The validator must have been in the validator set.
|
||||
|
||||
- Time must be equal to the corresponding block time.
|
||||
|
||||
### LunaticValidatorEvidence
|
||||
|
||||
`LunaticValidatorEvidence` represents a validator that has signed for an arbitrary application state.
|
||||
This attack only applies to Light clients.
|
||||
|
||||
```go
|
||||
type LunaticValidatorEvidence struct {
|
||||
Header *Header
|
||||
Vote *Vote
|
||||
InvalidHeaderField string
|
||||
|
||||
Timestamp time.Time
|
||||
}
|
||||
```
|
||||
|
||||
Valid Lunatic Validator Evidence must adhere to the following rules:
|
||||
|
||||
- Header must have an invalid field compared to the correctly derived header that the node has in either the `ValidatorHash`, `NextValidatorHash`, `ConsensusHash`, `AppHash`, or `LastResultsHash`.
|
||||
|
||||
- The vote must be for the incorrect header (BlockID of the vote must match the hash of the header).
|
||||
|
||||
- The vote must be correcly signed (using the chainID).
|
||||
|
||||
- The validator must have been in a correct validator set within the bonding period.
|
||||
|
||||
- Time must be equal to the corresponding block time of the header that the node has (not the incorrect header).
|
||||
|
||||
## Validation
|
||||
|
||||
Here we describe the validation rules for every element in a block.
|
||||
|
||||
Reference in New Issue
Block a user