Why Do Some Bitcoin Mining Pools Mine Empty Blocks?

Blocks on the Bitcoin blockchain have a maximum size of 1 MB.
Proof of work difficulty is calibrated so 1 block is created every
10 minutes. It is generally accepted a miner would want to maximise
the number of transactions it includes in a block as it collects
the transaction fees. Logically, with the growing popularity of
Bitcoin, the average block size is getting closer to its limit.

In this environment, it is surprising to see a number of empty
blocks being mined. An empty block is not entirely empty, it has 1
transaction : the coinbase transaction which allocates the mining
reward to the miner (12.5 bitcoins at the time of writing). It is
important to know, that empty blocks are not easier, cheaper or
quicker to mine than full blocks. The ratio of empty blocks varies
considerably from one mining pool to the other. For instance,
Bitfury, BitClub Network and Kano CKPool do not mine empty
blocks.


Percentage of empty blocks for major mining pools

Why are there empty blocks?

When a mining pool receives a new block from a competitor, it
needs to perform a few actions: download the full block, validate
its transactions and define a new block to mine on. During this –
albeit short -interval, so as not to waste hashing power, they
start mining a new block. Only the coinbase transaction is
included, so the previous block does not invalidate theirs with a
duplicate transaction.

This validationless mining (or SPV mining) phenomenon can be
seen on the
Kaiko
blockchain page

, with empty blocks being mined just after a normal block, when the
mempool is far from empty.

The number of empty blocks is dropping


Number of empty blocks for major mining pools

The share of empty blocks has fallen across the board over the
past few months, although the timing has not been quite the same
for all pools. The main theory behind this is the improvements made
in the mining software, especially Bitcoin Core 0.12, which reduces
the time between the validation of a block mined by another pool
and the mining of a new non empty block

These improvements included (but were not limited to):

  • Improvement which allowed for pre calculation of some of the
    work required for a miner to validate all the transactions in the
    block (rather than doing it at block creation time)
  • Relay Network configuration improvements which includes a
    technically simplified (and quicker) prioritisation of
    transactions to help miners decide which transactions to include
    in a block
  • Bitcoin Core GetBlockTemplate – improvement by which the
    individual miner requests the composition of the block to mine-
    optimizations. More details are available here:

    https://bitcoincore.org/en/2016/02/23/release-0.12.0/

Is it bad?

The whole point of the Bitcoin network is to process
transactions. Therefore, empty blocks are often criticised as “bad
behaviour” as creating very little value for the network by
accelerating disinflation and stealing from “honest” miners.

However, it can also be considered as counter-balancing the
centralisation tendency of the network: a pool which wins a block
can start mining the next block immediately since they already know
which transactions were included in the block. Whereas other miners
first have to download the transactions, and then generate a new
block which doesn’t include any of them. The ability to mine with
just the header, could be considered to limit the benefits of
centralisation.

Technically, it could be easily prevented by including,
for example

, a hash of the current coinbase concatenated with all the previous
transactions in the block header. The recent fall in the number of
empty blocks shows that the issue can be contained through
improvements in the protocol which make mining empty blocks less
interesting. Additionally, the gradual decrease of the block reward
and the increased reliance on transaction fees will likely make
mining empty blocks unprofitable over time.

TheBitcoinNews.com – leading Bitcoin News source since 2012