Intro to Scaling Problem
By Block Society
A few years ago, during the run up of 2017, developers throughout the blockchain ecosystem started to make a lot of noise about a major problem that blockchain technology would begin to face, scaling. The scaling debate has been central to many of the upgrades and innovative technology being implemented in the industry. What is it? Why does the scaling problem exist? What are some ways that we can fix it?
Think of a water pipe. The only purpose of the pipe is to allow for water to flow. At present, this pipe allows for an average of 6 cups/second. At first glance, it looks like a pretty big pipe that has strong pressure. However, if you were to supply the globe with drinking water, this pipe would not suffice. Most cities would demand more water than the pipe could supply. If this is the only water source that we have, the price of that water rises. The more demand that is put on the pipe, the more water prices rise, and the harder it is to gain access to the water. This is a massive issue, people need to drink. The scaling issue addresses this exact problem. How do we get more throughput from the pipe?
Putting this in blockchain terms, think of the pipe as the blockchain. The number of transactions allowed depends on the size of the block (1MB in the case of BTC), and the speed at which a block is released (An average of 1 block/10 minutes for BTC). The size of the block and the way that the transactions are organized on the block limit the amount of transactions that can fit on the blockchain as time progresses. Currently Bitcoin’s blockchain has a limit of roughly 6 transactions/second. This is about 1/4000th the speed of most payment processors. If we could increase this limit somehow, or build an alternate piping system, we could increase the supply of transactions and lower the cost. This is the gist of the scaling problem.
Scaling issues always exist in distributed systems. In the case of Bitcoin, you have to get every user to agree to a ruleset, then each user who plays by that ruleset needs to be able to quickly know when the ruleset has been satisfied correctly so that a miner can produce a new block. The miner has to propagate that block to the entire network so they can validate and add it to their records. This all takes time. Data only moves so quickly.
There are many considerations when scaling discussions are at hand. In no way will I exhaust all of the different facets of the problem. But I will introduce you to the major aspects. Over the next few weeks, I will be introducing scaling solutions and features. How they are being tested and applied to cryptocurrencies. These will include second layer (Lightning network, Side-Chains, Plasma, Trinity, Child-Chains, etc.), base layer technologies (Sharding, Mimblewimble, SegWit, Zk – Snarks, etc), and other features (DPOS, BFT, DAGs). The lightning network is probably the most talked about scaling solution to date. It has been at the center of major controversy for the past couple of years. It promises to allow for nearly free transfer of BTC off of the main blockchain and settlement later. Before we get into the mechanics of it all though, it is important to understand the history of the Lightning Network.
Three years ago, a vicious argument bubbled to the surface of blockchain conversations. The argument was largely based on the tradeoffs of centralization (In multiple forms) and of scalability. On one hand you had a group of Bitcoin developers who wanted to quickly increase the size of the blocks to accomodate more transactions – Bitcoin Cash devs. On the other hand you had a group that wanted to spend time to design multiple longer term technical solutions (SegWit and Lightning Network) to address the scaling problem – Bitcoin Core devs. Bitcoin Cash devs argued that the Lightning Network would cause centralization of power to a few major actors who could afford to administer the network. Bitcoin Core devs argued that the larger blocks would centralize power to miners who have the most/fastest connections to the rest of the validator nodes throughout the globe. Core devs also argued that the Cash devs were short sighted. Larger blocks is a simple change, a bandaid, not a cure to the problem. Bigger blocks won’t compress the transaction size or give any second layer solution. They will just keep the issue at bay for a few months.
Philosophically, the Bitcoin Cash devs tended to fall in the “Bitcoin primarily is and needs to stay a payment processing mechanism”. Whereas Bitcoin Core devs tended to believe “Bitcoin is digital gold, a store of value”. These philosophical values mixed with the disagreements on centralization caused a massive rift in the community which led to the Bitcoin Cash fork in 2017. Leaving us with two types of Bitcoin.
So what exactly is the Lightning Network that everyone is arguing about? The main premise is that instead of always using the blockchain for transactions, you use direct, bilateral channels to transact through multiple parties. These bilateral channels (lines on the image below) have nodes (text on image below) at each end. The nodes administer the lightning network. Each channel has an agreed upon (By the nodes at each end) amount of collateral locked up to administer the node. This collateral can then be sent back and forth as much as
needed without consulting the blockchain. The blockchain only needs to be used to open, close, increase or decrease the size of a channel. This means that users, as long as they are administering a node, can send funds almost instantaneously to other nodes within the lightning network. The problem, argued by Cash devs, is that most users will not administer a node, instead trusted third parties will administer nodes connected to other trusted third parties (TTPs). Users will have accounts with these TTPs and the channels will become payment mechanisms between the TTPs. This architecture sounds very similar to the banking system’s architecture that Bitcoin was built to destroy.
The other side, the Cash devs supported ‘bigger blocks’. Bigger blocks are exactly what they sound like. Instead of having 1MB blocks, you make the blocks 8MB – effectively 8x-ing the number of transactions that can be made every 10 minutes. The problem with this solution is that blocks need to quickly be propagated by miners throughout the internet for them to be valid. If they are not propagated throughout the internet, you can get orphaned blocks – blocks that are not part of the longest chain. Large miners can reduce the amount of orphaned blocks that they produce by using their resources to propagate their blocks to all of the validator nodes by sitting in between a large number of such nodes. This gives a slight advantage to larger miners with more capital to scale horizontally.
Both sides have critiques of each other. The Bitcoin Core side has released the lightning network and has over 8000 nodes at the time of writing. The value of BTC in the core protocol has coincidentally risen to around $8000/BTC. Whereas the value in Cash has stayed around $430/BCH. If just going off of public sentiment, Core has won the battle as of now.