Bitmain’s Bitcoin ABC Issues Block Size Scaling Details for BCH Cryptocurrency
Bitcoin ABC has decided to release a blog post on August 29th related to the block size limit debate. The article starts explaining the improvements that are now being developed in order to increase the maximum block size for Bitcoin Cash (BCH).
However, this is part of a broader intention of Bitcoin ABC to provide more information on the work that the company is doing.
On-chain scaling is Bitcoin ABC’s raison d’etre, and it is committed to increase the block size of Bitcoin Cash. But Bitcoin ABC explains that changing the block size is not just related to changing a number in the software. There are many different technical improvements that must be performed in order to handle larger blocks efficiently.
At the moment, they have two-pronged approach to scaling. The first one is to remove immediate implementation bottlenecks to increasing the block size limit. The second one is to lay the technical groundwork for massive future on-chain scaling.
What Bitcoin ABC supports is ‘Adjustable Blocksize Cap.’ That means that it is easy for any node operator to adjust the block size limit.
About it they commented:
“We are in favor of raising and eventually removing the block size limit. The miners who use our software, however, want an implementation that will work well for the blocks they produce and accept. This means that the best way we can help raise the block size limit that miners choose is by removing software bottlenecks.”
Until now, Bitcoin ABC has been working to remove all the technical limitations that have existed in the past. And they will be working in this direction.
What Did Bitcoin ABC Do?
There are different improvements that have been taken by Bitcoin ABC to delete the limitations. The first thing is related to the quadratic hashing for large transactions. The data that needs to be hashed increases linearly with transaction size. That means that the time spent hashing would grow quadratically for transactions with several inputs.
The problem related to it was solved in Bitcoin Cash with the BIP-143.
Another important improvement made by Bitcoin ABC was able to fix compact blocks indexes. The limitation was fixed by changing the indexes to 32-bit integers.
Compact Blocks indexes relied on 16-bit integers throughout the code. This does not work when there are over 65536 transactions in a block. The problem would appear with blocks larger than 8 MB.
The P2P communication protocol between nodes that limited messages sized to 32 MB has been removed in Bitcoin Unlimited and Bitcoin ABC 0.17.0.
But there are some future steps that must be done in order to keep improving on-chain scalability.
The interface used by miners is not currently efficient with the current 32 MB limit, and in the future it will be even more pronounced. But there is much work n this area. Bitcoin ABC is working in order to refactoring RPC system and allow dependency passing.
This would enable the implementation of mining interfaces that would handle much larger blocks than currently possible. In order to do so, Bitcoin ABC is working with miners and mining pools.
Additionally, mempool acceptance is starting to have difficulties to keep around 100 transactions per second. It is very important to delete this limitation parallelizing the mempool admission code.
In the long term there are other important things to do. The goal is to lay the groundwork for massive scaling. This is why it is important to build scalable data structures.
Bitcoin ABC explained about the future:
“Bitcoin ABC is committed to enabling increases in the block size limit by making the software capable of handling larger blocks, now and far into the future.”
It is easy to change a number, but there is a very hard work behind that must be accomplished.