Yes, at the moment transaction fees are not high enough to cover mining operation costs.
The system of mining rewards (block subsidy + transaction fees) and difficulty adjustments is designed such that it adjusts itself.
Simply stated, in an equilibrium state of the system, mining rewards just cover operation costs + return on investment for miners. Since operation costs and ROI are still mostly expressed in fiat currency values, exchange rate for BTC plays a role in this.
When block subsidies go down to near zero, mining rewards come primarily from transaction fees. There will be a self-adjusting feedback loop between exchange rate, number of miners, energy efficiency of miners, and transaction fees paid by bitcoin users. Most likely block size will play a role as well as it allows a higher number of transactions to be processed in a given time.
Since transaction fees cannot grow arbitrarily high in "real value", either the mining network operation must become so cheap that transaction fees suffice to cover them, or on-chain transactions will be used only for high-value transactions, with off-chain processing being used for micro-transactions. For the network to become cheap enough, the total throughput of transactions per hour probably has to be increased. To me, both outcomes seem possible.
Onkel Paul
This is a quite good summary, and it is really a large combination of variables
From miner's perspective, there are several major variables for each block:
Exchange rate
Block reward
Difficulty
Fee per transaction
Transaction amount in a block
Let's dig further
1. If the exchange rate X2 and block reward /2, then the miner's income will not be affected fiat wise
2. If the exchange rate do not change and block reward /2, then miner's income will be cut by half, thus immediately cause lots of miners running under water, some of them will quit mining and the hash rate and difficulty will drop and eventually rest of the miners become profitable again
3. If fee per transaction rise to replace the block reward, then the miners would be able to maintain the same income. However this requires large amount of transaction, with a larger fee than today
If 4000 transaction per 1MB block want to give miners 25 bitcoin fee income, each transaction will cost 0.00625 bitcoin, which is 2.6875 USD at current exchange rate of $430. This fee is not very high from a investor point of view since they typically buy or sell more than 1 bitcoin, so it is around 0.5% for 1 btc purchase. And for large transactions it will be even cheaper
If in future we could run 8MB blocks, each block can contain 32000 transactions, this will put the fee back to 0.00078125 bitcoin if the fees in a block totals at 25 BTC, that is 0.336 USD per transaction, can satisfy majority of users that do purchase larger than $35
If in such situation the exchange rate already rose by 10x to $4300, then the fee will become 3.36 USD per transaction, again not practical for casual spending. But in this case the miners will get super income from those 25 bitcoins thus the incentive is extremely high. In fact the difficulty will quickly rise 10x due to mining competition in such a highly profitable market
So I think the decisive factor is still exchange rate, if the exchange rate continuously improve (at least doubles every 4 years), then any kind of reward halving or low transaction fee will not be a problem to affect miner's incentive
By the way, bitcoin fee structure is a one size fit all solution: the fee is based on transaction, not transaction value. This will unavoidably benefit large transactions while hinder small transactions. Suppose that I'm transacting 100 coins, 0.01 btc fee will be extremely small for me, but for those transacting 0.1 bitcoin, it is prohibitively high
Based on a research paper from FED researchers, the majority of the bitcoin transactions are larger than 0.2 bitcoin, or $80, so the fee should be targeting this threshold, around 0.002 bitcoin level to not hurt majority of users. The problem is, without a block size limit, the fee per block will always be a small fraction of the block reward (I have detailed analysis
here), thus there is almost no way to reach such high level of fee. So if blocks are not full, the only hope to keep miner's incentive is a continuously rising exchange rate