While I was taking a look at the recent blocks, I found something weird in blocks 453714 and 453715 which are mined of size ~400kb(BW.com) and ~800kb(SlushPool) respectively.
I cannot think of any possible reason which might explain this behaviour.
- There are lots of pending transactions with fees to be mined
- PoW calculation is independent of number of transactions in block
- Overhead of creating a block and Merkle hash must be insignificant compared to PoW.
- They actually received the complete previous block and so, there is no empty block mining going on either.
What could be the reasoning of making partial blocks? Here is my theory, miners have contracts with some businesses which send their transactions exclusive to them assuming they mine the very next block, if they don't mine the very next block, they just broadcast those Tx's to the rest of world for everyone to mine it. So, miners can work with only the previous block headers and create a block out of it using the Tx's sent exclusively to them. In this case, they can sniff the header from other pool and start mining the new block without having to wait for the previous block to verify it.
Obviously, the miner would trust the business that they sent them that they don't double spend them and send them only fresh transactions. But all these things would be covered in contract details between the Pool and business.
I don't really know how much time it takes for the whole block to propagate, and if miners deliberately hold the block for a period to gain some headstart. But if this time increases their chances to mine to next block, I think they will do such a thing. Worst case, the business has to wait 10 more mins for the tx to get confirmed. In all cases, the pool will be gaining.
What do you think about it? Or is there any other rational explanation for it?
submitted by /u/sanket1729
[link] [comments]