A protocol to allow pools to specify a set of valid transactions but give the control over which transactions to include to miners.

The rpc call is getblocktemplate. This protocol can be used by pools to help make mining more decentralized by putting the miners in control of their own block creation. The downside is that this does not prevent pools from blacklisting, as pools can still limit miners' control via omission of valid transactions.