  In this paper we present an open source, fully asynchronous, leaderless
algorithm for reaching consensus in the presence of Byzantine faults in an
asynchronous network. We prove the algorithm's correctness provided that less
than a third of participating nodes are faulty. We also present a way of
applying the algorithm to a network with dynamic membership, i.e. a network in
which nodes can join and leave at will. The core contribution of this paper is
an optimal model in the definition of an asynchronous BFT protocol, and which
is resilient to 1/3 byzantine nodes. This model matches an agreement with
probability one (unlike some probabilistic methods), and where a common coin is
used as a source of randomization so that it respects the FLP impossibility
result.
