ZmnSCPxj [ARCHIVE] on Nostr: š
Original date posted:2021-07-04 š Original message: Good morning Rusty et al, ...
š
Original date posted:2021-07-04
š Original message:
Good morning Rusty et al,
> Matt Corallo lf-lists at mattcorallo.com writes:
>
> > Thanks!
> > On 6/29/21 01:34, Rusty Russell wrote:
> >
> > > Hi all!
> > >
> > > John Carvalo recently pointed out that not every implementation
> > >
> > >
> > > accepts zero-conf channels, but they are useful. Roasbeef also recently
> > > noted that they're not spec'd.
> > > How do you all do it? Here's a strawman proposal:
> > >
> > > 1. Assign a new feature bit "I accept zeroconf channels".
> > > 2. If both negotiate this, you can send update_add_htlc (etc) before
> > > funding_locked without the peer getting upset.
> > >
> >
> > Does it make sense to negotiate this per-direction in the channel init message(s)? There's a pretty different threat
> > model between someone spending a dual-funded or push_msat balance vs someone spending a classic channel-funding balance.
>
> channel_types fixes this :)
>
> Until then, I'd say keep it simple. I would think that c-lightning will
> implement the "don't route from non-locked-in channels" and always
> advertize this option. That means we're always offering zero-conf
> channels, but that seems harmless:
>
> - Risks for funder is that channel never confirms, but it probably ignores
> the risk because it can close onchain (annoying, and fee-heavy, but not
> loss of funds caused by peer).
>
> - Risks for fundee (or DF channels where peer contributes any funds) is
> that funder doublespends, so HTLCs must not be routed out to others
> (unless you have other reason to trust peer).
Mostly nitpick on terminology below, but I think text substantially like the above should exist in some kind of "rationale" section in the BOLT, so ---
In light of dual-funding we should avoid "funder" and "fundee" in favor of "initiator" and "acceptor".
However, we should also note that the substantial feature of turbo channels is ***not*** in channel opening per se, it is the *confirmation* of the channel.
Once the opening ritual has completed and the funding tx broadcast, that is when turbo channels come in, so it actually does not matter which peer is "initiator" and which is "acceptor" at that point, the opening ritual has completed.
Both peers, at the end of the opening ritual, have a valid commitment tx and both can double-spend the funds they put in to back out of the channel.
So what matters for the above rationale is the "sender" of an HTLC and the "receiver" of an HTLC, not really who is acceptor or initiator.
* Risks for HTLC sender is that the channel never confirms, but it probably ignores the risk because it can close onchain (annoying, and fee-heavy, but not loss of funds caused by peer).
* Risks for HTLC receiver is that the channel never confirms, so HTLC must not be routed out to others or resolved locally if the receiver already knows the preimage, UNLESS the HTLC receiver has some *other* reason to trust the peer.
Basically:
* "funder" and "fundee" are legacy terms that predate dual-funding and are depreciated.
In modern terms, the "funder" is the "initiator" and the "fundee" is the "acceptor", and in a legacy pre-dua-funding channel, only the initiator can start putting funds into the channel.
* "initiator" is the peer that starts the opening process, and pays for the opening fees.
* "acceptor" is the peer that is contacted by the initiator and decides whether to allow the creation of a channel with the initiator, and pays no opening fees.
* "HTLC sender" is any peer that, *after* the channel opening completes (but possibly before it is locked in), offers an HTLC to the peer.
* "HTLC receiver" is any peer that, *after* the channel opening completes (but possibly before it is locked in), is the one who accepts the HTLC from the HTLC sender.
Regards,
ZmnSCPxj
Published at
2023-06-09 13:03:00Event JSON
{
"id": "a8b9f981b374f8822b8a69895cfb0ee71df53b725af67b1d9d5471476a10521a",
"pubkey": "4505072744a9d3e490af9262bfe38e6ee5338a77177b565b6b37730b63a7b861",
"created_at": 1686315780,
"kind": 1,
"tags": [
[
"e",
"5b939faaa8b1530f86472b2f9c4dc55b9f8dea6f71ca80ce3563af20d2a12ae1",
"",
"root"
],
[
"e",
"687b4ae413dcfe0aafab79903b20f51ad2869db0eb2bfbdd4e2120b4b7d0f715",
"",
"reply"
],
[
"p",
"13bd8c1c5e3b3508a07c92598647160b11ab0deef4c452098e223e443c1ca425"
]
],
"content": "š
Original date posted:2021-07-04\nš Original message:\nGood morning Rusty et al,\n\n\u003e Matt Corallo lf-lists at mattcorallo.com writes:\n\u003e\n\u003e \u003e Thanks!\n\u003e \u003e On 6/29/21 01:34, Rusty Russell wrote:\n\u003e \u003e\n\u003e \u003e \u003e Hi all!\n\u003e \u003e \u003e\n\u003e \u003e \u003e John Carvalo recently pointed out that not every implementation\n\u003e \u003e \u003e\n\u003e \u003e \u003e\n\u003e \u003e \u003e accepts zero-conf channels, but they are useful. Roasbeef also recently\n\u003e \u003e \u003e noted that they're not spec'd.\n\u003e \u003e \u003e How do you all do it? Here's a strawman proposal:\n\u003e \u003e \u003e\n\u003e \u003e \u003e 1. Assign a new feature bit \"I accept zeroconf channels\".\n\u003e \u003e \u003e 2. If both negotiate this, you can send update_add_htlc (etc) before\n\u003e \u003e \u003e funding_locked without the peer getting upset.\n\u003e \u003e \u003e\n\u003e \u003e\n\u003e \u003e Does it make sense to negotiate this per-direction in the channel init message(s)? There's a pretty different threat\n\u003e \u003e model between someone spending a dual-funded or push_msat balance vs someone spending a classic channel-funding balance.\n\u003e\n\u003e channel_types fixes this :)\n\u003e\n\u003e Until then, I'd say keep it simple. I would think that c-lightning will\n\u003e implement the \"don't route from non-locked-in channels\" and always\n\u003e advertize this option. That means we're always offering zero-conf\n\u003e channels, but that seems harmless:\n\u003e\n\u003e - Risks for funder is that channel never confirms, but it probably ignores\n\u003e the risk because it can close onchain (annoying, and fee-heavy, but not\n\u003e loss of funds caused by peer).\n\u003e\n\u003e - Risks for fundee (or DF channels where peer contributes any funds) is\n\u003e that funder doublespends, so HTLCs must not be routed out to others\n\u003e (unless you have other reason to trust peer).\n\nMostly nitpick on terminology below, but I think text substantially like the above should exist in some kind of \"rationale\" section in the BOLT, so ---\n\nIn light of dual-funding we should avoid \"funder\" and \"fundee\" in favor of \"initiator\" and \"acceptor\".\nHowever, we should also note that the substantial feature of turbo channels is ***not*** in channel opening per se, it is the *confirmation* of the channel.\n\nOnce the opening ritual has completed and the funding tx broadcast, that is when turbo channels come in, so it actually does not matter which peer is \"initiator\" and which is \"acceptor\" at that point, the opening ritual has completed.\nBoth peers, at the end of the opening ritual, have a valid commitment tx and both can double-spend the funds they put in to back out of the channel.\n\nSo what matters for the above rationale is the \"sender\" of an HTLC and the \"receiver\" of an HTLC, not really who is acceptor or initiator.\n\n* Risks for HTLC sender is that the channel never confirms, but it probably ignores the risk because it can close onchain (annoying, and fee-heavy, but not loss of funds caused by peer).\n* Risks for HTLC receiver is that the channel never confirms, so HTLC must not be routed out to others or resolved locally if the receiver already knows the preimage, UNLESS the HTLC receiver has some *other* reason to trust the peer.\n\n\nBasically:\n\n* \"funder\" and \"fundee\" are legacy terms that predate dual-funding and are depreciated.\n In modern terms, the \"funder\" is the \"initiator\" and the \"fundee\" is the \"acceptor\", and in a legacy pre-dua-funding channel, only the initiator can start putting funds into the channel.\n* \"initiator\" is the peer that starts the opening process, and pays for the opening fees.\n* \"acceptor\" is the peer that is contacted by the initiator and decides whether to allow the creation of a channel with the initiator, and pays no opening fees.\n* \"HTLC sender\" is any peer that, *after* the channel opening completes (but possibly before it is locked in), offers an HTLC to the peer.\n* \"HTLC receiver\" is any peer that, *after* the channel opening completes (but possibly before it is locked in), is the one who accepts the HTLC from the HTLC sender.\n\nRegards,\nZmnSCPxj",
"sig": "88c1c2aac63e3c5ecf72d4e32fbea557485ae480a49da76bfd8f728d8ac30d13f1f76ae8518850afa45602bab657462abe84522d3e18b3130f03ef6cb7553dec"
}