Simplified Blog on - FLP

Written on : 2024-02-19

[WIP]: This post is a work in progress as of now. [TODO]: update date

FLP - Impossibility of Distributed Consensus with One Faulty Process

In this post I go over the FLP paper in the most simplified way possible, this post is in the making for weeks. I've tried my best to not let any proof be just "assumed" albeit I have failed in some places. This post is the result of me going through the free version of the paper multiple times and other online resources which I link down in the last section of this post. In the same section I've also linked my annotated version of the free version of the paper.

DISCLAIMER: I'm no expert wrt Distributed systems or theory of the same. FLP paper proved to quite difficult for me to understand, where proof of lemmas in the paper felt like smoke and mirrors at most times. This post serves its purpose to only help you gain an intuition into the paper.

Preface:

Let's first begin by defining what this paper aims to prove and on what existing solution does this prove this fault.

The Paxos algorithm uses clocks to ensure liveliness and to avoid the impossibility of reaching consensus with a single faulty process.

With the above restriction, the faults are now only possible in a state where our algorithm cannot decide one on value consistently.

Network

The nodes are connected by a network, we assume this network to be reliable but not timely. By that we mean that a message will be delivered as long as there are infinite attempts to receive the message. The message will be delivered and exactly once, but we have no promises on when the message will be delivered.

Defining Consensus

In this section let's define nodes and different components that are part of our consensus algorithm.

Nodes :
System :

Terminologies:

Lemma 1:

Lemma 2:

Lemma 3:

Resources :