Transaction d'engagement
Une 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.
Définition et origine
La transaction d'engagement (commitment transaction) est l'artefact central d'un canal Lightning. Spécifiée par BOLT-3, elle représente cryptographiquement l'état courant du canal : combien chacune des deux parties pourrait récupérer si le canal était fermé maintenant.
Comment ça fonctionne
Une transaction d'engagement consomme l'output 2-of-2 de la transaction de financement et crée typiquement 4 outputs :
| Output | Destinataire | Délai |
|---|---|---|
| to_local | Le local soi-même | to_self_delay (CSV) |
| to_remote | Le pair distant | Immédiat |
| to_local_anchor | CPFP local (anchor) | Anyone-can-spend après 16 blocs |
| to_remote_anchor | CPFP remote (anchor) | Idem |
| HTLC outputs | Paiements en cours | HTLC-success / HTLC-timeout |
Chaque partenaire détient sa propre version de la transaction. Quand l'état change (nouveau paiement), une nouvelle paire est signée et l'ancienne est révoquée via l'échange des revocation secrets.
Mécanisme de pénalité
Si Alice diffuse une vieille transaction d'engagement (état périmé) pour voler Bob :
- Bob détecte la publication on-chain (ou sa watchtower le fait)
- Bob utilise le revocation secret qu'Alice lui a donné
- Bob publie une transaction de pénalité qui rafle tous les fonds du canal
- Alice perd absolument tout
C'est cette dissuasion économique qui sécurise Lightning sans recours à un tribunal.
Cas d'usage
- Force close : un des deux pairs publie unilatéralement
- Cooperative close : les deux signent une closing transaction simple (préférable)
- Stuck channel : recourir au force close après timeout
Limites
| Sujet | Détail | |---|---| | Lourdeur on-chain | 4-6 outputs, frais élevés | | Pinning | Possible via HTLCs malveillants | | Eltoo | Remplacerait par un mécanisme plus simple |
À retenir
La transaction d'engagement est le coeur du modèle de sécurité Lightning : asymétrique (chaque partenaire a sa version), révocable (via les revocation keys), publiable on-chain à tout moment. Comprendre son fonctionnement est essentiel pour saisir pourquoi Lightning fonctionne sans confiance entre pairs.
Termes lies
- 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.
- Clé de révocationLa clé de révocation est le secret partagé après chaque mise à jour qui invalide rétroactivement un état. Sa connaissance permet à l'autre partie de saisir les fonds. Outil cryptographique central des canaux LN-Penalty. Remplacée par les state numbers dans eltoo.
- Transaction de financementLa transaction de financement est l'unique transaction on-chain qui ouvre un canal Lightning. Elle verrouille les fonds dans une 2-of-2 multisig. Une seule par canal. Le splicing évite désormais d'en faire de nouvelles à chaque resize.
Glossaire inspire du dictionnaire de Loic Morel sur Pandul.fr.