Can we decouple tx fee from the txs themselves? We know that, in general, miners prefer putting txs with higher fees into blocks. In particular, this is bad for users who do microtransactions as it doesn't make much sense to put a lot of fee if you're only sending a small amount. I've been thinking whether it is possible to overcome this. 

Basically, if we somehow find a way to decouple fees from the txs themselves then every tx will look equal to the miners. When this is the case, there's no incentive to prefer one tx over another. I believe this would make the Bitcoin more "fair" to the users.

However, I can't tell whether it is possible to come up with such a protocol while maintaining the properties of the Bitcoin. What I have in my mind is basically as follows:


Users first send some "participation tax" to an adress/adresses
which is collectively maintaned by the miners.
Miners in turn collectively sign a token and send back the token to users.
Users then include this token in their txs to prove their validity. Txs without tokens can be either be discarded or might have less priority.
The total tax sum in the pool is distributed to miners according their fraction of hash power. 
The process repeats over time periods.


The key point in here is, every tx with a valid token would look the same for miners. So, there's no reason to choose one over another. 
Of course, as it is, it probably has many flaws. For example, a user can pay participation fee and his txs might still not make it to the block. In this case, he basically pays the participation fee for nothing. Maybe we can overcome this with a "decentralized escrow" mechanism (not sure if this even exists) but anyway, this needs to be worked on.

What do you think ? Might such a system help the Bitcoin in a way ?
Bitcoin mining is business. It incurs significant hardware and energy costs. So it's absolutely understandable and legitimate that the commercial miners choose those transactions that give the biggest overall fee. And a 10-Satoshi transaction occupies the same space in the block as a 100-Bitcoin one. It's a bit like in real life: some countries in the Euro region don't circulate 1- or 2-cent coins because their production costs more than their nominal value. And everybody there accepts that a change of 1 or 2 cents is lost.

Your suggestion is implementable within the current bitcoin consensus if you can convince a significant portion of the miners to follow that scheme. Every miner is free to implement his own priority scheme for transactions, not necessarily based only on transaction-internal data.

But I doubt that you'll be able to convince enough miners and users to switch to that scheme. Miners will lose fees, and users will have to pay in advance to get a token that's only accepted by a (small?) portion of the miners.

If you want to help with low-volume transactions, start your own miner with a priority scheme that prefers low-volume transactions. You'll lose money running your mining hardware, but some users will benefit.