Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
66 changes: 19 additions & 47 deletions data/projects/splicing.mdx
Original file line number Diff line number Diff line change
@@ -1,67 +1,39 @@
---
title: 'Splicing'
dateAdded: '2023-03-10'
summary: 'A Lightning upgrade for resizing channels without closing them.'
summary: 'Resize Lightning channels without closing them.'
nym: 'Dusty Daemon'
website: 'https://lightningsplice.com/'
donationLink: 'https://njump.to/npub1fuk7q4y0wzqw7vjrg7xeuuva79pg7ctg69a53zsxq6gepksufrrst9mzly'
coverImage: '/static/images/projects/splicing.jpg'
git: 'https://github.com/lightning/bolts/pull/863'
git: 'https://github.com/lightning/bolts/pull/1160'
twitter: 'dusty_daemon'
personalTwitter: 'dusty_daemon'
nostr: 'npub1fuk7q4y0wzqw7vjrg7xeuuva79pg7ctg69a53zsxq6gepksufrrst9mzly'
tags: ['Lightning', 'Protocol']
showcase: true
fund: general
announcementLink: '/blog/bitcoin-grants-july-2023#splicing'
---

## About this project
Splicing is a Lightning protocol improvement that lets users resize channels without closing them and opening new ones. Instead of tearing down an existing channel to add or remove liquidity, a splice updates the channel's funding transaction in place.

Splicing is a proposal for BOLT 2, BOLT 7, and BOLT 9 that is maintained by
[Dusty Daemon](https://lightningsplice.com/dusty_daemon.html).
> The increased liquidity flows improve all aspects of Lightning including payment speed, payment fees, and payment reliability.
>
> <cite>— [Dusty Daemon](/blog/advancements-in-lightning-infrastructure#splicing)</cite>

- See the complete proposal here: [Splicing Specification](https://github.com/lightning/bolts/pull/863/files)
- Discussion here: [Splicing Spec Conversation](https://github.com/lightning/bolts/pull/863)
Splicing gives users a cleaner way to add or remove liquidity, helping node operators manage capital more efficiently.

At its core Splicing is a simple concept, the ability to resize Lightning
channels. But what's become apparent over time is the ability to resize
Lightning channels gives us many additional benefits that were not intuitively
obvious at first, and will fundamentally improve the utility of Lightning.
## Why fund it?

There are really two sides to what Splicing brings:
Splicing has been discussed for years, but turning a specification into production-ready code takes focused engineering. It touches protocol design, transaction construction, edge-case handling, interoperability, and developer education across multiple Lightning implementations.

- User-facing improvements
- Backend liquidity improvements
OpenSats began supporting Splicing in July 2023 through a [Bitcoin grant](/blog/bitcoin-grants-july-2023#splicing) to Dusty Daemon, who has been driving both the specification and the first implementation work. That support later expanded into [long-term support](/blog/dusty-daemon-receives-lts-grant) as the project matured.

Splicing is the process of moving a lightning channel's funding utxo into a new
"spliced" utxo. The exact steps involved are quite simple: sign the 2of2
multisignature transaction to a new location. Doing it in a trustless manner
however, is not simple at all.
## What's next?

- Splicing explained: [lightningsplice.com](https://lightningsplice.com/splicing_explained.html)
- Splicing video explanations: [lightningsplice.com/videos](https://lightningsplice.com/splicing_videos.html)
The official merging of the splicing specifications in the [BOLTs repository](https://github.com/lightning/bolts) has moved this work closer to broader deployment. In the [lightning infrastructure impact report](/blog/advancements-in-lightning-infrastructure#splicing), Dusty describes progress on a full implementation in Core Lightning, work on [Splice Script](https://github.com/ElementsProject/lightning/pull/6980) for more expressive transaction flows, and parallel efforts to bring Splicing into LDK.

## About Dusty
Dusty's latest reports show that the work has shifted from ratifying the spec to shipping usable tools. The splicing spec is now ratified, Core Lightning and Eclair have gone through final interoperability work, and Splice Script now supports multi-channel splices plus simpler `splicein` and `spliceout` flows.
Comment thread
dergigi marked this conversation as resolved.

I have been working on Bitcoin code for five years and 1.5 years ago I decided
to dedicate myself to programming for the Lightning network. I began by learning
about Lightning in depth and making contributions to the CoreLightning project.
I felt particularly accomplished rooting out some complex flakiness bugs and
porting the project to MacOS.

I had heard of splicing in 2018 and saw it making the news rounds last year. On
Clubhouse and Twitter Spaces bitcoiners were talking excitedly about using
submarine swaps and I suggested people use splicing instead! The confused
silence was palpable, no one had heard about it all. Diving in I realized only
the splicing spec had been released — no one had actually written the code! So I
decided I would take on the work of coding up the first implementation. By March
of this year I had made the world’s first splice and published it on chain! You
can see it here:
[twitter](https://twitter.com/dusty_daemon/status/1522413475909316610),
[mempool](https://mempool.space/tx/c143bbd3f983e7d07bbccf571352c2432c8e97a543d26a6962582021ec788804).

Since then I have been working on finishing up the proper & complete splice
implementation. The code is now in a beta state which you can see here:
[PR #5675](https://github.com/ElementsProject/lightning/pull/5675)

I’m looking for funding to finish the code to a polished state, build a thorough
testing framework, evangelize to companies that would benefit from splicing, and
bring the implementation to the other Lightning node code bases.

- Dusty's worklog: [ddustin/worklog](https://github.com/ddustin/worklog)
The next step is wider interoperability and production adoption. Once multiple Lightning stacks can rely on the same underlying behavior, Splicing can become a standard liquidity tool instead of a niche feature.
5 changes: 5 additions & 0 deletions next.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,11 @@ module.exports = () => {
destination: '/projects/showcase',
permanent: true,
},
{
source: '/projects/dusty',
destination: '/projects/splicing',
permanent: true,
},
{
source: '/faq/grantees',
destination: '/faq/grantee',
Expand Down
4 changes: 3 additions & 1 deletion scripts/generate-project-og.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,9 @@ function renderSvg(project, coverImage) {
const titleSvg = titleLines
.map(
(line, index) =>
`<tspan x="84" dy="${index === 0 ? 0 : titleLineHeight}">${escapeXml(line)}</tspan>`
`<tspan x="84" dy="${index === 0 ? 0 : titleLineHeight}">${escapeXml(
line
)}</tspan>`
)
.join('')

Expand Down
Loading