I am following Theorem 2 from https://arxiv.org/pdf/1710.09437.pdf

I am referring to this example https://i.stack.imgur.com/26Okb.jpg

Let a be the justified checkpoint with greatest height. Suppose that half of the validators have made votes s1 and s2, while the other half made votes s3 and s4. If the validators come to consensus that the chain with checkpoint d is indeed the canonical chain, I believe it would be impossible for them to finalize any checkpoint on that chain without validators violating slashing conditions, since the validators that voted for s2 would have to make surround votes. Hence, the casper protocol would get stuck.

1 Answer 1


If I'm understanding your example correctly, that's not exactly what a surrounding vote is. From the paper, a surrounding vote is:

h(s1) < h(s2) < h(t2) < h(t1)

This means that the source and target of vote2 must be strictly between the source and target of the vote1 in order for slashing to occur. In your example, there is no surrounding, because the validators that voted for S3 would, after realizing that S2 won, vote for b -> a` as their next source -> target

  • 1
    Yes, i see now that are you are correct, but I believe the spirit of my example still holds. I updated the example to show that I still think that casper will get stuck.
    – fdzsfhaS
    Mar 26, 2018 at 10:50
  • @Auburn To start, e/b are incorrect because a supermajority link (2/3 vote) is required to justify a block. So this would actually get stuck before f&c exist. It would however get unstuck because the 1/2 that didn't vote on each chain would get drained on the chain they didn't vote on until the 1/2 left on that chain became 2/3 of the total deposits.
    – natewelch_
    May 1, 2018 at 12:07
  • How does this situation get resolved without slashing validators? It sounds like there will be 2 competing chains, each of which is going to slash 50% of the validators. And after validators get drained, both chains will reach 2/3 and finalize their respective checkpoints. Which chain wins? Is there a way to resolve this without anyone getting slashed? OP's assertion is that it's not possible.
    – Ed Posnak
    Aug 31, 2018 at 20:06
  • 1
    @EdPosnak Validators can switch between the 2 chains without doing a surround vote and getting slashed. Also the Combining GHOST and Casper paper arxiv.org/abs/2003.03052 from 2020 is an updated reference. The spec, currently github.com/ethereum/eth2.0-specs/blob/v0.12.0/specs/phase0/… takes precedence though.
    – eth
    May 23, 2020 at 6:43

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.