Erik and I recently exchanged some emails on this subject. I thought the Bitcoin community may find our discussion useful, so I've made it public below.
Congratulations on becoming a father in addition to the fast growth.
Bitcoin Core’s refusal to scale is about the best thing that could happen for Shapeshift.
It is breaking my heart for Bitcoin though.
https://blockchain.info/charts/avg-bloc ... 0&address=
I already know of VC firms and major companies that are choosing not to get involved with Bitcoin currently, specifically because of this issue.
I really think you should reconsider your support of Core’s road blocks for scaling Bitcoin.
Thanks for the congratulations
What do you think of the Roundtable Consensus plan? Ignoring whether it will happen or not, what do you think of the structure?
We haven’t formally supported anything from Core at this point. I share your opinion of the need for bigger blocks soon.
The Roundtable consensus from last week is too little too late.
It isn’t a fast enough scaling roadmap to accommodate all the new users that are coming.
Please take a look at this chart
, ponder the rate of growth and how much time we have left before there isn’t room for new people to start using bitcoin.
We are talking about just a few weeks. We might even already be there today.
Then look at the unconfirmed transaction pool
, currently 13MB or more than 2 hours for the network to clear if all other Bitcoin transactions were to cease completely.
Bitcoin needs to scale, and needs to scale significantly right now.
I know of multiple large companies who specifically have decided NOT to integrate bitcoin at this time because their user base would overwhelm the the current Blockchain capacity.
This is a huge missed opportunity for all of us.
Please see my comments inline below.
So, you know I generally agree with you on this issue. I think blocks should be bigger, ASAP.
Let me play devil’s advocate here for a second though, because I’m interested in your opinion on a couple counter points:
1) SegWit will likely be available in Apr/May and probably quite widely used by summer. This enables maybe 50% more txs per block. It doesn’t “solve” scaling issues, but it does buy time, perhaps a year. In this case, SegWit would help alleviate the crisis for a year, until the blocks increase in size in mid 2017. Is there a fatal flaw with this opinion from your perspective?
Please take a look at this chart again
. The bitcoin block size has been increasing at about the rate of 2.5 times every year for the past few years.
I expect that rate of growth to stay the same, or even increase. If that is the case, the 50% gain provided by Segwit is likely to only be able to cary us through to June of this year.
This is no where near enough.
2) As we bump up against the block limit (which I agree is starting to happen already during bursts), users will need to increase mining fees to have assurance of timely confirmation. If many wallets use smart fee systems (like BitGo) which make this fairly non-burdensome for the users, then we would expect fees to rise modestly, and the “least valuable” transactions start to not be placed on the blockchain. For example, sending 0.00024 BTC might not be worthwhile anymore if fees rise. So some certainly use cases of Bitcoin would be hampered, but the majority of normal users would still get into blocks reasonably quickly. <— I have my own problems with this argument, but what are your thoughts? Do you think every single use case of BTC transaction needs to be accommodated by the blockchain itself right now?
Even if this were true, we still run into the exact same problem, it will just be a few extra months down the road. Let’s assume everyone agrees that transactions of less than $1 in value shouldn’t be on the blockchain. Let’s also assume that each 1MB block can contain a maximum of 2,000 transactions
What happens when more than 2,000 people every ten minutes want to send more than $1. Many many financial institutions already do this kind of volume.
I know first hand of two large companies that were interested in integrating Bitcoin last year, but specifically chose not to because their user base would have created more transactions than the 1MB blocks could handle.
This is likely why Paypal hasn’t already integrated Bitcoin. Even with 2MB blocks, there isn't enough room for Paypal to start using Bitcoin. (Paypal does about 4M transactions per day. That would require about 13MB blocks with the current architecture if all of their transactions were on chain)
This is a HUGE ROADBLOCK to further adoption. We need to have enough excess capacity at all times so that companies like Paypal, Western Union, or Wells Fargo could instantly give all of their users access to Bitcoin, and not overwhelm the network. That isn’t the case today, and is directly hindering adoption of the large firms that we want to have involved.
Again, I fully agree blocks should be increased very soon. I don’t want to wait until 2017. But, if that is what the community comes to consensus around, is it really so fatal as you describe?
Yes. All of these giant potential blocks of users won’t be able to use bitcoin because there won’t be enough capacity for them.
This will push them to use alt coins, or their own private blockchains, or not get involved at all.
Bitcoin will become an interesting side note because of it.
Sorry I can’t join everyone at the roundtable this weekend, I really wish I could. I’m hopefully it will help key industry participants start coming to terms on a consensus for Bitcoin. The division in the community is still, in my opinion, a bigger threat than block scarcity.
Your own speaking out on the need for having substantial excess capacity can help with this problem a lot.
I look forward to seeing you the next time.
Interested in your thoughts on the above.
Feel free to post the discussion publicly.
So, your points are valid certainly. Generally your concern is that SegWit, and even a 2MB increase, are too little too late.
They are certainly much better than where we are at today, but it isn’t fast enough to accommodate the growth that Bitcoin is experiencing.
What then do you suggest as an appropriate block size?
Enough to accommodate as many people that want to use Bitcoin.
The throughput capacity of Bitcoin counts more than the block size, but until 2nd layer protocols like lightning network are ready, increasing the block size is a super easy way to add capacity.
Do you think it should grow whenever the limit is approached?
I think it should grow in advance of the limit ever being approached. This way, new potential new users of Bitcoin will know that there is going to be room for them to get involved.
Currently, even existing Bitcoin companies are exploring other alt coins to handle their capacity. This is completely unnecessary and can be solved very easily and quickly by a block size increase while the 2nd layer protocols for scaling continue to be made ready.
Should it grow in this way forever, even if blocks become huge, like 100 MB, within a few years?
From a storage capacity point of view, even today 100MB blocks are almost feasible.
My first digital camera, in around 2001 used a 1.44MB floppy disk to store the photos, and could fit about 25 photos per disk. That means each photo was about 50KB.
Today, my 128GB iPhone, costs less, and takes photos that are nearly 10MB, or 200 times what my first digital camera took.
In just a few years, 100MB blocks and the 5TB required to store them each year won’t seem like much at all.
Even today, a 8TB hard drive is less than $200, and could hold 100% full 10MB blocks for the next 16 years.
In 16 years from now, that 8TB hard drive will be garbage. We will look back upon it the same way we look back on 800MB hard drives that were common about 16 years ago.
In application development, there is a general phenomenon where a business can scale either with a) more servers or b) better, more efficient code. Often, there is a tendency to just add servers to scale (this is equivalent to increasing the block size). It is easy, sure, but it can cause other problems down the road. Alternatively, sometimes it’s better to force oneself not to buy more servers, and instead to make the code more efficient. Once you know you’ve made the code as efficient and capable as possible, only then do you resort to more servers (knowing they will be better utilized, and not wasteful).
Working on making the code more efficient can take place even while we increase the block size in advance of the efficiency improvements being ready. Even proponents of lightning network admit that blocks will need to be at least 32MB in the future to accommodate more users.
I think many of the “small blocks” people feel like it is irresponsible to just increase the block size to bring in all the transactions of big companies at this stage. They want to make the code better - to enable more txs without larger blocks, and when those avenues have been exhausted, then a block size increase becomes more appropriate.
We can make the blocks bigger today to increase the capacity. Then, once the code is ready, we can make the usage of those blocks more efficient. If we were to have 8MB blocks today, filled with conventional transactions, we could repurpose that same 8MB worth of block space to be used for lighting network and other layer two solutions in the future. It’s not like once we increase the block size today, the space in those blocks can never be used more efficiently in the future.
Do you see any wisdom in that way of thinking? Also, since not even 2MB or 4MB blocks would satisfy one or two “large companies like paypal,” don’t you feel that any increase is too little too late?
If 100% of Paypal’s transactions were moved onto the blockchain, it would take 13MB worth of block space. Even with today’s technology and bitcoin code, this is easily handled.
We are shooting ourselves in the foot by not creating room for new users.
Personally, I am not as concerned about some of these problems. Bitcoin will evolve in strange and unpredictable ways, and I don’t know that any of us can really see it’s future clearly. The honey badger principle applies here. I see Bitcoin as water, flowing over the financial system, inundating it, and completely changing it. How that water flows isn’t as important.
Regardless… weighing all the arguments, I feel a conservative block increase has manageable downside risk, and significant short and medium term benefit, both to give the system more time to grow organically before more contentious mechanics of “fee markets” develop (that seems an appropriate discussion for a mature Bitcoin, not a system still rising up through childhood). Maintaining 1MB blocks indefinitely, which was a very arbitrary choice by Satoshi, anyway, unecessarily stifles growth at this particular moment in Bitcoin’s history.
Would love to hear your thoughts on the above.