Let $LOG_t^{i}$ be the log ouptut by client $i$ at round $t$
Secure SMR protocol guarantees:
Safety (consistency): for clients $i, j$, times $t, s$: $LOG_t^{i}$ should be a prefix of $LOG_s^{j}$, or vice versa
Liveness: if a transaction $tx$ is output to a honest replica at some time $t$, then for all clients $i$, times $s \ge t + T_{conf}$, then $tx \in LOG_s^{i}$
Additionally: votes: vote on block by a replica is its signature on the block
Notarization: block notarized in view of replica or client if observed over $2n/3$ signatures from distinct replicas on the block
At each epoch, in adition to propose:
Vote: $d$ rounds into epoch $e$: each honest replica votes for first valid epoch $e$ proposal from $L_e$ that extends longest notarized chain in its view. If no such block, no vote
Finalization rule: client finalizes block and prefix once observed notarization of block
Proving security under same constraints:
Safety: now works under constraints, because cannot get over $2n/3$ votes for duplicate notarization with only adversarial votes
Propose: leader $L_e$ identifies longest notarized chain that it has seen so far and proposes new block extending that chain; tiebreak adversarial
Vote: same as teen streamlet
Finalization rule: upon seeing three adj. blocks in notarized chain with consecutive epoch numbers, client finalizes second of three blocks and entire prefix change
Secure: yes
However, inefficient: requires $\Theta(n^3)$ messages per block
Protocols like HotStuff are as secure and achieve $\Theta(n)$ message complexity per block