Replace-by-fee (RBF)
Also covering BIP125, Opt-in Replace-by-Fee, and Full-RBF
Replace-By-Fee (RBF) is a node policy that allows an unconfirmed transaction in a mempool to be replaced with a different transaction that spends at least one of the same inputs and which pays a higher transaction fee.
Different node software can use different RBF rules, so there have been several variations. The most widely-used form of RBF today is BIP125 opt-in RBF as implemented in Bitcoin Core 0.12.0 and subsequent versions; this allows the creator of a transaction to signal that they’re willing to allow it to be replaced by a higher-paying version. An alternative form of RBF is full-RBF that allows any transaction to be replaced whether or not it signals BIP125 replacability.
BIP125 requires a replacement transaction to pay both higher feerate (BTC/vbyte) and a higher absolute fee (total BTC). This can make multiparty transactions that want to use RBF vulnerable to transaction pinning attacks, and so an occasional discussion topic is proposals to allow RBF to operate solely on a feerate basis.
Primary code and documentation
Optech newsletter and website mentions
2022
- 2022 year-in-review: replace-by-fee
- Website to monitor unsignaled transaction replacements
- Continued discussion about enabling full-RBF in Bitcoin Core
- Discussion about
mempoolfullrbf
option’s effect on mempool consistency - Continued discussion about
mempoolfullrbf
option for enabling full RBF - History of the term “full RBF”
- Concerns raised about configuration option allowing full replace by fee in Bitcoin Core
- Proposal for relay of v3 transactions allows replacement
- Bitcoin Core #25610 opts-in the RPCs and
-walletrbf
to RBF by default - Bitcoin Core fullrbf setting where the node always allows transaction replacement
- Discussion about enabling full replace by fee in Bitcoin Core (off by default)
- Discussion about allowing transaction witness replacement without a fee bump
- Summary of recent proposed changes to RBF policy
- Discussion about RBF policy, including suggested changes
- Proposal to briefly allow full RBF before using default opt-in RBF
2021
- 2021 year-in-review: default transaction replacement by fee
- 2021 year-in-review: BIP125 opt-in replace-by-fee discrepency
- Proposal of initial RBF rules for mempool package acceptance before implementing package relay
- Trezor wallet software defaults to enabling BIP125 RBF
- Proposal to allow any mempool transaction to be replaced by default
- Continued discussion about CVE-2021-31876’s impact on protocols using RBF
- CVE-2021-31876 discrepancy between BIP125 and Bitcoin Core implementation
- Upcoming relay policy workshop to discuss RBF and other topics
- Recovering lost LN funding transactions after RBF fee bumping
- Question: would first-seen-safe prevent confirmed RBF double spends?
2020
- Sparrow wallet adds support for RBF fee bumping
- C-Lightning #3870 implements RBF scorched earth for penalty transactions
- Bitcoin Core #16373 allows the bumpfee RPC used for RBF to return a PSBT
2019
- Compatibility matrix—Replace by Fee
- Bitcoin Core removes
mempoolreplacement
configuration option - LND adds support for RBF fee bumping
- Proposal to override some BIP125 RBF conditions
- RBF in the wild (survey of RBF usage)
2018
See also
Previous Topic:
Rendez-vous routing
Next Topic:
Reproducible builds