14

While poking through my Geth logs I noticed that block 1,000,006 doesn't actually contain any transactions. Why is that?

Richard Horrocks
  • 37,835
  • 13
  • 87
  • 144

1 Answers1

7

Some possible reasons:

  1. No one sent a transaction during that timeframe.
  2. Someone was mining and found a solution before it received any transactions to include in the block. And this solution was picked up by other miners who mined on top of it.

Just like Bitcoin, there is no rule in the Ethereum protocol that miners have to include transactions: there is only an incentive for them to do so, via transaction fees.

A difference with Bitcoin, is that Ethereum has no coinbase transactions. The miner does get paid, but it isn't a transaction.

eth
  • 85,679
  • 53
  • 285
  • 406
  • 1
    thanks for the answer. But it's still not clear to me: how someone found a solution... when there is not block generated? Do you mean the miners just create empty blocks and timestamp them and then try to find the solution? So, after that, if still, no one sends a transaction, they create other blocks. Since some time has passed, time is different, then the solution would be different and so forth? Thanks! – Aydin Oct 18 '17 at 18:49
  • 1
    @AdrianAd That's right! – eth Oct 20 '17 at 05:08
  • 1
    You are missing the most common reasons, First one is, the miners see the possible profit of including transactions smaller than the opportunity cost of becoming an uncle block during propagation. Second one is attacking the network, to increase price, slow it down. And third one, during forks, miners can do this to ensure that their block will be valid on both chains, in case that some transactions risk failure to some people, that way at least they get the mining subsidy (mining reward given by network not gas) – Enrique Alcazar Nov 20 '18 at 13:18
  • @EnriqueAlcazar Upvoted, thanks, and feel free to add an answer (we strive to have best answers and sometimes our community is shy about adding new answers that may be more thorough and "better"). – eth Jan 03 '19 at 13:25
  • I'm just completing your answer, you wrote it first so you deserve more credit :) – Enrique Alcazar Jan 04 '19 at 15:09
  • This answer suggests a lack of transactions as the primary cause of the phenomenon, but it's happening in 2021, when there are too many transactions, so warrants an alternate explanation. Presumably the gain from being on the main chain versus being an uncle is so enticing that smarter mining pools will purposefully do this to get the jump on other pools by creating forks and building on them faster. Once one pool starts doing this, the others will have to follow. There is of course a tradeoff in opportunity cost here which they have to judge. – Chan-Ho Suh Apr 23 '21 at 00:00
  • @Chan-HoSuh You made me check and I found https://etherscan.io/block/12353976 You might be right but it looks like the next block was mined by a different miner? Unless Nanopool and MiningPoolHub are same family. – eth May 02 '21 at 10:00