I've already read many different answers to this topic.

Is it correct that the miner decides on his own if he includes any transactions in his block and how many (as long as the block size is <1MB?)?

What is more beneficial for the miner and why: Creating an empty block, or creating either a block that contains all transactions of the pool/or <1MB? Or is there an optimum?

Isn't it faster for a miner to not include any transactions in order to get the reward? Even more, if a large mining pool did that, isn't there the danger of taking over the network?

  • A miner that is using a traditional mining pool does not decide which transactions go in the block, the pool does. – David Schwartz Jul 19 '16 at 9:07
up vote 4 down vote accepted

Yes, you are correct that miners get to decide whether to include transactions in their block that they're mining. The protocol itself doesn't force them to include any transactions. Instead, they have a financial incentive to include transactions because they can collect transaction fees and profit more.

It's an interesting trade-off for them, because their profit has to outweigh their costs of validating those transactions. However, I suspect transaction validation doesn't cost miners anything because they can validate and hash transactions for block i+1 as they are mining for block i with different hardware: validation is done on CPUs, mining is done on ASICs.

But there are interesting cases: For instance, miner A has to recompute their next block i+1 if another miner B finds block i and it includes transactions from miner A's next i+1 block. In that case miner A would have to remove some TXs from his block i+1 and recompute the Merkle tree. Or miner A can create an empty block i+1 and just mine on that.

Sometimes, when mining on block i+1, miners even skip on validating other miners' block i in the hopes of winning the race by starting earlier [1].

Hope this helps clarify things a little.

The (hashing) work required to mine a block is effectively the same whether the block contains any transactions or not. Regarding benefit to the miner, the miner collects transaction fees for all transactions in the block. If the block contains no transactions, then no extra reward is collected beyond the normal block reward (currently 12.5 BTC).

Your Answer

 

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.