There is a hefty debate going on behind the scenes on whether or not the Bitcoin block size should be changed, and if so, to what size. Not only will this decision affect individual users, but also Bitcoin companies, service providers and mining pools. And what about Bitcoin Nodes on the network? Block pruning may be the answer to all of these questions, even though there are still disadvantages to this proposal.
Bitcoin Network Block Pruning – What, Why and When?
Digital currency enthusiasts who have been reading the latest Bitcoin Core client release patch notes may have noticed the term “block pruning” being tossed around quite a few times. The objective of block pruning is fairly simple to explain, and it brings both advantages and disadvantages to the table.
The current Bitcoin network block size limit of 1MB is no longer sufficient to pack in all of the transactions being broadcasted to the network. Due to this, some transactions will have to wait until the next network block before they can be included for confirmations. As a result, certain Bitcoin transactions can take up to a few hours to receive six confirmations, whereas other transactions will take 60 minutes or less.
Increasing the block time on the Bitcoin network is not a viable solution to this problem. Satoshi Nakamoto intended for blocks to be roughly 10 minutes apart, leading to the final Bitcoins being actively mined by 2140. There is no reason changing the network block time should be altered in any way, especially not in regards to this issue.
Increasing the block size limit is the only viable option, even though it would require a fork of the Bitcoin network in order to accomplish that goal. In doing so, Bitcoin Core developers are setting up the Bitcoin network to process a higher volume of transactions within the pre-determined timeframe. This is a most valuable change as Bitcoin gains more adoption and acceptance.
However, an increase in block size is not something everyone is in favor of. Especially in China, where internet bandwidth is far different from the Western world, bigger blocks mean higher interest costs. Chinese Bitcoin mining pools fear the internet infrastructure in their country would not be able to handle an increased block size properly, which would mean the Bitcoin network could lose up to 60% of its mining power.
As a result of this resistance, the block size debacle has forced Bitcoin Core developers to look at alternative options as well. There is no doubt the block size will increase in the near future, as there is no way to avoid that change. However, there is an option put in place by the Bitcoin Core developers to allow for a less “resource intensive” Bitcoin client.
Block pruning could be the answer to the growing concern of the overall bitcoin blockchain. At the time of publication, the Bitcoin blockchain is nearly 40GB in size, and contains all transactions from the day Bitcoin was created up until a few minutes ago. And every 10 minutes, that size grows larger and larger. With the block size increasing, the total storage capacity needed for the Bitcoin blockchain would only keep increasing.
It is important to note that, even though block pruning technically means a user would only need to keep the last 550 blocks stored on their device to validate transactions, it is not a final solution to this problem. Before a user can start to prune the Bitcoin blockchain, they will still need to download the entire transaction history up to that point, after which the reduction in storage can begin.
At the current block size of 1mb per block, block pruning would take up 550MB of hard disk space, compared to 40GB and counting. Doing so would make older hard drives, or even SD cards and usb sticks a potential viable alternative to store the blockchain. And even if the block size will be increased, it will take a while until we reach 40GB of data with block pruning.
Who Should Take Advantage Of This Feature?
The major question is: who should take advantage of block pruning, and who should not? Individual users who do not operate a Bitcoin service or mining pool can use either the regular Bitcoin blockchain, or choose to prune their blocks. For them, the end result will be the same, albeit the storage requirements will go down tremendously.
Mining pool owners on the other hand may not want to adopt the block pruning option at all. Granted, with 550 blocks of history, it should be possible to validate newly mined blocks on the network without too much trouble. However, it might be in their best interest to keep the blockchain stored in its entirety as a failsafe as well.
With the recent issue surrounding invalid Bitcoin block validation, 550 blocks is not exactly a major buffer to prevent a potential Bitcoin fork. And if the majority of mining pools end up on on a fork of the network for a lengthy period of time, all hell will break loose. Granted, that issue affecting invalid block confirmations has been rectified in a swift manner, but invalid blocks were being generated at an alarming rate for a lengthy period of time.
Companies providing a Bitcoin service are a different matter entirely. Any financial platforms should stick to the full blockchain at all times, no matter what. Other companies, such as the ones providing API access for example, can use block pruning to their advantage, while keeping a copy of the entire blockchain running simultaneously to see which option can handle the user’s requests better.
Last but not last, there are the Bitcoin Nodes. Every Bitcoin Node, which currently runs the Bitcoin Core client and stores the blockchain in its entirety, could benefit from block pruning as well. However, not every Bitcoin Node can nor should switch from the full blockchain to the previous 550 blocks, as this would leave the door open for issues down the line.
Full Nodes and “Lite” Nodes
The main objective of a Bitcoin Node is to log transactions on the network and send the details to other nodes. As soon as a majority of Bitcoin Nodes reach consensus over whether a transaction is valid or not, it will be either accepted or rejected by the network. And that decision is then broadcasted to all other Bitcoin nodes and mining pools.
In order to strengthen the Bitcoin network, a lot of Bitcoin Nodes have to be put in place to support the increasing amount of transactions being broadcasted and relayed. But there are two different types of Bitcoin nodes: full nodes and so-called “lite” nodes. Both are equally important, but block pruning might shake things up a bit.
A “full” Bitcoin Node stores a copy of the entire Bitcoin blockchain on its storage device. Full Bitcoin Nodes are a key factor to the Bitcoin network, as they can match incoming transactions against the entire history of the blockchain, rather than just the transactions of the previous 550 blocks. Especially in the event of a double-spend, Full bitcoin Nodes can prevent these transactions from being confirmed, whereas “lite” nodes might not be able to distinguish between the first and subsequent spending of the same coins.
“Lite” Bitcoin Nodes, which only store the previous 550 blocks of data”, are a solution for people with slower internet speeds, or monthly data caps. However, in terms of security, block pruning for Bitcoin Nodes may not be the best idea. On the other hand, having to store less amount of data might bring a ton of new nodes to the Bitcoin network overall. By further decentralizing the Bitcoin network, it only becomes stronger, which would be a positive effect.
Conclusion: To Prune or Not To Prune?
It will be another six months – or longer – until block pruning comes into effect by default. In the recent Bitcoin Core client release, block pruning is available, but it is turned off by default. In future releases, this may change, giving users the option to do whatever they please. Whether or not that means you should be pruning blocks or not, is entirely up to you.
As long as not every Bitcoin user and Node on the network decides to prune blocks altogether, the network will be just fine. Gradually, we might even see additional Bitcoin Nodes appear in order to strengthen the network. But for the time being, sticking to the blockchain in all of its glory and massive size is not a bad thing.
Will you be using block pruning in the future, and why (not)? Let us know in the comments below!