Decentralized vs Distributed Systems Part I

KoreConX Decentralized vs Distributed Systems

Blockchain per se is not about decentralization; rather, it is a distributed system technology. The two terms, decentralized system and distributed system, are often confused, so much so that the term ‘blockchain’ seems almost synonymous with a public, decentralized system.

The usual picture used to show the distinction between decentralized versus distributed systems is the one below:

This picture is inadequate since it doesn’t draw a clear distinction between decentralized and distributed systems. The differences in the pictures are rather arbitrary. A slight re-arrangement of the layout of the nodes might convert a decentralized picture to a distributed one or vice-versa.

Decentralization should be rightly used in the context of decision-making, power, authority, and control. Distributed systems are about geographical diversification of storage or processing. The terms ‘centralization’ and ‘decentralization’ come with the baggage of value judgment and philosophy, while the phrase ‘distributed systems’ has a purely technical connotation.

Centralization is about power, control, authority, accountability, and risk management. Distributed systems are about partitioning, dispersing, or part ownership of storage or computational capacity.

All decentralized systems are distributed practically by definition. However, not all distributed systems are decentralized. Enterprise systems at large companies can be distributed, but the company holds all power and decision-making centrally.

The other point to note is that centralization is not automatically evil and decentralization is not automatically good. It depends on the context and the way an application is implemented.

Similarly, distributed systems are not automatically efficient. Poor architectural choices may provide none of the benefits of distributed systems and may increase vulnerabilities.

Centralization becomes a problem only if participants have an incentive to take unfair advantage and the system—by whatever name we call it—allows such manipulation. We also have to recognize that not all problems can be solved through technology alone. If that were true, there would be no need for partnerships, service-level agreements, intermediaries, and so on. So, the real challenge is to create an architecture that leverages technology in a cost-effective way while delegating the rest of the problems to the human institutions or social networks.

In a subsequent post, I’ll point to different ways of understanding the nuances between the two, including references from both the public blockchain and academic communities. I’ll also discuss the challenges of designing incentives in decentralized and distributed systems.