Une Lightning Watchtower est un service de protection contre les violations d’un canal à pénalité, pas un détenteur des clés ordinaires du portefeuille. Le client prépare des données pour un commitment révoqué précis et les transmet chiffrées à la tour. Si ce commitment est publié, la tour peut construire et diffuser une justice transaction. Elle ne modifie pas le consensus de Bitcoin et ne garantit pas la récupération de tous les fonds.
Dans un canal à pénalité, la contrepartie peut publier intentionnellement ou par erreur un commitment révoqué, par exemple avec un ancien solde plus avantageux pour elle. Un commitment actuel valide utilisé pour une fermeture unilatérale n’est pas en soi une violation. C’est la révocation de l’état précis qui compte. La tour intervient selon les données préparées, pas selon le seul âge de la transaction. [BOLT 3 — Revocation and delayed outputs] [Lightning Labs — Watchtower operation]
Dans LND v0.21.3-beta, BreachHint correspond aux 16 premiers octets du SHA-256 du txid binaire. BreachKey est obtenu par SHA-256 de la concaténation de ce même txid binaire deux fois de suite. Il ne s’agit ni des 16 premiers caractères du txid affiché ni simplement de sa première moitié. Le client chiffre le JusticeKit ; connaître la transaction correspondante permet de dériver la clé et de déchiffrer les données. [LND v0.21.3-beta — Breach hint and key derivation] [LND v0.21.3-beta — Watchtower backup task]
JusticeKit contient les éléments, dont les signatures, nécessaires à une transaction corrective précise. La tour ne reçoit ni le seed ni une autorisation générale de dépenser les autres pièces du client. Le modèle altruiste restitue les fonds protégés au client après déduction des frais on-chain. Un modèle rémunéré peut ajouter une sortie convenue pour la tour ; la présence de ce type dans le code ne prouve pas à elle seule la disponibilité d’un service payant. [LND v0.21.3-beta — Watchtower backup task] [LND v0.21.3-beta — Watchtower blob types] [LND v0.21.3-beta — Watchtower configuration]
Le client doit créer et livrer les mises à jour correspondant aux états révoqués protégés. Ajouter une adresse de tour ou placer une tâche dans une file ne signifie pas encore que son stockage est confirmé. Une coupure de connexion, une session épuisée ou une sauvegarde rejetée crée une lacune de protection. La tour doit aussi suivre la bonne chaîne et obtenir à temps la propagation et la confirmation de la transaction corrective. [LND v0.21.3-beta — Watchtower client RPC] [Lightning Labs — Watchtower operation]
Le service ne répare ni un seed perdu, ni une sauvegarde endommagée, ni un appareil de signature compromis. LND Static Channel Backup (SCB) sert à récupérer les fonds par la fermeture du canal ; ce n’est ni le même enregistrement qu’un blob Watchtower ni une copie continuellement mise à jour de chaque commitment. Restaurer un ancien channel.db peut publier un état révoqué. Les sauvegardes du portefeuille et des canaux doivent être gérées séparément. [LND v0.21.3-beta — Recovery and static backups]
Le backupTask vérifié de LND v0.21.3-beta prépare les sorties to_local et to_remote existantes et non dust du commitment révoqué. Il n’inclut pas une protection générale de toutes les sorties HTLC ; la documentation correspondante la présente comme une extension future. La possibilité offerte par Bitcoin Script de dépenser une sortie par pénalité ne doit donc pas être confondue avec une protection réellement enregistrée pour cette sortie auprès d’une tour précise. [LND v0.21.3-beta — Watchtower backup task] [LND v0.21.3-beta — Watchtower configuration]
LND distingue watchtower.active pour le serveur de wtclient.active pour le client. Activer uniquement le serveur ne configure pas la sauvegarde de ses propres canaux auprès d’une autre tour. lncli tower info affiche pubkey, listeners et uris du serveur ; lncli wtclient add enregistre une tour pour le client. La clé publique de la tour diffère de celle du nœud Lightning. Vérifiez le réseau, l’accessibilité de l’adresse et la prise en charge RPC dans la compilation utilisée. [LND v0.21.3-beta — Watchtower configuration]
Pour la sortie to_local de BOLT 3, le propriétaire du commitment doit attendre to_self_delay blocs ; l’autre partie munie de la bonne clé de révocation peut utiliser la branche de pénalité sans ce délai. CSV mesure l’âge relatif depuis la confirmation de la sortie concernée. Après le délai, la branche de révocation ne disparaît pas, mais le propriétaire peut désormais tenter une dépense concurrente des mêmes fonds. Diffuser avant l’échéance ne garantit pas à lui seul de remporter la course à la confirmation. [BOLT 3 — Revocation and delayed outputs] [BIP 112 — CHECKSEQUENCEVERIFY]
Dans LND v0.21.3-beta, le champ sweep_sat_per_vbyte des politiques et sessions indique un taux en sat/vB. Les frais réduisent le montant restitué. backupTask peut rejeter un état de valeur trop faible ou aux paramètres de session inadaptés ; toute tâche préparée n’est pas une sauvegarde admissible. Modifier ultérieurement les réglages ne prouve pas que les transactions déjà signées ont changé, et un taux insuffisant peut retarder l’intervention. [LND v0.21.3-beta — Watchtower backup task] [LND v0.21.3-beta — Watchtower client RPC]
Plusieurs tours indépendantes et une surveillance propre peuvent limiter l’effet d’une panne unique. Vérifiez toutefois quelles mises à jour précises chaque tour a acceptées ; plusieurs adresses enregistrées ne prouvent pas à elles seules la réplication de tous les états. Des machines, réseaux et emplacements distincts réduisent les défaillances communes. Les blobs chiffrés et les connexions authentifiées limitent la visibilité des soldes, mais ne suppriment ni les métadonnées, ni la visibilité de la fréquence des mises à jour, ni le risque de corrélation. [LND v0.21.3-beta — Watchtower configuration] [Lightning Labs — Watchtower operation]
Utilisez lncli wtclient towers, lncli wtclient tower, lncli wtclient stats et lncli wtclient policy. Dans LND v0.21.3-beta, distinguez num_backups de num_pending_backups ; le second champ désigne les sauvegardes en attente de confirmation par la tour. num_failed_backups dans la réponse stats compte les sauvegardes échouées non confirmées. Les statistiques couvrent la période depuis le démarrage du client. active_session_candidate indique un candidat pour des sessions, pas une preuve de protection complète. [LND v0.21.3-beta — Watchtower client RPC]
Contrôlez la version précise du client et de la tour, le type de canal et de session pris en charge, l’actualité des données, les frais et la synchronisation avec la chaîne. Testez la réaction dans un environnement de test isolé ; un force close ordinaire ne prouve pas une intervention contre un état révoqué. Le résultat est attesté par le breach correspondant, la justice transaction construite et ses sorties confirmées. Une démonstration réussie ne garantit ni la disponibilité future ni l’élimination de tous les risques de Lightning. [BOLT 3 — Revocation and delayed outputs] [LND v0.21.3-beta — Watchtower backup task] [LND v0.21.3-beta — Watchtower client RPC]
Pour une vision complète, lisez aussi Lightning Network, Payment Channel, Auto-garde. Cette entrée est également citée par Payment Channel.