Anchor outputs
Les anchor outputs sont des sorties spéciales d'une transaction d'engagement permettant le CPFP en cas de force close avec mempool plein. Standard moderne des canaux Lightning. Atténue Flood and Loot.
Pourquoi les anchor outputs existent
Les anchor outputs sont une amélioration introduite dans la spécification Lightning en 2020 pour résoudre un problème de sécurité critique : que se passe-t-il si le mempool est saturé au moment où un nœud doit publier en urgence sa transaction d'engagement (force close) ? Avant les anchors, le taux de frais était figé au moment de la signature du canal, parfois plusieurs mois plus tôt. Une transaction signée à 1 sat/vB n'avait aucune chance d'être minée lors d'une vague de congestion.
Le mécanisme, étape par étape
Avec les anchors, la commitment transaction inclut deux sorties supplémentaires de 330 sats chacune, contrôlées par les deux parties du canal. Ces sorties servent uniquement de point d'accroche pour une transaction child-pays-for-parent (CPFP) : on dépense l'anchor avec une nouvelle transaction qui paie des frais élevés, ce qui force l'inclusion du parent.
+------------------+
| Commitment Tx | (frais bas)
| ├ to_local |
| ├ to_remote |
| ├ anchor_A | <-- CPFP par Alice
| └ anchor_B | <-- CPFP par Bob
+------------------+
Le risque historique : Flood and Loot
L'attaque Flood and Loot consistait à saturer volontairement le mempool pour empêcher la confirmation des transactions d'engagement légitimes, puis à dérober les HTLC expirés. Avec les anchor outputs, chaque partie peut surenchérir indépendamment, neutralisant cette stratégie.
Évolutions et limites
Le standard d'origine (option anchor_outputs) immobilisait 660 sats par canal. La version moderne, option_anchors_zero_fee_htlc_tx, utilise des anchors à 0 sat couplée au sighash SINGLE | ANYONECANPAY. La proposition ephemeral anchors (BIP-431) va plus loin en autorisant des sorties sans valeur, dépensables uniquement avec un parent payant les frais (paquet TRUC, v3 transactions).
À retenir
Les anchor outputs sont aujourd'hui le standard de fait des nouveaux canaux Lightning. Sans eux, la sécurité économique des canaux serait à la merci de la congestion du mempool. C'est un exemple parfait d'amélioration discrète mais critique sur la couche L2.
Termes lies
- Transaction d'engagementUne transaction d'engagement représente l'état actuel du canal entre les deux parties. Mise à jour à chaque paiement. En cas de force close, c'est elle qui est diffusée. Sécurisée par les revocation keys.
- 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.
- Ephemeral AnchorsLes Ephemeral Anchors (BIP-431) sont l'évolution des anchor outputs : sorties à 0 sat dépensables sans signature. Économisent de la place et des frais. Nécessitent package relay. Future norme Lightning.
- Force closeUne force close est une clôture unilatérale d'un canal, déclenchée quand un partenaire est offline ou non coopératif. Utilise la dernière transaction d'engagement. Coûts on-chain et délais CSV plus élevés. À éviter quand possible.
Glossaire inspire du dictionnaire de Loic Morel sur Pandul.fr.