Post
Topic
Board Development & Technical Discussion
Re: mining empty blocks
by
ranochigo
on 01/07/2019, 10:39:42 UTC
I've always understood that you can't check if block N txs are valid without seeing block N first... and you still need to validate N if you want to include txs in N+1, and that is why they don't include them, and solve it and add asap. I think the difference is minuscule but enough for an advantage. Perhaps that advantage is negligible today?
That's true. You still need to parse the transaction to compare them to your own mempool. The idea is that the miner mines an empty block while validating the new block simultaneously.

SPV mining was fairly common in the past and that is also what caused the fork in 2015[1]. Miners would connect to each other's pool and obtain the hash of the newly generated block. Since they don't have the full block yet, they would only construct an empty block with the coinbase transaction so as to avoid mining an invalid block. It has caused quite a few problems and it was a fairly controversial issue at that time.

No matter what happens, the overheads with the propagation of blocks still exist. Even with the much faster internet speeds and the improved verification of blocks, miners would still waste some time trying to validate it. Since it wouldn't actually be that much of a hassle to implement SPV mining, miners would still do it.

[1] https://bitcoin.org/en/alert/2015-07-04-spv-mining