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

Write DiscardFunding contributions as an odd event type

Public commit record

What the developer wrote

Authored by Jeffrey Czyz

81/100 · Strong
Write DiscardFunding contributions as an odd event type

`FundingInfo::Contribution` was added in 0.3, but 0.2 fails to read
unknown `FundingInfo` variants. A `ChannelManager` or `ChannelMonitor`
serialized while an `Event::DiscardFunding` containing one was pending
-- the former whenever serialized during an incomplete splice
negotiation with a local contribution, the latter upon discarding a
negotiated splice with a recorded contribution -- could therefore never
be read by 0.2.

Write such events under a new odd event type, which prior versions
ignore, restoring the ability to downgrade. A downgraded node loses the
event; the next commit compensates for the negotiation-failure case by
including the discarded UTXOs in `Event::SpliceNegotiationFailed`.

Partially addresses #4919.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Links an issue, advisory, or supporting reference
The short version

What changed, and why it matters

This commit fixes a backward-compatibility bug in how a particular wallet event is saved to disk. A new type of funding contribution introduced in version 0.3 could not be read by version 0.2, which would crash or fail when loading a wallet that had been saved while a 'DiscardFunding' event was pending. The fix writes that specific case under a new, odd-numbered event type that older versions safely ignore, allowing users to downgrade from 0.3 to 0.2 without their wallet becoming unloadable. There is no attacker-controlled exploit here; it is a reliability/downgrade fix.

Recommended action

Treat as a normal bug-fix / compatibility patch. Review the follow-up commit that adds discarded UTXOs to Event::SpliceNegotiationFailed, since this commit alone causes downgraded nodes to lose the event. No urgent security deployment is required.

Security signals we found

01

Backward-compatibility / downgrade safety fix

02

Serialization format change to prevent load failures in older versions

03

Odd TLV type used to ensure older parsers ignore unknown event variant

04

No input validation, memory safety, or cryptographic weakness addressed

Risk score

Why this scored 35/100

Our methodology →
Potential impact 12/30
Exploitability 0/25
Stealth signal 3/15
Affected reach 8/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.