The technology behind Bitcoin enables the first truly scarce, trustless and permissionless money. But eliminating the middle men comes at a price, Bitcoin is horribly inefficient.
As I write this on May 20, 2020, Bitcoin is running at full capacity. The mempool contains 60k transactions waiting to be confirmed and the average number of transactions per block over the past 24 hours was 2,472. We know that Bitcoin optimizes for 10 minute blocks, which makes for 247.2 transactions per minute or 4.12 transactions per second.
4-5 transactions per second is no wheres near enough to process the global economy! Visa claims they can process 65k transactions per second which is 4 times the peak they saw during the 2017 holiday season.
There are three things preventing Bitcoin from reaching Visa level speeds and throughput:
- Transaction verification
- Confirmation time
- Block size
Transaction Verification
To verify a Bitcoin transaction, nodes have to trace every transaction that specific bitcoin has ever been involved with back to the moment it was first issued as a block reward. This means every node has to maintain a copy of every transaction that’s ever occurred on the Bitcoin network since the beginning of time! This not only takes up a lot of hard drive space, but processing transactions becomes more and more work as Bitcoin grows.
Confirmation Time
Bitcoin’s difficulty adjustment ensures the blockchain grows at roughly one new block every 10 minutes. A transaction is not “complete” until it’s been included in a block, and even then you should wait for 3-6 more blocks to be mined on top of it to ensure it hasn’t been double spent. The barista at Starbucks can’t wait 30-60 minutes for your payment to confirm before making your coffee.
Block Size
In 2010 Satoshi implemented a cap of 1mb per block to prevent people from spamming the network with zero/low fee transactions. Satoshi may have intended on increasing this limit, however he disappeared before this issue was ever re-visited.
Today, a decade later, blocks are full on a regular basis. Miners process transactions which earn them the highest fees, so as blocks become full users need to increase the fee they include with their transaction to ensure it gets included in a block. This has led to fees being in the $10-100 range per transaction during peak usage.
So why not just increase the block size!? It’s more complicated than that:
- A block size increase would require a hard fork which is risky.
- Larger blocks means it will take longer for blocks to be shared between nodes on Bitcoin’s global network. This leads to nodes becoming out of sync and mining power being wasted on blocks which have already been mined.
- Increased fees are actually good for the network because it incentives miners, especially once all the bitcoins have been issued (in 2140).
Even given these concerns, some members of the community still believe(d) scaling “on-chain” via a block size increase is the solution. This block size debate is the core reason Bitcoin Cash forked off in 2017 and raised it’s block size to 8mb. The remaining members of the community believe the only way to increase Bitcoin’s throughput is to scale “off-chain” via second layer solutions like the Lightning Network.
The Lightning Network
The basic premise of The Lightning Network is that not every Bitcoin transaction needs to be confirmed on the blockchain. Just like when you go to the bar you don’t swipe your credit card for every beer you drink, Lightning allows you to “open a tab” known as a payment channel with the party you wish to transact with.
Using Lightning requires two on-chain transactions, one to open the channel (start a tab), and one to close the channel (settle your tab), however while the channel remains open you can send Lightning Bitcoin (LBTC) back and forth as many times as you want without utilizing the blockchain at all!
But Lightning doesn’t stop there. If you have a Lightning channel open with me and I have a channel open with Starbucks, you can route your payment through me to buy from Starbucks. I take a tiny fee for helping route your payment and no on-chain transaction occurs. A Lightning payment can be routed through as many parties as necessary to get where it needs to go.
Lightning is a bit complicated and still in the early stages of development, however it’s faster, cheaper and scales exponentially. Once lots of Lightning channels are open, far fewer on-chain transactions will be conducted allowing Bitcoin to scale well beyond anything Visa could ever imagine.