This post is opened for discussion re. the following fast confirmation rule for Ethereum proofofstake:
 Draft paper: confirmationruledraft.pdf (396.2 KB)
 Explainer blog post
This work was conducted together with Francesco D’Amato @fradamt, Roberto Saltini @saltiniroberto, Luca Zanolini @luca_zanolini, & Chenyi Zhang.
Confirmation Rule
Assumptions:
 From the current slot onwards, the votes cast by honest validators in a slot are received by all validators by the end of that slot, i.e., the network is synchronous with latency
< 8 seconds
.  This proposed change to the Ethereum protocol:
 If j is the highest justified checkpoint block, and the current epoch is e, then allow a branch with leaf block b if the latest justified checkpoint in the poststate of b is either j, or from an epoch \ge e2
Notation:
 n is the current slot, and e is the current epoch.
 b is a block from the current epoch e.
 There are S FFG votes from epoch e in support of c.
 W_f is the weight of validators yet to vote in epoch e, and W_t is the total weight of all validators.
 The adversary controls \beta < \frac{1}{3}^{\textrm{rd}} fraction of the validator set.
 The adversary is willing to bear a slashing of \alpha (\leq \beta) fraction of the validator set.
A short description of the rule (please see confirmationruledraft.pdf (396.2 KB) or blog post for explanation):
 p_{b}^n = \frac{\textrm{honest support for block } b}{\textrm{total honest weight}} from validators in committees from b\textrm{.parent.slot} + 1 till n.
 \textrm{isLMDConfirmed}(b, n) is defined as p_{b'}^n > \frac{1}{2(1\beta)} for all b' in the chain of b.

\textrm{isConfirmed}(b,n) if:
 the latest justified checkpoint in the poststate of b is from epoch e1, and
 \textrm{isLMDConfirmed}(b,n), and
 [S  \textrm{min}(S, \alpha W_t, \beta (W_t  W_f))] + (1\beta)W_f \ge \frac{2}{3}W_t.
If \textrm{isConfirmed}(b,n), then b is said to be confirmed and will remain in the canonical chain.
Since p_b^n cannot be observed, we define a practical safety indicator q_b^n to determine if p_b^n is in the appropriate range:
 q_{b}^n = \frac{\textrm{support for block } b}{\textrm{total weight}} from committees in slot b\textrm{.parent.slot} + 1 till slot n
 q_{b'}^n > \frac{1}{2} \left(1+\frac{\textrm{proposer boost weight}}{\textrm{total honest weight}}\right) + \beta for all b' in the chain of b implies \textrm{isLMDConfirmed}(b, n)
Performance
In ideal conditions, the rule would confirm a block immediately after the end of its slot.
Under typical mainnet conditions, we expect the rule to confirm most blocks within 34 slots (under 1 minute).
We observe the following values for q (plot generated using this prototype):
The current slot is 6337565
, and the latest confirmed block is at slot 6337564
.
Previous Work
 Safe head with LMD – this post is an extension of the linked work.
 Safe block confirmation rule
 High confidence single block confirmations in Casper FFG