Tuesday, June 20, 2017

The Bitcoin Scaling Debate in Brief

This is intended to be an overly short description of the bitcoin scaling debate and where we stand as of June 20, 2017. My hope is that this will serve mostly online poker players who are using bitcoin on a daily basis. As such, it glosses over a lot of details, but hopefully is sufficient to outline the problem for that group of people.

The problem
Bitcoin blocks are what are used to keep track of all bitcoin transactions and ensure that the same bitcoin can’t be given to more than one person. A bitcoin transaction isn’t real until it’s been added to a block. Currently the maximum size of a block is 1MB. Consequently there are a maximum number of transactions that can fit into a 1MB block. The current demand for transactions is greater than the amount that can fit into a block. This results in two things: longer wait times for transactions to be confirmed, and higher transaction fees in order to create an incentive for miners to include transactions in a block.

The Sides
On one side we have the group that would like to see bigger blocks. This would increase the capacity of the transactions but would also make it harder for smaller miners to compete as the hardware requirements to compute and transmit these blocks would also increase. Causing a fear that mining would be more centralized. Additionally this can only be implemented as something called a “hard fork”.

On the other side we have those who would like to see something called “segwit” activated. Segwit = segregated witness. It’s a way of changing the location in the block where signatures live. And the new location doesn't count as heavily in the blocksize.

This does two things. The first is it effectively doubles the number of transactions that can be stored within the existing 1MB block. And second it fixes a problem called transaction malleability. That problem prevents an offchain scaling solution called “lightning network” from working. The good news is that segwit activation is done through  a “soft fork”. The concern is that it requires 95% of minors to activate. That is a very difficult standard to achieve, and may never activate.

The consequence of segwit is that enabling offchain transactions removes transactions from the system and handles them off the system. Which means that the miners won't see any fees from those transactions. AND the demand for transactions on the system goes down so the fees associated with onchain transactions get reduced. Consequently, people who mine bitcoin really hate this. They are primarily the ones who are blocking segwit activation. They want bigger blocks so that they can collect more transaction fees.

Splitting the blockchain
Both of these sides create a risk of a split in bitcoin. The reason to set the bar at 95% for segwit is to avoid a contentious fork where those that don’t agree continue to maintain a separate blockchain after the fork. If this happens, people who held coins before the fork would be able to spend them on each side of the fork, effectively doubling the number of bitcoin in the world. An increase in the monetary supply is not supposed to happen in bitcoin and would have very large economic impacts for those who hold bitcoin.

As a consequence any resolution to this has to involve a high degree of confidence that there will be only one bitcoin blockchain.

A compromise
A compromise has been proposed called “segwit2x”. This compromise is two things: 1) Activate Segwit by end of August 2017 and 2) double the blocksize by December 2017.  These two things are tied together such that if the first happens, the second must also happen. Remembering that segwit effectively doubles the number of transactions that can fit into a block and a doubling of the blocksize, this is effectively quadrupling the number of transactions that can be in a block. In addition offchain scaling solutions like lightning network become possible.  Segwit2x will be activated if 80% of miners signal support for it.

This is a compromise. The segwit crowd does not like the increase in the blocksize and the bigger block crowd thinks the blocksize increase is too small. But the good news is that more than 80% of miners have signaled support. So it looks like this will happen by the end of the summer of 2017. Which means that offchain scaling experiments can begin in earnest. And, hopefully, the transaction fees will start to reduce making bitcoin much more useful. There is still a risk that the minorities will maintain a separate blockchain. I do not know how to assess how big that risk is.

My opinion
I’m glad to see that some resolution to the scaling debate appears to be within reach. And I’m hopeful that it will not result in splitting bitcoin. Ultimately each side gets a little bit of what they want, and they’re going to be better off staying with the 80% (or more) majority than splitting.

But here's the thing. It may not happen. And it may turn out that bitcoin only becomes useful for large transactions. Transactions where the fee to send the transaction is rational. So say you're sending $10,000 worth of bitcoin. At that point a $2.50 fee doesn't seem that bad.  Whereas that fee for a $2 transaction seems exhorbitant. Who decides? No one person or group. This may happen because this is the bubbled up result of all of incentives in bitcoin determining that this is the most efficient use of bitcoin.  In which case, bitcoin will likely have a lot less value for poker players.

But for right now. No one knows, and bitcoin continues to be pretty valuable tool for poker players. Although I personally have modified my behavior. I used to immediately withdraw everytime I got over about $100 on each poker site.  Now I wait a little longer. Now I'm waiting for a withdrawal that's at least $200. And the reason is that I don't want to pay the high fees.  As the fees get higher, the amount of money that I'll transact must get bigger and bigger. At some point, if the fees get too high, I simply won't transact on bitcoin, and I'll convert to something else - maybe litecoin, maybe iota, maybe zcash. Who knows.

For now it remains bitcoin.

6/26/17 Update:
For those curious, Andreas Antonopolous just published a *FANTASTIC* video describing the different types of forks within bitcoin. Highly recommended.

 Here's another one describing the fee situation in bitcoin: