In the blog post[1], on which Casper PoC4[2] is based, Vitalik writes:
> Accountable safety is what brings us this idea of “economic finality”: if two conflicting hashes get finalized (ie. a fork), then we have mathematical proof that a large set of validators must have violated some slashing condition, and we can submit evidence of this to the blockchain and penalize them.
Why would the validators, who decide what goes into blocks, willingly include a proof that they have cheated?
As far as I can see, these proofs must be communicated out-of-band (not through the blockchain) by nodes, since no validator would ever incriminate itself by including a proof that it has cheated.
How do nodes coordinate this, and come to agreement on which chain is the right one?
I'm not sure but I think that (a) it does you no good to put your cheats only on your own node, they need to be public to give you a chance of profiting, and (b) therefore other staking nodes will see them, and can include them in the blocks they produce. They could even get rewarded for that.
> Accountable safety is what brings us this idea of “economic finality”: if two conflicting hashes get finalized (ie. a fork), then we have mathematical proof that a large set of validators must have violated some slashing condition, and we can submit evidence of this to the blockchain and penalize them.
Why would the validators, who decide what goes into blocks, willingly include a proof that they have cheated?
As far as I can see, these proofs must be communicated out-of-band (not through the blockchain) by nodes, since no validator would ever incriminate itself by including a proof that it has cheated.
How do nodes coordinate this, and come to agreement on which chain is the right one?
[1] https://medium.com/@VitalikButerin/minimal-slashing-conditio...
[2] https://github.com/ethereum/pyethereum/pull/809