Tight Conditions for Binary-Output Tasks under Crashes
Timothé Albouy, Antonio Fernández Anta, Chryssis Georgiou, Nicolas Nicolaou, Junlang Wang
TL;DR
The paper introduces a unifying framework for binary-output tasks in crash-prone distributed systems by abstracting tasks to sets of possible output sets $OS$ that executions may realize. It delivers a complete tight solvability characterization for all 16 binary-output classes under both asynchronous and synchronous timing models, providing both impossibility proofs and constructive algorithms, including a novel disagreement symmetry-breaking problem. By decoupling from inputs and focusing on output sets, the results generalize classical problems such as binary consensus and symmetry breaking, and yield lower bounds applicable to stronger task formulations with validity or multi-valued outputs. The framework paves the way for broad applicability and extensions, such as handling partial synchrony, non-binary outputs, or multiplicity and validity constraints, while offering deep insights into the fundamental limits of distributed coordination under crashes.
Abstract
This paper explores necessary and sufficient system conditions to solve distributed tasks with binary outputs (\textit{i.e.}, tasks with output values in $\{0,1\}$). We focus on the distinct output sets of values a task can produce (intentionally disregarding validity and value multiplicity), considering that some processes may output no value. In a distributed system with $n$ processes, of which up to $t \leq n$ can crash, we provide a complete characterization of the tight conditions on $n$ and $t$ under which every class of tasks with binary outputs is solvable, for both synchronous and asynchronous systems. This output-set approach yields highly general results: it unifies multiple distributed computing problems, such as binary consensus and symmetry breaking, and it produces impossibility proofs that hold for stronger task formulations, including those that consider validity, account for value multiplicity, or move beyond binary outputs.
