<oembed><type>rich</type><version>1.0</version><author_name>npub1aslmpzentw224n3s6yccru4dq2qdlx7rfudfnqevfck637cjt6esswfqmx</author_name><author_url>https://nostr.ae/npub1aslmpzentw224n3s6yccru4dq2qdlx7rfudfnqevfck637cjt6esswfqmx</author_url><provider_name>njump</provider_name><provider_url>https://nostr.ae</provider_url><html>📅 Original date posted:2022-07-01&#xA;📝 Original message:&#xA;Currently routing nodes on the lightning network charge fees based on a&#xA;policy that pertains to the outgoing channel only.&#xA;&#xA;Several mentions have been made by routing node operators that this limits&#xA;the control that they can exert over the flow of traffic. The movement of&#xA;funds on all of the incoming channels is free of charge, which does not&#xA;match the reality of not all inbound liquidity being equal.&#xA;&#xA;One option to fix this is to add two additional fields to the&#xA;`channel_update` message:&#xA;* `inbound_fee_base_msat`&#xA;* `inbound_fee_proportional_millionths`&#xA;&#xA;With the previously introduced tlv message extensions, it should be&#xA;possible to let these fields propagate throughout the network without any&#xA;upgrades required.&#xA;&#xA;Senders must pay each routing node the sum of its advertised inbound and&#xA;outbound fee for the channels used:&#xA;&#xA;outbound_fee(amt_to_fwd) + inbound_fee(amt_to_fwd +&#xA;outbound_fee(amt_to_fwd))&#xA;&#xA;So the inbound_fee is calculated based on the actual balance change in the&#xA;incoming channel. This includes the amount to forward as well as the&#xA;outbound fee.&#xA;&#xA;An important characteristic of any solution that is to be deployed in an&#xA;existing network, is that it is backwards compatible. If routing nodes&#xA;start to require inbound fees, every sender that hasn’t upgraded their node&#xA;software will no longer be able to use that routing node. The routing node&#xA;will miss out on routing fees.&#xA;&#xA;One mitigation is to charge zero inbound fees until a sufficiently large&#xA;portion of the senders has upgraded. It may be unclear though when this is&#xA;the case, and will likely take a significant amount of time. A test could&#xA;be to temporarily charge a minimal inbound fee, and watch for a reduction&#xA;in traffic and increase in `fee_insufficient` failures returned. If there&#xA;is little or no effect, then most senders have probably upgraded.&#xA;&#xA;Another way to go about this is to set negative inbound fees during the&#xA;transitory phase. It is effectively a discount for using specific inbound&#xA;channels. So a routing node that charges 10 sats for forwarding today, may&#xA;in the future increase that to 13 sats and set the inbound fee to -3 sats.&#xA;&#xA;Senders ignoring inbound fees will overpay (13 sats whereas 10 sats would&#xA;have been sufficient), but are still able to use the routing node. The&#xA;routing node may see a reduction in traffic though because it effectively&#xA;increased its fee for older senders only. But inbound fees could be&#xA;increased (decreased really because they are negative) gradually while&#xA;monitoring for fee over-payments. Over-payments are indicative of senders&#xA;ignoring the inbound fee discount.&#xA;&#xA;Path-finding algorithms that are currently in use generally don’t support&#xA;negative fees. But in this case, the sum of inbound and outbound fees is&#xA;still positive and therefore not a problem. If routing nodes set their&#xA;policies accidentally or intentionally so that the sum of fees turns out&#xA;negative, senders can just round up to zero and find a path as normal.&#xA;&#xA;Overall I think this can be a relatively compact change that may ultimately&#xA;lead to better capital placement on the network and lower routing fees.&#xA;&#xA;Looking for feedback on the idea from both lightning devs and routing node&#xA;operators.&#xA;&#xA;Joost&#xA;-------------- next part --------------&#xA;An HTML attachment was scrubbed...&#xA;URL: &lt;http://lists.linuxfoundation.org/pipermail/lightning-dev/attachments/20220701/c0768856/attachment-0001.html&gt;</html></oembed>