Different Versions Of Bitcoin
There has been a lot of talk about Bitcoin in the news recently and it has been mentioned several times that Bitcoin as a whole is having a debate on several points. One of these points you may have heard about is the block size debate. There are several competing theories on how this issue should be resolved. How does one go about deciding? How would one let others know what they’ve decided? The answer lies in the knowledge that there is not just one Bitcoin, there are several. In this article we’re going to look at how this is possible, the different versions, and what each one proposes to solve.
The first question is always “How can there be different versions of Bitcoin and do I have to buy bitcoin from all of them?” The short answer is that “They all work together and no.” Bitcoin is a protocol. It’s like email. You don’t have to have an email address at every service in order to speak with all your friends. The key thing that makes this possible is that all the services agree to certain parts of SMTP, the protocol at the center of email, so everyone can communicate. In much the same way, the different versions of Bitcoin agree to keep the status quo until a different version exceeds a certain threshold, at which time that version’s rules will become the new status quo. This is called a fork.
The Bitcoin community is split over a few key points that affect how Bitcoin works but the one that most have heard about is the block size. Basically, every transaction is a bunch of data. Since every transaction is recorded all this data is recorded in a block. The more transactions that are made the more data is in a block. The more data is in a block the larger the blocks get.
When Bitcoin was first created it had no block size limit. This would be great in an ideal world, but people quickly found issues cropping up like spam transactions and blockchain propagation issues. A limit was put in place so that only a certain amount of data could be in each block. This limit, according to Satoshi Nakamoto, was supposed to be a temporary fix and removed once “thin wallets”, wallets that do not download a complete copy of the blockchain, were created.
As Bitcoin popularity has grown and there are increased amounts of transactions blocks are rapidly growing in size. If there are more transactions than will fit in a block the miners get to decide which transactions get included in a block and the rest will wait for the next block. The way to get a transaction accepted faster is to add a larger fee. This is the reason many believe that the fight to hold blocks to a limit is to increase fees due to the continual reduction in the size of the block reward.
Some say that the easiest solution would be to simply increase the block size limit while others say that this would lead to network and storage issues resulting in a revolution by miners and node operators in areas with poor Internet connections. Some say that reducing the size of the data in blocks would fix the issue without a revolt, but many say that the proposed solutions are overly complicated which will take too long to implement and deploy. Still others say that Bitcoin should have no limits, that the network will work it out, and storage will not be a problem because technology is advancing so rapidly.
As in any debate, there is name calling, mudslinging, sabotage tactics, and every manner of FUD (Fear, Uncertainty, and Doubt) being thrown around. I’m not going to get involved in that here, so don’t look for me to tell you which side you should choose. What I will do is introduce you to the four leading versions of Bitcoin, their main goals, and point you to where you can find more information about them. I will also note that, if you decide to choose a team and represent them by running a full node, look for an upcoming tutorial in which I will explain how to build and start running your own Bitcoin node.
Bitcoin Core was not the first, but it is a direct descendant of the software developed by Satoshi Nakamoto. Bitcoin Core was, for a long time, the only choice out there. Some say that, despite all the issues and controversy, Bitcoin Core is still the best choice. If we go by the numbers, Bitcoin Core represents nearly 82% of the node count. But the reason the other versions exist is because the developers of Bitcoin Core are refusing to implement a block size increase, choosing to stick to the 1 MB limit put in place by Satoshi Nakamoto. They are instead focusing on other solutions like the Lightning Network and Segregated Witness. There are many who believe these solutions are vaporware, unlikely to help even if they do exist, and just a tactic to increase transaction fees in Bitcoin.
On a side note, it is important to note that this is the root of the name when you hear someone refer to the “Core Developers”. It does not mean the people referred to as Core Developers are the central developers of Bitcoin. They are the Developers working on the software known as Bitcoin Core.
Bitcoin Classic is currently in second place when it comes to node count with roughly 13% of node operators choosing this version. This count is down sharply from the roughly 24% they held recently. Bitcoin Classic wants an immediate increase of the block size limit to 2 MB. Once this is complete they want to implement future changes, but they have a strict idea in mind. Their statement is that they are going back to the Bitcoin that was originally Satoshi’s whitepaper and vision. They’ve also proposed that any future changes, whether block size or anything else, should be voted on by users and developers alike.
Bitcoin XT represents less than 2% of the node count. Like Classic, they want to increase the block size limit to 2 MB at a date which has already passed, which makes it immediate at this point. However, they want node operators to be able to set their upload and download limits. This would allow for larger blocks without everyone having to share past a certain limit. Think of ratios on BitTorrent clients. Bitcoin XT also promotes block code reductions called Thin Blocks. I think the simplest way to explain this is that it pre-fetches data and waits for the envelope in which to package it. This reduces block size by up to 85% and reduces the amount of bandwidth as well. Outside of this, Bitcoin XT has implemented security features designed to keep nodes online and safe from DDOS attacks. Unfortunately there are haters on the Internet and this became necessary.
Bitcoin Unlimited represents roughly the same amount of nodes as Bitcoin XT, which is less than 2%. Bitcoin Unlimited wants to remove a block size hard limit from the software completely and replace it with an option in the software so that node operators can set the size of blocks they’re willing to download and record.
It is important to note that node count does not make the decision in this debate. In Bitcoin, the miners hold the power with their hash rate. No matter what size blocks the node operators vote on the miners can choose to stick to mining smaller blocks. At this point the miners have chosen to do just this and are choosing Bitcoin Core at roughly 94% of the hashing power. The node operators do have power in showing miners what they will accept, however. If the miners want to hash larger blocks and the node operators show that they will accept larger blocks the rules can change. In the future we may see another debate in which node operators want to force the issue by refusing blocks under a certain size, but this is unlikely any time soon. Bitcoin would need to be much more popular to even consider this.
I’d like to point out that this debate will not destroy Bitcoin. It will go through changes, sure. The changes may bring about rough times. There may be delays in transaction delivery. There may be price fluctuations. The choice Bitcoin first goes with may be a disaster and another change may have to be made. There may be other unforeseen consequences. But Bitcoin will come through it stronger for the challenge. What I encourage everyone to do is to get involved in the debate. Educate yourselves further, pick a side, run a node, and let the Bitcoin network know where your research points you. And if you really want to get involved, do what I said earlier not to do… start mining, even at a loss, and mine blocks for a pool representing your chosen version.