# Why 2-Phase HotStuff Violates Liveness ## Metadata **Status**:: #x **Zettel**:: #zettel/fleeting **Created**:: [[2026-01-25]] ## Synopsis In 2-Phase HotStuff, `prepareQC` and `lockedQC` are equivalent. Once a replica has received the `prepareQC`, it locks on the QC. ### Setup and View v-1 The system is consisted of 4 replicas $p_1, p_2, p_3, p_4$, all locked on the QC for the node $b$. ### View v - The byzantine leader $p_1$ proposes the child $x$ of $b$ and succeeds to obtain the QC. - Leader $p_1$ sends the QC only to $p_2$. - All nodes go to view v+1 At the end of view v, $p_2$ is the only replica locked on $x$. ### View v+1 - Replica $p_3$ becomes the leader. - Leader $p_3$ gets `NEW-VIEW` from $p_1, p_3, p_4$ and all include QC for x as the `highQC`. Here $p_3$ and $p_4$ really have the highest QC on x, and $p_1$ is a byzantine replica. - $p_3$ proposes the child $y$ of $b$. - The quorum $p_1, p_2, p_4$ succeed to lock on $y$. ### Violation Now $p2$ locks on a conflict node other than $p_3, p_4$. If the byzantine replica $p_1$ stops responding, the algorithm cannot make any advance.