Block Size Limit is NOT Required to Sustain Miner Reward Incentives
In the Bitcoin protocol, only 21 Million Bitcoin will ever be created because the reward for mining blocks halves every 210,000 blocks. This reduction of miner incentives has some worried that if block space isn’t artificially limited, then when the block reward is too small a race to the bottom will occur as miners clear out the mempool of all available transactions in order to claim the maximum amount of fees.
This analysis does not however reflect the true power that miners collectively have over the block reward. Even without a block size limit, miners can enforce any fee or mempool based validations they can agree upon. Using a mechanism similar to how hashing difficulty is set, miners can vote using something like bit-4 signaling for what the minimum fee that must be paid by a transaction is. If any block is mined which includes a transaction that has a fee paid less than the required minimum, then much like a block mined with not enough proof of work, the other miners will ignore that block. It can even be tier based and require quotas that must be filled for amounts of fees.
These types of validation rules require no updates to any nodes besides the mining validations since they are the ones building the blocks, and all other fully validating nodes see these blocks as valid. The only side effect might be that the nodes see more blocks as orphaned rather than invalid. It’s even technically a soft fork since these validations are additive.
This amounts to a cartel. Cartels generally fail because it’s easy to covertly cheat, but Bitcoin solved that problem with validation rules, a public ledger, and hash power.
That’s it. This is probably the easiest problem in Bitcoin to solve, and yet it’s a major reason why some “Thought Leaders” in the block size debate think technical debt in the form of a block size limit should remain hard-coded into the protocol. Instead, make the block size limit a function of variable fee limits rather than making fees a function of a hard-coded block size limit. There’s an optimal fee to work ratio, and you can guarantee it isn’t determined by 1 MB because it fluctuates.
I don’t know what to say. When I was first confronted by this argument, I spit-balled a solution that approximated this. Then I actually had the time to put thought into one. Why hasn’t anybody else? This solution feels so obvious I must be plagiarizing it.