Ethereum Mining – Reasons Behind Many Empty Blocks

block-rewardblocksmining

Within the first 4 million blocks, I found that a significant fraction of them are empty. If miners are rewarded for writing transactions, wouldn't be in their best interests to at least partially fill the block?

enter image description here

The plot was created by calling web3.eth.getBlockTransactionCount(n) and plotting an exponentially weighted moving average with a span of 5760.

Best Answer

In short: empty blocks propagate around the network more quickly than blocks that aren't empty.

If two mining nodes find the proof-of-work solution to the blocks they're mining at the same time, only one of those blocks will ultimately be accepted by the network. The other will become an uncle.

The block that is able to propagate around the network more quickly will be the one to be accepted by the community and hence the one to get the block reward.

There's clearly some game theory going on here. Under what conditions is it better to mine empty blocks and forego the transaction fees? I'm not a miner, but probably when the network is under most stress, and the blocks being submitted by other miners are fullest. That way your empty block is going to propagate much more quickly relative to the others. But I'm sure there's a balance here before you start losing out on transaction fees.

It'd be interesting to compare your graph against another showing how full the blocks are for each block number, and see if they correlate.

Related Topic