Effectively Nonblocking Consensus Procedures Can Execute Forever - a Constructive Version of FLP
The Fischer-Lynch-Paterson theorem (FLP) says that it is impossible for processes in an asynchronous distributed system to achieve consensus on a binary value when a single process can fail; it is a widely cited theoretical result about network computing. All proofs that I know depend essentially on classical (nonconstructive) logic, although they use the hypothetical construction of a nonterminating execution as a main lemma. FLP is also a guide for protocol designers, and in that role there is a connection to an important property of consensus procedures, namely that they should not block, i.e. reach a global state in which no process can decide. A deterministic fault-tolerant consensus protocol is effectively nonblocking if from any reachable global state we can find an execution path that decides. In this article we effectively construct a nonterminating execution of any such protocol. That is, given any effectively nonblocking protocol P and a natural number n, we show how to compute the n-th step of an infinitely indecisive computation of P. From this fully constructive result, the classical FLP follows as a corollary as well as a stronger classical result, called here Strong FLP. Moreover, the construction focuses attention on the important role of nonblocking in protocol design. An interesting consequence of the constructive proof is that we can, in principle, build an undefeatable attacker for a consensus protocol that is provably correct, indeed because it is provably correct. We can do this in practice on certain kinds of networks.
💡 Research Summary
The paper presents a constructive version of the classic Fischer‑Lynch‑Paterson (FLP) impossibility result for binary consensus in asynchronous distributed systems with a single crash failure. Traditional proofs of FLP are non‑constructive: they argue by contradiction that a non‑terminating “ever‑waffling” execution must exist, but they never show how to actually generate such an execution from a given protocol. The author introduces the notion of effective non‑blocking to bridge this gap.
A deterministic consensus protocol P is said to be effectively non‑blocking if there exists a computable function wt(s, Q) that, given any reachable global state s and any set Q of at least n‑t non‑failed processes, returns a concrete execution from s using only processes in Q that ends in a decision (0 or 1). This function is not just an existence claim; it can be extracted from a constructive proof assistant such as Nuprl or Coq, making the witness algorithmically available.
The core technical development consists of two lemmas:
-
Initialization Lemma – For any effectively non‑blocking protocol with more than one process, there exists an initial global configuration that is bivalent (both 0‑deciding and 1‑deciding executions are possible). The proof proceeds by gradually flipping initial inputs from all‑0 to all‑1, locating the first configuration where a 1‑decision can be forced, and showing that the preceding configuration still admits a 0‑decision, thereby establishing bivalency.
-
One‑Step Lemma – Given a bivalent state
band any processP_i, one can extendbto a new stateb′that remains bivalent via the setQ_i(the processes other thanP_i). The construction useswt(b, Q_i)to obtain a 0‑decision execution, then walks backward along a 1‑decision execution that may involveP_i. By carefully swapping the order of actions (the “commutativity lemma”) and possibly replacing a step ofP_iwith an alternative path that uses onlyQ_i, the author produces a state where both decisions are reachable without involvingP_i.
Iterating the One‑Step Lemma from the initial bivalent state yields an infinite sequence of bivalent states b₀, b₁, b₂, …. At each step the scheduler activates only a single process, guaranteeing that no process ever reaches a decision. This infinite, never‑deciding execution is explicitly constructible; the paper calls the resulting theorem CFLP (Constructive FLP).
From CFLP the author derives three corollaries:
-
FLP Corollary – No deterministic, responsive consensus algorithm exists for two or more processes tolerating one crash. This is the classic FLP result, now obtained without any use of the law of excluded middle or proof by contradiction.
-
Strong FLP Corollary – Any deterministic, non‑blocking consensus protocol must have a non‑terminating execution. This matches the “Strong FLP” results previously proved non‑constructively (e.g., by Völzer).
-
Blocking Corollary – If a protocol always terminates when no failures occur, then there exists a reachable global state that becomes a blocking state when a single process crashes. This formalizes the intuitive “blocking theorem” used in practical protocol design.
Beyond the theoretical contributions, the paper discusses practical implications. Because the non‑blocking witness wt is algorithmic, an adversary can use it to build an undefeatable attacker: a scheduler that, given any protocol claimed to be correct, can force the system into an infinite waffling execution, thereby preventing any decision. The author argues that on networks satisfying the standard asynchronous FIFO model, such an attacker can be implemented in practice.
The work also highlights the benefits of constructive proof assistants. By formalizing the protocol and the non‑blocking property in Nuprl or Coq, one can automatically extract both the witness function wt and the infinite execution itself. This opens a new verification step—non‑blocking verification—that can be integrated into the design pipeline to detect hidden blocking scenarios before deployment.
In summary, the paper re‑examines the FLP impossibility through the lens of effective non‑blocking, provides a fully constructive proof that yields an actual infinite execution for any such protocol, and connects this theoretical insight to concrete attacker models and mechanized verification tools, thereby enriching both the theory and practice of fault‑tolerant distributed consensus.
Comments & Academic Discussion
Loading comments...
Leave a Comment