Transaction pinning
Le transaction pinning consiste à bloquer le RBF d'une transaction en y attachant des dépendances volumineuses. Vulnérabilité notable des canaux Lightning. Replacement cycling et package relay sont des contre-mesures à l'étude. Sujet sensible pour les transactions multipartites.
Définition et origine
Le transaction pinning est un ensemble de techniques par lesquelles un attaquant empêche une victime de remplacer ou de faire confirmer rapidement une transaction qui les concerne tous les deux. Le sujet est étudié depuis 2018 et a déclenché plusieurs releases de Bitcoin Core et des implémentations Lightning entre 2023 et 2025.
Comment ça fonctionne
L'attaque exploite les règles de remplacement (BIP-125) et de relais du mempool de Bitcoin Core. Plusieurs variantes existent :
| Variante | Mécanisme | |---|---| | Rule-3 pinning | Attacher un descendant énorme (~100 kvB) à faible fee rate | | Rule-5 pinning | Trop de descendants total (chain length 25) | | Replacement cycling | Cycle de remplacements épuisant la victime | | HTLC pinning | Bloquer un HTLC Lightning par dépenses concurrentes |
Le scénario typique en Lightning : Alice ouvre un HTLC vers Bob. Au moment du timeout, Bob doit publier une HTLC-timeout pour récupérer ses sats. L'attaquant attache à cette transaction un descendant lourd, empêchant Bob d'augmenter les frais via RBF (la nouvelle transaction concurrente serait rejetée pour cause de descendant). Pendant ce temps, Alice peut révéler le préimage et voler le HTLC.
Cas d'usage hostile
| Cible | Objectif | |---|---| | HTLCs Lightning | Voler des paiements en transit | | Vaults Bitcoin | Empêcher la revocation à temps | | Atomic swaps | Capturer l'avantage temporel | | DLC | Bloquer la résolution post-oracle |
Mitigations en cours
| Contre-mesure | Statut | |---|---| | Anchor outputs | LND/CLN depuis 2020 | | Package relay (BIP-431) | Activé Bitcoin Core 28+ | | v3 transactions (BIP-431 + TRUC) | Bitcoin Core 28+ | | Ephemeral anchors | À l'étude |
À retenir
Le transaction pinning illustre la tension entre les règles anti-DOS de Bitcoin (limites de mempool) et les besoins des protocoles multipartites comme Lightning. Les solutions récentes (package relay, v3) atténuent considérablement la menace mais ne l'éliminent pas. Toute architecture impliquant des HTLCs ou des contrats temporels doit prendre ce vecteur au sérieux.
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é.
- Replacement cyclingLe replacement cycling exploite les règles RBF pour évincer puis remettre une transaction afin de la « faire disparaître » localement chez la victime. Exploit critique sur Lightning découvert par Antoine Riard en 2023. Mitigé par des correctifs sur les nœuds Lightning. Une des attaques les plus subtiles.
- Package relayLe package relay est l'évolution de la propagation des transactions par paquet (parent + enfants). Indispensable au CPFP fiable et à l'éphémère anchor outputs. Activé progressivement dans Bitcoin Core. Améliore la robustesse de Lightning.
- Channel jammingLe channel jamming est l'attaque consistant à saturer les canaux Lightning par de faux HTLC. Vulnérabilité connue mais coûteuse à exécuter. Mitigée par HTLC endorsement et Anti-DoS reputation. Sujet de recherche actif.
Glossaire inspire du dictionnaire de Loic Morel sur Pandul.fr.