Christian Decker [ARCHIVE] on Nostr: 📅 Original date posted:2018-01-17 📝 Original message: Benjamin Mord <ben at ...
📅 Original date posted:2018-01-17
📝 Original message:
Benjamin Mord <ben at mord.io> writes:
> It isn't obvious to me from the BOLTs if fees can be negative, and I'm
> finding uint in the go source code - which suggests not. In scenarios where
> the funding of a payment channel has been fully committed in one direction,
> why not allow negative fees to incent unwinding, in scenarios where nodes
> consider that cheaper than on-chain rebalancing?
After discussing this for a while we decided not to allow negative fees
in channel announcements (for now), because they actually do not add to
the flexibility and require special handling for route finding.
The main argument for negative fees has always been that they allow a
channel operator to rebalance its channels. However it is neither
required, nor is it really all that helpful. If a node wants to
rebalance he needs to find a cycle, that it can use to rebalance. The
simplest rebalancing is that the node itself sends a payment along that
cycle back to itself, giving the rebalancing node full control over the
amount to rebalance, timing and costs.
The negative fees were intended to encourage other participants to use
any cycle and rebalance for the node offering the negative fees. However
that results in less control over the rebalancing for the node, e.g.,
how many payments to incentivize, amounts, etc. This is compounded by
the inherent delay of channel updates being disseminated in the
network. So if a rebalancing node gets too many payments that try to
take advantage of the negative fees, what should it do? It'd result in
either losses for the node, or many forward rejections. So why not use
the funds one would have used towards negative fees for the active way
of rebalancing.
It is preferable to have payments be routed around an exhausted channel,
after all if there is a cycle there must be an alternative route, rather
than trying to artificially rebalance.
So overall, allowing only positive fees makes routing simpler, and still
allows for active rebalancing. As for other applications some have
alluded to, this constraint is only for the routing gossip. Should there
be a good reason to allow increasing the amount forwarded by a peer,
e.g., node n receives x from the previous hop and forwards x+e to the
next hop, that can still be negotiated out of band or even in the onion
payload for that node.
Cheers,
Christian
Published at
2023-06-09 12:48:36Event JSON
{
"id": "178c39419ee401373fcc04ac171676ebbf0638caa44f7714c001f747b579751c",
"pubkey": "72cd40332ec782dd0a7f63acb03e3b6fdafa6d91bd1b6125cd8b7117a1bb8057",
"created_at": 1686314916,
"kind": 1,
"tags": [
[
"e",
"4aac94e2520d5d85249e479c2e245742d89199e35c82a898ea938aaf0a3c0a1b",
"",
"root"
],
[
"e",
"f0cea7bb02dec12edb1ad29b19cc3392b0d76293851e94b197f0fe8305f4e059",
"",
"reply"
],
[
"p",
"1c61d995949cbfaf14f767784e166bde865c7b8783d7aa3bf0a1d014b70c0069"
]
],
"content": "📅 Original date posted:2018-01-17\n📝 Original message:\nBenjamin Mord \u003cben at mord.io\u003e writes:\n\u003e It isn't obvious to me from the BOLTs if fees can be negative, and I'm\n\u003e finding uint in the go source code - which suggests not. In scenarios where\n\u003e the funding of a payment channel has been fully committed in one direction,\n\u003e why not allow negative fees to incent unwinding, in scenarios where nodes\n\u003e consider that cheaper than on-chain rebalancing?\n\nAfter discussing this for a while we decided not to allow negative fees\nin channel announcements (for now), because they actually do not add to\nthe flexibility and require special handling for route finding.\n\nThe main argument for negative fees has always been that they allow a\nchannel operator to rebalance its channels. However it is neither\nrequired, nor is it really all that helpful. If a node wants to\nrebalance he needs to find a cycle, that it can use to rebalance. The\nsimplest rebalancing is that the node itself sends a payment along that\ncycle back to itself, giving the rebalancing node full control over the\namount to rebalance, timing and costs.\n\nThe negative fees were intended to encourage other participants to use\nany cycle and rebalance for the node offering the negative fees. However\nthat results in less control over the rebalancing for the node, e.g.,\nhow many payments to incentivize, amounts, etc. This is compounded by\nthe inherent delay of channel updates being disseminated in the\nnetwork. So if a rebalancing node gets too many payments that try to\ntake advantage of the negative fees, what should it do? It'd result in\neither losses for the node, or many forward rejections. So why not use\nthe funds one would have used towards negative fees for the active way\nof rebalancing.\n\nIt is preferable to have payments be routed around an exhausted channel,\nafter all if there is a cycle there must be an alternative route, rather\nthan trying to artificially rebalance.\n\nSo overall, allowing only positive fees makes routing simpler, and still\nallows for active rebalancing. As for other applications some have\nalluded to, this constraint is only for the routing gossip. Should there\nbe a good reason to allow increasing the amount forwarded by a peer,\ne.g., node n receives x from the previous hop and forwards x+e to the\nnext hop, that can still be negotiated out of band or even in the onion\npayload for that node.\n\nCheers,\nChristian",
"sig": "12e70e641ef0fbf91b76ae93799bf320be2be890dd6b496c02b420b77fb0219c36945809a85ea05c4c92181f40f2587cda533416a2ff1d18dddee96d9637ba8b"
}