Ephemeral Dust 0-Fee Requirement Complexifies Downstream Protocols #31938

issue TheBlueMatt openend this issue on February 23, 2025
  1. TheBlueMatt commented at 2:47 pm on February 23, 2025: contributor

    In lightning, we often want to deal with HTLCs which are below the dust threshold and thus must be burned to fees (absent something better to do with them). When doing ephemeral anchors, we want to retain that property. Ephemeral dust currently, however, requires that we burn them into the anchor (as we aren’t allowed to have a non-0 fee when dealing with ephemeral dust).

    If we burn the entire dust HTLC sum (which may be nontrivial, though it should never be huge) into the anchor (and fees are low), either channel counterparty might see that dust HTLC sum as nice free money. If they’re a miner, of course, the entire dust HTLC sum is always free money, but in most cases that isn’t true, so they’d be incentivized to go use a private mempool service (eg MEVPool) which is bad for everyone.

    Instead, lightning would need to burn up to the dust limit in HTLC dust into the anchor output and then burn the remainder into the commitment transaction fee (as we can skip using the ephemeral dust rules once the anchor is no longer dust). Dealing with this is somewhat annoying (okay, its not that bad, but I’d really rather not have to), and its not clear to me that the 0-fee requirement accomplishes all that much:

    In a world where blocks aren’t full and there isn’t sustained mempool pressure (today), anyone-can-spend dust isn’t all that bad - cleaning it up is free for miners so there’s not a lot of reason to worry about it. In a world where blocks are sustainably full and feerates rise above the minimum relay fees (hopefully the future), the dust thresholds we have don’t make sense anyway, so enforcing them doesn’t really accomplish much.

  2. glozow added the label TX fees and policy on Feb 24, 2025
  3. glozow commented at 7:12 pm on February 24, 2025: member

    So to summarize. Given you have amt amount of trimmed htlcs to burn, this is the “annoying” option you’d need to do now:

    • amt > 0 and <= dust: put it in the anchor
    • amt > dust: anchor has dust, fees have amt - dust

    And the option you want: just put 0 in the anchor, everything else into fees. So this is kind of like removing the dust limit (apart from the rule that you can only have 1).

    they’d be incentivized to go use a private mempool service (eg MEVPool) which is bad for everyone.

    You’re saying they’re incentivized to do this so that nobody else is able to see the tx prior to confirmation (and thus can’t snipe if from them)?

    In a world where blocks aren’t full and there isn’t sustained mempool pressure (today), anyone-can-spend dust isn’t all that bad - cleaning it up is free for miners so there’s not a lot of reason to worry about it.

    I have to ask: why would miners clean up 0-value outputs ever, other than to be nice?

  4. glozow commented at 7:20 pm on February 24, 2025: member
    Do we have stats on how many current-day anchors are hanging out in the UTXO set? I know they’re effectively anyone-can-spend and theoretically can be cleaned up, but does that happen in practice?
  5. TheBlueMatt commented at 7:24 pm on February 24, 2025: contributor

    So to summarize.

    Yep!

    So this is kind of like removing the dust limit (apart from the rule that you can only have 1).

    And that its only for anyone-can-spend/P2A.

    You’re saying they’re incentivized to do this so that nobody else is able to see the tx prior to confirmation (and thus can’t snipe if from them)?

    Correct, though that just is why we have to do the pay-to-fee in the amt > dust case.

    I have to ask: why would miners clean up 0-value outputs ever, other than to be nice? Do we have stats on how many current-day anchors are hanging out in the UTXO set? I know they’re effectively anyone-can-spend and theoretically can be cleaned up, but does that happen in practice?

    Just to be nice. Indeed, today they are cleaned up, but they also can be claimed at 1sat/vB without (I think without? maybe with minimal) additional value so its not just miners doing it.

  6. glozow commented at 7:35 pm on February 24, 2025: member

    So to summarize.

    Yep!

    So this is kind of like removing the dust limit (apart from the rule that you can only have 1).

    And that its only for anyone-can-spend/P2A.

    Ohhh, that is different! So the request is to waive the 0-fee requirement specifically for p2a. This is a bit better, but I’m still not convinced that we can expect the outputs to be cleaned up. It’s not like the anchors are going to be in “the dust range.” They’re always going to be exactly 0.

  7. TheBlueMatt commented at 7:47 pm on February 24, 2025: contributor
    I think it comes down to if block space is going to be free or not - in my view its kinda binary - if block space is never-free the dust concept kinda goes out the window because fees are material and tons of UTXOs are worthless, if block space is sometimes-free (bad news for bitcoin, but hey) then you just have to find one miner who wants to clean up crap and you’re good.

github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2025-03-31 09:12 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me