On the complexity of fault-tolerant consensus
The paper studies the problem of reaching agreement in a distributed message-passing system prone to crash failures. Crashes are generated by adversaries - a adversary, who has to fix in advance the set of f crash-prone processes, or a adversary, who orders all the processes into k disjoint chains and has to follow this pattern when crashing them. Apart from these constraints, both of them may crash processes in an adaptive way at any time. While commonly used adversaries model attacks and ones -- pre-defined faults, the constrained adversaries model more realistic scenarios when there are fault-prone dependent processes, e.g., in hierarchical or dependable software/hardware systems. We propose time-efficient consensus algorithms against such adversaries and also show how to improve the message complexity of proposed solutions. Finally, we show how to reach consensus against a adversary, limited by an arbitrary partial order with a maximal anti-chain of length k. We complement our algorithmic results with (almost) tight lower bounds, and extend the one for adversaries to hold also for (syntactically) weaker adversaries. Together with the consensus algorithm against adversaries (which automatically translates to adversaries), these results extend the state-of-the-art of the popular class of adversaries, in particular the result of Chor, Meritt and Shmoys CMS, and prove general separation between and the constrained adversaries (including ) analyzed by Bar-Joseph and Ben-Or BB and others.
READ FULL TEXT