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?