Suppose that a miner for some reason has the generation transaction of their blocks not take all the possible coins. This can happen for a variety of reasons, almost all of which are bugs:
- An off-by-one error makes them think that their block should generate only 25 BTC when we’re still at 50 BTC per block
- Some bug prevents them from noticing a transaction fee; perhaps they were mining and updating the block in parallel using non-thread-safe code.
- Depending on the answer to this question, they may actually decide to do this on purpose (though I can’t think of an answer that would cause this in the vast majority of cases)
I can think of a few possible ways the network would respond, and none really seem ideal.
- The block could be rejected, just as it would be if it had too much generated.
- The block could be accepted and the extra coins available for whoever mines the next block (in which case, somebody may do this on purpose to encourage others to mine).
- The block could be accepted and the extra coins lost.
What actually happens?