BIP-125
BIP-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).
Le besoin : ajuster ses frais après coup
Avant 2016, une transaction Bitcoin diffusée à un taux de frais trop faible pouvait rester bloquée dans le mempool pendant des heures, voire des jours. La seule solution était d'attendre, ou d'envoyer une nouvelle transaction dépensant l'UTXO de change avec CPFP. BIP-125, rédigé par David A. Harding et Peter Todd en décembre 2015, formalise un mécanisme plus direct : Replace-By-Fee opt-in.
Les cinq règles de remplacement
BIP-125 définit cinq règles strictes pour qu'une transaction puisse en remplacer une autre :
- Signalisation : la transaction d'origine doit signaler RBF en utilisant un
nSequenceinférieur à0xfffffffepour au moins une entrée. - Mêmes inputs : la transaction de remplacement doit dépenser au moins une des entrées de l'originale.
- Frais supérieurs : le remplaçant doit payer un montant total absolu de frais supérieur.
- Fee rate supérieur : le fee rate doit être supérieur à celui de l'originale (en sat/vB).
- Limite à 100 descendants : pour éviter les attaques par chaînes massives.
Différence avec full-RBF
BIP-125 est opt-in : seules les transactions qui signalent peuvent être remplacées. Les transactions non-signalantes sont protégées (théoriquement) du remplacement, ce qui rassurait les commerçants acceptant le zeroconf. Mais cette protection a toujours été illusoire en pratique : un mineur peut accepter une transaction non-BIP-125 qui remplace une autre dans son mempool privé.
Full-RBF (activé par défaut dans Bitcoin Core 28.0, fin 2024) supprime cette distinction : toute transaction peut être remplacée, qu'elle ait signalé ou non. Le zeroconf devient officiellement non-sûr pour les paiements on-chain.
Cas d'usage
| Situation | Action | |-----------|--------| | Tx bloquée | Republier avec fee rate plus haut | | Marchand qui annule | Remplacer par une auto-tx | | Erreur de destinataire | Remplacer avant confirmation (très limité) | | Sniping de mempool | Inclure une UTXO disputée |
Le rôle économique
RBF n'est pas qu'une commodité : c'est un stabilisateur du marché des frais. Les utilisateurs n'ont plus à surpayer « par sécurité » ; ils ajustent dynamiquement. Cela améliore l'efficacité du mempool et permet aux protocoles L2 (Lightning, anchor outputs, CPFP packages) de fonctionner correctement.
À retenir
BIP-125 a marqué la fin de la promesse d'irrévocabilité instantanée des transactions Bitcoin. C'est l'un des changements de paradigme les plus importants de l'écosystème : on accepte la mutabilité tant qu'aucune confirmation n'est arrivée, et on s'appuie sur le mempool comme marché dynamique des frais.
Termes lies
- 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é.
- 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.
Glossaire inspire du dictionnaire de Loic Morel sur Pandul.fr.