Blockchains are decentralized networks where all the data is stored and verified by all nodes. To make blockchains usable for real world use cases, they should process large amounts of data. But when all nodes have to process all the data for each block, it is not easy to process a lot of transactions quickly. Blockchains are also public and permission-less networks, hence it is critical that they stay secure.
The blockchain trilemma says that blockchains could have any two of decentralization, security, and scalability at a time.
For blockchains to be decentralized, they should be able to run on commodity hardware so that many users could run the nodes.
Security, in context of blockchains, means that they can continue to work correctly and honestly, even if large number of nodes are byzantine. See last episode for byzantine faults.
Scalability is simply processing large number of transactions per unit of time.
If a blockchain has smaller number of nodes verifying the data, it is not decentralized enough. However, it could process more transactions and could still be secure if these nodes don’t collude.
If a blockchain has many nodes processing all the data, then it would be decentralized and secure. But it won’t scale much.
If a blockchain has nodes running on large servers only, then it could be secure and could process more transactions, but it is not decentralized enough.
There are several approaches being used or researched to circumvent the blockchain trilemma. Stay tuned for next episodes to learn about them.