The alternate Bitcoin Client, Bitcoin Unlimited, has established itself as a grassroots alternative to Bitcoin Core. Unlimited wants to end the block size debate forever by letting the market decide about the ideal block size. Can this run smoothly? Or does Unlimited carelessly play with the risk to destroy Bitcoin? And who’s behind the project? We try to answer the most important questions.
With the support of the mining pools Bitcoin.com and ViaBTC and the outspoken benevolence of the word’s biggest miner, AntPool, Bitcoin Unlimited has become the most prominent alternative to Bitcoin Core.
Let us have a deeper look at Unlimited.
Who is Behind Bitcoin Unlimited?
Bitcoin Unlimited is the child of a famous thread on Bitcointalk called “Bitcoin up, Gold collapsing.” The thread, which started in 2012, was composed of a community of Bitcoiners. At the peak of the block size wars, this thread was removed to the altcoin section on bitcointalk, what generated anger amongst the members and resulted in the migration to the alternate forum bitco.in.
While discussing the block size topic, the community in this thread came to the idea that a block size limit should not be a property of sound money and not necessary at all. Large parts of the concept are attributed to Peter Rizun, a physicist from Canada. He made the argument that a fee market, which might be necessary for the miners to survive after the block reward will have ceased in some decades, does not need a block size limit to exist. According to Rizun, the risk to produce an orphaned block raises with the size of the block, which should serve as a natural limitation for the blocksize and establish a fee market.
On grounds of this argument, the group developed an idea to remove the block size completely. Consistent with their liberal position on markets, they demanded that the developers should not decide about the ideal blocksize, but the actors of the markets; miner, nodes, exchanges, investors. With the American Andrew Stone, they found an experienced developer, who forked the Bitcoin Core codebase in late 2015. Bitcoin Unlimited was born.
Since the first day of its existence, Bitcoin Unlimited have considered themselves as a counter model to Bitcoin Core. While Core only implements a BIP if a certain group of developers acknowledges it, Unlimited allows every one of its members to vote on the BUIPs. This enables non-developers to influence the development process and prevents a situation whereby single developers can veto changes.
Besides Andrew Stone, who is still the lead developer of Unlimited, a handful of further developers have joined the team. For example, Peter Tschipper, Andrea Suisani, Trevin Hoffmann, Andrew Clifford and more.
Critics argue that Unlimited is not being able to compete with the Core team, neither in quality nor in quantity. This does not come without good reason; while developers of Core, the official implementation of Bitcoin, have worked on Bitcoin for five to six years, the Unlimited developers mostly have only one to three years experience in Bitcoin development. If you look at the activity on the GitHub repositories since May 2016, you see that seven developers worked on the Unlimited implementations, while on Core you see 39 developers contributing.
For this reason, many actors in the Bitcoin ecosystem fear that a “takeover” of Unlimited will make the Core developers quit and leave them with a team, that as of yet have not proven themselves to be able to reliably and securely manage Bitcoin’s codebase.
What is the Concept of Unlimited?
Basically, Bitcoin Unlimited represents the view that the size of the blocks should not be relevant for the consensus of the Bitcoin network. The monetary supply, the history of transactions and the protection against double spends and counterfeits are important properties of sound money. The block size is not, according to Unlimited.
But simply removing it would be too easy. Instead, Bitcoin Unlimited’s idea is based on the theory of so-called Schelling points. In game theory, Schelling points are solutions people tend to use in the absence of communication. Once a balance of Schelling points is established, it becomes the best solution for every actor in the game.
To enable the market to find its Schelling points, Bitcoin Unlimited implemented three options in the Bitcoin client:
- The miners are free to choose the size of the blocks they generate.
- Every node (mining and non-mining) can choose an “excessive blocksize” (EB). It will ignore every block exceeding this size. This option should serve as an instrument for nodes to punish miners which build big blocks without having consensus. The lower the number of nodes that broadcast a block, the higher the chance is that a block is orphaned.
- Further every node chooses an “accepted depth” (AD). If the node refused a block because its size is excessive it risks leaving the network. If the excessive block is confirmed by AD further blocks, the node accepts the fact that this is the new reality of the network and joins the chain with more work. This option should prevent the fragmentation of the network.
These options can be adjusted on a graphical interface. The nodes share their EB and AD with the version information they tell other peers, so it is possible to crawl the network and find out, which maximum block sizes are supported and which are not.
By removing the block size limit and implementing these simple options, Unlimited aims to let the market permanently vote about the ideal block size. This should solve the block size debate forever.
Criticism of Unlimited
We can find a richness of skepticism, criticism and difficult questions on Bitcoin Unlimited. As already mentioned, there are doubts that the team of Unlimited is capable of providing the security Core provides. Besides this, there are some fundamental critiques of Unlimited’s concept.
Since the moderation policies of major Bitcoin communication channels have not allowed an unbiased discussion of Bitcoin Unlimited, its consensus model, and its game-theoretical implications are highly under-researched and -discussed.
Bitcoin Unlimited with heterogeneous block size policies increases selfish mining risk considerably. More research needed! @el33th4xor
— Sergio Demian Lerner (@SDLerner) November 25, 2016
A basic critique aims at Unlimited’s decision to “just let the market decide.” Core’s approach is to set a fixed limit on properties like the block size to maintain desired properties. The 1MB limit should prevent negative effects on bigger blocks on the network, sustain decentralization, push the network to off-chain transactions, prevent spam and so on. You can compare it to the rules of regulation every country applies. Like anti-cartel laws or hygiene rules for restaurants. Not everybody likes it, and regulation might have a tendency to over-regulate, but most people agree that some degree of regulation is desirable.
A repeated critique of Unlimited is a scenario of a market failure; the majority of miners and exchanges conspire against the rest of the ecosystem and build blocks so huge that the minor actors are gradually pushed out of the ecosystem. The result is the complete centralization of Bitcoin; “See where this is headed? Not only have the everyday users completely lost control of Bitcoin, not only is Bitcoin controlled by a small number of centralized players, but the number of centralized players in control is shrinking, because every time scale becomes an issue, the biggest players are able to push through scale as the economic majority, and the next round of smallest players is eliminated. Soon, you've only got two or three centralized entities left who are capable of keeping up with Bitcoin's scale, and everyone else is left trusting them.”
However this scenario is easy to counter. Since this scenario requires a majority of miners and exchanges to cooperate against the system, this scenario is an attack Bitcoin can’t defend itself against. Be it Core or Unlimited. Bitcoin is based on the assumption that the majority of miners acts for the system and not against it.
But the fact is, Bitcoin Unlimited makes the story more complicated. The actors in the ecosystem have more options, and thus more duties, and with they face an increased risk to damage themselves. While with Core you exactly know where you stand, Unlimited is the cradle of a lot of known and unknown scenarios which are currently irrelevant.
An example; the miners choose different “excessive block sizes.” Let us say 30 percent set EB to 1MB, 20 percent to 2MB and 50 percent to 3MB. Now an evil miner creates a block with 2.1MB. What happens? 50 percent of the miner will accept this block and mine on it, while another 50 percent will reject it and mine on the other chain? Does the chain fork permanently? And if not - is it possible to lead nodes to believe the wrong chain and double spent coins?
Another question; must a miner be alway present, to prevent ending in mining some blocks on the wrong chain when the other miners cooperate to raise the block size? Is it possible that a miner risks hashing into emptiness for some blocks? And does an exchange risk to end for some blocks on the wrong chain if it does not observe the blocks and can this be abused for double spends?
These are just some questions and some scenarios. If you think about it and take an adversarial view you will probably gain a better idea of what could go wrong. There is no way around thinking hard about each scenario.
Most of the Unlimited developers have. The incentives, they say, ensure that the miners do not break consensus. “The bottom line is that they help each other to get the block rewards and they help each other to avoid any blocks orphaning. And if you understand game theory, this is obvious,” explains Tom Zander.
And David Jerry adds, "To believe that Unlimited is stable, you have to fundamentally believe in Nakamoto 51 percent consensus; that not more than 50 percent of the hash power will act maliciously. Like Satoshi Nakamoto did."
Actually, Unlimited is not so much different from Bitcoin Core. What it does is to take away the social norm to not change the block size limit and add the option to easily change it. If dangerous or not - fact is, that Unlimited promises a permanent solution for the block size problem; and fact is, that this solution deserves and needs more serious research.