RBF (Replace-By-Fee)
RBF (BIP-125) permet de remplacer une transaction non confirmée par une autre payant plus de frais. Sortie unstuck quand le réseau est congestionné. Le full RBF (Bitcoin Core 24+) accepte le remplacement même sans signal. Sujet de débats philosophiques sur la finalité.
Remplacer une transaction non confirmée
RBF (Replace-By-Fee, BIP-125) est le mécanisme qui permet de remplacer une transaction non confirmée par une nouvelle, payant plus de frais. Indispensable quand ton paiement est bloqué dans le mempool depuis trop longtemps : tu signes une transaction de remplacement avec un fee rate plus élevé, le réseau l'accepte à la place de l'ancienne, le mineur prend la nouvelle.
Opt-in vs Full RBF
Historiquement (BIP-125, 2015), une transaction devait signaler explicitement qu'elle était remplaçable, en mettant un nSequence inférieur à 0xfffffffe sur au moins un input. Sinon, les nœuds refusaient le remplacement. C'est le opt-in RBF.
Depuis Bitcoin Core 24+ (et activé par défaut en 26), le full RBF est disponible : tout transaction non confirmée peut être remplacée, sans signal préalable. Cette évolution a fait débat, en particulier pour les marchands acceptant des paiements zero-conf : un acheteur peut techniquement faire un double-spend rétroactif.
Les conditions du remplacement
Pour qu'un remplacement soit accepté, il doit :
- inclure tous les inputs originaux ;
- ne pas inclure de nouveaux UTXO non confirmés ;
- payer un fee rate strictement supérieur à l'ancien ;
- payer un total de frais strictement supérieur ;
- respecter une fee bump suffisante (incremental_relay_fee).
Ces règles évitent qu'un attaquant puisse pinguer indéfiniment des transactions.
RBF en pratique
Tous les wallets modernes proposent RBF :
- Sparrow Wallet, Electrum, Bitcoin Core ont des boutons "fee bump".
- Phoenix, BlueWallet l'activent par défaut.
- Sur mobile, c'est généralement transparent.
Si tu envoies une transaction et qu'elle stagne, RBF est ton premier réflexe.
Risques
RBF a des effets de bord :
- Zero-conf moins fiable : un commerçant qui accepte une transaction avant confirmation peut être victime d'un double-spend.
- Lightning : le replacement cycling exploite RBF pour évincer rétroactivement des transactions. Mitigé par anchor outputs et package relay.
Alternative : CPFP
Si tu n'as pas activé RBF (ou que la transaction est déjà signée par un autre signataire d'un multisig), tu peux faire un CPFP : créer une transaction enfant qui consomme l'output non confirmé avec un gros fee. Le mineur choisira alors d'inclure les deux ensemble pour maximiser ses revenus.
Termes lies
- Full RBFFull RBF accepte de remplacer toute transaction non confirmée, sans nécessiter le drapeau opt-in. Activé par défaut depuis Bitcoin Core 26. Permet de débloquer plus largement les transactions coincées. Impacte les paiements zero-conf (commerçants).
- Fee bumpingLe fee bumping est l'action d'augmenter les frais d'une transaction non confirmée pour l'accélérer. Réalisé par RBF ou CPFP. Indispensable en période de congestion. Toutes les wallets modernes le proposent.
- CPFP (Child-Pays-For-Parent)CPFP est une technique où une transaction enfant paie des frais élevés pour inciter à miner sa parente. Utile quand on n'a pas activé RBF. Repose sur la sélection par paquet (package) du mineur. Combinaison utile en cas de congestion.
- BIP-125BIP-125 standardise le RBF opt-in : une transaction signale qu'elle peut être remplacée. Implémenté en 2016. Largement supplanté par Full RBF (BIP-125 reste l'API).
Glossaire inspire du dictionnaire de Loic Morel sur Pandul.fr.