AI-generated analysisPublished automatically and not human-verified. Validated context appears in community notes below.
← Watch feed
Moderate 60 Bitcoin

Re-validate contribution at quiescence time

Public commit record

What the developer wrote

Authored by Jeffrey Czyz

68/100 · Adequate
Re-validate contribution at quiescence time

Outbound HTLCs can be sent between funding_contributed and quiescence,
reducing the holder's balance. Re-validate the contribution when
quiescence is achieved and balances are stable. On failure, emit
SpliceFailed + DiscardFunding events and disconnect the peer so both
sides cleanly exit quiescence.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
The short version

What changed, and why it matters

This commit fixes a bug in Lightning Dev Kit's channel splicing logic. When users add or remove funds from a channel (splicing), the software now re-checks whether the proposed funding contribution is still valid once the channel becomes 'quiescent' (paused for the splice). The bug was that new outbound payments sent between when the contribution was first accepted and when quiescence actually occurred could reduce the user's balance, making a previously-valid splice-out invalid. Without this fix, the splice could proceed based on stale balance information, potentially creating an invalid funding transaction or putting the channel in an inconsistent state. The fix emits failure events and disconnects the peer so both sides cleanly abort the splice.

Recommended action

Treat as a security-relevant correctness fix. Review splicing flows for any other stale-balance assumptions, ensure `DiscardFunding` events are handled by downstream wallets to reclaim inputs, and consider whether this bug class affects dual-funded or RBF splice paths similarly.

Security signals we found

01

Stale-balance validation gap in splicing protocol

02

Potential invalid funding transaction or channel state inconsistency

03

Peer disconnection on validation failure to force clean quiescence exit

04

New event emission (SpliceFailed + DiscardFunding) to reclaim user inputs

05

Regression test reproduces the balance-change window

Risk score

Why this scored 60/100

Our methodology →
Potential impact 18/30
Exploitability 12/25
Stealth signal 8/15
Affected reach 10/15
Confidence 8/10
Evidence quality 4/5
Human-validated context

Community notes

Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.

No validated notes yet.

The AI analysis stands alone for now. Submit a note if you can add evidence or important context.