Can The Blockchain Scale?
Bitcoin’s capacity is currently seven transactions per second. If cryptocurrency is going to be widely adopted, it needs a different approach.
Blockchains are a remarkable invention. They work by sharing every transaction with every member of the network. It’s easy to check an operation but hard to add a new one – and all but impossible to change the information the ledger already holds. Bottom line, if a member of the network wants to submit a fraudulent transaction, they’re going to find it’s a hard (and expensive) business to try, and that they fail anyway.
Cutting out the middleman allows users to send money directly to each other, enjoying the benefits of speed, low costs, transparency, and security that result. There are all kinds of efficiencies they enable, with a vast range of applications, including payments. But you never get something for nothing. There are flip sides to every advantage.
One of the disadvantages is the resources you need to run the software and store a ledger that contains every transaction ever made. If you want, you can dig around in bitcoin’s blockchain and view the first, pioneering transfer, made back on 12 January 2009 from bitcoin’s shadowy creator Satoshi Nakamoto to an early enthusiast, Hal Finney. As a result of this necessarily comprehensive approach to book-keeping, bitcoin’s blockchain is pushing 100 GB at the time of writing, and growing fast. The hardware requirements for miners and full nodes – those who secure the blockchain and process transactions – are likewise ballooning.
For all this, bitcoin’s theoretical capacity is terribly limited. At present, each new ‘block’ of transactions that is added to the blockchain, every ten minutes or so, is 1 MB in size. Until this changes, it throttles bitcoin to somewhere in the region of 7 transactions per second (tps). Consider that Visa averages around 2,000 tps, with a peak capacity of perhaps 50,000 tps, and you realize that something has got to give.
The simplest fix is to increase block size. More space, more transactions. But that has proven difficult. The problem is not technical but political. There are many different stakeholders in the decentralized bitcoin ecosystem, and pleasing them all is impossible. An idea might make perfect sense to the core developers who maintain, update and improve the software. But it will not necessarily gain traction with the miners, who run it and secure the network; or the companies that run wallet services; or the end users who have to pay fees to submit transactions; or the large holders and ‘evangelists’ who are still influential in the space.
Such has been the case with the scaling debate in bitcoin. To take just one example, at one point in 2015 it seemed likely that blocks would be increased to 8 MB, a compromise that would future-proof bitcoin to a certain extent without causing undue problems for the Chinese miners whose bandwidth was restricted by the Great Firewall of China. But opposition swelled and the offered update remained unpopular with miners. Despite some progress, we are still operating on 1 MB blocks.
It one sense, it doesn’t matter. In the long run, Bitcoin doesn’t need an 8x, or a 20x capacity upgrade. If it’s to compete with existing global payment solutions it needs a 500- or 1,000-fold increase, minimum. (Some critics believe that it won’t and shouldn’t become a global payment solution, instead of becoming a store of value – a kind of digital gold, rather than an everyday currency.)
The problem of how to scale is on the radar for almost every other cryptocurrency platform. Bitcoin, well-established and orders-of-magnitude larger than the others, is an ocean liner that is robust but cannot quickly change direction. Other protocols, though far smaller and less well tested, are agile and can learn what may threaten them in the future from the problems now facing their ancestor. Some have included one or other of bitcoin’s numerous scalability proposals. Litecoin, the ‘silver’ to bitcoin’s gold, recently implementing Segregated Witness (SegWit), to pave the way for greater scalability and adoption.
These are mainly incremental improvements, not a final solution. The blockchain’s hungry requirement of ever-greater resources to process and store transaction data is the subject of an increasing amount of academic research. New platforms know that they have to address this problem now, or have a clear strategy in mind; if they seek to grow first and cross that bridge when they come to it, they will find themselves in the same position as bitcoin.
There are various approaches that different platforms have taken to address the problem at a more fundamental level than only increasing block size. Waves, which ran a successful crowdfund by launching a scalable, user-friendly blockchain solution, has taken the decision to use Scala, rather than the C++ programming language used by bitcoin and most others at this point. As the name suggests, Scala is far better suited to leverage parallel processing and therefore faster execution by running instructions concurrently. (Finding Scala programmers aren’t comfortable, but the ones there tend to be excellent because they have cut their teeth on other languages before graduating to the more complex but less restrictive Scala.)
Blockchains are underpinned by some pretty smart cryptography, and some of the same principles can be used to streamline the significant and growing database of information stored within them and associated with transactions. Not only does this reduce the overall size of the blockchain, but it allows lower-powered devices to be used to maintain the network – meaning the work of securing the blockchain does not become a rarefied activity and the preserve of high-powered, expensive machines. Similarly, their improvements are continually being made to the ‘consensus’ mechanisms by which transactions are added to the blockchain. Bitcoin, although trailblazing, is slow and inefficient.
Updating the method by which transactions are validated can also have the effect of dramatically increasing throughput. Using a combination of techniques, the Waves development team intends to raise the transaction capacity to around 1,000 tps (transactions per second).
A thousand transactions per second is pretty impressive, given the current capacity of blockchains, but even greater capacity will ultimately be needed.
Bitcoin is the first, most provenly secure and most popular cryptocurrency. Among some of the bitcoin community, there is a so-called ‘maximalist’ viewpoint that says it can be and should be used for everything. There are consequently various projects to use bitcoin as the lynchpin of initiatives that aim to extend its capacity to millions of transactions per second or more, rather than starting from scratch with a new blockchain. Bitcoin is not suited for mass-adoption in its current form, and development is glacially slow, to put it mildly. But there is an alternative: conduct transactions off the blockchain but settle them on the blockchain. This is the ambition of the Lightning Network.
In development but yet to be realized, the Lightning Network (LN) can essentially be thought of as a series of ledgers separate to the bitcoin blockchain, but branching off from it. Activity – from the perspective of bitcoin’s own ledger – occurs in the black box of its own branch. Many different parties can send funds between themselves in huge volumes and at practically zero cost, with smart contracts ensuring the results are embedded in the bitcoin blockchain for permanence and security whenever necessary or desirable. The creators maintain that the result could be far greater capacity than even Visa’s network.
It’s still early in the history of the blockchain. It’s an incredibly innovate set of technologies, and we will doubtless see some extremely creative solutions to the problem of scaling a comprehensive ledger of transactions. In fact, these solutions will necessarily go hand-in-hand with the advance of the blockchain, because they are the prerequisite for its success.