Hello there. For those of you that are just getting into the space, there has been a very polarizing debate going on in the Bitcoin community for years now. Bitcoin reached a point in late 2017 when transactions were taking days to process and costing over $35 dollars in fees. Most everyone in the Bitcoin community recognized this would be a problem before it happened, and the community quickly divided itself in two camps that proposed two separate solutions.

The two camps have become very resentful of each other. I have had conversations with developers on both sides and all I can think is, “How did this happen? We’re smarter than this.”

Scaling

In software, the term scaling means the ability of a program to handle more computational load, which usually comes from having more users. It’s fairly easy to write a website that can serve thousands of people, but serving to millions or billions of people becomes very complex. Bitcoin was the first cryptocurrency to run into a scaling problem due to high user traffic. The high amount of users means many transactions per second, which means the network has a hard time processing all of those transactions.

Big Block Solution

Let’s talk about the simple solution to Bitcoin’s scaling problem first. As a computer scientist I hold true to the mantra:

Make it as simple as possible but no simpler

In order to understand how big blocks could help Bitcoin scale, let me quickly explain what a block is. As you may have heard, Bitcoin runs on a technology known as a blockchain. A blockchain is just a list of transactions separated into blocks, which are just groups of transactions. In the case of Bitcoin, a new block is added to the blockchain every 10 minutes, and each block can only hold ~2020 transactions (1 Megabyte).

At that rate, Bitcoin can only handle a maximum of a little over 3 transactions per second. If people try to send more transactions than the network can handle, the network backs up, which causes fees to skyrocket and transactions to take a long time.

The simple solution is easy to understand: Let’s allow larger blocks to be processed. For instance, if the blocksize was increased to hold 16,160 transactions (8 Megabytes), then bitcoin could process ~24 transactions per second which gives Bitcoin much more room to stretch before becoming congested.

In general the argument coming out of the Big Block side is that any sort of off-chain scaling solution will come at the cost of centralization or censorship on the off-chain network.

Off-Chain Solution

The other camp of Bitcoiners proposed a separate solution. They said that it makes more sense to move transactions off of the blockchain entirely when possible.

The main issue with a blockchain is also what makes it great. The blockchain (record of transactions) is stored all around the world on random people’s computers. This keeps it decentralized and out of the control of a single entity (The senate, a company, a person, etc). The problem with this is that it is much more expensive to repeatedly store and process each transaction in the world thousands or millions of times over.

For instance when visa processes a credit card transaction, they record it once within their system. A couple bits flip on their server and it is done. When a bitcoin transaction is made, every Bitcoin node in the world (there are about 10,000 nodes)

needs to record that transaction. That means at least 10,000X more hardrive space is used!

The off-chain camp believes that the long-term solution to scaling is to build more sophisticated systems that allow bitcoin transactions to be recorded by only a small subset of the Bitcoin nodes. The idea being that if I buy a cup of coffee, not everyone in the world cares about that transaction, only a couple people do. Rather than increasing the blocksize, we decrease the amount of transactions that must take place on the blockchain by taking them off-chain.

In general the argument coming from the small block side is that large blocks will make the network too resource intensive for the average citizen to run a node. If most people can’t run their own Bitcoin software, then the system could more easily become centralized.

Bitcoin vs Bitcoin Cash

Bitcoin (BTC) has opted to retain it’s small block size for now. Bitcoin is probably the coin you have heard about a lot in the media if you are new to the space. You could say Bitcoin has the high-ground in terms of media attention.

On August 1, 2017 the big block camp actually decided to create their own cryptocurrency via a hard-fork. The named it Bitcoin Cash (BCH) and it’s currently the 4th cryptocurrency in terms of market cap dominance. The Bitcoin Cash developers gave it the blocksize increase they desired. The two currencies, Bitcoin (small blocks) and Bitcoin Cash (big blocks) are competing for market dominance.

My Opinion

I find it ironic that both sides of the debate accuse each other of wanting and causing more centralization on the network. I myself am an active member of both communities because I see validity on both sides of the aisle.

I believe the end solution will actually incorporate parts of both proposed systems, and I think all of the Bitcoin infighting could be minimized if we humans weren’t so naturally inclined to groupthink and ideological polarization.

In the short term I believe it would be wise for Bitcoin to allow for a blocksize increase to alleviate congestion. I don’t think the blocksize should be increased to much more than is needed because it helps protect against transaction spamming attacks, and keeps hardware costs low.

I also think that off-chain solutions have a lot of promise but are still in development stages. An off-chain solution (like the lightning network) will only work if decentralization is not compromised.

Donate

BTC: bc1qvw0ytfntx6zs0lfsruem6xwj0mewng523ktatp

ETH: 0x3d737324ed6Ac204a809d17bc4807C6D2a05D6eD

BCH: qz5j4ypu4wf2x3960elyyxz4vk0z2p9lagfh52xq59

Nano: xrb_1ipdmx5ck6fwc1hkt3fg631z6twjo9e5m6e9dbenm65sbb3e4hgmd1ygxnq3

Follow on Twitter: @wagslane