Consensus based block size retargeting algorithm (draft)



Summary:

The BIP (Bitcoin Improvement Proposal) XX is a proposal for the consensus-based block size retargeting algorithm by BtcDrak. The motivation behind this proposal is to address the belief that Bitcoin cannot easily respond to raising the block size limit if its popularity suddenly increases due to mass adoption. In addition, predetermined block size increases are problematic because they attempt to predict the future, and if too large could have unintended consequences such as damaging the possibility for a fee market to develop as block subsidy decreases substantially over the next 9 years. Dynamic block size adjustments also suffer from the potential to be gamed by larger hash power. Free voting, as suggested by BIP100, allows miners to sell their votes out of band at no risk, and enables the sponsor to manipulate the block size. It provides a cost-free method for larger pools to vote in ways to manipulate the block size so as to disadvantage or attack smaller pools.There are three major problems with this proposal. Firstly, the tragedy of the commons occurs where some miners have to sacrifice their income to increase the block size, and all miners will share the beneficial outcome of the increase. All miners would like to be free riders. Secondly, promoting the formation of a mining cartel is necessary for miners to make sure that their vote for increase is supported by at least 50% of miners, or they will lose income for nothing. Thirdly, an imbalance of power exists where it is costly to increase the size while totally free to decrease the size. By introducing a cost to increase the block size, the mining community will collude to increase it only when there is a clear necessity and reduce it when unnecessary. Larger miners cannot force their wishes so easily because not only will they have to pay extra a difficulty target, but they can be downvoted at no cost by the objecting hash power. Using difficulty as a penalty is better than a fixed cost in bitcoins because it is less predictable. The proposed algorithm states that the initial block size limit shall be 1MB. Each time a miner creates a block, they may vote to increase or decrease the block size by a maximum of 10% of the current block size limit. These votes will be used to recalculate the new block size limit every 2016 blocks. Votes are cast using the block's coinbase field, and the first four bytes of the coinbase field shall be repurposed for voting as an unsigned long integer which will be the block size in bytes. If a miner votes for an increase, the block hash must meet a difficulty target which is proportionally larger than the standard difficulty target based on the percentage increase they voted for. Votes proposing decreasing the block size limit do not need to meet a higher difficulty target. Miners can vote for no change by voting for the current block size. For blocks to be valid, the blockhash must meet the required difficulty target for the vote; otherwise, the block is invalid and will be rejected. Every 2016 blocks, the block size limit will be recalculated by the median of all votes in the last 2016 blocks. This will redefine the block size limit for the next 2016 blocks. Blocks that are larger than the calculated base block size limit are invalid and will be rejected. The base block size limit may not reduce below 1MB.


Updated on: 2023-06-10T20:56:01.139408+00:00