Bitcoin’s Constitutional Crisis & Why I Support the UASF
It took three years and the emergence of serious (and perhaps permanent) crypto rivals, but there finally seems to be some light at the end of the tunnel in this round of the bitcoin scaling debate. Thank god.
The impending activation of BIP 148, AKA bitcoin’s “user activated soft fork”, due to take effect on August 1, would ensure that SegWit, an optimization feature that increases block capacity, gets activated without strings attached. At the same time, the “SegWit2x” crew is plugging away on a plan to activate SegWit in July in return for an agreement to also hard fork and double the block size limit to 2mb this year. That compromise has now enlisted miners representing 80% of the network’s hash rate, and seems likely to take effect. Even in the nuclear scenario of a permanent split between the UASF and SegWit2x camps, though, it looks like a patch now exists that would prevent a blockchain split, something everyone would like to avoid.
That’s great news. We’re getting SegWit activated without a network split. It doesn’t seem like the community should be fractured anymore.
Nearly all stakeholders are aligned on implementing SegWit as an optimization to the current codebase. It adds network capacity, fixes some important bugs, and creates a path to add level two protocols like Lightning. It’s been thoroughly tested and has already been implemented successfully on Litecoin.
At the same time, nearly everyone seems to agree that a safe block size increase is in bitcoin’s best long-term interest. Even better, there’s no need to fully plan for a hard fork by August 1! There are still months to figure out the specific mechanics of a hard fork under SegWit2x and coordinate any necessary upgrades with the broader community.
So what the hell is making this so difficult?
To understand that, you have to understand that bitcoin’s scaling crisis is constitutional, not technical. Many, including myself, believe SegWit2x sets a poor and damaging political precedent that cedes long-term authority of the decentralized community to a small group of stakeholders, the miners, who should otherwise have an extremely limited say when it comes to protocol upgrades.
I understand the motivations of the SegWit2x camp, but I’m rooting (perhaps in vain) for the UASF as an important precedent for the bitcoin ecosystem.
Before breaking down my mental model of the forces at work here, and why I feel this nuance is a line-in-the-sand sort of thing, a couple of caveats:
1) I’ve historically been among the vocal critics of Core for moving too slowly, fanning the flames of the scaling debate and escalating rhetoric on social media, and frequently being blind or dismissive of valid community critiques. Core as a group is as guilty of poor process and communications as their opponents. That said, don’t doubt whether Core devs are in this thing for the right reasons. I’m not so sure about the motivations of the group that’s held up SegWit for the past several months.
2) I agree that SegWit2x is a good short-term compromise. The problem is that it may backfire spectacularly in the long-term. The good intentions of those working on the compromise are clear, but the road to long-term hell may be paved in July.
3) I have an admittedly limited understanding of the technical issues at play. But that’s not really the point, and besides, I don’t have any new insights to share that the developers on all sides of this debate haven’t already shared. After four years in the industry, however, I do think I have a grasp on some of the community’s politics.
4) I’m on vacation right now. I’m not trying to stir up shit or fan flames. I wrote this as part of a broader self-assessment that started with the prompt: “what do you want to do next?” That answer changes a bit depending on the outcome of this saga. I’m extremely excited about the future of crypto-currencies no matter what, but SegWit2x makes me much less excited about the future of bitcoin in particular. Perhaps others feel the same.
With those caveats out of the way, here’s how I’ve wrapped my head around the lingering political impasse in bitcoin.
When it comes to checks and balances, Bitcoin doesn’t seem much different from the US’s constitutional republic.
I know, I know. I know that the US is imperfect. I know this analogy introduces a western bias right off the bat. But our constitutional republic has been mostly functional for nearly 250 years, and led to the rise of the US as the world’s only superpower (even if you argue that status is diminishing, or that the state itself is corrupt).
No matter. The analogy fits rather well here. Consider…
Satoshi developed a framework (constitution) that set the rules for the initial system design and the mechanisms by which that system should scale. New popular open-source protocol upgrades would get passed once majorities of two primary groups invested in bitcoin’s development, the Core Developers (Senate) and the Application Developers (House) agreed to them. But those upgrades would still need to be recognized and enforced by the nodes in the network itself (Executive) who represented the economic majority. To keep everyone honest, miners were introduced to keep the system humming and select the correct interpretation of the consensus rules whenever there were disagreements (Judiciary).
It was never anticipated that those checks and balances would be perfect by themselves. So there was even a process for soft forking the protocol (a constitutional amendment), or hard forking it (a secession from the old state). Eric Lombrozo wrote a fantastic overview of the difference between the two processes this week. Bitcoin has had several “constitutional amendments” in the past, including the original 1mb per block limit and the allowance for multi-sig transactions. The amendment process works.
Satoshi’s white paper, for better or for worse, is often quoted as scripture, and like the Constitution, much has been written on all sides about the “original intent” of bitcoin. We’ll get to that, but first, let’s take a closer look at the key constituents, and their roles. Of course, these aren’t perfect, but for illustration, it’s not too bad.
Satoshi’s White Paper = Bitcoin’s Constitution
This is the bitcoin and broader cryptocurrency community’s founding document. There’s no debate about that. Satoshi laid out in very plain English what the purpose of bitcoin was (“a peer-to-peer electronic cash system”) and what the responsibilities were for each stakeholder group: the nodes in the network (section 5), the miners (section 6), the users and layer two service providers (section 8, in a way), etc.
Critically, the second line of the bitcoin white paper’s abstract says that “the main benefits [of bitcoin] are lost if a trusted third party is still required to prevent double-spending.”
Much has been made of the centralization of the Core developers, an assertion that seems questionable at best. Regardless, the key part of the reference to “trusted third party” has to do with who is tasked with preventing double-spending. That’s not Core.
The Bitcoin Protocol and Nodes = Bitcoin’s Executive Branch
Instead, the responsibility for preventing double-spends and ultimately signing BIPs into bitcoin law falls to the network of nodes running the bitcoin software. The blockchain is an executive branch on autopilot most of the time. It receives the code that has been approved by the majority of the community and executes it. If the majority of network nodes broke bad, colluded to act dishonestly, and began to issue “executive orders” that, say, approved fraudulent transactions or issued higher rewards to themselves (e.g. a Sybil attack), they would quickly be stopped thanks to bitcoin’s Proof-of-Work algorithm and its judiciary (assuming the judiciary didn’t fork off alongside the dishonest nodes).
Miners = Bitcoin’s Judiciary
Those responsible for verifying that the blockchain does in fact enforce the laws preferred by the economic majority of the community would overrule any dishonest nodes — majority or otherwise — almost automatically, making it silly for node operators to even attempt dishonesty. Rule-breakers could continue on their path, of course, but they would no longer be part of the main system. With a healthy mining apparatus in place, the bitcoin network can’t act dishonestly because the foregone economic incentives of the crypto judiciary would be too large. They’d be penalized for failing to do their jobs. Their blocks and rewards would be rejected by the majority of honest nodes.
Not only do the miners kick back inappropriate executive orders automatically, but they do preserve the right to reject new bitcoin laws (Consensus BIPs) as unconstitutional. Want to decrease the seignorage reward or eliminate bitcoin’s 21mm BTC cap? That would be ok in theory, but most likely would be deemed “unconstitutional” even if it had broad community support. Want to implement a new feature that changes the format of transaction signatures? That currently does have broad community support, but is deemed unconstitutional by the majority of the mining community by hashing power.
Inconvenient, but still, the miners are well within their rights to make that call.
Most importantly, the miners, unchecked, have the ability to “legislate from the bench” and actively participate in the creation of new rules. In the case of SegWit, they basically said “no, unless you add our pork to the bill, too.” The “compromise” they want forces the legislature to choose to keep the broken status quo, or to excommunicate one large contingent of the population.
It is up to the legislature to decide whether this type of behavior is out of bounds. If not, secession it is — fare thee well to those who disagree with the mining majority. On the other hand, if the broad community decides this type of miner behavior is inappropriate, they have the power to soft fork and add the roadblocked SegWit legislation directly to bitcoin’s constitution via the soft fork amendment process.
Core Developers = Bitcoin’s Senate; Startup Community = Bitcoin’s House
This is where things have obviously gotten tricky. It seems nearly everyone in the bitcoin legislature wants SegWit, and believes it’s important enough to push through as a protocol upgrade.
The Business Community:
The decision whether to compromise on SegWit2x or draw a line in the sand with BIP148 comes down to political will and judgment on whether this is a precedent worth fighting for.
There’s no right answer.
Should miners’ power be checked now to preserve the system’s balance? Or is short-term compromise worth the risk given scaling fatigue and a broader interest in making some progress amidst stark new protocol competition. (Ahem, ETH).
I’ve found it helpful compare the last two constituents of the community — the Startup Community and Core developers — to the House and Senate, respectively.
When framing the Constitution, James Madison wrote about the need for a smaller, more long-term oriented body in legislature to “temper the passions” of the democratic masses. Senators were required to be older and to be elected through more of a political meritocracy (via state legislatures) than their counterparts in the House, who were elected directly by constituents.
[Side note: The 17th amendment was the worst amendment we’ve passed as it added to the federal government’s power and minimized the Senate’s intended temperance.]
The greater qualifications were important, as the Senate was assigned the duty to advise on and approve important things like treaties, presidential appointments, etc. The House could turn over entirely every two years, but Senators were the legislature’s steady, long-term voices. The longer terms gave them political cover to remain rigid even in the face of short-term political pressure.
When it comes to the the long-term interests of a peer-to-peer system of cash that prevents censorship resistance, I trust the Core team and the meritocratic approach they have taken to new development. Many of the Core devs were part of projects that inspired bitcoin, and they tend to have much more experience with the protocol, and are more philosophically aligned with what I view as bitcoin’s “original intent.”
The Startup Community has impatient investors with funds whose limited partners expect liquidity from their investments in a relatively short amount of time. Time is not the friend of VC-backed companies. And users want to see more features and lower fees now from the platforms they use. The application builders are willing to migrate to other protocols for more immediate utility. In short, they are bitcoin’s House Reps who are much more influenced by the whims of the democracy. It has nothing to do with bad intentions or cowardice, but they simply do not have the luxury of the longer terms to build their businesses.
In that light, short-term compromise is good. Everyone wins.
Splitting Hairs: UASF is an Amendment, UAHF is a secession, SegWit2x is…?
That brings us to the punch line.
BIP 148 is a call to amend bitcoin’s constitution once again, activating a new feature that the bitcoin legislature and executive branch overwhelmingly support (again, on a standalone basis) over the opposition of the mining judiciary. Bitmain’s proposed “UAHF” response, on the other hand, would amount be a secession that forces a chain split that everyone is universally trying to avoid.
What then, is SegWit2x? And why isn’t it the best option?
SegWit2x will finally get SegWit implemented in the bitcoin protocol, but it still assumes that months from now, the community will hard fork away from Core’s current consensus rules without issues. It’s extremely difficult to see that happening, so it seems more like a short-term, kick-the-can type of resolution. Worse, it demonstrates that the mining community’s “judicial activists” have a permanent seat at the development table any time there is a new feature to implement. They will be able to legislate from the bench more easily in the future.
That precedent matters. The balance of power in the ecosystem matters.
Today, the miners’ seat at the table is being used to push for bigger blocks, which may increase the cost of running a full node, and further increase the clout of the large miners, both of which would lead to additional centralization of power, making bitcoin less resistant to censorship.
That’s not good, but it’s not what’s gotten me to support the UASF. Instead, it’s because I believe the next stalemate will likely take place over something more permanently critical to bitcoin: fungibility.
Looking Long-Term: Bitcoin’s Coming Fungibility Threats
The war time imagery that’s been used to describe this impasse (on both sides) has exacerbated the scaling problem, so I’ll try to avoid them.
But to put it mildly, it seems true that one miner in particular has blocked SegWit for the sole purpose of showcasing their power within the ecosystem and strengthening their competitive positioning.
Make no mistake, that’s 100% fair for them to do in a free market!!!
But it’s worrisome for the broader community to acquiesce.
If a small group of other miners can force a compromise like SegWit2x — one that Core, the broader startup community, and the majority of economic nodes didn’t necessarily need or want to make — they will have proven they can block future politically unpopular upgrades outright. And that could be a real bitcoin killer.
Core is currently working on some really cool shit. Things that will significantly tighten the privacy (and scalability!) of bitcoin transactions: Schnorr Signatures, MimbleWimble, CoinJoin, etc. These and other planned optimizations will grow bitcoin without hard forking. It’s not fast, but it seems safe, and this is still early innings of a long, long ballgame.
The miners, in turn, are essentially saying: “Fuck you. Absolute block size increases aren’t high enough on your list. We want bigger blocks now to help with network congestion.” They say that, yet many will mine empty blocks. Ironically, increasing block size does not guarantee minimum block size.
The impatience for bigger blocks is not unreasonable, but what makes SegWit2x an unacceptable outcome is that no other major business and a small fraction of the bitcoin user base share the absolutism that SegWit should be blocked without a corresponding block size increase.
If the broader community lacks an amendment process that can push through popular updates regardless of centralized miner objections, two things will happen.
1) We’ll probably have unnecessary, potentially risky, and power-centralizing block size hard forks every time a new important feature is ready for implementation. 2mb will become 4mb or 8mb and so on, which further strengthens the positioning of the miners.
2) Bitcoin privacy enhancements may face government resistance via the miners. This is a serious one, and I don’t believe that it’s “FUD” at all.
What could appear to be future obstinance from miners on certain projects, could very well prove to be restrictions placed upon miners from state actors who forbid companies from signaling for certain anonymity upgrades. This surveillance will be done in the name of national security, and it’s not just China that you would have to worry about. Miners in the US would be at the same or greater risk of being threatened, if not shut down for allowing fully anonymous transactions. This censorship could happen anywhere.
And isn’t censorship what we came here to avoid?
That vulnerability undermines what I believe makes bitcoin special, and I’m sure many, many others agree. It would lead me to pay more attention to projects like ZCash and Monero that prioritize anonymity and fungibility.
This may be a fundamentally different vision for the future of bitcoin from what those who emphasize transaction throughput prefer to see. There’s nothing wrong with that tension, but it’s why I understand and agree with the effort to first attempt a UASF.
Draw a line in the sand over a core governance principal, and it will be easier to prevent adverse events like censorship in the future.
Let’s UASF and see where things shake out.
Conclusions & Rebuttals (To Be Updated)
There are dozens of rebuttals to make against this line of thinking:
- Miners are important stakeholders who make bitcoin the secure system that it is. They are more than just passive validators, and their say is therefore more valuable than your stupid comparison. (I agree miners are important, but not important enough to jeopardize bitcoin’s future fungibility. Better to brick the current miners and set the precedent where miner power begins and ends.)
- This debate over the nuance of process is meaningless. We need greater adoption and solutions to current problems. We can worry about longer-term problems in the long-term. (This is what hung me up for so long, and I see a lot of merit in this position. But when you’re talking about the design of a political system that we want to last for decades, it’s important to address threats early. I think this shift in the community power dynamic is critically important to address immediately. We do not know if the current PoW system will scale. We do know that bitcoin is not interesting as a centralized system.)
- Isn’t this over? SegWit2x / UASF has already won. Get over it. (Hopefully you see the irony in both sides proclaiming victory based on early miner intent signaling. As outlined above, this isn’t over until the hard fork proposal is abandoned or effectuated this fall.)
- There is a ton of overlap between the network nodes and the start-up community. Do you even understand the concept of “economic majority.” (Yes, it’s an imperfect analogy, but if you split the responsibilities of nodes and businesses it still works. Businesses, developers, miners, users, etc, may all run full nodes — and do. But the primary function of Core is to write code that preserves the system for the long-term. The primary function of the Startup Community is to build apps that make bitcoin more usable today.)
- Andrew Lee: “The better analogy in my mind is like three party multi-sig or a corporate structure. There’s the company (core devs), equity holders (miners), and debt holders (exchanges & wallets). Traditionally, company and equity holders are all you need to upgrade (2-of-3). If there’s a disagreement, debt holders can be tie-breaker (which is what’s happening with SegWit2x).” (This is an interesting point, and it is true that historically, the only miners and Core have mattered in this process. At least on the surface. But I think it’s misleading to believe that, because this is the first time where the Startups have had to pick a side. They’ve always voted with Core in the passed, but that doesn’t mean the power of the economic majority hasn’t always existed.)
- Andrew also points out the issue of development centralization, and I like the fact that his team is working on BCoin, if for no other reason than to add a second party to the bitcoin Senate. Still, Core’s centralization is not inherently bad in my mental model, even if it’s not ideal long-term.
Thank you to Andrew Lee, Eric Lombrozo, Jameson Lopp, Jeremy Rubin, and Emin Gun Sirer, and for reviewing a draft of this post. All opinions and mistakes are mine, anything particularly insightful was probably aided by their feedback.
Email me at firstname.lastname@example.org.