The Byzantine Agreement (ba) problem is essentially the problem of finding a protocol for reaching agreement among n distributed processes of which at most t may be faulty. BA was defined by Pease, Shostak and Lamport [psl, 80] and is essential for maintaining coordination and synchronization among processes in distributed systems. [plf, 82] showed that the BA problem has no deterministic solution in the case the processes are asynchronous. [ds, 8l] showed that t+1 rounds are necessary for synchronous processgfiﬂand deterministic potocols. Ben — Or [eo, 83] gave a randomized solqngﬂngthe asynchronous BA problem. However, his algorithm needsifiapl exponential number of messages and rounds for t for anxrgxzjgﬂgbut-requires a constant number of rounds and a polynomial numberfiof messages in the case t Rabin [r, introduced the assumption of a single random bit per round (which all processes can read) to solve the asynchronous BA problem, with no error, in an expected constant number of rounds and by using 0(n2) messages. He further observed that this message bound could be reduced to 0(nt) messages. Rabin also showed how to modify his algorithm to take only a fixed number R of rounds with reliability 1 — 2-r and by using the same number of messages. Apparently, the pre-dealt nature of the random sequence of bits required for Rabin's algorithm is crucial.