Willy Woo is an entrepreneur, investor, trader and cryptocurrency enthusiast.
In this guest piece, Woo weighs in on the block size, analyzing the charts to offer a novel take on bitcoin's big debate. Ultimately, he finds that there's little evidence to suggest current network congestion is a fatal flaw.
Bitcoin has been operating for eight years, from the early days when we only saw a few transactions in each block, through to today, where blocks are crammed packed and congestion is the norm.
One benefit of seeing congestion this early in bitcoin's life is we get a great set of data of the network under load. In this study, we'll take a look at bitcoin's transactional data to see if it points to an ideal block size (if there even is such a thing).
The chart above shows the transactions per second on the bitcoin network over time.
It's a log graph that shows exponential growth as straight lines, where the bubbles denote the size of bitcoin's mempool (think of it as a kind of storage tank that temporarily holds transactions before they are processed).
Despite users complaining that the blocks are now crammed full, and that the network overloading, this graph tells a surprising story. While we see by Q4 of 2016, the mempool swelling to take up peak loads, the network catches up off-peak.
The network is keeping up with exponential demand.
Yes, we are seeing congestion, but no, we are not yet turning away any significant transaction volume due to this congestion. If this was true, we'd see this as a downwards arc on our log graph instead of our straight line.
But that's not to say we aren't very close to the limits soon and our arc away from a straight line will likely happen in the weeks and months ahead.
We can use this chart to project future transactional demand.
Say, by the next block reward halving in 2020, we can expect around 20 transactions per second on the network. Having predicted 20 transactions per second by 2020, I'll now explain why this probably won’t be true.
The bitcoin network is mainly used as a store of value, but by 2020, bitcoin's price volatility should be stable enough for it to be used as a currency. I suspect then we'll see a step change upwards as merchants start using it for general commerce.
Something like the Lightning Network (which allows for nearly unlimited transactions for the cost of four normal transactions) would open new use cases such as microtransactions for the IoT.
The two takeaways are that we can use this chart for predictions, but they will only be valid as long as bitcoin's use case remains the same.
For now it's store of value, in future it could expand greatly.
A side note on 'coffee'
Users of the bitcoin network, and in particular businesses, tell us that fees have increased to the point where paying for coffee and other even smaller use cases (such as ad network payments) are not viable anymore.
The argument is that bitcoin is losing utility for general commerce, therefore the bitcoin network is at risk of declining as payments move to cheaper, competing alternative cryptocurrencies.
Clearly, we see that the exponential growth of transactions per second hasn't skipped a beat. This tells us the 'paying for your coffee with bitcoin' use case, though much talked about, was essentially a negligible aspect of the network transactions.
Otherwise we would see a declining curve. The network is keeping up. It's core use case has always been transmitting and securing high values securely.
As mentioned earlier this will change as bitcoin volatility becomes stable enough to be used as an everyday currency.
We are currently in the phase of bitcoin as a store of value. Bitcoin used as a currency is a few years away, so we have time to work out how to cater for the orders of magnitude increase that would come.
This does not discount the fact businesses are experiencing pain from high fees and slow confirm times, which we’ll look into further.
Maybe a year ago, there was debate among miners whether big blocks or small blocks would yield them higher profits.
Some were even saying big blocks would allow more transactions to be carried, and therefore more fees would be generated. However by Q4 2016, we saw the impact of momentary peak hour congestion hit the network.
It's been clear that a demand driven market has emerged, resulting in much higher revenues.
Here's a graph plotting the fees impact of congestion on the network.
As average block size hits 95% of maximum, the mempool starts ballooning, users start leapfrogging one another with their fees in to get into the next block without delay. As a result the fees start to hockey stick… just a pure vertical climb in fees.
If you were a miner, solely motivated for short-term profit, you would want the maximum block size to be small enough to always keep those blocks 95% filled.
You’d want to limit the supply of transaction space so the fees competition gets rabid. The optimal block size for miners is "small enough to drive congestion"
Question: What would 8MB blocks have produced in fees?
Lets run a hypothetical scenario… say Bitcoin XT was approved and we have 8 MB blocks today, what would miners be earning from fees?
Obviously, supply overwhelms demand and dynamic fee algorithms in wallets will set lower fees according to network conditions.
We can use our graph to estimate the new earnings.
Today's transactional load is using 0.95 MB of space per block on average, you can read this from the bubbles at the right of the chart (you can see this more clearly at Blockchain.info).
This would be a 12% fill rate with 8 MB blocks. At 12%, the graph shows miners earning 0.1 BTC per block from fees. Today, miners earn 1-2 BTC in fees with 1 MB blocks, so 8 MB blocks would serve to reduce this by a factor of 10-20x.
The ideal block size for users
Okay, let’s move on to the what users want – fast confirmation times, reasonable fees and good security.
We've seen the speed of the network grind to snails pace at peak times. The graph below shows how long we are waiting for a confirmation as the blocks reach their maximum.
The bubble sizes denoting the number of transactions in the mempool just goes crazy whenever blocks are 95% or more filled, and confirm times just go vertical.
Even before things get crazy at around 80%, the median confirm times start to deviate upwards significantly.
It's important to note that the higher the fees we pay as users on the system, the more security we get as miners can afford to compete with higher hash power with more revenues. This becomes super important in due time as the block reward subsidy drops with each halving event.
Currently, fees make an important part of miners revenue – 1.5 BTC fees vs 12.5 BTC in reward subsidy. At the next halving when the subsidy drops to 6.25 BTC the fees component will become critical to the security of the network.
Thus, there is a "goldilocks zone" for fees, not too cheap for better security and not too expensive.
My conclusion here is the ideal block size to keep confirm times from ballooning while keeping fees and security reasonable is around 80% of blocks being filled.
Putting it all together
So we have three results so far.
- 1 MB blocks currently has kept pace with network demand so far, despite undesirable delays in transaction processing times and expensive fees during congested time.
- The most optimal block size to maximize miner's revenues is any size small enough to congest the network which is around 95% filled or more. Getting congestion and an onset of "leap frogging" fees scenario between users would be the optimal miners game to play.
- The transaction confirmation times start to suffer when blocks are above 80% filled. At this level, fees are reasonable but not exorbitant, but not too cheap to substantially impact the security model of bitcoin as the block reward subsidy diminishes in future years.
The optimal network, based solely on the economic game theory, will need to balance security and miners revenue, speed, and low cost of transactions.**
Given these constraints, I think the best block size would have to be dynamic, adjusting to network transactional demand to keep it inside the sweet spot as much as possible. The goal would be to keep the blocks at around 80% filled.
At this setting, the median confirm times will be unaffected, yet will keep the demand driven fees market high enough to be significant for miners and therefore the security of the network in years to come. But, it would be still 4x cheaper than today's congestion driven price.
In this light, monero's approach to dynamic blocksizing where the adjustment is algorithmic according to network load seems ideal.
It would constantly be adjusting to keep the best balance between miners revenue, security and reasonable fees for users.
** These considerations completely ignore technical aspects of the network which others have covered at great length such as block propagation times and Great Wall of China impacts.
Data units image via Shutterstock