Episode 33 - Distributed vs. Decentralized Systems
Conventional distributed systems divide the load/work across many nodes (servers). For example, in an online banking system, when the users send their requests or transactions to the system, they are then sent to one of the servers to process them. This is how large banking systems are able to serve large number of users. They deploy many servers, and distribute the user load across them. This is a typical distributed system. Work is done by one of the nodes.
However, when it comes to blockchains, the processing of transactions coming from the users is very different. When a user sends a transaction to a blockchain, it is then propagated to all the nodes in the network, included in a block by one of the miners (or validators), and the block is verified and committed by all the nodes. This is a decentralized system. Work is done by all the nodes to achieve strong consensus on the state.
In essence, the decentralized systems are fundamentally different from distributed systems. While in distributed systems we can add more servers to handle more load, we cannot do that in decentralized systems. Also, because distributed systems have a single point of control and failure because they process the data only at a single node. Decentralized systems don’t have that shortcoming because all nodes in the network verify the data. This makes decentralized systems much more secure.
Because of these fundamental differences, distributed systems are also relatively faster than decentralized systems. This is natural because when you do the same thing at all nodes, it would take more time than doing the same thing at a single node. So, we have a tradeoff between scalability and security.