Hard Guarantees #4: Bitcoin for the Poor and Block Size Caps

When I first got into Bitcoin and the broader blockchain space in 2017, I remember hearing that Bitcoin was meant to help the poor. That it was designed to provide banking services to the unbanked.

After reading Hijacking Bitcoin by Roger Ver, I’ve been thinking back on Bitcoin’s history. I've been thinking more about how technology can serve people at the edges of the system—especially in the context of financial access and infrastructure design.

Even in 2017, the transaction fees on the base layer were already a couple dollars. That was enough to turn me away from using it directly. I ended up using Litecoin instead because it was cheaper (just tens of cents per transaction).

Since 2009, the Bitcoin network has kept its 1 MB block size cap and roughly 10 minute block times. There have been a lot of hard forks and proposals around this since 2017, but the dominant version of Bitcoin has stuck with the 1 MB limit.

As a software engineer using today’s tools and working with today’s bandwidth, that 1 MB limit feels kind of like the computer memory that got us to the moon. It was impressive for the time, but clearly a constraint from another era.

One of the main arguments for keeping blocks small is that it helps more people run their own full nodes, especially people in poorer countries with lower bandwidth or older equipment. But that raises a real question: who’s actually running Bitcoin nodes today?

There’s also a deeper problem. The people in those countries who need permissionless banking the most are often the same people who are priced out of using the Bitcoin base layer. When the average transaction fee is around $5, most of the world’s poor just can’t use it.

Some might point to the Lightning Network as a workaround, and to some extent that’s fair. But Lightning is a second layer. It doesn’t rely on users verifying base layer transactions in the same way. So if we’re depending on Lightning to serve the poor, the case for keeping the base layer capped at 1 MB loses a lot of its weight.

I’ll keep revisiting past ideas and trying to think through what still holds up and what doesn’t. Happy to talk more if you’ve got thoughts.