Exploring Blockchain Scalability
Blockchain scalability has been an important consideration for developers and users for over three years now. So far, several proposed solutions have gained ground within individual blockchains, including Sharding for Ethereum and the Lightning Network for Bitcoin. Caasiope, on the other hand, is a blockchain-agnostic second layer scaling solution. It is designed to enable fast and cheap transactions across multiple currencies, making it particularly suitable for micropayments.
Bitcoin, and most other cryptocurrencies on the market today, use a Proof of Work (PoW) based algorithm to achieve consensus within the network. This allows transactions to be validated in the absence of a third party entity, and enables blockchains to be trustless.
Given that the top priorities for cryptocurrencies have always been decentralization and security, there is no doubt that well-established currencies such as Bitcoin and Ethereum achieve those goals very well. The problem, however, is that achieving these goals come at the rather expensive price of speed. This is because blockchains require nodes to individually verify each transaction in order to achieve finality.
As a result of this thorough process, most cryptocurrencies available today can get bottlenecked rather easily. For reference, Bitcoin can only process between 3 to 7 transactions per second, while Ethereum is slightly better at 14 to 20. Compare that to the fiat payment processor Visa that can handle tens of thousands of transactions per second, and it quickly becomes clear that cryptocurrencies are a long way off from being viable for mass usage.
Increasing the block size limit: Smoke and mirrors
The Bitcoin network functions like any other PoW blockchain. Every ten minutes, a group of transactions are collated in a block, which is then validated by miners. Since its inception, Bitcoin has maintained a block size limit of 1MB. Of late, however, a small group of miners, developers and cryptocurrency companies have contended that the limit is the sole reason that Bitcoin cannot handle more transactions per second.
The block size limit controversy first emerged in early 2015, which led to the introduction of two Bitcoin Improvement Proposals (BIP) for Bitcoin. BIP-100 and BIP-101 both proposed that Bitcoin’s static 1MB block size limit be abolished in favor of a larger cap. While both proposals gained some traction among Bitcoin supporters, neither of them achieved consensus due to widespread security and centralization concerns. This idea ultimately fractured the cryptocurrency community and led to the birth of the ‘block size debate’.
Two years after the first hard forks proposed an increase of Bitcoin’s block size limit, those pushing for an increased limit created Bitcoin Cash (BCH) in August 2017. In the mere year since its public launch though, BCH has been criticised several times over. An increased block size demands more computational resources on the part of nodes and miners, limiting the number of independent parties that can contribute to the network. This, in turn, breeds centralization.
Nick Szabo, one of the most prominent cryptocurrency developers, bluntly stated that BCH is “centralized sock puppetry.” Hacker group BitPico claimed that around half of all BCH network nodes are hosted on rented Alibaba servers in China. Even Microsoft’s Identity Division released a statement that dismissed the idea of increasing the block size limit. It reads, “While some blockchain communities have increased on-chain transaction capacity (e.g. block size increases), this approach generally degrades the decentralized state of the network and cannot reach the millions of transactions per second the system would generate at world-scale.”
Sharding: On-chain scaling, the right way
To achieve a scalable network, it is important to realize that a single blockchain will perhaps never be able to handle millions of simultaneous transactions. This is exactly why Ethereum’s suggestion of ‘Sharding’ has gained so much momentum. The concept proposes that a blockchain’s load be split into distinct ‘shards’, with a group of nodes independently responsible for each shard. This way, nodes are not forced to validate each and every transaction and can instead only be responsible for their individual instances.
Since sets of nodes can now work on their own subsets of transactions, network throughput is essentially multiplied by the number of shards created. For instance, one shard can handle transactions for addresses starting with 0x00, while another can be responsible for 0x01, and so on. This method of implementation is frequently referred to as network and transaction sharding.
Another type of sharding, called ‘state sharding’, can also help drastically reduce the amount of data that each full node has to store. Since modern blockchains handle data from transactions, smart contracts and decentralized apps, they can get bloated and increase in size rather quickly. Instead of the current system where nodes download and process the entire cryptocurrency blockchain, state sharding divides the storage into different pieces. This way, each node stores only a part of the blockchain at any given point in time.
Since sharding presents a significant leap forward in terms of throughput, Ethereum has been working on integrating it into its network. However, sharding is only one of the answers to the problem of blockchain scalability, and requires modification of the base protocol.
Scaling blockchains with layer 2 solutions
The current system of settling individual transactions on a blockchain is akin to approaching a central bank to validate every single fiat exchange. While both methods offer one hundred percent security, the process quickly becomes tedious and inconvenient. Similar to how modern society uses cash-based transactions to overcome this limitation, second layer solutions can be used by cryptocurrencies with minimal impact on security. Furthermore, since the base blockchain layer will still be used to solve discrepancies and achieve finality, decentralization is not compromised either.
Instead of changing parameters on an existing blockchain, second layer solutions such as the Lightning Network can greatly increase transaction throughput as required. The real advantage of this approach, however, is that all three aspects of blockchain technology can be preserved, namely decentralization, finality and speed.
The past has shown us that transfers of small denominations tend to make up the bulk of transactional volume in any cryptocurrency. Logically speaking, this is true for any currency, as the sheer number of micropayments far outweigh the number of large scale transactions. Second layer scaling solutions propose that everyday, mundane payments be processed off the main blockchain. This way, users are guaranteed near-instant confirmations, reduced costs and unprecedented convenience.
State and Payment channels: The Lightning Network
The Lightning Network, designed primarily for the Bitcoin blockchain, is perhaps the most well-known second layer scaling solution in development. On the backend, it is an implementation of ‘payment channels,’ which itself is a subcategory of ‘state channels’. While the former is used to only settle transactions, the latter can be used to record any form of blockchain state update like a change in the code of a smart contract.
In a state channel, part of the blockchain state is first locked in escrow with the help of a smart contract. Once this has been established, the two parties can now send an unlimited number of transactions back and forth. Instead of these transactions being recorded directly on the main blockchain, the channel will simply keep a delta record of the changes. Once the channel has fulfilled its purpose, the net sum of all transactions will be tallied and submitted to the main blockchain.
The Lightning Network takes this a step further by allowing state channels to link to one another and function as an entire off-chain ‘network’. The concept of hubs, for instance, can allow transactions to be completed via multiple ‘hops’. This is also how internet packets reach their destination after routing through multiple servers.
On the Ethereum side of things, projects such as the Raiden Network aim to deliver similar payment channel solutions. Compatible with any ERC-20 compliant token, Raiden locks up a certain amount of tokens during the creation of a payment channel via a smart contract. Either party can then use this deposit to send or receive payments until the channel is closed.
Ethereum and Plasma
Alongside sharding, the Plasma framework is one of the most viable scaling mechanisms for the Ethereum blockchain. This is compounded by the fact that they were both introduced by Vitalik Buterin, the co-founder of Ethereum, and have been designed to work with each other in unison. Since Sharding works on the base layer and Plasma is a second layer on top of the primary blockchain, the combined product is one of the most formidable scaling propositions.
With Plasma, the main blockchain - termed the ‘parent’ or ‘root’ - can spawn smaller, ‘child’ chains that can be used for anything from decentralized app storage to micro-transactions. Since transactions are completed off the main blockchain, the operating expenses are reduced once again. In the event that a party attempts to defraud the system, the parent blockchain will be referenced to guarantee security.
While payment channels rely on the underlying blockchain for transaction settlement, Plasma allows child chains to handle smart contracts and broadcast the final state to the root from time to time. Plasma blockchains can be created for decentralized applications like CryptoKitties that currently take up massive amounts of storage on the Ethereum blockchain.
The Caasiope Network
All of the solutions listed so far are perfect for scaling blockchains of entire cryptocurrencies, whether it is Bitcoin or Ethereum. However, another solution resides in scaling across blockchains, so in a way that is not limited to any single cryptocurrency. Such a solution can be achieved using a blockchain agnostic layer 2 protocol.
Caasiope realizes this vision with its own second layer scaling solution that offers the ability to seamlessly use multiple cryptocurrencies on its own blockchain. In practice, the system functions as a decentralized custodian of blockchain assets. This design allows Cassiope to achieve liquidity across blockchains and cryptocurrency exchanges without a third party involved. As expected, it also boasts efficiency as with any other scaling solution in terms of lowered transaction costs and better throughput.
If cryptocurrencies are to ever be used by the masses, the simple truth is that they will have to be able to handle millions of users, not just thousands. This is exactly why an increased block size limit represents a short-term, band aid fix. A properly scalable blockchain should be able to handle orders of magnitude more transactions, if and when it is required. Moreover, scaling should not come at the risk of completely compromising on the core principles of decentralization and security. Hence, at this time, the road followed by Caasiope is the best way of achieving all three effectively.