Dear Bitcoin, This is How You Can Beat Visa
Through a cursory glance of your project and in-depth readings of posts on Reddit and Twitter, I have come to understand the crux of the oft-debated “block size limit” issue and this post will explain the solution to the problem. I do not think it is worth it for me to go on your forums and have complex technical discussions with all of you (it would be really hard to survey and discuss all the different angles and my solution is pretty intuitive) so I am hoping you will just listen. As a side note, this solution will also significantly increase the energy efficiency of the network.
The problem with your project is that the blockchain has limited transaction throughput and is expensive for users to use compared to Visa. When I buy coffee with my Visa card on Apple Pay, the transaction takes me 3–5 seconds from intent to pay to transaction completion and there is exactly zero fees I need to pay. With Bitcoin today, it could take me up to 20 minutes to be reasonably sure my transaction is complete and I might pay anywhere from 10 cents to 10 dollars in fees.
The solution can be explained in 5 steps:
- Step 1: Remove the block size limit
- Step 2: Reduce network latency between miners
- Step 3: Modify difficulty re-targeting algorithm to allow for 10-second blocks
- Step 4: Use thin clients
- Step 5: Remove the blockchain
Step 1: Remove the Block Size Limit
This step is obvious. More block space means more transaction throughput. Duh. More throughput means lower fees and faster confirmation times. Duh, again. If you look at the Litecoin project or the BitcoinCash project and how much people pay in time and money for their transactions on those networks, this point is clear. Based on the linked data, it looks like we’d consistently get fees below 25 cents USD, which is much closer to zero — the amount I pay with Visa.
Step 2: Reduce Network Latency Between Miners
Once you follow Step 1, the next thing that will slow the network down in terms of throughput is block propagation latency. If Bitcoin has grown substantially and demand can fill up 1 GB of block space, miners will still not build such big blocks because the blocks will be too difficult to propagate and miners mining smaller blocks will be advantaged.
To solve this Tragedy of the Commons problem, we should setup a high-bandwidth communication channel between a few select mining corporations that have demonstrated good-will towards Bitcoin’s health. This is what was done with the Internet’s backbone so we can simply copy that process.
The miners who do not have the resources to validate the blockchain at this point will have to drop out, but this is actually a good thing because throughput on the network is going up such that we can meet the demands of the users and still charge very little fees.
Step 3: Modify Difficulty Retargeting
Now that the Bitcoin network infrastructure supports higher transaction throughput, users will be paying low fees but will unfortunately still need to wait much longer to complete transactions than they would if they used Visa.
For this, you should reduce the time it takes to find new blocks. To be competitive, reduce it from 10 minutes to 10 seconds. Now, not only will transactions be cheap (~25 cents vs 0 cents), but they will be almost as fast as Visa (~10 seconds vs ~5 seconds). We are almost there!
Step 4: Use Thin Clients
The downside to steps 1 to 3 is now users will have to support this deluge of data streaming to their phone. Not to mention that the phone will be overheating all the time from validating all these transactions.
If you use SPV, all you need is to download the block headers and you can still submit transactions, query them, and query for your account balance.
Step 5: Remove the Blockchain
At this point, users may even be constrained by all the block headers being downloaded on their thin client. On top of this, 10-second blocks still are not quite as competitive as Visa’s transaction completion latency. And 25 cents is still not quite zero. For this, I suggest we do away with the block headers as well. We already trust the miners (we were careful to select the good ones in Step 2). So all we really need is an API to them so that we can:
1- Submit a transaction
2- Query the state of the transaction
3- Query the state of my account
Plus, because we have done away with the energy consumption required for finding SHA256 hashes, the fee of 25 cents will most likely significantly drop. Not to mention that your project won’t be consuming as much energy as Lebanon anymore!
Now we can really compete with them on confirmation time, fees, and network efficiency. Win-win-win.
I’m sorry but one major problem with your project is that your contributors are too technical. As soon as I talk about using SPV or increasing the block size limit, you always go off on rants about the complexities without ever thinking about what users want. The five steps I outlined here are intuitive and even people who are not experts in blockchain technology can understand them, and I think we need to have more of these kinds of Medium posts. I hope that one day we will have a World Currency that removes the need for fiat AND that is more performant than Visa.
Volunteering on such a world-changing project must be difficult, so thank you for all your hard work!