Joint post with Andrew Miller.
Virtually unknown outside the Bitcoin community, a debate is raging about whether or not to increase the maximum size of Bitcoin blocks. Blocks are created in Bitcoin roughly once every ten minutes and are currently limited to a size of 1 megabyte, putting a limit on the rate at which the network can handle transactions. At first sight this might seem like a technical decision for the developers to make and indeed it’s largely being treated that way. In reality, it has far-reaching consequences for the Bitcoin ecosystem as it is the first truly contentious decision the Bitcoin community has faced. In fact, the manner in which the community reaches — or fails to reach — consensus on this issue may set a crucial precedent for Bitcoin’s long-term ability to survive, adapt, grow, and govern itself. [1]
If the Bitcoin protocol is decentralized and no one controls it, then how can it be changed at all?
You may know that Bitcoin is a decentralized system and that no single company, government, or entity controls it. In that sense it’s a lot like the Internet. But unlike the Internet, which is an ad-hoc collection of networks and protocols, and thus can be gradually upgraded piecemeal, all Bitcoin nodes are basically part of one giant distributed computation which means that upgrades need to be much more tightly — dare we say centrally — coordinated. The default Bitcoin software, Bitcoin Core, is that point of coordination. The five Core developers have a huge amount of power in determining how the network operates and in making upgrades to it.
The developers don’t have all the power though — if changes made to Bitcoin Core are contentious, people running the software are free to go their own way, creating a “fork”. The distribution of power between the different entities in the Bitcoin ecosystem is fascinating and intricate, and we encourage you to take a look at Chapter 7, “Community, Politics, and Regulation” of our Bitcoin textbook-in-progress or the corresponding sections of the video lecture. The bottom line, though, is that while changing the Bitcoin protocol can and does happen, it requires consensus of a social kind. This is related to but different from the technical consensus protocol that Bitcoin miners execute.
There are numerous stakeholders in the block size debate with widely differing incentives
Most of the time, protocol changes are purely technical decisions. They might be deployed to increase the network’s efficiency or prevent potential attacks, so no one has a specific reason to oppose them beyond the general risk of making changes which may introduce new bugs or cause incompatible clients to diverge. But the block size debate is different. A decision to change the current policy of a fixed 1MB block size would affect virtually every group of Bitcoin stakeholders and, moreover, it would affect them differently.
At a high level, Bitcoin will likely evolve in different directions depending on whether the block size limit remains fixed or is increased. [2] With a fixed block size, transactions will become increasingly expensive because space for transactions on the block chain will become scarce. That means the Bitcoin network may be limited, directly handling only a few types of transactions such as settlement transactions between financial intermediaries. Transactions representing everyday purchases (“buying coffee with Bitcoin”) will get pushed off the main network into “side chains” or off-chain payment channels.
Various companies have made bets on one or the other future. Some have developed alternative blockchains or payment channels that would thrive in a fixed-block-size world whereas others such as Bitcoin payment processors stand to benefit from a growing block size that accommodates everyday transactions.
Another high-level impact is on mining: larger blocks will favor bigger miners. Bigger miners can more easily absorb fixed costs of storing larger blocks and verifying more transactions. More importantly, they can invest more in the necessary network infrastructure to quickly retrieve large blocks and can “peer” with other large miners directly to avoid costly delays in hearing about new blocks. Smaller miners will face higher processing costs as well as increased propagation delays on the public Bitcoin peer-to-peer network. Ultimately, many may drop out entirely. The resulting centralization of mining may leave the system more open to a 51% attack, making security worse for everyone. Similarly, it’s been argued that the number of independent entities running “full nodes” will decrease because of the increased storage and bandwidth, again weakening the decentralization and security of the system.
Finally, some of the development community’s implicit criteria are informed by the development process itself. For example, Gavin Andresen explains that proposal to increase the limit to 20MB is the “the simplest possible set of changes that will work,” and therefore the easiest to pass testing and code review. On the other hand, core developer Pieter Wuille has expressed concern that this increase is a stopgap solution, ultimately creating more “technical debt” to pay off later.
Resolving the block size debate — and similar contentious issues in the future — requires effective governance
A popular perception in the Bitcoin community is that Bitcoin doesn’t need governance, or at least structured governance. While Bitcoin may not need traditional governments, the very consensus process by which Bitcoin operates is an example of governance. So far, that governance has operated loosely without much formal structure — and this has worked well.
The key point of this post is that Bitcoin is now at a stage where the current process is no longer adequate. The block size debate is the first time in Bitcoin’s history that a change is being contemplated that will steer the ship in one of two (or more) very different directions. Virtually every participant in the Bitcoin ecosystem is touched by it, and their incentives are not all aligned. Keeping the block size constant is not the simple “status quo” option it may appear to be. Due to continuously increasing transaction volume, Bitcoin will surely change significantly even if nothing is done. The debate is an old one within the community, but it has now started to become urgent. [3] And while this might be the first such contentious issue, it won’t be the last: a decision will need to be made on sidechains soon, attacks might be discovered that can’t be fixed to everyone’s satisfaction, and over the long run there’s always the question of whether mining will survive the repeated halving of block rewards or whether some changes are necessary.
What do we want out of a governance process for deciding debates such as this? First, every stakeholder’s voice should be heard. Not only should it be technically possible for them to air their views, but the community should actively and systematically seek their input. Second, it should be clear how different stakeholders’ views were weighed against each other and how trade-offs were made. Third, the stakeholders and other observers should be convinced that there were no back-channels to the Core developers — who are, after all, the ones with the technical ability to push changes. Fourth, there should be a transparent transcript of all the inputs and the decision-making process, so that if the decision that was made turns out to be sub-optimal, there’s a way to revisit it using the logs and learn lessons for the future.
Bitcoin’s current governance model is seriously inadequate
So far, the bitcoin-developers mailing list has been the primary place for discussion of technical changes to Bitcoin, augmented by the Bitcoin Improvement Proposal (BIP) process, GitHub’s issue tracker, IRC channels, and a “long tail” of other avenues: the Bitcointalk forum, blog posts, Twitter, Reddit, and, of course, conferences and other physical meetings. While this model worked great as long as proposed changes were purely technical, it breaks down for contentious issues. In fact, it satisfies virtually none of the criteria we laid out above.
First of all, many stakeholders such as miners aren’t participating in the debate, either because they’re not aware of the effect of the decision on their interests or because they don’t realize they have a voice. The Core developers seem to do their best to take miners’ views into account, but often this amounts to informed guessing. None of the groups other than developers post regularly on the developer mailing list, which is entirely natural — the interface isn’t familiar to non-developers, resulting in a lot of friction, not to mention a lot of noise considering that the vast majority of discussions are about technical issues of no interest to non-developers. Miners sometimes post on the Bitcointalk forum, but for the most part they don’t voice their views publicly. As for Bitcoin companies, venture capitalists, and other relatively privileged groups, their best way to influence the decision is to communicate directly, and perhaps privately, with the developers.
Furthermore, the plethora of public channels ironically serves to decrease transparency. It’s not clear which of these are noticed — and valued — by the developers. And there’s the danger that whoever shouts the loudest will drown out other more reasonable voices.
As a result, what’s happened so far is this: the block size debate has been up in the air for years (for example, see this thread from October 2013). Developers seem to have waited for technical consensus to occur naturally — as it usually does — perhaps not fully realizing the extent to which this debate is different from the purely technical ones of the past. Everyone who is speaking now has already weighed in, while a variety of others who should be heard from have still today remained silent. It’s not clear to anyone how the decision will ever be made and a bit of panic is starting to set in. [4]
Bitcoin urgently needs formal governance
Structurelessness is a myth. [5] What we’ve been seeing is Bitcoin’s latent, informal governance structure manifest itself. While it’s been effective for most decisions, in this case it’s led to confusion and inaction. The only way out of this mess is more explicit, well thought out, structured governance.
Of course, that’s going to be a tough pill to swallow, both because of the politics of many in the Bitcoin community and because of what happened with the Bitcoin Foundation. The allegations of corruption and lack of transparency the Foundation has faced are precisely the kinds of things that can go wrong with formal governance. A crucial difference, though, is that the Bitcoin Foundation focused on loosely defined goals like advocacy rather than protocol changes to Bitcoin. A governance process for Bitcoin Core — and nothing else — could be far more light-weight and transparent. Hopefully, if it worked well, it would only need to be invoked occasionally.
Rejecting governance altogether is not an option. To meet the challenges now facing it — to grow up — Bitcoin will have to develop effective governance. The current debate, then, is a rite of passage.
Three suggestions for better governance
In keeping with the light-weight yet formal approach to governance we’ve suggested, here are three suggestions for more effective governance for Bitcoin Core. We intend these to be a starting point for discussion. Note that each of these can be adopted individually.
1. Form a technical advisory board. Many open-source projects utilize an advisory board as one governance mechanism. For Bitcoin Core, the goal would be to bring the different types of stakeholders together to deliberate major or controversial decisions. For each such change, the board will produce a document that describes the inputs, the output(s), and the criteria that were used to make the decision — especially who the stakeholders are, their opinions and interests, and how their interests were weighed. By being more methodical, the advisory board’s deliberations would hopefully also be more scientific than the current process. [6]
The output of the advisory board wouldn’t be binding in any way on the Core developers, but if Bitcoin Core departs in a significant way from the advisory board’s recommendations, then it’s a sign that something is seriously wrong.
2. Create a polling mechanism and a public comment process. Let’s make better use of Bitcoin’s unprecedented capability to have built-in voting and opinion polling mechanisms. The challenge of Bitcoin governance is actually a great opportunity, since Bitcoin’s technical innovations include new tools for effective governance! For example, miners can express their preferences and vote on decisions by putting data into block headers (in other words, votes are weighted by proof-of-work). This has already used by Core developers in the rare “soft-fork” upgrade procedure, but proof-of-work voting could also be used more frequently even when it isn’t so urgent. Investors — people who hold bitcoins — can similarly vote via proof-of-stake. Regular users running Bitcoin nodes could vote if a polling mechanism is built into Bitcoin Core, although this would require some way to prevent sybil attacks. All these stakeholders are important, so no one voting mechanism is superior to the others. None of these votes would be binding and they’re better thought of as opinion polls. The idea is to give the Core developers actual data on how each contingent feels about a decision, and to collect such data in ways that can’t be easily gamed.
We also recommend a public comment process analogous to what most federal agencies use to solicit inputs for decision-making. This would give a voice to merchants, payment services, exchanges, and other such entities whose opinions can’t be as easily captured through built-in polling mechanisms. Public comments would be written documents as opposed to votes. Unlike polling, these would not be anonymous and, indeed, the identity of the respondents would be important for evaluating the comments.
3. Reach consensus on evaluation criteria and tradeoffs in advance of the actual discussion. In a way, this is the most important suggestion — it directly addresses the reason why we think the block size debate is currently going nowhere. Instead of simply re-hashing the not-directly-comparable pluses and minuses of each option, the community must first reach consensus on how competing interests will be balanced against each other. The first two suggestions can be seen as ways to make this easier, but even in their absence, “meta-discussion” is essential to break out of the gridlock.
In summary, the current block size debate has made it clear that the decision-making process for the Bitcoin protocol is lacking. But the need for structured governance was anticipated long ago in a paper by Kroll, Davey and Felten at Princeton. [7] The problems we’ve pointed out aren’t new and some Bitcoin developers have already at times hinted at the need for improvement (for example, here’s Matt Corallo’s post about the need for discussing decision criteria, incentives, etc). But sometimes it’s more apparent from the outside when a process needs to change and adapt. We hope the suggestions we’ve laid out will be a starting point for some much-needed changes.
[1] Gavin Andresen has been the main public proponent of increasing the block size. His blog post earlier this year addressing the technical feasibility of a block size increase (and acknowledging that “economic arguments” remained) kicked off the latest round of debate, which has reached a crescendo over the last week.
[2] We’re simplifying a bit and considering only the two main options: keeping the block size fixed vs. growing it indefinitely as necessary over time to accommodate demand. There are various other possibilities such as allowing the market to decide the size of each block. For some examples, see here.
[3] The chart is a projection of when the current limit will become insufficient, but some have suggested that things could come to a head far sooner, say due to a flooding attack.
[4] For example, Mike Hearn is quite pessimistic about the ability of the developer community to reach consensus.
[5] The link goes to a famous essay reflecting on the feminist movement in the 1960s. The movement resisted organizational structure, viewing structure as oppressive. The author argues that structureless groups don’t exist, that the only choice is between formal and informal structure, and that formal structure is necessary for effective action, especially in large groups. The similarities to Bitcoin’s current quandary are remarkable.
[6] Emin Gün Sirer has also suggested a Technical Advisory Board. Some of his other Tweets on the topic: “The #Bitcoin blocksize debate, at the moment, is being waged in a way that has nothing to do with science. A TAB can help refocus.” and “The most critical thing to do on the #Bitcoin dev front is to help elevate the discussion, from half-baked forum posts to proper science.”
[7] The paper identified the dwindling block reward as the key challenge that would require governance. However, much of what they said parallels what we’ve said here about the block size debate:
“…we argue that Bitcoin will require the emergence of governance structures, contrary to the commonly held view in the Bitcoin community that the currency is ungovernable.”
“The only way to preserve the system’s health will be to change the rules … Different groups benefit from each solution … The choice is likely to drive political disputes within the Bitcoin community … A political choice such as this is difficult to make without some sort of governance structure, even if an informal one.”
The authors also point out that: “Other challenges to the system’s health and viability may also emerge, perhaps due to issues of scaling or security.” The block size is, of course, primarily a scaling issue.
I really liked footnote 5! It is applicable independent of the original context for the essay. This passage really resonates:
Structurelessness is ideologically appealing, and there is significant precedent, e.g. the Cathedral and Bazaar metaphor. I don’t see how this can be sustained for Bitcoin for much longer though. Mike Hearn’s observation is really bleak, about inability to achieve consensus. Use of a polling mechanism as described in bullet point 2 in the post seems worth pursuing and feasible. (I liked Stephen Gornick’s idea about how to resolve the fixed block size concern, although it would break fungibility, which seems important…?)
Great article Andrew,
You didn’t bring up the new relationship of the core developers with MIT – another stakeholder in the play.
You’re damned if you do and your damned if you don’t.
Like I always say, Bitcoin was a “Prototype”… it was the first crypto to catch on. It’s rare, the government’s grubby hand ain’t in it and fast a hell compared to money orders, bank transfers and Western Union wire transfers. There’s other cryptos out there, go try them out; they make Bitcoin seem like a steam train versus a MAGLEV. DigiByte is ready for almost anything and is community governed and developer (Jared Tate) is not hadr to reach. Go check it out DigiByte.co (not .com) they got a $250,000 towards opening offices and will soon have greater speed than MasterCard! It’s what Cryptos were meant to be.
Bitcoin was never meant to be so drastically altered. Even if Satoshi had made provisions, this fact was never sold when miners and investors started putting their hard earned cash into mining hardware; that email just surfaced recently. Miners will go miner other coins and Bitcoin will die. Then again, if developers cause such a severe loss in revenues, there will be a world wide class action lawsuit on the federation and the so-called devs. Not only that, those who are bagholders, guys like Tim Draper, who could lose millions in lost value.
People will bit about high feed regardless… pay a bit more and get yoru transaction done faster, you have the option now. Bitcoin is a game for people in means. AltCoins are for miners who missed the Bitcoin Gold Rush, for people who don’t have the means to play with Bitcoin and for new companies to fill in the gaping voids that Bitcoin left for others to benefit from too. Andreesen and his crooners are just looking to render the AltCoin market useless, forgetting the AltCoin Market collectively is great than Bitcoin itself.
In the end, I don’t care, I’ll mine until there’s nothing left to mine. However, it’s too little too late, if it ain’t broke, don’t fix it. People and miners will go to others coins; it’s a gamble by the devs that quite frankly, most people stand to lose than gain and if it’s not a life or death thing, then no need for re-animation measures. The devs are huge bag holders and are willing to risk it all for something good… they will shoot themselves in the foot.
In the end, Bitcoin was never meant for micro transactions… it was meant for large transactions, to replace money orders or wire transfers… was never meant to buy your coffee, nick nacks and parking tickets… it’s made to send a $1,000 to a loved one or buy a $175,000 home with. If the devs want it to do everything then let them experiment with their own… let them start a new one instead of RISKING everyone’s hard earned assets. Faster, more feature filled wallets will take over Bitcoin.
Don’t try to play Bitcoin g*d, Gavin, you will be struck down.
You seem quite confident about what Bitcoin was and was not meant for. I’ll refer you back to Satoshi’s original declaration: “What is needed is an electronic payment system based on cryptographic proof instead of trust, allowing any two willing parties to transact directly with each other without the need for a trusted third party.”
It’s decentralized enough that no one can put a gun up to anyone’s head and destroy it.
Could it be better? Sure… And it still can be through tweaking, over time, without doing away with anything.
In the meantime, just remember that there is no project in the history of this planet that has had so many brilliant minds thinking about it. Not even close. Betting against bitcoin working is kinda like betting against humanity’s best and brightest minds trying to save the world.
Epic comment Luke:)
Epic koolaid, especially if you consider yourself to be one of them.
> In the meantime, just remember that there is no project in the history of this planet that has had so many brilliant minds thinking about it. Not even close.
Oh, please! What about the Manhattan Project, or the Internet? There were many of brilliant minds thinking about both. Speaking of the Internet, you could set up a governance body like the IETF or W3C, but for Bitcoin. I know, I know, W3C is kind of dysfunctional now, but they weren’t in the early days. IETF is still reasonably functional, I think. Obviously, both worked well enough for awhile, which is all you need for now, with Bitcoin. Some governance, even if temporary or less than ideal, is better than nothing. It is better than nothing for all the reasons stated in the post.
Can’t a hardfork be treated as a new coin (albeit with initial distribution that matches 1:1 with each existing Bitcoin UTXO?) That way each holder of coins can opt to continue spending on the original chain, on the new chain, or both. Quickly the market will decide which side should be the dominant side but both sides could survive independently (meaning v0.10 and earlier will reject v0.11-generated blocks once at least one block is >1MB, and v0.11 will reject any v0.10 blocks due to nVersion filtering after supermajority is reached.)
That way the market can decide if a hardfork should survive.
Exactly. All grass roots efforts, from Arab springs, to the 99%, never make it long term. The simply lack the ability to “make decisions”, like large hierarchies / governments can do.
In fact, if you are thinking that any grass roots movement needs any kind of “decision making” process, you have already lost. Because a “decision making” process is a hierarchical or beurocratic notion.
You don’t need a “decision making” process for grass roots efforts, what you need is a real time consensus building and measuring system. No matter what you want to do, or what you want to change, the only hard part is building and rigorously measuring for, in real time, how much consensus you have built. And it can’t by any traditional “polling mechanism and a public comment process”! as all traditional systems that do that just destroy consensus, everyone starts yelling at everyone else, and nobody can communicate, you know, just like in the completely dysfunctional US congress.
All you need is a consensus building and rigorously measuring tool. Like is being developed at Canonizer.com.
You can get, do or change, anything you want, once you achieve enough provable consensus. Everything else is easy.
It’s not about “making decisions”, that’s just for some hierarchy, or for some guy at the top to do. If it is a grass roots movement, you simply need to find out, concicely and quantitatively, what everyone wants, and everyone will obviously just want to do that, no warring, anymore.