Bitcoin has always had the potential for a crisis. Maybe it will be the subject of a successful denial of service attack. Maybe it will be declared illegal. Maybe it will be supplanted by a newer, better technology. But not until very recently had anyone suggested the potential crisis which Bitcoin is now heading towards: Of being undermined by a developer who’s gone rogue, using his political influence to convince vendors that an upcoming minor problem will be a major crisis, getting them to accept his own extraordinarily bad pet solution to that problem, and as a result hurtling the whole ecosystem towards potential disaster.
The sad thing is that this is all completely avoidable. The upcoming problem which it’s meant to solve is only minor, and the bulk of Bitcoin developers are strongly against it. The public perception that a crisis is looming and that a hard fork is a good way of fixing it has been caused by a PR blitz which has been mostly unchallenged. Highly technical topics which can be debated on their merits are conventionally discussed in appropriate forums until a reasonable solution is hashed out and it’s then sold to the public. This post may come across as extreme, but that’s because those norms have already been thrown out the window. The propaganda must be countered, and it must be countered now.
What the upcoming real crisis is
Bitcoin is, at its core, a distributed database. Some new technical ideas around mining and the blockchain make it far more distributed and more secure than any databases which came before it. Fundamental to Bitcoin’s security is the ability for any single node to be able to audit everything which is going on by themselves, using nothing more than the blockchain, its own computational power, and a reasonably accurate clock. Invalid additions to the block chain are treated as an attack and summarily rejected. Of course this doesn’t mean Bitcoin can never be extended. There are proscribed ways in which peers will accept extensions to the protocol which they don’t recognize, but for things which they explicitly reject even small violations (especially small violations!) are treated as an attack which needs to be suppressed.
Because of this, Bitcoin protocol development must be done with great care. Any widespread change which introduces even a slight incompatibility have a strong chance in resulting in there being two separate and incompatible currencies. All players in the system would have to adapt to that new reality. Exchanges will have to start trading them as two separate currencies. Wallets will have to be aware that all their old coins have split in two and treat both as separate, requiring new complexity in both the protocol handling and the user interface. Miners will have to choose which of the two currencies to mine. Eventually the two currencies will be completely separated and peacefully coexist, but in the interim chaos will reign as the existing protocols are incapable of handling the new distinction. Exchanges only quote one value. Wallets are only given one answer as to whether their transactions have gone through. And transactions themselves have no way of specifying that they should only be one one fork or the other. In the midst of all this chaos, confidence in Bitcoin as a stable entity would plunge, and the value of both currencies would most likely crash.
Even the ‘good’ resolution of a hard fork isn’t a good thing. If the broader ecosystem manages to squeeze out the old fork to the point where it’s effectively dead, then a handful of exchanges and processors will have demonstrated that they have the ability to unilaterally change what Bitcoin is, which is directly counter to the security claims Bitcoin is based on.
Unfortunately there’s now a proposal in place which will create exactly this disaster and has a significant chance of actually happening. There are no measures proposed to alleviate the immediate chaos of a fork, instead the authors claim, hubristically, that it won’t happen. They are quite likely to be wrong.
How it might actually happen
The most ominous sign that this might come to pass is that several of the larger mining pools, amounting to around 60% of the total mining capacity, have agreed to go along with a ‘compromise’ proposal to increase the maximum block size to 8 megabytes instead of 20. This is sort of like, in a debate about whether to stab someone or not, a compromise is reached that they’ll be stabbed with a 6 inch knife instead of a 12 inch knife. In general when extensions to bitcoin are proposed, they go through a sort of voting process where miners indicate that they’re willing to accept them, and if a sufficient number indicate they are then the extensions start getting used. This works well for compatible extensions, where the main requirement for functioning is that miners accept it, so their input is directly applicable. The legitimacy of the blockchain has already been granted by the broader ecosystem, which has accepted that the miners have the power to accept such changes or not.
In the case of an incompatible change there is no such acceptance of legitimacy. The miners in that case are attempting to put their own work towards the new alternative, without the blessing of the larger ecosystem, on the theory that the more work they put towards the new alternative the more value it will have, which will cause an even higher proportion of work to be put on it, until eventually it completely crowds out the old coin. This is a fallacy. It is cryptocurrency value which drives mining work, not the other way around. Miners run a very low margin business, and will do whatever they can to turn a profit. If there are two different currencies which miners have to choose between — which is what will happen in the event of a hard fork — then miners will choose to mine whichever one is currently yielding greater mining rewards for the amount of work put in. The inevitable result is the amount of mining of the two forks will be in direct proportion to the value they’re trading at on exchanges. One won’t crowd out the other, they’ll simply continue to exist as competing cryptocurrencies. Some miners might stick to the new currency out of honor or spite, but there’s no way for them to keep other miners from breaking ranks, and if so many miners stick to their guns that the ROI on the old currency continues to be high, then all the obstinate miners will have accomplished is in making a gift to the more practical ones.
What the fake crisis is
The upcoming ‘crisis’ which is being used as a justification for a hard fork is something which it’s easy to convince people who aren’t very familiar with the technology will be a disaster. There’s a hard limit on the rate which transactions can happen, about five per second, and the transaction rate in bitcoin has been approaching that over time. We’re going to hit a wall! The sky is falling!
So what happens when that limit is reached?
Transaction fees go up.
Literally, that’s all that happens. That’s the big ‘crisis’. What’s being claimed is: Transaction fees might go above two cents! The sky is falling! I am not exaggerating.
Those who haven’t heard anything other than the reddit-centered hysteria that immediate action is needed might find this hard to believe, but it’s true. There are a number of sub-arguments which range from the fallacious to the silly:
Wallets don’t support transaction fees! Yeah, and computers had to have their Y2K bugs fixed. The whole point of Bitcoin is that it’s an untrusted system where the different agents represent themselves. Pieces of software whose developers don’t make them do that should be abandoned and replaced with ones which can. Even in a worst case scenario, if you’re stuck with an old wallet you can always extract its keys and put them into a newer and better one.
People won’t be able to get their transactions through! No, transactions will be able to get through, but they’ll cost fees. Some number of transactions will be avoided, either by consolidating multiple payments together, using a different payment mechanism, using net settlement, or something else, until a market price is set by the economic principles of supply and demand. Once real transaction fees are in place counterparties will have incentive to be more efficient with transactions, and they’ll get better at it over time.
Transaction close times will grow massively! No, transaction fees will be a bit noisy and clients will have to make tradeoffs between what their fee is and how quickly it will go through.
Even if transaction fees go up to an amount that’s unpleasantly large, they’ll still be amounts people are paying. To claim that high fees are a disaster is like saying ‘Nobody goes there any more, it’s too crowded.’ High transaction fees would be the first clear evidence of Bitcoin providing real value instead of just being a vehicle for speculation. It would also lead to miners directly earning more money, which is another reason they’d be well advised to not view this as a problem worth solving. In the long term the mining rewards for bitcoin will go away completely (there’s a strict schedule for this) and all that’s left will be transaction fees. Attempting to ‘solve’ the problem of transaction fees would in the long run undermine the security of Bitcoin even if it were done perfectly.
Of course it would be good for bitcoin to eventually be able to support a faster transaction rate than five transactions per second. Technologies for doing that without a hard fork aren’t ready yet, but they’re being worked on, and will be ready long before there’s any serious issue (the most promising approach uses net settlement). Not having real transaction fees already is a major impediment to the development and adoption of real solutions, because the incentive isn’t there.
What the bad solution is
The proposed ‘solution’ to the ‘problem’ of hitting the transaction rate limit is to raise the limit from 1 megabyte to 20 megabytes. This sort of change flies directly in the face of the ethos of Bitcoin. For things to be left alone and transaction fees left to be determined by market rate is directly in line with the distributed libertarian principles on which Bitcoin was founded. For the limit to be raised in advance to avoid hitting it is paternalistic and totalitarian. It also continues the current situation of transactions being allowed at a ludicrously subsidized rate at the expense of those running full nodes. The number of full Bitcoin nodes is small and dropping, and if it gets too low it becomes easy for counterparties to commit fraud by lying to wallets. Increasing the costs of running full nodes will make this problem worse.
Also, as mentioned previously, reducing transaction fees can be a bad thing in and of itself. It directly reduces fees for miners, indirectly reduces the security of the block chain (eventually to nothing!), and directly removes incentives to build real technological solutions to scaling problems. Simply increasing the block size limit is a hack which kicks the can down the road a ways but does nothing to solve the underlying problems, and creates permanent new overhead which will remain even after the real solutions get put in place.
But those problems are overshadowed by the utter disaster which is a hard fork. Even a tiny risk of a currency split should be approached with extreme caution, and that possibility with a hard fork is very real.
How we got here
Raising the block size limit is the idea of Gavin Andresen, former Bitcoin lead developer, who initially went around to core developers and players in the Bitcoin ecosystem trying to convince them that it should be done. The core developers had reactions ranging from neutral to vitriolically against it. Rather than accept this strongly negative reaction as a sign that his idea is a bad one, or attempting to work on some kind of compromise proposal, Gavin’s now blaming the arguing on a lack of benevolent dictator or clear voting process. There are several obvious problems with this. In projects which have a real Benevolent Dictator For Life, that person was the one who created the project. Gavin didn’t invent Bitcoin. He isn’t even a Bitcoin developer any more. He resigned his position as lead developer a year ago, and has been largely inactive since. Using a voting process, or even a system of rough consensus among core developers would cause his proposal to be quickly rejected. It’s only the exertion of outside political force which has forced it to be taken seriously.
The current broad perception that Gavin’s idea is the way forward comes mostly from the one-sided PR campaign he launched in favor of it. Initially he didn’t even go through the motions of including the development community at all, and only after some pointed nudging has he agreed to write up a concrete proposal, which is still forthcoming. Confidence in Bitcoin rests on a foundation of nobody being able to unilaterally change it, and Gavin is attempting to do exactly that.
What should happen, in short, is nothing. There should be no increase to the block size limit. There should be no attempt to keep transaction fees from hitting a market rate. The block size limit is a good thing. Real transaction fees will be a good thing. Any changes to the block size limit will hurt both of those, create a significant risk of major disaster, and damage the credibility of Bitcoin as a reliable system. The best thing for everybody involved would be for the proposed changes to be simply dropped, and Bitcoin developers to get on with making proper technical solutions rather than hacky patches.
The current proposals for raising the block size are reckless, unnecessary, and potentially disastrous. Perhaps it is not nice of me to put it this way, but this is not a game. There is real money and real business on the line, and the people who are affected and have say in the matter should know what’s going on.