A proposal to alleviate the empty block problem

¯\_(ツ)_/¯

There could be a number of reasons.

  • After validating the previous block, mining pool operators can create an “empty” block template that only includes payment to themselves (i.e., no transactions, but a new state root), and quickly send this to workers (hashers) before starting to add transactions to their block (which, once done, will be sent to hashers). If a hasher gets lucky and finds a nonce satisfying the difficulty for this empty template, then the pool might as well propagate the block.
    • A hasher might have a networking issue and doesn’t receive an update block template, and continues mining on the empty block template.
  • Software bug(s).
  • The mining pool operator is evil and irrational and refuses to add transactions to some of their blocks, but only some.

The list goes on.

1 Like