What is Stellar? (XLM)

– Let’s talk about Stellar.  I’ve got a lot of requests recently for a video on Stellar,  more specifically the Stellar Consensus Protocol.  What powers the whole network known as Stellar?  I think a lot of these interests has come from the fact  that the Stellar price has actually been going up  to the right recently.  But also, that a bunch of ICO are starting  to run their ICOs on Stellar instead of Ethereum.

The obvious question is, why would they make that decision?  So let’s try to break that down in this video.  I do warn you this gets a little bit technical  because we are talking about a consensus protocol,  so if you’re having trouble following along,  something I recommend to a lot of viewers  is if you go down to the YouTube settings  in that little cog icon, you can change the speed to 0.75,  and changing it to 0.75 speed  would make me sound all weird,  but it will make things a little bit slower  and easy to follow along with.  It’s hard to go at just the right speed for everybody.  Some people say I’m too fast;  some people say I’m too slow.  So I’m just trying to pack everything  in a nice condensed video,  and hopefully, you can adjust the speed  to suit your viewing preference.

Stellar

The history of Stellar

Stellar has been around for a while, since 2014 actually.  And it was started through the Stellar Foundation,  which was created by Jed McCaleb and Joyce Kim.  Originally, Stellar was simply  a fork of the Ripple protocol,  and that’s because Jed McCaleb, the creator of Stellar,  also created Ripple back in the day.  But there’s a common misconception  that that’s still the way it is, and that’s not true.  Stellar actually completely re-architected their code based  in a way that protocol works,  so let’s cover that in this video.

So to start with, we need to talk about  what Byzantine Fault Tolerance means,  and I have a previous video on this,  which I recommend you go back and watch  just around how consensus works.  But in a nutshell, you have a set of validators,  say 12 validators who need to all agree on one thing.  When they agree on this thing,  they achieve something called quorum or consensus,  and then that gets written back into history  in the form of a Blockchain  or some sort of other ledger data structure.

Most implementations to date in the cryptocurrency space  have implemented something called  Practical Byzantine Fault Tolerance,  which was actually outlined in a Whitepaper  all the way back in 1999.  And these networks typically have  a predefined set of validators who achieve consensus.  By predefined, I mean that there’s usually  a central authority, usually the software developers  of the protocol, who define who those validators are.  In Practical Byzantine Fault Tolerance,  everything’s peachy if you can keep 66% of the validators  agreeing on the one thing,  so just like in proof of work systems  where you have a 51% attack,  if someone gets 51% of the hashing power,  in practical byzantine fault tolerance systems,  you have to make sure that you don’t have  more that 33% of the nodes in the network being malicious.

Some examples of this PBFT systems  include systems like Ripple, which I’ve already mentioned,  Hyperledger, which is another private blockchain solution,  and also Tendermint,  which I’ve covered in the previous video.  So as I said earlier, Stellar was originally forked  from the PBFT implementation of Ripple,  which is originally created by Jed McCaleb as well.  But after the initial release of the Stellar network  as it began to gain traction,  the network suffered a pretty bad fall,  which means consensus wasn’t being achieved on the network.

Stellar did a lot of research in this,  and they actually brought somebody in  called Professor David Mazières.  And in this research, they found  that the existing Ripple system wasn’t really fault tolerant  beyond one or a couple of nodes.  So they had to go back to the drawing board,  and Professor David Mazières wrote to Whitepaper  outlining something called the Stellar Consensus Protocol.  Rather than using that traditional  practical byzantine fault tolerance,  it uses something called a Federated Byzantine Agreement.  And in this model, instead of having  that predefined set of validators  that a company like Ripple sets up  or when you set up a Hyperledger  you have to define their validators.

In a Federated Byzantine Agreement system like Stellar,  the nodes can openly choose who they trust,  and when the node in a Stellar network  decides who to trust, this is called a “quorum slice.”  based on all the nodes that are talking to one another,  they combine these quorum slices  to form quorums within the network.  Ultimately, the market that exists within the network  defines who is trustworthy,  rather than the software developer’s own company  predefining any set of validators.  Because of nodes being able to choose who they trust,  you’ll sometimes hear this system called “open membership,”  because it’s not a closed system.

Anyone can spin up a node and become a validator  in the network of their own accord.  Now because of this open motto  where people were choosing who they trust,  you can end up having two quorums  completely separate and not talking to one another,  which obviously would be a problem.  And this is addressed through something  called quorum intersection,  which essentially states that two quorums  always have to be linked by one node.  It will essentially make sure that transactions  that are happening in one side of the quorum  are also happening on the other.

The Stellar consensus protocol 

The Stellar consensus protocol  outlines a lot of cool ways to deal with this,  but it’s important to outline that this isn’t bulletproof.  If you do have a network full of malicious nodes  who are doing things to mess up the network,  or you have just nodes going down for no reason,  then obviously this system is gonna fall apart.  But because of the open membership system,  it’s ultimately more decentralized  and, in my opinion, better  than practical byzantine fault tolerance protocols.

So the core of this Stellar consensus protocol  is that in order to achieve  this federated byzantine agreement,  nodes were essentially filling out a ballot  all the time and voting on consensus.  And during this federated voting process,  the nodes are sending messages between one another  with a statement of something  that they believe should be written into history.

In addition to that, when they’re sending these messages,  essentially, the transactions that are being written  into the state of the blockchain,  these nodes are also broadcasting  what the quorum slice looks like, who they trust.  And through this, they’re essentially getting  a gossip protocol that helps spread node discovery.  These people are saying, hey, I trust these people,  and as another node, you can look  at who everybody trusts and build a quorum based on that.  If everybody’s telling you who they trust,  you can essentially build a map of the whole network  and see how consensus is being reached.

Now, I’m not going to go too deep into the voting process  ’cause it is quite complex,  and I recommend you read the Whitepaper  if you wanna go that deep into the protocol.  But essentially, all these participating nodes  do continuous rounds of voting  until they can come to an agreement  about what should be written into history.  Eventually, assuming you don’t have malicious nodes  or nodes just going offline,  the net group of nodes will establish a quorum.

After everything it’s prepared and voted on,  then there’s another round of voting  to get that actually committed into the network.  At this point, the nodes can vote to do one of two things.  They can either commit or they can abort.  And through this and repeated cycles of voting,  they eventually come to consensus.  So it’s really important to know  what we’ve just discussed is simply a consensus network.  It’s a way to get a group of decentralized entities  to agree on something.  It means it doesn’t take care of things  such as minting new coins.  It doesn’t take care of incentivising nodes,  like why would I spin up a node  if it’s only gonna cost me money  and there’s no block rewards?  And it also doesn’t predefine trust,  which, in a way, is a good thing,  but also means that discovery has to happen  on the node itself.

To solve the minting problem, Stellar had an initial period  where you could sign up and verify  with something like Facebook and social media profile,  and they would essentially airdrop you a bunch of tokens.  They’ve also done things like Bitcoin airdrops  based on how much Bitcoin you have as well.  So the Stellar consensus protocol and Stellar in general,  they do still require some trust in the system  and who you’ve defined that you trust in your quorum slice.  It does provide a much better order trail  of what those nodes and participants are doing.  So if all of a sudden, a bunch of nodes become malicious,  you can easily update your quorum slice  to point at other nodes which you find trustworthy.  In that way, it’s resilient to a lot  of different attack factors.

Through all of this, Stellar able to offer a protocol  that has very fast transaction times,  low fees, and high skill ability ultimately.  They’ve done away with proof of work mining,  which means you don’t have a bunch of people  wasting computing power just in order to secure the network.  One thing I do wanna call out,  because it gets a lot of comments though  is that Stellar does have a limited number of nodes  powering the network at this point in time.  I can only find around 20 or 30 nodes  that is securing the network.  I think this is mostly because  there’s no real incentive for an average Joe  to spin up a server and run a validating node.  It’s an expensive thing to do,  and there’s no block rewards  that give you payment for doing so.

So this does introduce some incentive  toward centralization.  But again, remember back to the fact  that this is an open membership system,  so essentially, anybody can spin up a node if they want to.  That means that it’s not that technically different  from something like Bitcoin.  Or technically, anybody can point  hashing power at it and participate.  Even in a system like Bitcoin,  we’ve seen that centralization develop over time  as it’s so costly to run the hardware  and pay for the electricity.  Ultimately though, I think that Stellar  is a far better improvement upon other  practical byzantine fault tolerant protocols like Ripple,  ’cause it has that open membership system.  It’s not closing it off.

How currency and assets work on the Stellar protocol?

Anybody can participate.  So that’s consensus, but let’s talk a little bit  about how currency and assets work on the Stellar protocol.  Stellar has a native currency called XLM or lumens.  And this is use simply to pay fees  which are relatively low,  but offer a form of spam protection.  So on top of the Stellar network and that XLM currency,  you can also issue assets or tokens  just like you could with an ERC20 token on Ethereum.  But I’d say it’s actually a little bit more secure  that something like an ERC20  because there’s no scripting,  there’s no smart contract required.  It’s simply using built in functions  to issue an asset on the Stellar protocol.

Assets can be anything,  from something that’s created like a token,  or it can be a real world asset like USD or Euros.  When you hold an asset on the Stellar protocol,  you’re actually holding a credit  from an issuer that you trust  to have that asset somewhere.  This all takes place through something called a trustline.  To set up this relationship, you set up a trustline  between your account i.e. your wallet  and the issuer of the asset.

So for instance, if you setup a trustline with company X,  and they gave you token Y,  what they’re actually issuing you  is a credit for that token Y.  And the trustline is simply a relationship that says,  I trust that these people are good for token Y  and they can repay that  or I can redeem that token Y in the future.  This matters less with token systems  that are new tokens that a company is issuing,  but for something like USD,  you’re saying that you trusted that company  has a reserve somewhere  that you can redeem that USD credit you’ve been issued  for that USD at some point in the future.

Participants that issue assets like this  are called “anchors” in the Stellar network.  And any account can issue assets in this way.  So the ability to create and transfer assets  on top of the Stellar protocol,  Stellar needed to offer a way  for people to trade between these assets freely.  And so there’s actually a distributed exchange  built into the protocol itself.  When you have trustlines set up  and you have assets on a particular issuer,  you can actually put orders on the distributed order book  and then trade just like you would on a regular exchange.  This is baked in at the actual protocol level,  but there are some interfaces  and websites that go into this  that make it look more like a regular exchange.

The most popular one is called stellarterm.com.  I’ll link to it below.  And you can actually go there and have a look  at the order books that are trading right now.  Due to the nature of easily being able to issue assets  and then allow users to transfer them  and trade them on a distributed exchange,  a lot of these ICO companies  are investigating whether they should  issue their tokens on Stellar  instead of something like Ethereum  which has high transaction cost.  When you want to transfer an ERC20 token  to somebody right now, it can cost a lot.  It can cost upwards of $2.  On Stellar, you’d be paying a fraction of a penny  for that transaction.

Users also get excited about this as well,  ’cause they don’t have to worry for the asset  to then get listed on some secondary market or big exchange.  It’s instantly tradable on the distributed exchange  which Stellar offers out of the box.  If you wanna play around with this,  you can simply go over to the stellarterm.com website,  and once you’ve signed up for,  well, it’s a pretty simple process.  You can go to the “Accept Assets” tab.  Under there, you can see all the assets  which you can start accepting,  and you just click a button  and it creates a trustline between them.

Hot tip when you’re doing this,  this has confused me before as well,  you have to mintain a minimum balance of XLM of lumens  in the account before you can setup these trustlines.  So you wanna have a few lumens in the account  before you go ahead and do that.  Support for Stellar seems to be growing  with the Ledger Nano S, the hardware wallet  that everybody loves, adding support for Stellar recently.  And you can actually set it up to support tokens and assets  listed on Stellar as well.

If you wanna check out an asset  that was recently issued on Stellar,  you should check out Mobius.  I did an interview with them previously,  and they recently did their whole ICO on Stellar.  It’s a Stellar native asset rather than ERC20 token.  I’ll link to all these stuff in the description below  so you can go and check it out.  So Stellar is a really novel approach  to byzantine fault tolerant consensus.  I think more people should look into the Whitepaper  ’cause it’s actually really well written.  That’s rather unique in the way it approaches the problem.

I also really appreciate the fact  that Stellar Foundation is a non-profit organization,  and they’re focusing on trying to bank the unbanked  in economies where people don’t have access  to the infrastructure we have in the U.S.  It’s always nice when you see projects  try to give back to society,  rather than just creating something that the rich can use.  I think, ultimately, for all the reasons I’ve listed,  there’s gonna be a lot more ICOs  and people who will try and “tokenize” things,  putting those tokens in assets on the Stellar protocol  rather than something like Ethereum,  something to avoid the congestion and transaction fees  that Ethereum has right now.  As it gains adoption, it’s gonna be really interesting  to monitor how the Stellar protocol scales,  because I don’t thing we’ve really seen the protocol,  the current set of validators  really battle tested to the scale  that Ethereum is running at right now.

I do just wanna reiterate  that the Stellar consensus protocol  isn’t a magical bulletproof solution to consensus.  There are a lot of issues  which I have tried to point out in this video.  It does do rely on a bulk of the network being honest  and not trying to submit malicious transactions  for the quorum to be reached  and consensus to write into history.  But I do think it is a step  above other protocols like Ripple  and other people who have tried to implement  practical byzantine fault tolerance.

We have a preselect set of validators  that you have to adhere to.  There’s some other technologies  which I have been asked to cover  and I will in the future.  One of them that comes to mind is Hashgraph,  but I’ve yet to see if they can implement  an open membership system.  All the implementations I’ve seen so far  have been closed membership systems by private blockchains.  And they haven’t had an open membership system  when anybody can spin up a node and become a validator.

So that’s Stellar and an overview of its consensus protocol  and how it handles byzantine fault tolerant consensus.  I think it’s pretty novel approach.  I’d love to hear your thoughts in the comments  and if you have any questions about it,  just drop them below.  Thanks for watching this video.  If you found it helpful, click that like button.  It really helps out.  And if you wanna get weekly updates,  click the subscribe button.  If you click the bell icon next to the subscribe button,  we’ll go on better and actually notify you  when I post a new video.  As always, thanks for watching.  Until next time.  See you later.

Leave a Reply

Your email address will not be published. Required fields are marked *