It is widely agreed that one of the impediments to mass-adoption of cryptocurrency is scalability. Bitcoin’s highest transaction throughput is 7 transactions per second (TPS) while Visa can achieve more than 4000 TPS. There are several solutions proposed to overcome the scalability challenge.
Solutions to blockchain scalability are described to be Layer 1 or Layer 2 solutions.
Layer 1: On-chain solutions
Layer 1 involves changes to the “on-chain” design of the blockchain. Design changes here involve altering the data structure of blocks, consensus algorithm, specific structure of the main-chain (or ledger design).
BTC only has 1 MB blocksize limit, meaning it can only store approximate 4.4 transactions per second. It was designed in such a manner to minimize the likelihood of spam transactions that could clog the BTC network.
By either increasing the block size, we can store more transactions on the blockchain and therefore increase the throughput of TPS. There are several methods suggested to increase block size as follows.
- Increasing block size
- This was the solution performed in Bitcoin Cash where the block size of the Bitcoin protocol was increased from 1MB to 32MB. The average interval for block creation is maintained at 10 minutes. As the blockchain needs to be updated across multiple nodes, having a larger block requires a greater bandwidth between nodes.
- Increasing block size is not a sustainable solution as individual users within the network will not be able to propagate blocks efficiently and will have difficulty verifying a large number of transactions within the set interval (i.e., 10 minutes). Thus increasing blocksize will eventually lead to a centralized solution. Other arguments are that transaction fees will decrease due to the increase in the number of transactions per block. This may de-incentivize miners and decrease the overall hash rate of BTC that means the network may be more susceptible to a 51% attack.
- Segregated Witness (SegWit)
- SegWit increases the blocksize on the blockchain by removing digital signature data from Bitcoin transactions. As this digital signature data is removed, more space on the block is available to include more transactions. At present, the digital signature takes up 65% of space for a given transaction. By separating transaction and signature data, SegWit also improves the security of Bitcoin transactions. The transaction data will be stored on the “mainchain” and the signature data will be stored on a “sidechain”. Sidechain uses a parallel chain that runs simultaneously next to the mainchain. The side chain is attached to the mainchain via a two-way peg.
- Block compression
- Two notable methods are Compact block relay and Txilm, and the core idea is to reduce some redundant data of a block that is stored in the “mempool” of receivers. The mempool is cryptocurrency node’s mechanism for storing information on unconfirmed transactions. Intuitively, it is a waiting room for transactions that are yet to be included in a block.
New consensus mechanisms are being proposed with optimizations to improve the scalability of blockchain.
Proof of Work (PoW)
PoW is a novel method whereby miners solve a computational puzzle to generate a new block. When the answer to the puzzle is found, it is broadcast to all other miners to verify the new block. Once the new block is verified and validated, it is added to the blockchain and miner receives a reward. The computational overhead of PoW is considered to be too energy-intensive to be a sustainable consensus algorithm. As PoWs are designed to build a blockchain based on the longest chain rule when there are multiple candidate chains across different nodes, a transaction confirmation time of an hour (i.e., 6 confirmations required) is used.
Proof of Stake (PoS)
PoS avoids computational overhead by allowing participants on a PoS platform to vote for leaders based on their investment in a blockchain system. thus reducing the confirmation time of transactions.
Practical Byzantine Fault Tolerance (PBFT)
PBFT is a replication algorithm that is able to tolerate Byzantine faults, that are consistency problems caused by unreliable nodes in asynchronous systems. PBFT functions without computational tasks but requires more communication overhead between nodes.
Sharding stems from a technology originally proposed to optimize large commercial databases to reduce pressure on a centralized server by partitioning a large database to spread out computational and storage workload across a P2P network. Each node is only responsible for maintaining information related to its partition or shard. In this manner, search performance and storage capacity would be improved for the entire database system.
In terms of blockchain, this divide-and-conquer strategy would result in a blockchain network being divided into several smaller networks that contain a number of nodes. Each of these smaller networks would be called a “shard”. Transactions within the network would be processed in different shards where each node only processes a small portion of arriving transactions. This would allow different shards to process transactions in parallel, thus boosting the concurrency of transaction processing and verification and network throughput. Certain challenges for sharding still exist such as how to minimize vulnerabilities such as the 51% attack on shard take-overs, double-spending, and handling cross-shard transactions efficiently while ensuring the consistency of these transactions.
Sharding has been implemented in several blockchain protocols such as Rapidchain, Monoxide, Omniledger, and Elastico. However, each sharding implementation protocol is unable to guarantee decentralization, scalability, and security at a high-level as trade-offs need to be made. Sharing continues to be an on-going research & development area to improve blockchain scalability.
Blockchains store transactions in blocks that are stored in a sequential, single-chain structure. As such, blocks cannot be generated in parallel thus limiting transaction throughput. To improve throughput, the ledger structure should be changed to allow for parallel processing and confirmation of transactions.
- Directed Acyclic Graph
- A DAG is a finite directed graph with no directed cycles. Intuitively, each block of data is a vertex in a DAG connected to previous vertices with the advantage of allowing several vertices to connect to a previous vertex. This would allow for concurrent block generation and enabling more transactions to be processed in parallel. Alternatives are that each vertex is a transaction, rather than a block of data. Projects using DAGs are IOTA, Byteball, Nano, Conflux, Phantom, Spectre, and Inclusive.
- DAG-based platforms use different ledger-structure and different transaction confirmation methods; however, it is still an area that requires further research & development as the trade-offs between security, scalability, and decentralization are still a point of contention within the community.
Layer 2: Off-chain solutions
Layer 2 involves off-chain methods that aim to reduce the burden of computation and storage on the main-chain. Design changes include executing some transactions and storage off-chain and moving complex computational tasks to an off-chain platform.
Payment (or trade) channels are a temporary off-chain trading channel. To improve the transaction throughput of the entire system, transferring some transactions to the payment channel will reduce the transaction volume of the main-chain.
Two nodes in the blockchain network will establish a temporary off-chain trading channel to execute multiple low-latency transactions. The solution has three phrases, establishing the trade channel, trade execution, and closing the trade channel. Before the trade channel is opened, a number of tokens (greater than the amount involved in the transaction) are deposited on the main-chain by the two parties. Both parties can trade within the channel freely. If one of the parties cheats, all funds in the channel are sent to the counterparty as a penalty. Thus, multiple transactions are executed off-chain, and only when the channel closes are the two transaction records submitted to the main-chain.
A more advanced implementation uses a Payment Channel Network (PCN). The previous example indicated that a direct payment channel is opened between two transacting parties, but a PCN would allow for off-chain transactions to occur between two parties with no direct payment channel established between them. This is complex, as it ensures that transactions are connected between two transacting parties via a routing mechanism.
Implementations of the PCN are called Lightning and Raiden on the Bitcoin and Ethereum networks, respectively. PCN’s are still undergoing development to find an effective and secure solution.
Side-chains are separate blockchains from the parent main-chain but are attached via a two-way peg. The two-way peg allows for the transfer of assets at a pre-determined rate between the main-chain and the side-chain.
The main-chain sends tokens to an address on the side-chain. These tokens are locked to prevent double-spending. Once the transaction is completed, confirmation is communicated between chains followed by a waiting period that is implemented for additional security. After the waiting period is completed, the equivalent number of tokens is released on the side-chain.
In Ethereum, miners need to emulate the execution of all smart contracts to verify their states. This process is costly and limits the scalability of Ethereum. Off-chain computation is about building scalable smart contracts by outsourcing complex computing tasks to an off-chain computing market.
An example of this is the Truebit protocol which divides the computational process into multiple layers such as Computational, Dispute Resolution, and Incentives and allowing different network participants to participate in these layers.
Cross-chain projects are about building a large network of blockchains and ensuring interoperability between blockchains.
A relay chain serves as a router and allows independent blockchains to join in a cross-chain system and adopts cross-chain protocols to process cross-chain transactions more efficiently and consistently. Pegged chains are included as a bridge across existing blockchains in the cross-chain system.
An Honorary Senior Fellow at the University of Queensland with professional experience as a quantitative researcher for BlackRock and Bank of America Merrill Lynch in New York, USA. He led research teams in the development of capital models, securitized products and factor models in both equities and fixed income asset classes. Rand has several academic publications in cryptocurrency, portfolio management, systemic risk & quantitative trading