As it stands now, a miner (or mining pool) can discriminate any transaction for any reason if they are running a custom version of code.

Suppose an evil and powerful mining pool decided to hash blocks, but not include any transactions even if a fee was included. This would slow down the rate a block would be included in the chain.. effectively causing a DOS against certain transactions.

This is intended behavior to encourage transactions to include fees (or soon will be the behavior). But suppose a pool operator (or powerful mining consortium) decide that they want to kill off Bitcoin and not include any transactions ... at all.


  • What technical solutions are there to require blocks to have transactions?


  • We don't want the attacker to only include transactions the evil mining pool themselves create, but also transactions that others create as well.

  • I don't want to encourage too many low-fee transactions in this model, thus de-incentivising mining activity

Is there any solution that addresses these goals in a fair and balanced way?

  • Such a consortium would be reducing the value of the Bitcoin system and thus reducing the total value of all Bitcoin mining. It's hard to imagine a scenario where someone with a significant investment in Bitcoin mining hardware has an incentive to reduce the total value of all Bitcoin mining. Oct 14, 2013 at 7:13
  • It's not that hard to imagine for one person (extortion, paid sabotage, spite), but if it is a pool the other miners would jump ship when they come to realize what is happening. I don't think such an attack could be sustained unless the malevolent mining power is under control of one entity. Then though, I find it improbable for one person to have a sufficient share of the mining power to have a major impact.
    – Murch
    Oct 14, 2013 at 7:37

2 Answers 2


If the attacker has minority hashrate, I don't think this is much of a problem. If he excludes all transactions in his blocks but doesn't try to orphan other blocks, the worst thing that can happen is a x2 increase in the average time until first confirmation (no effect on subsequent confirmations). This is fairly minor.

If the attacker has majority hashrate, he can orphan all other blocks and exclude all transactions, and then transactions will never be confirmed. This is a problem and the main variant of the >50% attack. Possible solutions include modifying the branch selection mechanism to prefer blocks with more high-priority transactions - meaning that even with majority hashrate, if you try to deny transaction you're not guaranteed to beat the honest branch.

Incidentally, if the attacker has >40% hashrate, there is a technique to amplify his hashrate and get more than his fair share of blocks. So if, say, he has 49% hashrate and used this technique, he can get close to 100% of blocks, significantly delaying tx confirmation.


I disagree with your premise "This would slow down the rate a block would be included in the chain". Every other miner or pool has just as much a shot at discovering a block as the evil one. Unless the evil one is so powerful that he is singlehandedly effecting the difficulty in a signficant way, his blank blocks will not prevent other miners from discovering normal blocks.

I think your question is simply a restatement of the "51%" problem.

  • 2
    Or rather a porportional problem... if the pool owns 25% of the hash, then the maximum detriment is 25%. (etc) Aug 15, 2013 at 3:20

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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