Saturday, April 30, 2016

How to scale Bitcoin to VISA levels without a hard fork or blocksize increase

In a presentation last week, Adam Back, the CEO of BlockStream, talked about Bitcoin scaling tradeoffs. At just about exactly one hour into his presentation, Back discussed a slide entitled "Future Scale Sketch (my opinion)". In this slide, he gave his take on how Bitcoin scaling should be implemented. He mentioned that Segwit will increase capacity of Bitcoin by approximately 2X and he also proposes implementing Schnorr signatures which would give an additional 1.5X - 2X capacity increase. Both can be implemented as soft forks. Combined, these two improvements would account for a 3X - 4X increase in throughput. Back also went on to discuss a potential hard fork increase and capacity and the lightning network, but we'll get back to that in a moment.

In an article in Bitcoin Magazine, entitled "The Power of Schnorr: The Signature Algorithm to Increase Bitcoin's Scale and Privacy", the author, Aaron van Wirdum, discusses how the Schnorr signature algorithm can potentially improve both privacy and scale of bitcoin at the same time. Because Schnorr signatures allow participants in CoinJoin to combine their signatures into a single signature thus greatly reducing the amount of space needed to engage in a coinjoin transaction on a per participant basis. This would require a CoinJoin protocol (possibly something like the join market) to be widely adopted by most wallets, but is certainly something that is within technological possibility.

With the reduced sizes by combining transactions, via CoinJoin and Schnorr, we should be able to increase capacity more towards the higher end of Back's estimates of 4X. Current capacity is about 3.5 transactions per second, so with these improvements, we'd be at about 14 transactions per second.

Now, if we go back to Back's presentation, he mentioned at the bottom of the slide that we can expect somewhere between a 100X - 10,000X capacity increase by the lightning network. Even at the lower end of this estimate, we'd get 1,400 transactions per second based on these estimates. According to VISA, they handle an average of 150 million transactions per day. That comes out to an average of 1736 transactions per second. So, even on the lower end of the estimates by Back, we'd be right near the average capacity per second of VISA. It's highly likely that the lightning network will allow us to reach or far exceed the capacity of VISA on an average basis, however we should also consider peak demand of the VISA network. According to the Bitcoin wiki scalability page, VISA's daily peak is around 4,000 transactions per second. While it's likely that lightning network will scale above that based on Back's numbers since that is still very much toward the lower end of his estimates for capacity increase, it's important to note that due to the way that the lightning network works, short bursts of transactions are not likely to hit the network. Only commitment transactions and the security based HLTCs (which are not likely to be needed very often) need to be broadcast to the blockchain. This allows for smoothing out of transactions throughout the day because commitment transactions can be delayed to a later date if necessary.

So, in summary, Bitcoin can and will scale to VISA levels without the need for any block size increase at all even at slightly higher levels than the lower bound estimates by Back and it's likely that it will scale much farther beyond those limits.

No comments: