Abstract. A consensus protocol enables a system of n asynchronous processes, some of which are faulty, to reach agreement. There are two kinds of faulty processes: fail-stop processes that can only die and malicious processes that can also send false messages. The class of asynchronous systems with fair schedulers is defined, and consensus protocols that terminate with probability I for these systems are investigated. With fail-stop processes, it is shown that r(n + 1)/21 correct processes are necessary and sufficient to reach agreement. In the malicious case, it is shown that r(2n + 1)/31 correct processes are necessary and sufficient to reach agreement. This is contrasted with an earlier result, stating that there is no consensus protocol for the fail-stop case that always terminates within a bounded number of steps, even if only one process can fail. The possibility of reliable broadcast (Byzantine Agreement) in asynchronous systems is also investigated. Asynchronous Byzantine Agreement is defined, and it is shown that I(2n + 1)/31 correct processes are necessary and sufficient to achieve it.