The Paxos algorithm, when presented in plain English, is very simple (2021)

10 points by eatonphil


justinpombrio

Could someone help me understand what the consensus problem is? I've never understood it, and the formal definitions haven't helped.

The consensus problem is defined as follows: we have a group of participants. These participants must decide on a value of a register such that the following properties are satisfied:

  • Agreement: The value decided by the participants must be the same for all participants. Integrity: Once a participant decided, it cannot change its decision.
  • Validity: The value decided by the participants must be one of the values suggested by the participants.
  • Termination: A value must be eventually decided by the participants.

Here's a simple algorithm that obeys all these properties: the participants always all pick 0. It has Agreement, Validity, and Termination. Obviously that's not the right problem.

Perhaps "the values suggested by the participants" are an input to the algorithm, not an output, so the algorithm doesn't get to pick them? But then say the group is just Alice and Bob, and Alice only ever suggests 1 or 2 and Bob only ever suggests 173. Does that work, and the algorithm is allowed to settle on 1 or 2 or 173, as long as they all know that's the value settled on? This would mean that if you were allowed to inject a participant who always suggests 0, the the problem becomes trivial, is that right?