# Evidence Handling
Tendermint blocks can include
Evidence (opens new window) that indicates if a validator committed malicious behavior. The relevant information is forwarded to the application as ABCI Evidence in
abci.RequestBeginBlock so that the validator can be punished accordingly.
The Cosmos SDK handles two types of evidence inside the ABCI
The evidence module handles these two evidence types the same way. First, the Cosmos SDK converts the Tendermint concrete evidence type to an SDK
Evidence interface using
Equivocation as the concrete type.
Equivocation submitted in
block to be valid, it must satisfy:
Evidence.Timestamp >= block.Timestamp - MaxEvidenceAge
Evidence.Timestampis the timestamp in the block at height
block.Timestampis the current block timestamp.
Equivocation evidence is included in a block, the validator's stake is
reduced (slashed) by
SlashFractionDoubleSign as defined by the
of what their stake was when the infraction occurred, rather than when the evidence was discovered.
We want to "follow the stake", i.e., the stake that contributed to the infraction
should be slashed, even if it has since been redelegated or started unbonding.
In addition, the validator is permanently jailed and tombstoned to make it impossible for that validator to ever re-enter the validator set.
Equivocation evidence is handled as follows:
Note: The slashing, jailing, and tombstoning calls are delegated through the
that emits informative events and finally delegates calls to the
x/staking module. See documentation
on slashing and jailing in State Transitions.