Note that these "empty" blocks are NOT useless for the bitcoin network, because they add more proof-of-work on top of previous blocks, making transactions in those blocks more secure. Mining fee for "empty" blocks motivates miners to generate that proof-of-work. And transaction fees motivate them to include transactions in generated blocks.
– Vladimir ReshetnikovJun 15 '16 at 20:00

3 Answers
3

It's possible that this could happen just because there aren't any transactions to be mined. Early on in the bitcoin block chain, this was often the case. This could also happen if two blocks are solved on top of each other in a very short amount of time, with not much time for new transactions to be broadcasted in between. Today, however, more often than not this is due to a miner trying to get his/her block out to the rest of the peers on the network as soon as possible.

A miner would want to do this because bigger blocks take longer to propagate to the rest of the network. Nodes have to download and verify the validity of a block before they can relay them to their peers, because if they don't verify before sending and they send an invalid block, then their peers may ban them and the node will have no one to connect with on the network.

Think of it this way. If your block takes 50 seconds to get out to 90% of the peers on the network, and someone else mines a block 1 second later than you but can get their block out to 90% of the network in 9 seconds, who do you think will have the greater chance of getting their block accepted by more peers?

It may also be worthwhile to note that while this seems like it has a better pay off, it also sends a message to everyone on the network that the miner who mined the block doesn't really actually care about the bitcoin network's transactions, it just cares about its reward. And if the miners don't support the system, then why should investors or anyone else have confidence in it? I guess what I'm trying to say is that if a lot of miners did this, then the price of bitcoin would likely drop as it would show a lack of faith in the system.

A different way of explaining this would be that, for a block to be accepted by the network, it has to be propagated out and checked by everyone. While blocks are spreading through the network, any miners who don't know about the new block will just keep mining on the block they have. In most cases, probably, this is just wasted work since there is already a block that is on it's way to being accepted. But if your block is much smaller (i.e. very few txs), then it gives other miners less time to solve a block while yours is propagating, and it also increases your chance that your block will get accepted by the majority of the miners even if someone else solved a block slightly before you.

To answer this question with a bit of data, I made a script that processed the last 1 month of blocks (4,464 blocks before and including block 338,782), and gathered data about the number of transactions in each block. These were the results.

The x-axis here (it may be hard to read) is the transaction range (each MIN-MAX pair in data above represents one column). The y-axis shows the number of blocks in the last month that had a transaction count within the range.

The first reason is when 2 blocks are solved relatively close to each other in time. The second of these blocks may not have any transactions to include.

The second reason is that bigger blocks take longer to propagate across the network. It is often in the interest of the block solver to transmit a block without any transactions as it is less likely that another block might be solved in the time it takes the block to propagate across the network. This makes it less likely that the solved block will become orphaned.

In this case, there were at least five minutes between this block and the previous one. Also, is there any detailed analysis of the expected gain/loss of following a strategy given % of hashrate and other factors?
– ikeDec 17 '14 at 19:43

1

Also, this one appeared to come from a pool, which may be a problem if they do that always.
– ikeDec 17 '14 at 19:44

BTC.com has done this 5 times in the last 6 days. With the number of unconfirmed transactions been larger than 2-3 full blocks, clearly lack of available transactions is not the problem. It is also interesting that is coming from the same miner pool.