Blockchain platforms have the potential to solve many challenges faced by businesses today, provided they deliver enterprise-class scalability. The question is whether blockchain can rise to the challenge? Scalability is the Achilles heel of most blockchain platforms. This blog will explore the challenge of blockchain scalability and what are the approaches taken by some to solve it. This is the second in a series of blogs about blockchain. Miss my first blog? Read “Blockchain, IoT and Emerging Blockchain Technologies.”
Blockchains are completely decentralized systems in which each node stores the entire chain. This adds to security as nodes do not depend on others to verify blockchain content. Each node has the entire history with it. However, this property of improved decentralization and security impacts the third parameter of a near impossible trinity of blockchain – scalability. Since every node processes every transaction, the capacity of blockchain is greatly reduced. This is the classic trilemma every blockchain platform faces. A simple analogy can be - delivering a project quickest, maintaining high quality standards and at lowest cost compared to the market, which is very difficult given resource constarints.
If we cut down on the decentralization, say by centralizing some components of storage and processing, the whole uniqueness about blockchain, peer-to-peer (P2P) communication and avoiding middlemen will be lost, although we can achieve far higher scalability. If we relax on complete security, far higher scalability can be achieved, but the critical attribute of trust that blockchain brings in will be lost proportionally. A few are looking into this angle as well for a solution.
With bitcoin running at a maximum of 7 transactions per second and Ethereum at 15 transactions per second compared to Visa’s 50,000+ transaction per second, scalability is an immediate challenge to solve for blockchain’s wider adoption.
Solutions for Scalability under the Anvil at Bitcoin and Ethereum
An analogy for the problem at hand:
Let us consider that you have to build a scalable communication system across the universe connecting all planets. The current architecture broadcasts all communication to all planets in the universe, which results in a scalability nightmare. How will you structure the new architecture? (This analogy is just to give a high-level perspective of proposed complex models in simple terms.)
A network where every node listens to every other node and processes all messages.
Analogy: Bitcoin takes a bottom-up approach to solving the problem by creating a dedicated and temporary channels between planets that communicate often. These networks of channels are outside of the existing communication system.
Real world: Testing is currently underway on a micropayment channel-based solution called Lightning. To explain the solution in one line: If you are going to do a lot of transactions with a person in a given period of time, reserve and announce the approximate amount of cash you will spend transacting with that person for that period, and keep all the actual transaction records off chain until the end of that period. These one-to-one transaction setups are called micropayment channels. The currency reservation and settlement happens with the help of a multiparty account called 2-of-2 multisig, which is basically an account where both have to sign with their private keys to move currency in either direction. The benefit is that all these off-chain transactions can happen real time with zero transaction fee and this frees up miners’ precious time in the actual network.
A Lightning Network is a collection of such micropayment channels coming together to form a huge off-chain transaction network, which can even do multi-hop transactions. Now that’s a topic for another blog.
Ethereum: Plasma, Sharding
Ethereum has come up with a multi-pronged, top-down approach to solving the scalability problem. The proposed solutions are sharding and Plasma, which work at different layers to improve system scalability. There is also a solution called ZK-SNARKs, which addresses a different side of the scalability problem. We will look at it in a future blog.
Analogy: Split the existing universe into multiple parallel universes and connect through wormholes.
Image Courtesy: www.ancient-code.com
Real world: Sharding is splitting blockchain into different parallel blockchains called shards, with only asynchronous communication between them. This improves the performance drastically as each node need not process all the transactions, but is just a subset related to its shard. Transactions between parties in two different shards are enabled by cross-shard communication. Validator manager contracts are used to validate asynchronous communication between different shards.
Analogy: It’s like autonomously running colonized galaxies and periodically syncing with Mother Galaxy on resources built and spent.
Real world: While complex computations and state transitions can happen in the plasma blocks, only the proof or commitments are submitted to the root chain. The root chain does not bother doing the computation unless there is a need to prove fraud. When there is a data unavailability problem in which necessary blocks are withheld, plasma can’t prevent them, but it allows an entity to exit from this plasma blockchain to another plasma blockchain or enter the main blockchain (move to a different planet, if the one in which you are in is toxic!)
I’m sure now you will closely track developments in blockchain world for scalability solutions, which is key for IoT deployments!
Happy reading! See you in the next blog.
Read the first blog “Blockchain, IoT and Emerging Blockchain Technologies.”
Like this blog? Share it on social media or give it a thumbs up using the buttons below.