Splicing modifie conjointement le financement d’un canal Lightning : une nouvelle transaction on-chain dépense sa sortie de financement actuelle et en crée une autre. Les parties préparent aussi les commitment transactions correspondantes, des transactions signées permettant une éventuelle fermeture. Le même canal se poursuit, au lieu d’une fermeture ordinaire suivie d’une ouverture distincte.
Splice-in ajoute des fonds au solde de la partie qui contribue ; splice-out déplace une partie de son solde vers une sortie extérieure au canal. Les contributions modifient aussi la capacité totale, mais celle-ci peut rester identique si elles se compensent. Les fonds du canal sont toujours rattachés à une autre sortie de financement Bitcoin. Une fermeture coopérative ordinaire suivie d’une réouverture n’est pas nécessaire. [1]
Le canal entre d’abord en quiescence, une courte pause des mises à jour incompatibles. L’initiateur envoie splice_init et l’autre nœud répond par splice_ack. La transaction commune doit contenir exactement une entrée dépensant l’ancienne sortie de financement et exactement une nouvelle sortie finançant ce canal. D’autres entrées et sorties peuvent ajouter ou retirer des fonds. Suivent commitment_signed et tx_signatures avec les signatures nécessaires. [1]
Après l’échange des signatures de la transaction, les paiements peuvent reprendre avant la profondeur de confirmation jugée acceptable. Les nœuds conservent donc simultanément les états d’engagement du financement initial, du nouveau splice et des éventuels remplacements RBF. Chaque paiement doit être valide dans toutes les variantes actives. Après une déconnexion, il faut retrouver le bon état en cours ; garder uniquement la dernière transaction ne suffit pas. [1] [2]
Les deux nœuds doivent négocier la prise en charge d’option_splice et accepter la transaction, le taux de frais et les contributions. L’autre nœud peut refuser avec tx_abort. Tant que les deux parties n’ont pas reconnu le même splice par splice_locked, les mises à jour doivent couvrir toutes les commitment transactions actives. Personne ne peut modifier seul le solde de l’autre partie. [1] [3]
Core Lightning a activé Splicing par défaut dans la version 26.04. Il a ajouté splicein, spliceout et les transferts entre deux canaux, appelés cross-splice. La version de l’autre nœud et le type de canal pris en charge restent déterminants. Un même nom de fonction dans deux portefeuilles ne prouve ni des possibilités identiques ni leur interopérabilité. [4]
Splicing crée toujours une transaction Bitcoin : frais on-chain, confirmation et réorganisations éventuelles restent à prendre en compte. Eclair propose par exemple rbfsplice pour augmenter le taux de frais d’un splice non confirmé. Il faut respecter les réserves, les exigences d’entrées confirmées, les limites de contributions et de tentatives RBF, ainsi que l’état des sauvegardes. Le mode particulier option_zeroconf change les hypothèses de confiance, et le protocole y interdit RBF. [1] [5]
Lorsque le splice choisi atteint une profondeur acceptable et que les deux parties échangent splice_locked pour le même txid, elles peuvent cesser de maintenir les anciennes variantes et celles qui ont échoué. Le funding outpoint, référence à une sortie précise, change ; la capacité dépend de la somme des contributions. Pour un canal public, short_channel_id, dérivé de la transaction confirmée, change aussi et de nouvelles announcement_signatures peuvent être préparées. [1]
Vérifiez la compatibilité des deux nœuds, channel_id, le signe et le montant de funding_contribution_satoshis, le taux de frais, les entrées, sorties, réserves et signatures. Suivez le txid de chaque variante RBF. À la fin, comparez splice_locked, le nouveau funding outpoint et, pour un canal public, short_channel_id. Vérifiez également la reprise des HTLC et que la sortie retirée appartient bien au portefeuille voulu. [2] [1]
Pour une vision complète, lisez aussi Payment Channel, Lightning Network, UTXO, Liquidité Lightning, Replace-by-Fee (RBF), Price Channel. Cette entrée est également citée par Liquidité Lightning.
01Splicing équivaut-il à fermer puis rouvrir le canal ?+
Non. Il crée aussi une transaction Bitcoin, mais les parties déplacent ensemble le canal existant vers une nouvelle sortie de financement. Une fermeture ordinaire termine l’ancien canal, et l’ouverture suivante en crée un distinct.
02Peut-on ajouter et retirer des fonds ?+
Oui. Une contribution positive est un splice-in, une contribution négative un splice-out. Les deux parties doivent accepter le changement, et la transaction respecter les soldes, règles de réserve et frais. La somme des contributions détermine la capacité finale.