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

Drop `ChannelHandshakeLimits::max_funding_satoshis`

Public commit record

What the developer wrote

Authored by Elias Rohrer

63/100 · Adequate
Drop `ChannelHandshakeLimits::max_funding_satoshis`

Previously, LDK would by default limit channels pre-Wumbo sizes and
leave it to the user to bump
`ChannelHandshakeLimits::max_funding_satoshis`. This has mostly
historical reasons that aimed to allow limiting risk when Lightning and
LDK were not as matured as today. By now, we do however expect ~all
users to eventually want to bump this limit, and having them pick an
arbitrary value (or pick a default ourselves) is kinda odd. Users that
still want to limit risks have ample other means to do so, for example
manually rejecting inbound channels via the manual-acceptence flow (via
`Event::OpenChannelRequest`) or soon even limiting risk on a per-HTLC
basis via general purpose HTLC interception.

Furthermore, it turns out that our current implementation is wrong, as
we do always announce `Wumbo`/`option_supports_large_channels` support
via the `IN` feature in `ChannelManager` defaults, irrespective of what
limit is configured. This has us announcing support for Wumbo channels
to only then reject inbound requests in case a counterparty dares to
actually try to open one.

To address this, we here simply propose to drop the
`max_funding_satoshis` field and corresponding checks entirely, and do
what we've announced to the network for a long time: enable Wumbo by
default.
✓ Specific, descriptive subject✓ Provides detailed explanatory context
The short version

What changed, and why it matters

This commit removes a default cap on how large an incoming Lightning channel can be. Previously, LDK advertised support for large ('Wumbo') channels but would still reject them unless the user manually raised a hidden limit. The change makes the advertised behavior real: large inbound channels are now accepted by default. It is a behavior change, not a buffer-overflow or key-theft bug, but it could surprise users who relied on the old implicit cap to limit their financial exposure.

Recommended action

Review whether any deployed LDK nodes depended on the old default `max_funding_satoshis` limit for risk control. If so, replace it with explicit risk controls such as the manual `Event::OpenChannelRequest` acceptance flow or per-HTLC interception, as suggested in the commit message. Verify that serialization compatibility is acceptable for your deployment (the field is removed from `ChannelHandshakeLimits`).

Security signals we found

01

Behavior mismatch between advertised protocol feature (`option_supports_large_channels` / Wumbo) and enforced inbound limit

02

Removal of a default financial-exposure limit that users may have relied on implicitly

03

Serialization format change for `ChannelHandshakeLimits` (field removed)

04

Fuzz corpus seeds updated because serialized config bytes changed

Risk score

Why this scored 35/100

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