Resolving Message Complexity of Byzantine Agreement and beyond
Byzantine Agreement among processors is a basic primitive in distributed computing. It comes in a number of basic fault models: \Crash", \Omis-sion" and \Malicious" adversarial behaviors. The message complexity of the primitive has been known for the strong failure models of Malicious and Omission adversary since the early 80's, while the question for the more benign Crash failure model has been open. In this paper we show how to solve agreement in the presence of crash failures using O(n) messages which is optimal, thus settling a thirteen year old open problem. Our solution has almost linear time and our new algorithmic techniques have further implications: A family of \early stopping" agreement protocols with improved message-complexity. A new solution to \Checkpoint" yielding a substantial improvement of the protocol for distributed work performance under adaptive parallelism in a network of workstations.