Tuesday, February 24, 2015

Bitcoin block limit - trade-offs and outcomes

The discussion on the Bitcoin block limit is nothing new. A number of people have weighted in on this subject, myself included almost two years ago. So while the topic is not new, I still hear it being brought up every now and then. Since I came up with a novel approach to dealing with this issue that doesn't get mentioned that often, I figured I would make a blog entry on this subject.

But first, lets discuss what the problem is and what are its implications.

The problem


As some of you know, the Bitcoin blockchain was initially designed to have a limit of 1MB per block. This was done due to prevent the bloat and abuse of the network. However, if this limit is strictly enforced, the Bitcoin network would only be able to support a small number of transactions, about 7 transactions per second (compared to Visa's 2000 tps). Clearly, this won't be enough for a payment network that is supposed to replace the banks and credit cards. Either we will increase this size in some way, or we will see Bitcoin become a much different network.

The outcomes


Depending on whether the block size is increased or not and by how much would dictate how the Bitcoin network is shaped. Lets look over some possibilities.

Block size remains rigid


In this approach, the 1MB block size is rigid and remains unchanged. When we start hitting this limit, the miners will be able to pick and choose which transactions to include in the block. Rational miners will pick the transactions that pay them the most in fees (proportionally to their size), thus there will be a bidding war to get into the next block.

Due to the increased cost, fewer people will opt to send transactions themselves, either leaving Bitcoin entirely, or by performing some off-chain settlement. Wallet services such as CoinBase could become more like banks - offering their customers settlement with other people on their platform and other platforms that accept off-chain settlement.

In this scenario, Bitcoin becomes a settlement method for large bank-like wallets and large corporations.

Block size limit is abolished


A polar opposite of the previous approach. The block size limit is completely abolished and miners can create arbitrarily big blocks. While anyone can create a transaction for cheap, the network would soon be attacked by malicious entities trying to push the limit. Someone could decide to generate a 1GB block for example and cause the network to grind to a halt while synchronizing.

Quite quickly running a full node becomes a luxury or a business. We see more reliance on Stratum-like supernodes. The functionality of the network is dictated by them.

In this scenario, the Bitcoin network turns into something like the modern Internet - only big players can access it directly and everyone else has to rely on something like Bitcoin-Internet Service Providers.

The middle-ground


As with all things, we will probably see some middle-ground. We will probably have some limit in place but it will be systemically raised over time as the network grows. As to how it will be done, we will see.

That being said, I would like to describe an idea I had awhile back as to how to remove the block limit, while still disincentivizing the miners from creating large blocks.

An economic solution


The miners have a financial incentive to include any transaction with a fee into the block they are mining, since the cost to do so is negligible. Now, if the miners had a cost associated with adding those transactions in, the problem would solve itself. The miners wouldn't be able to include an arbitrary number of transactions in, while they would still be flexible to include a large number of well-paid-for legitimate transactions.

The question is - how do you make the miner pay? Obviously, you can't just enforce a transaction fee that would go back into the block. This would lead to the miner paying themselves in bogus fees.

There are two approaches to take - either the miner can pay in Bitcoin, or in their hashing power.

To pay in Bitcoin, the miner would have to destroy some BTC permanently. This would be the only way to ensure they are actually paying the fee. This approach would mess with the distribution curve of Bitcoin and decrease the amount of coins in circulation. Generally, a lot of people wouldn't like this approach and it's not too elegant.

To pay in the hashing power, the difficulty of a given block would have to scale with its size. Say, up to 1MB would be 1x the expected difficulty, 2MB could be 2x, 10MB 10x, etc. This would mean that only the transactions that pay proportionally more than the current block reward over 1MB would be profitable to include into the block. The relation could be linear, quadratic, or any other shape as needed to create work-reward ratio. As such, while there wouldn't be a strict block size limit, the miners would most likely be mining 1MB blocks until people would be paying enough to noticeably subsidize the miners for their effort. All in all, a more elegant solution.

Conclusions


The problem of the Bitcoin block size limit will have to be addressed in the coming years. If the problem is properly handled, we could see the network continuing to function as normal. There are many approaches that can be taken to address this issue.
Previous Post
Next Post

0 comments: