Skip to content

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

Closed
YusukeShimizu wants to merge 3 commits into
masterfrom
codex/disable-new-liquid-swaps
Closed

Disable new L-BTC swaps following the Liquid incident#458
YusukeShimizu wants to merge 3 commits into
masterfrom
codex/disable-new-liquid-swaps

Conversation

@YusukeShimizu

Copy link
Copy Markdown
Contributor

Disable new L-BTC swap requests for v7.0.1 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.

Validation:

  • Unit/race suite, builds, and diff lint pass locally; final post-commit checks are running.
  • Tests cover rejected requests, retransmissions, and persisted CSV/cooperative recovery with Bitcoin disabled.
  • Liquid integration cases now check suspension. A pinned v7.0.0 fixture exercises restarting an existing swap with the updated plugin.
  • Live-node integration requires Linux and will be verified in CI. Warren will separately test the recovery-only configuration.

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.
@github-actions

github-actions Bot commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

The latest Buf updates on your PR. Results from workflow Buf / buf-check (pull_request).

BuildFormatLintBreakingUpdated (UTC)
✅ passed✅ passed✅ passed✅ passedSep 7, 2026, 4:35 AM

@YusukeShimizu

Copy link
Copy Markdown
Contributor Author

Replaced by #459 to use the branch name disable-new-liquid-swaps.

@YusukeShimizu
YusukeShimizu deleted the codex/disable-new-liquid-swaps branch September 7, 2026 04:36
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