Consensus in the Presence of Partial Synchrony
📜 Abstract
The concept of partial synchrony in a distributed system is introduced. Partial synchrony lies between the cases of a synchronous system and an asynchronous system. In a synchronous system, there is a known fixed upper bound Δ on the time required for a message to be sent from one processor to another and a known fixed upper bound Φ on the relative speeds of different processors. In an asynchronous system no fixed upper bounds Δ and Φ exist. In one version of partial synchrony, fixed bounds Δ and Φ exist, but they are not known a priori. The problem is to design protocols that work correctly in the partially synchronous system regardless of the actual values of the bounds Δ and Φ. In another version of partial synchrony, the bounds are known, but are only guaranteed to hold starting at some unknown time T, and protocols must be designed to work correctly regardless of when time T occurs. Fault-tolerant consensus protocols are given for various cases of partial synchrony and various fault models. Lower bounds that show in most cases that our protocols are optimal with respect to the number of faults tolerated are also given. Our consensus protocols for partially synchronous processors use new protocols for fault-tolerant “distributed clocks” that allow partially synchronous processors to reach some approximately common notion of time.
✨ Summary
Paper summary
The paper introduces partial synchrony as a system model between full synchrony and asynchrony. It studies two variants: one in which message-delay and processor-speed bounds exist but are unknown, and another in which the bounds are known but become valid only after an unknown global stabilization time. The authors define consensus correctness through consistency, termination, and either strong or weak unanimity.
The main construction first solves consensus in a round-based model and then simulates that model under progressively weaker timing assumptions. The protocols use phases, value locks, quorum acknowledgments, and—where necessary—authenticated broadcast or a broadcast simulation. For systems with partially synchronous processors, the paper develops fault-tolerant distributed clocks that provide processors with sufficiently synchronized logical time. The resulting protocols achieve polynomial time and message complexity in the relevant system parameters.
The paper characterizes fault thresholds for its principal models. With partially synchronous communication, and also when both communication and processors are partially synchronous, fail-stop and omission faults require N ≥ 2t + 1, while authenticated and unauthenticated Byzantine faults require N ≥ 3t + 1. With synchronous communication and partially synchronous processors, stronger results are possible for fail-stop faults and authenticated Byzantine faults: N ≥ t for fail-stop faults and N ≥ 2t + 1 for authenticated Byzantine faults, with the strongest-unanimity result requiring signed initial values. Matching or near-matching lower bounds are established, including impossibility results for insufficient processor counts.
Subsequent influence
The paper became a foundational reference for the partially synchronous model and for reasoning about consensus liveness after an unknown stabilization period. Its results are recognized as important contributions to distributed computing; the work received the 2007 Dijkstra Prize. (dwork.seas.harvard.edu) Later research continues to use partial synchrony as the system assumption for Byzantine consensus and explicitly analyzes protocols such as PBFT, Tendermint, HotStuff, and SBFT under that assumption. (arxiv.org) The available sources document substantial research influence; they do not by themselves establish a specific industrial deployment directly attributable to this paper.