Picture this. There’s a cartoon cat. It has genetic traits that it can pass on to its cartoon offspring. People value some genetic traits much more than others, and there’s a market for these traits and unique cattributes. But, these aren’t regular cartoon cats, a la Neopets – each of these cats lives on the blockchain. Built on top of Ethereum, Crypto Kitties lets you collect and breed kitties, with proof of ownership existing in a Blockchain-based contract.
While the creators of these adorable cartoon felines knew there would be market interest and possibly even viral adoption, they didn’t plan for one outcome: bringing the Ethereum network to a grinding halt. The network has a backlog of transactions in the thousands (but still far less than the backlog of Bitcoin transactions) that has been driving up transaction fees and reigniting one of the debates at the heart of blockchain technology: the question of how to scale a public ledger efficiently.
Backlogs are not new to any of these networks; Ethereum reached congestion peaks back in June, but a slew of upgrades improved speed by a magnitude while dropping transaction costs to mere cents. But critics are quick to point out that this backlog is different – while previous congestions were because of ICOs and purchases, the Crypto Kitties backlog was brought on by a marketplace that traded items of mere cosmetic value. And while everyone’s busy blaming Ethereum for scaling troubles, it’s easy to forget that its elder sibling Bitcoin currently sits on 220,000+ pending transactions, almost 10x that of the Ethereum backlog. Scaling has always been a problem in the blockchain world, with one of the largest scaling debates on doubling the Bitcoin block size to 2 MB resulted in the infamous faction wars that gave birth to Bitcoin Cash.
Why is scaling even necessary?
Even with the current network congestion, processing transaction is a matter of increasing the transaction fees to levels that could still be lower than international payment processing companies. So, it might not be immediately obvious why this is a cause for concern. If we can use the same network while staying pay less than what we would to Paypal or to a bank, it’s not a problem, is it?
To understand the importance of scaling, we need to understand what these cryptocurrencies are trying to be. While they may be excellent stores of value that even serve as speculative investments, they don’t effectively serve the purpose of being a peer-to-peer currency or transaction system. With networks like Ethereum or Waves which are much more than just currency systems, it is even more imperative to solve the issue of transactions clogging the metaphorical blockchain pipes. Ethereum currently leads the market and is on target to reach 1 Million transactions per day in the coming months, but this 1 Million is not even 1% of what a processor like Visa clears in a day.
For networks that dream of being smart contract platforms or hope to host entire decentralised organisations, answering the question of, “Will it scale?” is tied to their very existence.
From why to how
Considering the complexities of how scaling could be necessary, there are multiple ways of implementing the possible solutions. While one line of thinking is that the raw throughput of transactions per second can be improved by increasing the size of each block on a blockchain, other methods involve changing the way transactions are added to a block, or by modifying the way transactions are signed by nodes on a network.
Block size, throughput and linear increases
Suppose you have each block on the blockchain limited to 1MB of storage in size, that’s a hard limit on the number of transactions you can add to the blockchain at any instant. Even if you have many more people mining on the network in an effort to sign off on the next set of transactions, if they’re all limited by the storage space of each block, you effectively have a speed limit on information generation. This was the argument behind scaling Bitcoin from 1MB to 2MB or higher per block.
One of the earliest solutions devised for this limitation was to change the way witnesses signed transactions on the blockchain without actually including the witness data with the transaction data, thereby having a Segregated Witness, referred to as the SegWit upgrade. Ethereum uses a variable block size in the form of a variable gas limit (i.e. how much gas you can pump into a transaction vehicle to make it run) but still requires consensus from miners before it can be upgraded. Such increases, if improved, can directly multiply the number of transactions possible but still represent only a linear increase from the previous levels.
Block-chaining solutions, consensus upgrades and consequences
Figuring out where a transaction gets added into the blockchain, and moving the architecture from a single chain of blocks to another form (such as a network of blocks below every block) has even greater scaling potential than a block size upgrade. This has been experimented on with Bitcoin sidechains in the past, and with the Bitcoin Lightning Network that is being implemented on top of SegWit. Lightning, for example, has subsections of micropayments that need not clog up the main blockchain every time a transaction is processed. By moving some transactions off-chain and simply redistributing the funds when required, separate channels can be created for smaller payments without being bogged down by scaling issues on the main chain. A similar idea (developed by one of the Lightning whitepaper authors) called Plasma is being worked on for Ethereum and built at the core of OmiseGo.
A comparable idea is the creation of shards or pieces blocks that hold discrete kinds of information on the same blockchain – one shard could hold a particular asset, another shard could hold addresses of a certain contract, a third could hold all Crypto Kitties and so on. Sharding, in combination with Plasma, is expected to take blockchains to transaction speeds thousands of times greater than current payment processors without sacrificing the decentralised and open nature of these networks.
Taking a step back to the level of mining on blockchains (i.e. their consensus algorithms), scaling plays a role again in how widely a network can be distributed to achieve effective decentralisation. While Proof-of-Work algorithms call for expensive computer equipment and electricity costs as the limiting factor, Proof-of-Stake algorithms provide direct economic incentives to nodes on the network. Proof-of-Work has been the gold standard since it is very hard to destabilise such a network but also results in increasing electricity consumption. The latest figure of Bitcoin mining consuming more electricity than 160 countries might seem humorous at first, but extrapolating past data projects an electricity cost that will exceed that of all human production by just 2020 – in other words, a scale that can simply not exist.
Ethereum (which also uses Proof-of-Work at the moment) is attempting to move to Proof-of-Stake but the path to that is too experimental and premature to celebrate as the way forward. In these cases, the non-blockchain implications of scaling troubles can have very real consequences for those completely outside the system. It is no surprise that rumours abound of China (which holds over 60% of the mining power in the Bitcoin network) cracking down on cheap electricity being used by mining farms. Until we get to a post-wastage world where electricity spending, consensus debates and block size adjustments are a thing of the past, scaling will remain an issue and cartoon cats will continue clogging the pipes. And while they look like a waste of valuable transaction space for a viral fad, these are critical in building public acceptance of blockchain uses that go beyond finance. In the words of Ethereum founder Vitalik himself, “I actually like the digital cat games. They illustrate very well that the value of a blockchain extends far beyond applications that would literally get shut down by banks or governments if they did not use one.”