Blockchain and consensus: A non-technical approach towards understanding blockchain and use cases

Erhan Meric
Octabase

--

Blockchain technology has been a topic of increasing interest and attracted significant attention in recent years. There has been a lot of discussions, events, publications on the subject; however, most of the content about blockchain has been misleading and misguided. There is still a lot of confusion about the truths of blockchain technology, its capabilities, and its impact on the future of businesses. It has even been suggested that blockchain is going to replace medical doctors.

No, blockchain is not here to rule our future. As a technical person working on developing the technology and applying it in real-world scenarios, I think it is time to make things clear about blockchain and get common ground on the benefits and most suitable use cases.

I believe the most common mistake people make when explaining this technology is going into the technical details without even mentioning why we needed it in the first place. The best way to get a clear understanding of a solution is to understand the problem itself first. So, what does blockchain exists for and what is the problem it solves?

“Consensus” is the keyword we are looking for here and specifically, it is the consensus for computer systems. Since we have started to build multi-process, multi-machine, scalable, and redundant systems, we had the problem of reaching consensus for the history and current state of the system.

Computer systems we are talking about here can be considered consisting of two essential parts. We have the current state, data, and we have rules that work on that data, changing it, creating it. These systems have multiple parts, machines that are distributed and connected through partially reliable networks. All parts of the system work on the total collected data, and they run according to predetermined rules of the system to manipulate the data. While doing that they need to synchronize with each other, they sync to keep the data intact and to preserve the consistency of the system. In fact, they are trying to work as if they are one atomic entity, no matter how distributed they are.

When we have a distributed system, we often have to face the problem of consensus.

In order to keep data intact and work properly, parts of the distributed system talk to each other. Unfortunately, their communication channels are imperfect computer networks where data can be lost or delayed.

There is also race condition problems where they can conflict with the work of other competing parts. Consensus algorithms get to our help in these situations, and there are several well-established algorithms such as PAXOS and RAFT. I will not go into the details of these algorithms, but what we need to know about them is they work on a trustful environment. By which I mean each party in the system relies on the fact that other components of system works according to rules and do not try to break the system.

On the other hand, decentralized systems differ from the distributed systems by the lack of central authority and by the lack of trust in the other parties of the business network. Older consensus algorithms become inadequate in decentralized environments. That is where blockchain solutions and byzantine consensus algorithms get to help us. In decentralized systems, there is no single party calling the shots. Even if we can rely on the other parties’ intentions, to build a sound system, we need to enforce the rules and be able to run the system accordingly. So when there is no one to rule the system, how can we make it work? When we move into a decentralized environment, our consensus problem changes a bit and turns into a Byzantine consensus problem. Byzantine consensus is different from the consensus of distributed systems. In a distributed system, all parties could trust each other to work correctly. However, a Byzantine consensus has to account for unreliable parties and even those who work against the system. Blockchain systems with their inherent byzantine fault-tolerant algorithms are pain killers for decentralized business cases.

The value of the blockchain technology lies in the byzantine consensus algorithms embedded in it. In fact, the chain of blocks is just a cleverly designed tool to help us reach consensus and keep it. There are many consensus algorithms used in blockchain implementations. To name a few, we can mention PoW (proof of work), PoS (proof of stake), PoA (proof of authority), PBFT, and so on…

Blockchain-based systems can be categorized into three by their nature: public, permissioned, and private. In a public blockchain, anyone can access and participate in the network. Bitcoin is an excellent example of public blockchains. In a permissioned blockchain, only those who have been authorized can participate in the network. Private blockchains are internal blockchains being used to replace database based solutions in an institution.

Although blockchain made a name for itself through the popularity of bitcoin, cryptocurrencies are just one of the suitable use cases. There is a lot of research and work going on in the enterprise world, mostly in the finance industry, to make use of this technology.

Enterprise applications usually prefer permissioned blockchains. PoA, PBFT algorithm or its variations are typically chosen as the consensus algorithm by Enterprise Blockchain systems.

Finding a suitable use case for blockchain is a common pain point for the people working in this area. To find appropriate use cases, we should see that the problem blockchain addresses is the decentralized, trustless systems. In such systems, multiple parties work together but don’t necessarily trust each others’ systems to run according to the rules. Blockchain technology makes the necessity to trust other systems in the network unnecessary.

In many business cases of the past where multiple parties work together, it has been a common practice to found a new trusted third party to run the system. Central banks, Clearing & Settlement banks are examples of institutions taking trusted third party roles. All the parties would trust this third party to run the system. Enterprise blockchain technology distributes the trust on the third party to the network itself. Instead of trusting and sharing all your business with just one party, everyone involved trusts the total of the network to run things properly. Blockchain and consensus algorithms make it possible to reach a consensus on the data and can even store the rules of the system running on the data (Smart Contracts).

So how do we choose the right business model and use case for blockchain?

Against the common belief, if some business model is reasonably achievable using conventional database and web service technologies, it is most likely that blockchain technology is not a suitable alternative. On the other side of the stick, any business requiring to establish a trusted third party is most probably a good fit for blockchain technology. Anywhere in between these two cases are blockchain technology candidates and need to be considered separately.

Another question that might arise is how blockchain impacts already established trusted third parties and even the future ones? Again, against the common belief, blockchain cannot replace these institutions. It is just a technological infrastructure, and there is still a need to build the network, define the rules of the system, and to be in charge of it. So what blockchain is going to do for third parties is lifting the weight on their shoulders by automating most of the underlying work. The question answered by blockchain is not who but how.

In my following posts, I will try to dig deeper into the consensus topic, and I am planning to analyze real-world blockchain business cases. I also want to talk about problems that we face when we apply blockchain technology, especially mostly unknown privacy problems and ZKP solutions. Implications of GDPR related issues in multi-party business cases and how to solve them using blockchain and advanced cryptographic protocols are also among the topics I would like to mention. So stay tuned if you are interested in this technology and its applications.

If you have any questions or comments, please share them. That would be very helpful to set my posts in the right direction.

--

--