Click here to share this article on LinkedIn »

The Elephant in the Room

First, I wanted to address the misconception that Stellar and Ripple do the same things. I’m excited to see the Stellar community growing. The new interest in Stellar is amazing but the code is completely different. Stellar is a decentralized protocol. Ripple is not.

Federated Byzantine Agreement

Federated Byzantine Agreement (FBA) is a model for consensus using nodes, quorum slices and quorums. Quorum slices are sets of nodes used for reaching an agreement. An agreement that can never change in the future is a quorum.

How does FBA relate to Stellar? The Stellar Consensus Protocol (SCP) is an evolution of FBA. Previous FBA protocols had a determined membership list. The main point to remember is that SCP uses open membership. Anyone can join.

How Decentralization is Achieved

In SCP, an important concept is that nodes have the ability to choose trust. Sounds simple enough but how does this work? I spent weeks trying to figure this out. I reached out to David Mazières, creator of SCP, and the answer was simple. Trust is setup in a node’s config file. A eureka moment to say the least.

Not all nodes will have the same config file so slices and quorums will form dynamically. The ability to choose trust decentralizes the network.

Decentralized Example

The image below is a screenshot taken from David Mazières’ SCP talk at Google. You can view that talk here and a link is available at the end of this post.

The image shows how nodes have the ability to choose whom they trust. In this example, nodes 7 and 8 are setup to not trust banks. Thus, an agreement with the banks requires another quorum slice the nodes trust. When an agreement forms, a quorum is created. For a detailed explanation, I highly recommend watching the full presentation.

https://www.youtube.com/watch?v=vmwnhZmEZjc