Why does Bitcoin fork?

Original author: Mike Hearn
  • Transfer
Bitcoin xtA Story of Differing Views

So, here we are. The community split up and a fork of Bitcoin was created, which will affect both the software and, possibly, the block chain. Two sides of the confrontation - Bitcoin Core and its slightly modified version - Bitcoin XT [article author, Mike Hearn, is its main developer; the main change in Bitcoin XT is an increase in the block size limit - approx. per.]

Such a fork has never happened before, and I would like to explain the essence of what is happening from the point of view of the Bitcoin XT developers so that we are not accused of not explaining our position sufficiently.

Bitcoin fork is a topic that may interest many people, so this article is intended for the general public, and not for narrow specialists, so it does not require either deep technical knowledge or familiarization with the history of the issue.

Bitcoin's underlying vision was clearly articulated by Satoshi Nakamoto. The current debate is about the growth of Bitcoin. In 2008, Satoshi answered the question about the possibility of growth of Bitcoin as an infrastructure as follows:

In 2008, Visa processed 37 billion transactions, an average of 100 million per day. Such a number of transactions would require 100 gigabytes of traffic (the size of 12 DVDs or two films in HD quality), which would require about $ 18 at current traffic rates.

For the bitcoin network to become as huge, it will take many years, and by this time sending two films over the Internet will not be a problem.

Satoshi was far more light-hearted about the technical side of Bitcoin's growth than many of us now. From the very beginning, he believed that Bitcoin would become popular, and knew that such success would change the way people use its system. In 2010, he said the following:

It would be nice to keep the blockchain files as small as possible.

But afterwards you should not worry about how big they will become.

However, at the moment, while they are still small, it will be right to continue to keep them so that new users can connect to the network faster. But as soon as I finally implement software that will only work in client mode [SPV client - approx. per.] , it will immediately become irrelevant.

In 2011, I tried to confirm Satoshi's intuitive assumptions with a series of mathematical calculations : what if Bitcoin becomes so popular that it replaces Visa? I got a definite answer to this question - you will never need more than one computer, even for such huge volumes. I also implemented the software (wallets in client mode) that Satoshi talked about before he retired.

Satoshi's plan brought us together. He has changed the lives of hundreds of thousands of people around the world. Some of us left our main job, others devote free time to his project, and others found whole companies. It is the idea that ordinary people can pay each other using the blockchain that created and rallied this huge community.

This is the plan I signed up for. This is the plan Gavin Andresen signed up for. This is the plan that many developers, founders of startups and bitcoin evangelists have subscribed to.

Now this plan is under attack. In recent months, it has become clear that a small group of people have a radically different vision of Bitcoin. These people never felt confident about Satoshi's intentions because they were afraid of success: what if technology never advanced? What if people can no longer run the full Bitcoin node on their computer? Would this make Bitcoin less decentralized and more like banks? What if people use Bitcoin while it is not perfect?

Now that Satoshi has retired, these people are planning dramatic changes: turning Bitcoin into a network of payment hubs, a sharp increase in commissions for regular transactions, canceling support for P2P mobile wallets, refusing to resolve issues to improve support for unconfirmed transactions, and much more, which never mentioned in Satoshi documentation. Their so-called Lightning network, which is being promoted as an alternative to the architecture of Satoshi, in reality does not exist. If it is implemented, then it will be a big departure from the Bitcoin that we all know and love. Here is one example from many: Bitcoin addresses in the Lightning network will not work. How they will be replaced is not yet known (because work on this has not yet been completed). There are many more amazing pitfalls about which I wrote an entire article . Therefore, it is very doubtful that the result will be better than the Bitcoin that we have now.

What happened to the free market?

In theory, none of the above should be a problem. The Lightning Network, implemented on top of the blockchain, needs relatively small and simple protocol updates in order for it to work better at full strength. Thus, people who want to explore this direction of development are free to do so. If what comes out of the Lightning Network is better than a simple Bitcoin, then the market will prefer to make payments using this method - everything is fair. The current architecture of Bitcoin is hardly the last word in electronic payments. It is reasonable to assume that the day will come when it will be supplanted by another decision.

But the system that Bitcoin is like is already working today. It includes an entire ecosystem: developers, exchangers, wallets, people buying and selling Bitcoins, Bitcoin ATMs, Bitcoin literature, conference applications, and just a huge number of people who were able to understand how Bitcoin works.

Who in this ecosystem, having a free choice, decides to switch to a radically different system?

We do not know this. But the people who lobby the Lightning Network do not want the market to decide. That's what went wrong!

A long time ago Satoshi inserted a temporary gag in the code: he limited the size of each block to one megabyte. He did this in order to keep the size of the blockchain small for the first time, until SPV wallets (which are also known as “nodes working in client mode” or “incomplete nodes”) are developed. As can be seen from the above quotation, he never considered this decision to be permanent, and said that it is necessary to get rid of it when the time comes. Together with my esteemed colleague Andreas Schildbach, I implemented the first SPV wallet in 2011: we created the first and so far the most popular Android wallet. Since then, SPV wallets have been implemented for all platforms. Thus, the reason Satoshi set a time limit has long been eliminated.

With the growth of Bitcoin, the average block size also grew. Reasonable calculations , based on the fact that information about Bitcoin will continue to be distributed, show that we will reach the ceiling of the current system sometime next year, or, in extreme cases, in 2017. And another price bubble or wide media coverage can bring us to this ceiling much faster. Most likely, we will not like the results of this .

Therefore, right now it is necessary to increase the limit on the size of blocks, or abandon it altogether. That was the plan from the very beginning. It is in this place that the problem begins: those who do not want Bitcoin to scale, stall the development process. They see the rarely presented opportunity to forcibly change Bitcoin's originally conceived path to a completely different technology. They still do not know the exact architecture of this technology, and, as you can see, they do not yet have ready-made developments. They believe that by blocking the blockchain scaling, they can “interest” (that is, force) the Bitcoin community to switch to another technology that is more to their liking.

Why limit blockchain?

Until now, in this article I have not specified the arguments of these people, and did not specifically indicate who they are. I thought for a long time about specifying specific names in the article, but in the end I thought it was useless. Those who closely monitor the unfolding drama already know them, and those who do not follow will still not recognize the names of the people involved.

Suffice it to say that these people either have commit access to the Bitcoin Core repository, or work with those who have it.

So let's try to discuss their arguments and arguments, which are quite a lot, instead of personalities. Gavin and I wrote refuting articles about each of them. Sometimes the answers were simple, sometimes for refutation it was necessary to carry out deep painstaking work: for example, conducting network simulations.

The best place to learn about these arguments is Gavin's blog . I would like to provide links to similar arguments, which, in turn, refute Gavin's work, but, alas, there simply aren't.

Today we can summarize the results of the long debating debate, dividing the arguments against increasing the limit into the following groups:
  1. If Bitcoin in its current form “breaks”, then the community will be interested in coming up with something better;
  2. The limit on the size of blocks should be increased, but it is too early to do it (and when exactly, it is not specified);
  3. If Bitcoin is scaled, then it may become less decentralized and cease to be the “same” Bitcoin.

There are others: if any of the arguments you have heard about is not listed here, you can read about it on Gavin's blog.

The first point may one day become true: it is difficult to compare Bitcoin with theoretical systems that exist only on paper. However, all those who studied alternative approaches believe that none of them can be implemented within 12 months, and during this time the bitcoin network is likely to go beyond its bandwidth (see examples: 1 , 2 ) .

The second paragraph is too vague to express specific objections to it. There are compelling reasons to believe that upgrading all full nodes can take at least a year, while exceeding network bandwidth will cause serious problems. We should have started the scaling process yesterday. The Bitcoin developers mailing list is attended by two people who have professional knowledge of bandwidth planning for large projects, and they both think that the process should be started now. Insisting on postponing this process indefinitely is unprofessional.

The last point is the most problematic and hotly debated. It is based on two assumptions:
  1. If Bitcoin can grow, it will grow, and it will grow faster than service prices will fall, despite technological progress;
  2. A “small”, but in a certain abstract sense, more “decentralized” Bitcoin is better than a “large” Bitcoin that everyone can use.

It would be great if Bitcoin were so attractive that the demand for transactions grew infinitely: then I could stop developing software and wait until the price of coins goes up and I become rich. But we live in the real world, and Bitcoin is in a market where there is competition. Growth is not a blessing granted from above. Each new user joining the network takes effort and time. Demand for Bitcoin is growing now, but at a slow pace. I would like to say with confidence that the cost of supporting a full node will increase: this would mean that Bitcoin will grow faster than the entire computer hardware industry! And it is amazing: when the first iPhone was launched in 2007, it cost $ 500. Just 7 years later, the Forme P9 smartphone sells for only $ 30. But this smartphone has not only all the features that the iPhone had, but also many others.

With the second assumption, we move on to the basis of all the debate: should we allow Bitcoin to grow if it requires a change in the network structure in the process?

The current system, where each user is a network node, is not the best idea for wide scaling. It would be about the same as if every Usenet user started their NNTP server. The architecture of Bitcoin allows users to be just users.
- Satoshi Nakamoto, July 2010. The

founder of Bitcoin gave a clear answer to this question: YES.

And we constantly worked to ensure that the answer does not change. Because “NO” will violate the social contract between all network users and will go against the desires of so many people in the bitcoin community.

Those who really believe that Bitcoin is only for a narrow category of geeks who are thoroughly versed in the details of the network, and not for ordinary people, can create their own altcoin with a restriction on block size as one of the fundamental elements of the vision of this system . But for some reason, instead they are trying to turn Bitcoin into such a network using the old unsuccessful plug in the code.

Decision Making

Why can't all these issues be resolved in a more civilized way than open schism?

Simply put, the decision-making process in Bitcoin Core simply does not work!

In theory, like all other open source projects, Bitcoin Core has a leader. His job is to manage the project and make decisions about what will be added to it and what not. A good leader takes feedback into account, weighs the arguments, and then makes decisions. But in the case of Bitcoin Core, the talk about the block size limit has not ended for several years.

The problem is that any change, regardless of the obviousness of its need, can be completely rejected if it becomes “controversial”. This means that anyone with commit access can block it. The presence of 5 people who have such access, as well as taking into account opinions and many others about “debatability”, is nothing but a recipe for a dead end. The fact that the block size limit was never supposed to be eternal becomes unimportant: the dispute that arose on this issue in itself means the impossibility of canceling the limit. It is like a meeting that never ends because there is no chair. You can quote one of the committers, who is quite satisfied with the existing deadlock: “Bitcoin needs a leader just like a fish needs a bicycle.”

What about everyone else?

Unfortunately, not everyone agrees that you need to listen to the whole community.

However, increasing the block size limit is supported by many community members, including:
  • Developers of the most popular wallets for iOS, Android and one of the most popular web wallets. All serve millions of users;
  • Several largest bitcoin exchanges;
  • The two largest bitcoin payment operators that serve most of the market;
  • Large mining pools, including Chinese;
  • Two out of five Bitcoin Core committers (Gavin and Jeff);
  • User polls on forums show support at 75-80%.

This list is far from complete. Many other key market players did not give public comments on this issue, but expressed support for Gavin and me in personal correspondence.

So, as you can see, this is not some kind of strange Bitcoin capture action that Gavin and I started. If it were not for us to push forward the proposed changes, then someone else would surely do it.

How did those who promote the idea that the 1 MB limit should remain explain their position to their opponents?

No way, since they do not consider it necessary to either explain it or listen to the opinions of other people. You can quote one influential Bitcoin Core member:

If you start listening to bitcoin companies, we run the risk of getting a false sense of consensus.

But Bitcoin companies have gathered people who are knowledgeable in technology, love Bitcoin and their work, devote a lot of time to this direction. However, their general opinion and views are for some reason considered a “false sense of consensus”.

What about wallet developers? They know everything about the everyday needs of ordinary users.

Nobody asked them either. And when they spoke on their own, nothing happened, because their opinion was considered irrelevant.

And this is not surprising: those who control Bitcoin Core believe that the significance of someone’s opinion depends on how much code they wrote for Bitcoin Core. Over time, it is becoming increasingly clear that the “consensus” they so often talk about in reality only means consensus between a small number of people, independent of the opinions of the entire community.

In other words, “developer consensus” is a marketing ploy that hides the truth. And the truth is that only two or three people can radically change Bitcoin the way they want.

Do they realize that a large number of people disagree with them? Not. Here is another quote from one of the commiters:

Gavin, apparently, is the only one among the Bitcoin Core developer community who insists on
this [increase in the limit - approx. per.] Many of my colleagues [at Blockstream - approx. transl.] express concern about the survival of Bitcoin as a decentralized system, and their concern is the opinion of the vast majority of the technological community.

This statement can be true only if we classify all other developers working on Bitcoin outside of Bitcoin Core as not “technological”.

How can this dispute be resolved?

Obviously, this is a big problem. Communication between the parties to the parties does not work, and both sides believe that they vehemently defend decentralization and the very “only true vision of Bitcoin”. The community is divided.

Thus, one option remains to resolve the issue. We can create a modified version of the software for miners and give them the opportunity to vote. If most miners switch to the new version, then after the first block with a size of more than 1 MB, the minority will remain on the branch blockchain. In order to join back to the majority, they will also need to upgrade. If the majority never switches to the new version, the fork will not happen and we will run into a 1 Mb limit.

It seems to us that everyone should support this option: it is clear that consensus cannot be reached by conventional mechanisms, and an attempt to conduct something like a vote is a good option to somehow get off the ground.

But we come to the last and most fatal source of disagreement.

Of the five Bitcoin Core committers, Gavin and Jeff support the fork, but the other three believe that any controversial hard fork is an ill-conceived, crazy and reckless decision that should never have happened, and its implementation could harm Bitcoin, possibly even fatally .

We fundamentally disagree with this approach. We do not think that the heavens will open if the blockchain divides. We believe that people who stay on the side of small blocks will sooner or later update the software and join the rest. They will be given sufficient time so that they can learn about the changes and prepare for them. But, of course, this does not affect the opinion of Bitcoin Core developers who do not like hard forks, and they persistently oppose them.

In short, they believe that the only Bitcoin mechanism that can verify the adequacy of their work should never be used.

I do not think that they really wanted this to come to that, but, alas, it happened. Their approach is that there should be no alternative to their solutions. That everything that they don’t like for any reason should never be born ... And the fact that Bitcoin is their personal toy with which they can do whatever they want.

This state of affairs cannot continue further. Bitcoin Core showed that they cannot be reformed, so it must be left aside.

That's why a fork of Bitcoin was created.

We hope everyone understands this.

Also popular now: