Why I Support BIP101 (2015)
This article was first published on Bitcointalk in 2015 as part of the early block size debates, sadly it is still relevant today, so I have re-posted it on Medium for posterity. You can find the original article here: https://bitcointalk.org/index.php?topic=1164464.0
I would like to start this discussion by getting some possible misconceptions out of the way:
First of all, Bitcoin XT is not a altcoin. Bitcoin XT is a client that functions on the same blockchain as the Bitcoin Core client. Bitcoin XT represents a proposal to implement BIP101 which is a proposal from Bitcoin Core which has not been implemented into the Bitcoin Core client itself. Bitcoin XT allows the miners to decide whether to increase the block size if they reach a 75% consensus, if that happens the network will hard fork and allow bigger blocks using the schedule specified within BIP101. It would be good to point out here that a block size increase can only be achieved through a hard fork. However since only the block size increase is fundamental to the protocol in terms of it causing a hard fork, It makes the other changes within XT optional. Since anyone can create their own client and make it behave in any way they would want as long as it is consistent with the fundamental rules of the protocol, the only fundamental rule that is changed within XT is the increase of the block size. You can turn off, any of the extra patches contained within Bitcoin XT inside of the client itself. There is even an alternative version of XT that does not include any of these other changes and only increases the block size. You could even run a patched version of Core that implements BIP101, which would then be compatible with XT after the fork if the miners reach consensus. That is why the discussion should be focused on whether we should adopt BIP101 not Bitcoin XT. So at this time it is a choice between Core who have not implemented increasing the block size or BIP101 which will increase the block size if consensus is reached.
Disciplines of Thought
Sometimes when we look at a problem from the perspective of different disciplines of thought we can reach different conclusions. In the case of the block size debate it might be true that an engineer would come to a different conclusion then an economist or a philosopher would.
So looking at this problem from a political perspective.
We first need to establish our ideology, since the conclusion we will reach will actually depend upon the ideology we adopt. Since philosophy is not a science, philosophy however can provide us with answers that science can not, in the same way that science can answer questions that philosophy is unable to answer. Since the question of what we want Bitcoin to be, and by extension what kind of a civilization, do we want to live in, are questions that are political and philosophical in nature. Which is why compromises should be made between these different perspectives.
Bitcoin itself in its current form and even in its original state represents such a compromise. Since from an engineers perspective the most efficient payment system would be one that is centralized, decentralized systems are less efficient but they are “better” because of very human reasons. The subjective definition of what is “better” is a result of our ideology and the priories we apply to this problem. This should be the product of ethics and political philosophy with a grounding in the technical realities in terms of what is possible. Therefore the technical perspective should not be prioritized over the philosophical principles of what we think Bitcoin should become.
Now to answer the question of what ideology we should apply to this problem, everyone has their own ideology as a free thinker, fortunately most bitcoiners can agree on some basic principles. I will start by by saying that our goal or ideology for this block size debate should be to increase adoption while maximizing decentralization and financial freedom. We could add to this definition if we would like, but it is good to keep in mind that good philosophy should be as simple as possible.
Adoption is important because of how it relates to decentralization and security. If more people adopt Bitcoin it would by extension lead to more people running full nodes. It would also make Bitcoin more secure from suppression or persecution from governments or other entities. Since the more people that use Bitcoin the more difficult it will become to attack. In the history of file sharing for example, it was in part because of the shear number of people using it that prevented effective persecution, not because of anonymising technologies for instance. More users and uses for Bitcoin gives Bitcoin more value, and therefore by extension more security because of the increased incentive for mining.
It is important to understand that it is not intrinsically wrong to hard fork away from the core developer team. Since it is this political mechanisms within Bitcoin which allows it to be so truly free and decentralized in the first place. I could explain why that is the case.
The ability to hard fork in this way represents the check that we have against the power that a core development team could hold. We should have multiple client implementations with competing development teams, it should be an extension of the concept of decentralization. Since if we did think that we should have the consensus of the core developers, even if that consensus becomes impossible to reach, this would be tantamount to centralization of power. If we think that we should never hard fork it is the equivalent of saying that the core developers have absolute power over the development of the Bitcoin protocol. Or quoting Mike Hearn “they believe that the only mechanism that Bitcoin has to keep them in check should never be used”. This is part of what makes Bitcoin truly so decentralized and free. That is why it is not intrinsically wrong to hard fork away from the core development team.
Increasing the Block Size Limit
Now I will present a simple argument in favor of increasing the block size. So presuming that our ideology is to increase adoption while maximizing decentralization and financial freedom. While also presuming increased adoption over a period of several years.
To put it simply, if we do not increase the block size it will be more expensive and less people will be able to use it, that is to transact on the main chain directly.
However if we increase the block size then it will be less expensive and more people will be able to use it. Even if full nodes will only be able to be hosted on powerful computers with high bandwidth connections. Considering that these would be the most likely outcomes with increased adoption, to me it seems clear that increasing the block size would lead to more decentralization as a whole compared to keeping the restriction in place.
One of the first things I would like to address is the claim that increasing the block size would lead to increased mining centralization. I do not think that increasing the block size would lead to increased centralization not at least to the point that would justify resorting to being “forced” to use third party payment processors instead of being able to practically transact on the Bitcoin blockchain directly. Since that would represent a much greater loss of decentralization compared to just increasing the block size. The reason why I do not think that bigger blocks would lead to increased mining centralization is because miners do not run full nodes, the pools do. Which is why we can see this as a type of free market of pools, or a form of representative democracy. The difference being is that I can switch my miners over to another pool within seconds, effectively changing my vote. It is important to remember that Pools are most often entirely different entities then the miners themselves, not including some of the larger industrial mines, however as long as they are in competition with each other they can still contribute to decentralization. It is the miners that decide, not the pool operators, the pools serve the miners. Miners are incentivized not to undermine the value of the network they protect. I do not think that the people that benefit from Bitcoin would attempt to undermine it, not because I trust them but because of how peoples incentives are aligned and how this relates to game theory. The same is true to a certain extend for the people that run full nodes.
Another problem relating to mining centralization is block propagation, however again this is not a problem for the miners since it is the pools that run the full nodes, which are being run using powerful computers and high bandwidth connections anyway, or can easily be moved to locations where they have these advantages in terms of block propagation. Since miners can freely choose where to point their hash power, it would therefore still be possible to have a diversity of pools like we have today if we increased the block size.
In terms of a selfish miner attack this relationship between the miner and the pools have the same effect. The miners will not allow a pool to become so large so that it would undermine the security and therefore the value proposition of Bitcoin, this has worked so far, and if we look at the hash rate distribution of the pools today it has actually become more decentralized over the last six months, compared to what it was like before.
I do realize that mining centralization has increased over the years, but this to a certain extend is to be expected because of economies of scale. The consequences of which I think we should accept, since it has been proven to work. Furthermore to think that all miners should be able to run their own full nodes for the purposes of mining is unrealistic, since it would require a mining operation on an industrial scale to even consider running your own pool. At which point running a full node in a data center would be trivial in comparison to the cost that such an operation would require in the first place. Mining within Bitcoin is a self balancing system and it works, to think that small miners should be able to feasibly solo mine again is already so far removed from the reality today that to go back and rewind the clock so to speak and to go back to how mining used to be, would be to radical of a change to even attempt to enforce. Furthermore since just leaving the block size where it is now does not alleviate this problem and increasing it would not significantly change the situation either. It is therefore not a good argument for why we should not increase the block size.
Neutrality is Impossible
It is important to remember that if you run a full node or if you are a miner, you have to vote, you literally can not do these things without casting a vote to either side, therefore it is impossible to be neutral if you either mining or running a full node. Since I do think that the block size limit should be increased, and right now I have to choose between Core or BIP101, I choose BIP101, even if it a choice between the lesser of two evils. This is a case of political realism. In political thought the lesser of two evils is often the pragmatic reality we have to accept in order to even justify the existence of the state, and we should not think that 90% consensus is practical considering how democracies actually and practically function.
That is why I am in favor of BIP101 and by extension Bitcoin XT since XT is just the Core client with BIP101 added to it, which is a proposal that exist within the Core client along side other proposals to increase the block size. Which however can not be implemented in the Core client itself because of internal disagreements within the Core development team. I do not think that Core will increase the block size unless there is a hard fork initiated by another client. Because there is a fundamental disagreement within the Core development team itself that cannot be resolved. This has led to a stalemate in the decision making process within Bitcoin Core. Since the Core developers can effectively veto each other on decisions.
This fundamental disagreement lies in that some of the of the Core developers do not want the block size to be increased. Because some of the Core developers like Peter Todd think that the Bitcoin blockchain can not scale efficiently and that therefore we should not try and make it scale directly at all at this time. I think that this is a case of the nirvana fallacy, since just because we can not scale Bitcoin efficiently it does mean we should not scale Bitcoin directly at all. From a purely technical and engineering perspective Peter Todd and some of his colleagues might be correct. However from a political and economics perspective increasing the block size now does make a huge difference in terms of adoption and the survival of Bitcoin in the long term.
Third Party Payment Processors
Some of these Core developers however believe that instead we should use third party payment processors on top of the Bitcoin blockchain instead of most people being able to use the main chain directly. They want to restrict the block size so that a fee market can develop, and so that it “incentivize” the market to come up with other solutions like side chains, lighting network and other off chain solutions like Coinbase.
I would like to point out here that I do like the lighting network and I do think it should be implemented, however I do not think people should be “forced” to used it because of an arbitrary restriction in the block size that will make transacting on the main chain prohibitively expensive for most people. Essentially turning Bitcoin into a clearing house for banks, large corporations and payment processors.
It would be better if everyone could use the Bitcoin blockchain directly and have the same level of transparency and security as the clearing houses. It would be better to keep the network as inclusive and inexpensive as possible from the users perspective since it is more important to increase adoption first, this would help Bitcoins survival into the future. I do think however that there should be a block size limit and a fee market should develop in the future, but I do not think that time is now, since the block reward is still high and adoption is still relatively low. Furthermore we need higher transaction volume in order to pay the miners far into the future as well. I do not think that confining Bitcoin to the role of a clearing house, would necessarily provide enough incentive for mining far into the future if we want Bitcoin to be the largest and therefore the most secure proof of work blockchain.
Why the Urgency?
You might ask why the urgency? Well what concerns me is that if we did have a spike in adoption possibly after some global event, then the network would become overloaded. the consequences of this would seriously hamper adoption and public perception. Some transaction might take days to be confirmed and other transactions might not be confirmed at all depending on the fee. It would however be difficult to determine how much of a fee you would actually need to get your transaction processed. This would essentially render transactions on the Bitcoin network unreliable, this would not be a good user experience, especially for people that are new to Bitcoin. It would also be much more problematic if we attempted to do a hard fork at short notice when this does become a problem since that would lead to a situation that would be much more chaotic and confusing to most people which, when attempting to do a hard fork would not be a good thing. It is better to have as much time as possible to prepare for a hard fork, which makes it more likely that we will be able to reach consensus before these types of problems start to occur.
Maybe we must split, maybe that is one of the lessons we should learn from this experiment. I hope that is not the case but it might be how this will have to play out. There is certainly disagreement within the Core development team that is fundamental enough to justify this. It is however the economic majority that can and should decide what path to take. This is the mechanism that serves as a check against the possibility of centralization of power within a development team. Since the choice between Core and BIP101 represent two very different potential futures for bitcoin with a very different underlying vision. I hope to allow people to see that increasing the block size is more likely to lead to increased adoption while maximizing decentralization and financial freedom compared to leaving the restriction in place.
Original Vision of Bitcoin
It is worth pointing out at this point, that the original vision of bitcoin by Satoshi Nakamoto himself was that we should have big blocks. I will now quote Satoshi Nakamoto, he said:
“The eventual solution will be to not care how big it gets.” “But for now, while it’s still small, it’s nice to keep it small so new users can get going faster. When I eventually implement client-only mode, that won’t matter much anymore.” “The current system where every user is a network node is not the intended configuration for large scale. That would be like every Usenet user runs their own NNTP server. The design supports letting users just be users.”
So to support bigger blocks is more in line with the original vision of Bitcoin. You could argue that Bitcoin should stay true to its original vision, since not increasing the block size can be seen as breaking the social contract to a certain extend. Since it would change the underlying vision and promise of what Bitcoin should become. To leave the blocksize where it is now is therefore a radical change in another direction, and wanting to increase the blocksize can be considered the more conservative position. Even though it might not seem this way to many people.
Centralization of Power
This is because the status quo so to speak is opposed to the increase. This actually highlights part of the problem, to think that the status quo should in terms of development carry so much weight in terms of the importance of their opinions is to a certain extend in conflict with Bitcoins decentralized nature. There should not be a “official” client, there should be many competing clients, this is of political necessity, since as I have pointed out before such thinking leads to a centralization of power within the Core development team. Bitcoin can not and should not be divorced from already previously existing political theory. These are fundamental questions of who is in charge of Bitcoin, and how do we, and how should we reach consensus decisions. This question is as important as the block size debate itself, this question is more political in nature then it is technical, which is why I think we need to compromise some of our technical ideals in favor of political goals.
A Third Option
If there was a third option that would represent a compromise between these two extreme positions, I would support that instead. However the reality is that right now we only have these two choices.
However a third option could represent the synthesis of a Hegelian dialectic which is a philosophical method used to find solutions or truths. Core would represents the thesis, XT would therefore represents the antithesis. From these two opposing positions the hypothetical third option would represent the synthesis of these ideas, which could possibly be a better solution for the evolution of Bitcoin.
The Freedom of Choice
I do think that Bitcoin will solve many problems in the world, but it will also introduce new ones. To think that Bitcoin is perfect is unrealistic, however by adopting Bitcoin in our lives we do more good in the world in comparison to the alternative. Cryptocurrency has given us the choice, this underlying philosophy of volunteerism is important, which is in part why I think we should embrace alternative implementations of the Bitcoin Core client and allow the free market and the economic majority to decide.
Everyone should remember that it does not matter who you like more or even what you think of these people or what their motivations are. What matters is what is in the code itself. This is a crossroads in history and I hope that collectively we will make the right decision. So think carefully and please be rational, use reason and decide for your self what kind of a Bitcoin you want.
Regardless of what you believe I do hope that this plays out in such a way that we all end up being on the same side of the fork, that would be a good outcome in my opinion.