Epoch-less Casper FFG liveness/safety argument

Why are nodes necessarily using a “highest-finality highest-justified-epoch checkpoints win” forkchoice?

Because if they don’t do that then that’s far enough from the original algo that it’s probably best not to call it FFG :slight_smile:

Though I guess names don’t matter, optimal algorithms do; in this case there’s still the efficiency issue: what slashing conditions do you add to ensure that validators are not violating the protocol in ways that break finality, and how do you efficiently validate them?