In the Stellar Consensus Protocol SCP, the voting procedure follows a 3 phase commit i.e. vote, accept and confirm i.e. see section 5.

Is this a novel introduction or has this been previously been introduced, and if so, where? More specifically, I refer to definitions of these given in section 5.

  • $\begingroup$ @Discretelizard I tried to clarify the question. What I want to know is whether the specifics of this 3 phase commit is standard or whether it could be considered novel. $\endgroup$
    – nbcb
    Jul 25, 2019 at 14:26
  • $\begingroup$ Ok, the question seems clear to me. I tried to improve the title a bit and add some relevant tags. $\endgroup$
    – Discrete lizard
    Jul 25, 2019 at 14:39

1 Answer 1


This dates back to the Byzantine broadcast algorithm of Bracha:

Bracha, Gabriel. "Asynchronous Byzantine agreement protocols." Information and Computation 75.2 (1987): 130-143.

  • $\begingroup$ So would it be correct to say that Bracha introduces the idea of a three phase commit? If not, how is this different to a 3PC? And so is the vote, accept, confirm process adopted by Stellar more closely related to Bracha or 3PC? $\endgroup$
    – nbcb
    Sep 23, 2019 at 17:18
  • $\begingroup$ What do you mean by 3PC? Do you mean the algorithm of Skeen and Stonebraker? Also it seems to me that SCP's federated voting and Bracha broadcast only have 2 phases: one phase to send vote messages and one phase to send accept messages. Anyway, from my point of view SCP's federated voting is a variant of Bracha broadcast. $\endgroup$
    – nano
    Sep 25, 2019 at 21:47
  • $\begingroup$ In SCP, there is the vote, accept and confirm stages ie 3 stages (see fig 11 of WP). I am trying to figure out how this ties in to previous work ( eg if it builds on Bracha and adds the confirm stage, then does the idea of introducing the confirm stage tie in to previous work?) $\endgroup$
    – nbcb
    Sep 26, 2019 at 16:28
  • $\begingroup$ Although it might be done in practice for performance reasons, it is not strictly necessary to send messages attesting that a node reached the confirm stage (all the safety and liveness properties of federated voting will still hold). So at the core it is a two phases protocol. What is new compared to Bracha broadcast is that SCP relies on the notion of v-blocking in order for accept statements to cascade throughout the entire system. $\endgroup$
    – nano
    Sep 26, 2019 at 17:12

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.