Given the growing popularity of the Bitcoin Unlimited project, we have decided to create a guide that seeks to provide a basic notion of what Bitcoin Unlimited is and why it was created. To learn more, be sure to visit the official website.
Remember to always examine all sides of any argument, especially the Bitcoin block size debate in which there are many opinions and arguments for and against an immidiate block size limit increase. Examine all options available like Segwit activation, Bitcoin Classic, 8MB Blocks and others.
As a company, CryptoCompare has yet to take a stance on this issue. However, as individuals, our opinions on this subject vary. One thing we can all agree on, however, is that we want to see Bitcoin turn into a widely used mainstream payment system, something that is not possible with the current rules.
What is the Block Size
As you most likely know, Bitcoin is a blockchain-based cryptocurrency. All the transactions that take place within the network are recorded on this blockchain, a public ledger that can be seen by anyone but tampered with by no one. This ledger is made up of blocks that fit together (hence the name, blockchain).
When a user makes a transaction, said transaction is included in the block that is being mined at the time, and will later be confirmed by the blocks that follow it. The more blocks there are on top of your transaction, the safer it is to assume it is immutable.
Transactions, at its most basic level, are made up of data which is usually comprised of the information regarding the transaction itself, the value, who sent it and who’ll receive it. This data, like any other, takes up space on the block it is included.
Currently, each block on the Bitcoin blockchain is able to contain 1mb of data, meaning that the block size of bitcoin is 1 megabyte. This means that there is a limit to how many transactions can fit in Bitcoin's blocks, according to the data contained in said transactions.
The blocksize limit has been put in place to prevent a series of attacks that were once possible due to an unlimited block size.
Bitcoin Block Size Issue
If you've been in crypto for a while, you've heard of the the everlasting debate that surrounds the block size issue. This debate has plagued the community for years and it has pretty much torn it apart into two groups: Those in favor of a blocksize increase and those against it. The block size issue is much more than just a curiosity or technicality and it could indeed define the future of Bitcoin as a mainstream currency.
In Bitcoin, there are multiple developer teams that work on advancing what they believe to be the best vision for Bitcoin’s future. These teams create clients (wallets) that can be used to signal a vote regarding several issues and proposals, like the segwit proposal or a block size increase hard-fork.
Currently, the most popular of these clients is, without a doubt, Bitcoin Core. However, other teams are working to push their vision of a better Bitcoin and among these is also Bitcoin Unlimited. While Bitcoin Core is the most popular client, miners have been signaling their approval for Bitcoin Unlimited and it has grown in popularity beyond that of SegWit.
The Bitcoin Unlimited client (wallet) is used to signal support for the activation of the "Emergent Consensus" protocol which is designed to allow a dynamic block size, by taking advantage of Bitcoin's existing consensus mechanism (commonly called Nakamoto Consensus). Nodes can indicate a preference on the block size issue, and direct their node to only relay blocks below their preferred size, thus hampering the distribution of larger blocks across the network. This gives a “voice” to all participants of the network and not just miner
This system allows users to choose the maximum block size they want to accept as valid. However, there is a user-configurable failsafe mechanism that allows users to accept a block larger than the limit they have previously set if the number of blocks above this limit reaches a certain number. This system ensures that no users are accidentally left behind.
In the BU system, node operators can choose the blocksize limit they vote on by modifying their client via a GUI menu and miners choose to increase or decrease the blocksize according to what nodes are voting on. This would, in theory, create a system where Bitcoin scales according to the space needed to accommodate the transactions in the network which is prone to keep growing like Bitcoin’s popularity and user base. As Satoshi Nakamoto once said:
“In a few decades when the reward gets too small, the transaction fee will become the main compensation for nodes. I'm sure that in 20 years there will either be very large transaction volume or no volume.”
It works as this:
Nodes can signal the block size that they are willing to accept, be it higher or lower than the current one at the time. This setting is called Excessive Block Size (EB) and can be configured by nodes via their BU client. Miners will then, according to the nodes’ signals, increase (or decrease) the block size limit to satisfy the nodes’ requests. This setting is called Maximum Generation Size (MG) and can be configured by miners.
In order to avoid the EB setting being too low for some nodes, causing a chain split (fork), BU has a built-in user-configurable failsafe mechanism, which we previously mentioned. This allows users to accept blocks that are above this limit if they reach a certain number. This setting is called Excessive Acceptance Depth (AD).
Bitcoin Unlimited will be activated when the majority of the miners signal their approval. The fact that a simple the majority of miners can dictate the longest chain (and that the longest chain "wins") is the fundamental truth of Bitcoin's "Nakamoto Consensus" mechanism. Bitcoin Unlimited recognizes this. Although you may have heard that Segregated Witness (SW) activates at a 95% vote, this activation level is simply a convention. The truth is that if 51% of the miners wanted a change, they could simply mine only the changed blocks, and reject all unchanged blocks. Since 51% is the majority of the miners, the changed chain would be the longest, and therefore the "winner".
Even more problematic, a majority vote does not guarantee activation. Miners could be lying in their vote, and refuse to activate the change when the time comes, or revert it after a few blocks. This strategy, incidentally is devastating for Segregated Witness since it would allow the miners to steal all the coins that have been spent as SW transactions. So these higher layer activation protocols fundamentally rely on the honesty of majority of the participants. This makes sense. Voting on an activation point is a faulty solution to the same "distributed consensus" problem that plagued researchers for years until Bitcoin's elegant solution was created.
This consensus issue is why Bitcoin Unlimited's activation mechanism ensures that no Bitcoin Unlimited users are accidentally left behind when activation occurs. However, it is clearly advantageous for activation to happen when a large majority of miners and ecosystem participants agree to it. Since Bitcoin Unlimited recognizes that all the "higher layer" activation schemes rely on trust, they simply choose to trust. They trust that miners and other ecosystem participants are intensely interested in Bitcoin's success, and so it is expected that they will communicate together to schedule activation when appropriate. Simulations show that an approval rate of 75% would result in a very smooth transition, but activation at 2/3rds approval is also possible.