Techniques or proposais to require transactions to be included in a block? 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.

Question


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


Challenge


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?
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.