Skip to content

Disable new L-BTC swaps following the Liquid incident - #460

Merged
YusukeShimizu merged 4 commits into
ElementsProject:masterfrom
YusukeShimizu:disable-new-liquid-swaps
Sep 7, 2026
Merged

Disable new L-BTC swaps following the Liquid incident#460
YusukeShimizu merged 4 commits into
ElementsProject:masterfrom
YusukeShimizu:disable-new-liquid-swaps

Conversation

@YusukeShimizu

@YusukeShimizu YusukeShimizu commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

Disable new L-BTC swap requests following the public Liquid Network security incident.

Both local RPC requests and incoming peer requests are rejected in both directions, including forced requests. L-BTC is omitted from capability announcements. Bitcoin swaps retain their existing behavior.

Liquid backend initialization, persisted swaps, and recovery callbacks remain enabled, including when Bitcoin swaps are disabled. Recovery still depends on Liquid network availability and the recovered chain; this change does not guarantee recovery. The README includes the official statement and screenshot.

Also stop the capability handler from incorrectly logging recognized swap messages, including SwapInAgreement (42073), as unknown. The existing swap handler continues to process them.

Prevent new exposure during the public Liquid network security incident
without disabling the services needed to recover existing contracts.
Reject local and remote L-BTC requests before wallet or payment actions,
and preserve active swaps when their request messages are retransmitted.

Keep backend initialization and recovery callbacks enabled, omit L-BTC
from capability announcements, and retain Bitcoin swap behavior. Cover
request rejection and persisted recovery with Bitcoin disabled. Adapt
Liquid integration tests using a pinned v7.0.0 upgrade fixture.

Validate with the unit and race suite, builds, and diff lint. Live-node
integration requires Linux; the Nix shell is unsupported on macOS.
The capability handler receives swap messages alongside capability
announcements. Reporting these recognized types as unknown produces
misleading errors, including for SwapInAgreement (42073).

Leave swap processing to the existing swap handler and retain unknown
message diagnostics for unrecognized types. Test both logging paths.
Warn users that v7.0.1 rejects new L-BTC swaps while preserving existing
recovery mechanisms. Explain that recovery depends on the network and
recovered chain, and ask users to retain their data and backend setup.

Link the public Liquid Network statement and include its screenshot so
readers can find the incident context and official updates.
@YusukeShimizu
YusukeShimizu force-pushed the disable-new-liquid-swaps branch from 77e2599 to 2a6432d Compare September 7, 2026 04:39
Startup still reports Liquid swaps as enabled even though new requests
are refused. Make the recovery-only state clear to operators, including
those who have disabled Bitcoin swaps.

Use the requested refusal and recovery wording for both CLN and LND.
Retain LWK network and wallet details, and update the existing config
integration test to wait for the new message.
@YusukeShimizu
YusukeShimizu marked this pull request as ready for review September 7, 2026 07:38
@YusukeShimizu
YusukeShimizu merged commit 0d39800 into ElementsProject:master Sep 7, 2026
14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant