What’s going on in blockchain scalability world?!
Quick overview of blockchain scalability solutions
Despite the success of blockchain to prove its success in providing secure decentralized system that provide a payment ecosystem as well as a decentralized platform for many on innovative projects , scalability remains one of the major obstacles that are hard to be managed
This article is intended to give the reader a general overview of the trending scalability solutions in blockchain domain ( focusing on ethereum & bitcoin)
I am almost certain that everyone the blockchain space heard these words ( scalability , layer 1 , layer 2 ) they are almost buzzwords in the blockchain domain. The first time I heard I felt like “ hey, What’s going on ?!!
Why do we need blockchain to scale ?
Mainly for two reasons :
- We want blockchain to be the successor of the traditional alternatives; more secure , cheaper and censorship resistance. With the success of Bitcoin as a decentralized payment system, many crypto enthusiasts were wondering, or we can say “dreaming”about whether bitcoin can compete with the other alternatives ?!
The main issue here is the transaction time. While paypal manages 193 transactions per second and visa manages 1667 transactions per second, Ethereum does only 20 transactions per second while bitcoin manages a whopping 7 transactions per second!
2. When ethereum brings its Turing complete decentralized computer , it brings lots of innovative ideas that can be achieved; scalability is the major issue that stuck on their face.
If we just look at the increased transaction rate for both bitcoin and ethereum.
Giving that number of transactions is limited per block; in bitcoin is limited by block size (1–2 mb) While in ethereum is limited by total gas ~8million block gas , we have a big issue here :
Expensive fees per transaction
the increased number of transactions will lead to raising the fees as miners will tend to choose the higher fees “ or gas price in ethereum” leaving the user with two options; to wait longer time or his transaction won’t be included forever “ leave it until his transaction is removed from the mempool “. now blockchain is no longer cheap option neither fast.
So What’s the major issue in scalability?
The Scaling Trilemma ( decentralization , scalability , security )
A term coined by Vitalik Buterin (founder of Ethereum), refers to the tradeoffs that crypto projects must make when deciding how to optimize the underlying architecture .
There are lots of proposals in the blockchain community to manage this Trilemma, some solve it on layer1 and other on layer2 . So, what does this mean ?
In the previous graph you can see layers that a blockchain is constructed with.
Layer 1 Solutions :
Proposal which scales the blockchain by modifying the blockchain protocols is calling layer 1 . The most worth mentioning proposals are :
Moving from POW “ proof of work “ to POS “ proof of stack”
By modifying the consensus algorithm from POW which enforce a certain period between blocks for miners to solve a cryptographic puzzle (POW) that makes block time in bitcoin is 10 minutes, while in ethereum it is between 10 to 20 seconds to POS where generating block is based on valiMoving from POW “ proof of work “ to POS “ proof of stack”dators stack that makes block time a couple of secs. This is a ethereum casper approach , you can read more here
Increasing the block size to take more transactions :
Although at first glance that seems fundamentally, there was a huge debate in the bitcoin community around this proposal which leads to hard forks. It’s a very interesting story, you can read it here.
In ethereum we saw less debate , the majority was against it for many reasons like :
1- This might lead to centralization because normal users with normal laptops can’t download and save the huge amount of blocks
2- this will need to fork the network and divide the network power
Ethereum main issue is transaction verification speed; each node has to download the entire blockchain. What if we divided the main blockchain into sub blockchains “ shards “ ?!
I can see it as something like federated states each federated state is responsible for its validation , So to speak
Sharding is promising but faces lots of challenges like shard intercommunication as well as it needs POS to be implemented first.
Layer2 solutions :
Solutions that scale blockchain form the application layer are called layer2 solutions.
Most solutions which solve the scalability issue are working in two main sections; State channel and side chain .
Worth mentioning that there are other solutions that solving scalability through:
off-chain computation “ you can read more about it here .
Commit chain that liquidity network implements , read their paper.
So let’s talk about side chain and state channel , if you want more in depth comparison , check this
State channels :
Where I’m just keeping two transactions on-chain “ opening and closing channel transaction” and the rest of transactions off-chain. This is beneficial for micropayment where there are lots of exchanges between those two parties so instead of paying much fees compared to transferred amount.
It can be achieved through three steps :
- The two participants lock amount of money into multisignature contract
- All their transactions occur off chain
- When they want to finish their deals , close channel transaction occurs on-chain to update the state with the latest state and release the money.
Projects worth mentioning :
The main issue is that in order to revert any misbehavior from the counterpart , you have to stay online
It’s separate blockchain with cryptographic commitments to main chain.
Let’s make it simpler; the idea behind side chain is that I have another blockchain “ child” network with its consensus algorithms and all these stuff parallel with the main chain “ parent /root blockchain“ and I can exchange assets between them through a root/judge/parent contract “ this contract save the state root hash for every block” where operators are responsible for committing this state root in the root contract.
It doesn’t provide the privacy option that state channel does because all transactions are public for all nodes participated in this child blockchain. Also its security is isolated from the main chain security power .
Project worth mentioning :
Plasma is not a tool or a project , plasma is a framework you can use to create your scaled decentralized application.
It depends on deployed root contract on the main chain & child contracts in the side chain
Plasma building block
- Off-chain Execution:
Where I’m doing most of the work outside the main chain.
- State Commitments:
Because most of the transaction occur off-chain , I need something like proof of changing; a save point for the latest updates using a merkle tree.
When the user decides to leave plasma chain , for example the user wants to withdraw his money, they use a merkle proof as a proof of ownership for this user to commit that this user has x amount of money .
If you need to learn more about plasma , check this
This is not the only trending topics , there is also the “semi-layer-2” protocols or the hybrid layer2 solution that Vitalik Buterin has wrote about last 23 Aug, but this will be my next article topic and I will add its link here once published .
Scalability is truly important and deserve all the invested hard work. I’m sure sooner we will see lots of genuine solutions because challenges are innovation heartbeats.
All these proposed solutions solve a part of the puzzle, they are just stps; important & useful steps.
Disclaimer: The views expressed by the author above do not necessarily represent the views of the Ethereum Foundation.