I think it is worth revisiting BIP 125's replace-by-fee policy for when to replace transactions.
The current policy can be problematic. As noted earlier by Rhavar, sometimes one's transaction becomes pinned making it infeasible to fee bump with RBF. This happens when one makes a normal payment to a large commercial service, and, while the transaction remains unconfirmed, the commercial service creates a low-fee-rate sweep of one's payment, among a collection of others. If one wants to RBF this original payment, for example to get confirmation of the change output for use in further transactions, the current BIP 125 rules require that you make a fee bump that exceeds the combined total fees of the original transaction and the low-fee-rate sweep of the commercial service.
The problem is that, while the fee rate of the sweep is low, the absolute size of the fee can still be large, making it infeasible to RBF the original transaction. BIP 125 was defined back in 2015, when perhaps rational miners did care about absolute fee amounts. However, today we are in an era where rational miners care about fee-rates more than absolute fees. The fee-rate of the large sweep transaction is low enough that we do not expect that miners will be mining it in the same block as the original transaction. Today, a rational miner will prefer a fee-bumped version of original transaction without consideration of the low-fee sweep transaction (or at least discounting the low-fee sweep in proportion to the miner's hash-rate fraction).
Let me quote the five rules that define the current BIP 125 policy:
One or more transactions currently in the mempool (original
transactions) will be replaced by a new transaction (replacement
transaction) that spends one or more of the same inputs if,
- The original transactions signal replaceability explicitly or through inheritance as described in the above Summary section.
- The
replacement transaction does not contain any new unconfirmed inputs
that did not previously appear in the mempool. (Unconfirmed inputs are
inputs spending outputs from currently unconfirmed transactions.)
- The replacement transaction pays an absolute fee of at least the sum paid by the original transactions.
- The
replacement transaction must also pay for its own bandwidth at or above
the rate set by the node's minimum relay fee setting. For example, if
the minimum relay fee is 1 satoshi/byte and the replacement transaction
is 500 bytes total, then the replacement must pay a fee at least 500
satoshis higher than the sum of the originals.
- The number of
original transactions to be replaced and their descendant transactions
which will be evicted from the mempool must not exceed a total of 100
transactions.
To address the new reality of rational miners' consideration, I propose changing rules 3 and 4 to something like the following.
3'. The replacement transaction pays a fee rate of at least the effective fee rate of any chain of transactions from the set of original transactions that begins with the root of the original transaction set.
4'. The
replacement transaction must also pay for replacing the original transactions at or above
the rate set by the node's minimum relay fee setting. For example, if
the minimum relay fee is 1 satoshi/byte and the replacement transaction and the original transactions are 1000 bytes total, then the replacement must pay a fee at least 1000
satoshis higher than the fee of the root transaction of the original transactions.
Rule 3' is a fancy way of saying that the replacement transaction must have a fee rate that is larger than the package fee rate of the root of the set of transactions it replaces, where the package fee rate is the fee rate implied by considering CPFP.
Rule 4' is an amended anti-spam rule that is intended to avoid DOS attacks from churning the mempool. I don't know if it is really necessary to pay for the size of the original transactions being evicted, but some people I chatted with thought it could be important.
Other people on the mailing list have been thinking about RBF policy for far longer than I have, so I wouldn't be surprised if my proposal above is naive. However, I think it can start a conversation about addressing the problems with the current RBF policy.