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

Drop `RevokedOutput::is_counterparty_balance_on_anchors`

Public commit record

What the developer wrote

Authored by Matt Corallo

63/100 · Adequate
Drop `RevokedOutput::is_counterparty_balance_on_anchors`

When we added anchors support we declined to aggregate claims
across different types of outputs for anchor channels, requiring
that we track whether a `RevokedOutput` claim came from an anchor
channel or not. This was only ever used to decide whether the claim
was aggregable or not.

In 0fe90c6f7c3325935b18dbc809be14afd8fe067f we started aggregating
by determining whether a claim is pinnable or not, rather than the
much-too-coarse aggregable flag, leaving
`is_counterparty_balance_on_anchors` unused.

Here we remove it entirely (as it would become ambiguous with
zero-commitment-fee anchor channels).

We always write `Some(())`, marking the claim as an anchor claim
and resulting in LDK prior to 0.1 refusing to aggregate the claim
(which is the more conservative stance). This breaks downgrade to
LDK 0.0.115 and earlier.
✓ Specific, descriptive subject✓ Provides detailed explanatory context
The short version

What changed, and why it matters

This commit removes an internal flag used when claiming funds from a revoked Lightning channel. The flag had become unused after a prior change, and removing it simplifies the code. The change intentionally breaks backward compatibility with older versions (before 0.1) to avoid ambiguous behavior with newer anchor channel types. It is a cleanup/refactoring change with a deliberate compatibility trade-off, not a fix for an active exploit.

Recommended action

Review downgrade policy and release notes to ensure users are aware that downgrade to LDK 0.0.115 and earlier is no longer supported for persisted `RevokedOutput` state. No immediate security patch is required, but operators should avoid mixed-version clusters with pre-0.1 nodes after upgrading.

Security signals we found

01

Backward-compatibility break explicitly acknowledged in commit message

02

Serialization change writes legacy sentinel value to influence older versions' aggregation behavior

03

Removes dead code tied to anchor channel revocation handling

04

No patch of an active vulnerability; change is defensive cleanup

Risk score

Why this scored 32/100

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