How to Give Everyone More Control
https://medium.com/@jimmysong/how-to-give-everyone-more-control-b3391c0f7816
In this article, I examine an alternative path to the current political stalemate and how that can help empower Developers, Miners and Users.
Current State of Miners
Among mining manufacturers, it’s pretty obvious that Bitmain is the biggest and most successful. They produce somewhere around 50–75% of the Bitcoin network hash power through their chips and other manufacturers have a tough time competing with them on price. Their first product, the S1, came out in 2014 when there were many more competitors (CoinTerra, KNC Miner and Spondoolies Tech to name a few). They distinguished themselves by having the product on-hand at various Bitcoin conferences and unlike many of their competitors, having great supply chain management helped them win fans around the world.
As Bitcoin experienced a 3-year bear market, many mining manufacturers simply went out of business as the economics turned from wildly profitable to barely survivable. It didn’t help that many had products that often had defects and delivery issues. Bitmain not only survived this time, but thrived, and managed to capture significant market share.
Whatever your opinion of the company may be, Bitmain is the most dominant Miner and they are the 800 lb gorilla in the mining space.
Current State of Developers
It’s well known that Satoshi Nakamoto made the first Bitcoin client and released it to the world in 2009. Many people have contributed to what’s called the “reference client” and Bitcoin Core, as it’s now called, has hundreds of developers that contribute to the open source repository.
What’s less known is that there have been many different attempts to create alternative Bitcoin clients. Obelisk, btcd, Toshi and bcoin are just some of the many attempts at creating new Bitcoin clients from scratch. Bitcoin Unlimited, Bitcoin XT and the newest Segwit2x are some forks of Bitcoin Core. While each has had a varying degree of success, it appears most of the network continues to run Bitcoin Core. Most estimates are well over 90%.
Why is Bitcoin Core the most popular? There’s certainly history to consider. People managing money tend to be conservative and changing any part of the tool chain for managing money tends to be a dicey proposition as any errors may cause monetary loss. Further, Core has the largest developer community and the most rigorous development processes in place.
Whatever your opinion of Bitcoin Core may be, Bitcoin Core is the dominant client on the network and they are the 800 lb gorilla in the development space.
Balance of Power
While before 2014, the Miners and Developers generally got along, things started to change once the issue of scaling came up. We’ve gotten to the point where the scaling conflict is often seen as Bitmain vs Bitcoin Core (I’m sure neither are happy with that characterization). We have two dominant groups that have been in conflict.
Miners are frustrated because they’ve been asking for large blocks for years. From Bitmain’s perspective, none of the Developers seem even interested in any sort of hard fork. When they ask, the usual responses range from “follow the Bitcoin Improvement Proposal process” (which inevitably gets voted down) to “fork off”.
Developers are frustrated because they’ve been asking for Segwit for years. From Bitcoin Core’s perspective, the Miners seem to be obstructing good technology for no good reason. When they ask for a reason, the usual responses range from “we want larger blocks” to “you’re carrying water for Blockstream”.
Consensus and Control
Generally, when there’s a conflict that’s not getting resolved, you have to go up a level of abstraction to figure out the problem. While scaling is the reason everyone claims for this conflict, the actual reason may lie higher up. And when you think about the actual consensus process that’s required to change Bitcoin, it’s clear that both sides want more control than they currently have.
And this makes sense. Both groups are interested in more say over the long haul as Bitcoin becomes more and more valuable. A small concession or precedent set now has consequences going forward. Bitcoin Core may be thinking a hard fork now would set a precedent for additional, possibly more dangerous, hard forks later. Bitmain may be thinking cooperation on a soft fork without getting some concession would set a precedent for being dominated and having requests ignored later.
Bitcoin Unlimited in this context can be seen as a way to get around the Developers by replacing them entirely. Similarly, BIP148 and other UASF proposals are a way to get around the Miners.
This has brought us to the current impasse. Both sides want control, but given that Bitcoin is a consensus-based system, there’s no way to give each side what it wants and keep Bitcoin on a single chain.
The way to solve this problem, then, is not by trying to solve the presenting technical issue, but by solving the deeper issue of control. The question isn’t so much “how can we scale bitcoin” but “how can we give each side more control?”
The Naive Solution
The most obvious way to give each side more control would be to split Bitcoin in two, or what I would call the Solomon Solution. We can hard fork Bitcoin and each side can do whatever it wants on their chain. One side would have to find new Miners (or even a new Proof-of-Work function) and the other side would have to find new Developers.
While this has some appeal, splitting Bitcoin in two has the potential to cause significant collateral damage. Indeed, most contentious forks have this as a possible endpoint as both sides have the ability to hard fork. Bitcoin may be the baby that dies if nobody agrees.
A More Thoughtful Solution
So far, we’ve only been talking about two of the three branches of the Bitcoin governance: Miners and Developers. When the two disagree, the ideal solution would be to have the Users adjudicate. Unfortunately, safe, liquid adjudication is only available after a hard fork when the price between the tokens can float.
But what if we can give both Miners and Developers control over separate, smaller domains? What if each could run separate chains and each could change and use them according to their needs and desires? Further, what if these separate chains were actually extensions of Bitcoin itself?
Wouldn’t Users naturally utilize the one that they preferred? Wouldn’t the best idea win instead of the best political player?
If this sounds familiar, it should. This is what the whole sidechains project is all about.
What are sidechains?
If you haven’t heard about sidechains, think of them as a separate blockchain where you can deposit and withdraw Bitcoins. That is, if you deposit 1 Bitcoin to the sidechain you add 1 Bitcoin to your balance on the sidechain and if you withdraw 1 Bitcoin from the sidechain, you subtract 1 Bitcoin from your balance on the sidechain.
The separate blockchain can have all sorts of new features and won’t actually affect Bitcoin. And this is the key. You can give control of one sidechain to the Miners and another to the Developers. In fact, you can add lots more sidechains for a variety of purposes to see how well they work. Users can vote with their feet by going to sidechains that they find most useful. Merchants, for example, may want to go to a sidechain that’s much quicker to confirm. Exchanges may want to go to a sidechain with more financial instruments available.
That sounds awesome! Why don’t we have it yet?
Good question. One sidechain implementation already works. The sidechain is called Liquid and has been developed by Blockstream. They utilize something called a federation, which is a fancy way of saying deposits to the sidechain are Bitcoins sent to multisig addresses.
The Liquid security model requires a bunch (11+) of known, trusted entities (like exchanges) and that’s still in the process of being set up. The good news with Liquid is that it requires no changes to Bitcoin in order to work. The bad news is that you have to trust that a majority of entities won’t steal from you.
The other sidechain implementation is something called Drivechains. The good news is that Drivechains don’t require (less) trusted entities and the code is almost done. The bad news is that Drivechains require a soft fork.
Wouldn’t this give everybody what they want?
It certainly seems so. Having the market decide instead of committees seems like a much more scalable solution (pun intended). And indeed Paul Sztorc has proposed Drivechains as an alternative to Segwit or 2MB blocks. Segwit can easily be deployed on one sidechain and larger blocks in another sidechain.
It’s not all good news, however. There’s the obvious fact that BIP148 and BUIP0055 are scheduled for August 1 and October 18 respectively. Both are potentially contentious forks and may very well cause some serious disruption.
Liquid requires finding enough trusted entities in enough jurisdictions. Many Users don’t like having to trust other entities so this may be a non-starter.
Drivechains requires a soft fork where Miners validate new rules. Further, there are some technical issues that may need to be addressed as well as code that needs extensive review and testing before a soft fork can happen. Developers and Miners would ultimately have to agree to pursue this path.
Conclusion
The benefits of a sidechain solution are pretty clear. Developers and Miners are empowered since they can try out new, riskier features on sidechains and don’t have to get anyone’s approval for doing so. Each can control their own sidechain without disrupting any other part of Bitcoin. Users are empowered since they can have a choice of features without having to leave Bitcoin.
The downsides of a sidechain solution are a bit murkier and require a more thorough examination of the incentives to really evaluate properly.
As Bitcoin enters its fourth year of scaling conflict, creative solutions like Drivechains and Liquid deserve more rigorous consideration. There very well may be technical or trust issues that are insurmountable but it’s vital that as a community, we leave no stone unturned.
We are currently embroiled in a bitter political war. This is because we’re essentially stuck in a zero-sum game of consensus building. Innovation is a better way to resolve conflict than politics. Politics is messy, divisive and harmful. Innovation is clean, unifying and constructive. If an innovative path can be found, we owe it to ourselves as a community to find it.