Splicing
Splicing is the act of transferring funds from onchain outputs into a payment channel, or from a payment channel to independent onchain outputs, without the channel participants having to wait for a confirmation delay to spend the channel’s other funds.
Splicing comes in two varieties:
-
● Splice in means adding funds to a channel. In this case, a cooperative close of the channel is arranged between the involved parties that spends the old channel funds to a new channel along with the new deposit. Because the new channel open is based on the security of the old channel close, the channel participants can safely spend the old funds within the channel while waiting for the close and open transactions to confirm.
-
● Splice out means removing funds from a channel to an independent onchain output. Similar to splice-in, the channel is closed and a new channel is opened, with the remaining funds being secured by the old channel’s security until the new channel has fully confirmed.
Splicing is different from submarine swaps (such as those implemented by Lightning Loop) where funds are transferred between users in exchange for onchain transactions—in submarine swaps, the overall balance of the channel stays the same; in splicing, the overall balance of the channel changes.
Primary code and documentation
Optech newsletter and website mentions
2024
- LND #8270 implements the channel quiescence protocol designed in part for splicing
- Core Lightning #7719 achieves interoperability with Eclair for splicing
- Eclair #2925 introduces support for using RBF with splicing transactions
- Eclair #2861 implements on-the-fly funding using liquidity ads with either dual-funding or splicing
- Phoenix Wallet v2.2.0 adds support for splicing using the quiescence protocol
- Challenges with splicing and zero-conf channels when using v3 transaction topology
2023
- Core Lightning #6253 and #5675 add an experimental implementation of splicing
- Eclair #2680 adds quiescence negotiation for splicing
- Phoenix wallet adds splicing support
- Eclair #2584 adds support for both splice-in and splice-out
- Splicing specification discussion about relative amounts and minimizing redundant data
- Eclair #2595 continues the project’s work on adding support for splicing
- Eclair #2540 makes backend preparations for splicing
2022
- BOLTs #1004 makes recommendations to support future detection of splices
- Discussion about the best way to gossip channel splices
2021
2018
See also
Previous Topic:
Soft fork activation
Next Topic:
Spontaneous payments