blips icon indicating copy to clipboard operation
blips copied to clipboard

bLIP-0030: zero-reserve channels

Open t-bast opened this issue 1 year ago • 7 comments

Nodes can opt-in to remove the channel reserve requirements, which makes better use of their channel liquidity.

If https://github.com/lightning/bolts/pull/1140 is accepted to the BOLTs, I will update this bLIP to only contains details for the fraud proof construction (which I don't think makes sense in the BOLTs).

t-bast avatar Oct 24 '23 10:10 t-bast

Does this blip need some info on how to handle dust? The reserve is below the dust bounds, which is unusual. Also there's a possibility to end up with a transaction without outputs in certain scenarios, like when routing the entire channel capacity with dust htlcs.

JssDWt avatar Nov 21 '23 21:11 JssDWt

While it's unusual, it usually doesn't create specific issues, so we generally don't even need to mention it (outputs are simply trimmed with the existing mechanisms). You have a good point though about a commit tx potentially becoming empty: we must not let that happen!

In practice that should never happen, because:

  • there is a limit to dust exposure (https://github.com/lightning/bolts/blob/master/02-peer-protocol.md#bounding-exposure-to-trimmed-in-flight-htlcs-max_dust_htlc_exposure_msat) that should be bounded by a percentage of the channel size: but it is maintained by failing HTLCs that go over, so it doesn't fully prevent the commit from becoming empty
  • there is a limit to pending HTLCs (max_htlc_value_in_flight_msat) and the recommandation is to set this to something strictly smaller than 50% of the channel capacity

But I agree with you that this should still be explicitly mentioned in this spec. I don't think there's a good way of handling it when it happens, we should rather focus on making sure it doesn't and simply say that you must force-close if the commit tx is becoming empty. Does that sound reasonable @JssDWt?

t-bast avatar Nov 22 '23 08:11 t-bast

But I agree with you that this should still be explicitly mentioned in this spec. I don't think there's a good way of handling it when it happens, we should rather focus on making sure it doesn't and simply say that you must force-close if the commit tx is becoming empty. Does that sound reasonable @JssDWt?

That does sound reasonable. Along with some preventive measure, like you must not add a htlc if that causes the commitment tx to become empty.

JssDWt avatar Nov 22 '23 11:11 JssDWt

Sounds good, I'll add that shortly. Thanks!

t-bast avatar Nov 22 '23 13:11 t-bast

Done in https://github.com/lightning/blips/pull/30/commits/a912d64c2565623b800bea9201fcaac32f94767c

t-bast avatar Nov 22 '23 16:11 t-bast

ACK.

niteshbalusu11 avatar Feb 01 '24 12:02 niteshbalusu11

I submitted https://github.com/lightning/bolts/pull/1140 to the BOLTs repository: if it is accepted, I will update this bLIP to only contains details for the fraud proof construction (which I don't think makes sense in the BOLTs).

t-bast avatar Feb 16 '24 11:02 t-bast