Dolla Tech Update — 14th of April 2020: The DBFT Consensus Algorithm

Dollacurrency
6 min readApr 14, 2020

--

Dolla Community!

Today, we come back to you with another one of our tech updates! Two weeks ago, we’ve spoken about the concepts of decentralization and finality, which are two of the central qualities of the Dolla cryptocurrency. We’ve also briefly covered the existence of Dolla as a consortium-based cryptocurrency, which means that the decisions that are being taken with respect to the system are up to a number of carefully selected consortium members, in such a way that member collusion is very unlikely to occur, and, in case it *does* occur, not only would these individuals’ nefarious undertakings be short-lived, but whatever „damage“ they may have induced would also amount to nothing. We will discuss the reason for why that is in our next update, so stay tuned for that one also!

If you haven’t already, I invite you to take a look at our *last* update article on Medium, to learn more about our consortium-based system, as I will not be going over those details again here:

https://medium.com/@dollacurrency/dolla-tech-update-28th-of-march-2020-175f1807d365

On another note regarding the consortium — although we are very scrupulous when it comes to the selection process (in order to be able to maintain the safety and security of Dolla — we don’t want any Agent 47s in our midst!), anyone is still able to apply for membership, as long as one has a stable, high performance, internet connection, a good computer, and a clean personal history (the tech gear is needed for being able to accommodate the hosting of a network node). Anyone that has a good record on our platform (e.g if one owns plenty of DLA, or one has had many transactions in the past etc.) will, of course, be prioritized over others. The door is open to all of the Dolla community members for you to join our consortium!

With that out of the way, let’s get on to our actual update!

Alright! So, in *this* update, we will go over Dolla’s choice with respect to its consensus algorithm. But what *is* a consensus algorithm, you may ask?

Now, if a cryptocurrency’s blockchain serves as the memory of the system, as it is the collection of all transactions that have occurred in the past, the consensus algorithm, on the other hand, serves as the way to *build up* that memory. This consensus algorithm, thus, dictates what transactions within the network are validated, and which are not.

There are plenty of consensus algorithms that have been proposed ever since the dawn of the Crypto World, with the rise of Bitcoin — the Proof of Work (PoW) consensus algorithm having been the first. PoW is, to this day, still being used as the primary mechanism for Bitcoin’s continued evolution.

Most of the alternatives to PoW that have been subsequently introduced have, in fact, displayed many improvements, mainly with respect to network latency and throughput, but also to certain network security aspects.

We — the team of Dolla — have decided on adopting the Democratic Byzantine Fault Tolerance (DBFT) Consensus Algorithm, proposed by Tyler Crain et al. in 2018, in their paper on „DBFT: Efficient Byzantine Consensus with a Weak Coordinator and its Application to Consortium Blockchains“. We have made this choice, as it has been proven to exhibit not only very high levels of performance, but also of safety and security. We — the tech team — are also seeking to make certain careful adjustments to DBFT, in order to make even more improvements to it, to bring you, the users of Dolla, the best possible experience when using our platform!

In order to understand how the DBFT algorithm works, first, we must understand the exact problem that it seeks to solve. This problem is known as the Byzantine Generals Problem.

Let’s go into a thought bubble and travel back in time! Let’s hypothetically say that *you* were Justinian I (a.k.a Justinian the Great), Emperor of the Byzantine Empire, also known as the Eastern Roman Empire, during the time of Justinian’s famous military conquests to retake the territories of the late Western Roman Empire, then occupied by barbarian factions.

Now, let’s say that you — the Emperor — have sent out four legionary armies to surround and recapture the Eternal City of Rome, during the war against the Ostrogothic Kingdom between 535 and 554 AD.

And so, the legions march towards the Empire’s former capital and successfully surround and besiege it. The legions, then, have to decide whether to make the attack, or retreat, in case they discover that the enemy is momentarily too strong to fight. Therefore, the generals decide to vote, the majority vote being final.

Since the generals have had to surround the entire city, their armies find themselves at quite a bit of length apart — and so, what the generals decide to do is to send out messengers to communicate their vote to the other commanders on the field.

Perhaps you have noticed that there are quite a few problems with this scenario — ways the whole endeavor could prove ending up being disastrous. One of the ways could be, for example, that a traitor could find himself in the midst of the commanders, or perhaps in the midst of the messengers themselves… Or, perhaps the commanders are simply too inexperienced to make a favorable decision with respect to the operation, and they simply decide to make the attack even though they would most likely lose, or the other way around.

Either way, I don’t know about you, but I wouldn’t want to end up like one of those generals going into battle and discovering that, for some reason, our allies have decided to bail on us… Not a good position to be in!

Let’s now return to the present moment! Year 2020 AD! We’ve now got other problems to take care of rather than having to watch out not to be betrayed by supposed „loyal“ servants of the Empire.

Replace the byzantine generals with Dolla’s consortium members, the messengers, with the network connections between said members, and the vote that has to be made with what block (i.e, collection of transactions) gets validated, and which does *not*, and you’ve got a modern instance of the Byzantine Generals Problem!

Thus, the Democratic Byzantine Fault Tolerance Consensus Algorithm has been devised for solving this exact problem that we’ve seen. I will now briefly go over the high level details of how this algorithm works.

And so, the way DBFT works in the context of Dolla, is that you have the consortium members, of which *one* of them is elected as the „coordinator“ every time a new block has to be appended to the blockchain.

This coordinator gets to propose to the rest of the consortium what block is the next one to be registered. The other consortium members then verify on their own whether the block is valid, and then they vote whether they are with or against when it comes to deciding on whether to append that particular block or not.

Then, every member broadcasts their decision to the rest of the network — the decision being taken then being the one that has two thirds or more of all the votes. If the decision is to *not* accept the proposed block, then, after waiting some time, a new coordinator is selected for another voting round, and the process is repeated until a block is finally accepted.

Hence, the assumption that the DBFT algorithm is making is that we have that, at all times, strictly less than one third of our consortium members are colluding to conspire against our system. Out of all the assumptions that each consensus algorithm out there has to make in order for its system to function, we believe that this one is the easiest to maintain to be true (for example, when using the services of the banking system, we are making the assumption that this centralized entity, that is our bank, can be trusted).

I will go over a mathematical proof as to why it is strictly less than 1/3 of the members, and not 1/4, for instance, in a later update. For now, I believe we’ve gone through enough — I mean, we’ve gone back in time almost two millennia and returned to the present moment! That was a long trip indeed!

Either way, in this update, we’ve discussed more about Dolla’s consortium-based system, seen the high level details of how the DBFT algorithm works, as well as the problem it solves — the Byzantine Generals problem.

If you haven’t already, make sure to follow us on Facebook, Twitter and Telegram, to stay tuned for future tech updates from our team! Our job is to make sure we deliver all users of Dolla the best possible experience when it comes to our platform!

See you in the next one!

--

--

Dollacurrency

#Blockchain #Cryptocurrency A research first crypto, business owners, entrepreneurs, freelancers, staff, friends & family send & receive money in an instant.