Miners can fill their blocks with transactions paying very high fees at no cost because they get the fees back to themselves. They can do this for different purposes, like trying to increase the recommended fee. Here I propose a backwards-compatible solution to this problem.
The solution would be to reward the fees of the current block to the miner of the next block (or X blocks after the current one). That way, if a miner floods its own block with very high fee transactions, those fees are no longer given back to itself, but to the miner of future blocks which could potentially be anyone. Flooding blocks with fake txs is now discouraged. However, filling blocks with real transactions paying real fees is still encouraged because you could be the one to mine the block that would claim this reward.
The way to implement this in a backwards-compatible fashion would be to enforce miners to set an anyone-can-spend output in the coinbase transaction of the block (by adding this as a rule for verifying new blocks). The miner of 100 blocks after the current one can add a secondary transaction spending this block's anyone-can-spend coinbase transaction (due to the coinbase needing 100 blocks to mature) and thus claiming the funds. This way, the block reward of a block X is always transferred to the miner of block X+100.
Implementing this would require a soft-fork. Since that secondary transaction needs no signature whatsoever, the overhead caused by that extra transaction is negligible.
Possible Downside: When the fork is activated, the miners won’t get any reward for mining blocks for a period of 100 blocks. They could choose to power off the mining equipment for maintenance or to save power over that period, so the hashrate could drop temporarily. However, if the hashrate drops too much, blocks would take much longer to mine, and miners wouldn’t want that either since they want to go through those 100 reward-less blocks as soon as possible so they can start getting rewards from mining again.
_______________________________________________
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin- dev