TheStellar Consensus Protocol 17 quorumsatisfying v quorumsatisfying v each votes or accepts a confirmsa a is valid voted a accepted a confirmed a uncommitted v-blocking set accepts a voted ā Fig. 11. Possible states of an accepted statement a at a single node v a-valent a agreed bivalent stuck ā-valent ā agreed Fig. 12. Possible system-wide status of a statement a PROOF. Let B be the DSet of befouled nodes and let U ⊈ B be the quorum through whichanintactnodeconfirmeda.LetnodesinU⧵Bbroadcastaccept(a).Bydefinition, any node v, regardless of how it has voted, accepts a after receiving accept(a) from a v-blocking set. Hence, these messages may convince additional nodes to accept a. Let these additional nodes in turn broadcast accept(a) until a point is reached at which, regardless of future communication, no further intact nodes can ever accept a. At this point let S be the set of nodes that claim to accept a (where U ⊆ S), let S+ be the set of intact nodes in S, and let S− be the set of intact nodes not in S. S+ cannot be v-blocking for any node in S−, or else more nodes could come to accept a. By Theorem 10, then, S− =ç, meaning every intact node has accepted a. Figure 11 summarizes the paths an intact node v can take to confirm a. Given no knowledge, v might vote for either a or the contradictory ā. If v votes for ā, it cannot later vote for a, but can nonetheless accept a if a v-blocking set accepts it. A subsequent quorum of confirmation messages allows v to confirm a, which by Theorem 11 means the system agrees on a. 5.6. Liveness and neutralization The main challenge of distributed consensus, whether centralized or not, is that a statement can get stuck in a permanently indeterminate state before the system reaches agreement on it. Hence, a protocol must not attempt to ratify externalized values directly. Should the statement “The value of slot i is x” get stuck, the system will be forever unable to agree on slot i, losing liveness. The solution is to craft the statements in votes carefully. It must be possible to break a stuck statement’s hold on the question we really care about, namely slot contents. We call the process of obsolet- ing a stuck statement neutralization.

The Stellar Consensus Protocol - Page 18 The Stellar Consensus Protocol Page 17 Page 19