5

Just for my own educational purposes, I'm writing something that verifies the blocks on the blockchain. I had in my code this line:

assert coinbase_amount == block_reward + total_tip

And it succeeded until it hit block 124724, at which point it said coinbase_amount was 49.99999999 BTC and that the block_reward + total_tip was 50.01 BTC. (So, it complained that 49.99999999 != 50.01)

I guess if that's true, it's fine, since the miner I guess just dropped .01000001 on the floor. I'm just wondering if I'm interpreting that block right. (And how often does this happen?? And why??)

Thanks!

1 Answer 1

6

assert coinbase_amount == block_reward + total_tip

That's not correct. The actual consensus rule would be coinbase_amount <= block_reward + total_tip (in other words: miners are allowed to burn funds).

I guess if that's true, it's fine, since the miner I guess just dropped .01000001 on the floor.

Correct.

I'm just wondering if I'm interpreting that block right.

Indeed, that's exactly what happened.

And how often does this happen?? And why??

Due to buggy miner software, generally. The case in block 124724 was later explained by its presumed author (see this post), though there are around 1000 other instances later, collectively burning around 19 BTC. I have some more information about these and other cases of burnt coins in this post.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.