4

The mempool-replacements.md document states the following rules for RBF:

  1. The replacement transaction pays an absolute fee of at least the sum paid by the original transactions.
  1. The additional fees (difference between absolute fee paid by the replacement transaction and the sum paid by the original transactions) pays for the replacement transaction's bandwidth at or above the rate set by the node's incremental relay feerate. For example, if the incremental relay feerate is 1 satoshi/vB and the replacement transaction is 500 virtual bytes total, then the replacement pays a fee at least 500 satoshis higher than the sum of the original transactions.

Isn't rule #4 strictly stronger than rule #3? I've always seen both stated as independent rules (even in code implementations), and this makes me wonder if I'm missing some subtlety here.

1 Answer 1

5

Rule 4 is indeed strictly stronger than rule 3.

It being two rules might be a simple carry-over from BIP125, as it was written from the implementation (and not the other way around). Under this hypothesis it would have been specified as two rules in the BIP is because it's written as two checks in the code. Which makes sense in terms of C++ as you first want to check the replacement's fees are not inferior to the replaced txs' fees to avoid an underflow when then calculating the fee delta. But less so in terms of specification.

1
  • 2
    BIP125 co-author here. I don't recall all the specifics of writing that document almost 9 years ago, but I can confirm that I went through the checks in the code and turned them into the numbered rules in the document. Commented Jul 21 at 16:44

Not the answer you're looking for? Browse other questions tagged or ask your own question.