Jimmy Song is a bitcoin developer and principal architect at blockchain technology startup Paxos.
In this opinion piece, Song discusses bitcoin's scaling debate, arguing that the long-proposed idea of adding sidechains to the digital currency's protocol could ultimately provide the best path forward.
Politics has gripped bitcoin – it's about the only thing people have been wanting to talk about for the past few years.
I've written before about how the bitcoin ecosystem is like the three branches of government, with developers being the legislative branch, miners serving as the executive branch and users being the judicial branch. I've also written about how bitcoin changes through consensus, and how consensus is not supposed to be easy.
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, KnCMiner 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 three-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-pound 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, btc-d, Toshi and bcoin are just some of the many attempts at creating new clients from scratch.
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, the team continues to produce the dominant client on the network, and they are the 800-pound 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 now got to the point where the scaling conflict is often seen as Bitmain vs Bitcoin Core (I'm sure neither are happy with that characterization). Either way, 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.
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 BTC to the sidechain, you add 1 BTC to your balance on the sidechain. The same goes for withdrawals – it's all done 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. The startup utilizes 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 the bitcoin protocol 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 [economist at Bloq] has proposed Drivechains as an alternative to SegWit or 2MB blocks. Segwit can easily be deployed on one sidechain and larger blocks on another.
It's not all good news, however.
There's the obvious fact that BIP 148 and BUIP 0055 are scheduled for 1st August and 18th October, 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.
The benefits of a sidechain solution are pretty clear. Developers and miners are empowered because 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.
This article originally appeared on Medium and has been republished here with the author's permission. Minor edits have been made.
Disclosure: CoinDesk is a subsidiary of Digital Currency Group, which has an ownership stake in Blockstream and Bloq.
Remote control image via Shutterstock