Skip to content

[feature]: Zero Fee Commitments #10201

@TheBlueMatt

Description

@TheBlueMatt

Zero-fee commitments are specified at lightning/bolts#1228 and fix a number of important security and usability issues.

First of all, 0FC addresses a remaining major naive pinning attack against anchor channels - the trivial "just put a bunch of crap in the mempool" attack, driving fees up for a replacement, potentially higher than you're willing to pay. 0FC relies on tx version 3 to restrict package sizes to entirely remove the attack.

More generally, though, 0FC fixes important UX issues with non-routing nodes.

  • 0FC fixes remaining issues with feerate disagreements. Sadly, with Harding's feerate-inflation attack a peer (LSP) setting a surprisingly high feerate is indistinguishable from an attack. We often see complaints where an LSP is using some conservative estimator with LND (eg at some point last week a few LSPs got stuck with the Bitcoin Core estimator thinking fees need to be 10sat/vB while blocks were empty, due to using CONSERVATIVE fee estimation mode) and a non-routing node client uses a more reasonable estimator, causing the non-routing node client to assume the LSP is performing a feerate-inflation attack and refusing to send HTLCs. Of course the client can disable these checks and opt to trust the LSP, but switching lightning to a trusted mode isn't exactly an ideal outcome.
  • Especially those with (pre-splicing) many channels, even things as basic as providing a "balance" to the user is complicated and ends up being horrendously confusing. If you have multiple channels, each individual channel is limited by reserve value, in-flight limits, and HTLC output tx fees. When you end up with (again, pre-splicing) several fairly-small channels, as is common for "end-user nodes" with an LSP, these issues compound and often show up as a nontrivial restriction in your ability to send your "balance", frustrating users. 0FC fixes the last issue (HTLC output tx fees) here, with 0-reserve being employed sometimes and in-flight limits being only optional.

Of course none of this is to mention the absolute sheer joy that removing the feerate-updating logic should bring to everyone. Both the above-mentioned feerate-inflation attacks and feerate disagreement issues, but also the edge cases around sudden fee spikes leaving channels unable to add any additional HTLCs that could come back to bite us at any moment are overhead none of us should want.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementImprovements to existing features / behaviour

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions