{"type":"rich","version":"1.0","author_name":"npub1g5zswf6y48f7fy90jf3tlcuwdmjn8znhzaa4vkmtxaeskca8hpss23ms3l","author_url":"https://nostr.ae/npub1g5zswf6y48f7fy90jf3tlcuwdmjn8znhzaa4vkmtxaeskca8hpss23ms3l","provider_name":"njump","provider_url":"https://nostr.ae","html":"📅 Original date posted:2021-08-15\n📝 Original message:\nGood morning aj, et al.\n\n\u003e Hey *,\n\u003e\n\u003e There's been discussions on twitter and elsewhere advocating for\n\u003e setting the BOLT#7 fee_base_msat value [0] to zero. I'm just writing\n\u003e this to summarise my understanding in a place that's able to easily be\n\u003e referenced later.\n\u003e\n\u003e Setting the base fee to zero has a couple of benefits:\n\u003e\n\u003e -   it means you only have one value to optimise when trying to collect\n\u003e     the most fees, and one-dimensional optimisation problems are\n\u003e     obviously easier to write code for than two-dimensional optimisation\n\u003e     problems\n\nIndeed, this is a good point regarding this.\n\n\n\u003e -   when finding a route, if all the fees on all the channels are\n\u003e     proportional only, you'll never have to worry about paying more fees\n\u003e     just as a result of splitting a payment; that makes routing easier\n\u003e     (see [1])\n\nIf we neglect roundoff errors.\n\nOn the other hand, roundoff errors involved are \u003c1msat per split, so it probably will not matter to most people.\n\n\u003e     So what's the cost? The cost is that there's no longer a fixed minimum\n\u003e     fee -- so if you try sending a 1sat payment you'll pay 0.1% of the fee\n\u003e     to send a 1000sat payment, and there may be fixed costs that you have\n\u003e     in routing payments that you'd like to be compensated for (eg, the\n\u003e     computational work to update channel state, the bandwith to forward the\n\u003e     tx, or the opportunity cost for not being able to accept another htlc if\n\u003e     you've hit your max htlcs per channel limit).\n\u003e\n\u003e     But there's no need to explicitly separate those costs the way we do\n\u003e     now; instead of charging 1sat base fee and 0.02% proportional fee,\n\u003e     you can instead just set the 0.02% proportional fee and have a minimum\n\u003e     payment size of 5000 sats (htlc_minimum_msat=5e6, ~$2), since 0.02%\n\u003e     of that is 1sat. Nobody will be asking you to route without offering a\n\u003e     fee of at least 1sat, but all the optimisation steps are easier.\n\nShould this minimum a node will be willing to forward be part of gossip, and how does this affect routing algorithms?\n\n\u003e     You could go a step further, and have the node side accept smaller\n\u003e     payments despite the htlc minimum setting: eg, accept a 3000 sat payment\n\u003e     provided it pays the same fee that a 5000 sat payment would have. That is,\n\u003e     treat the setting as minimum_fee=1sat, rather than minimum_amount=5000sat;\n\u003e     so the advertised value is just calculated from the real settings,\n\u003e     and that nodes that want to send very small values despite having to\n\u003e     pay high rates can just invert the calculation.\n\nI like this idea, as I think it matches more what the incentives are.\nBut it requires a change in gossip and in routing algorithms, and more importantly it requires routing algorithms to support two different fee schemes (base + proportional vs min + proportional).\n\nOn the other hand, this still is a two-dimensional optimization algorithm, with `minimum_fee` and `proportional_fee_millionths` as the two dimensions.\nSo maybe just have a single proportional-fee mechanism...\n\n\u003e\n\u003e     I think something like this approach also makes sense when your channel\n\u003e     becomes overloaded; eg if you have x HTLC slots available, and y channel\n\u003e     capacity available, setting a minimum payment size of something like\n\u003e     y/2/x**2 allows you to accept small payments (good for the network)\n\u003e     when you're channel is not busy, but reserves the last slots for larger\n\u003e     payments so that you don't end up missing out on profits because you\n\u003e     ran out of capacity due to low value spam.\n\u003e\n\u003e     Two other aspects related to this:\n\u003e\n\u003e     At present, I think all the fixed costs are also incurred even when\n\u003e     a htlc fails, so until we have some way of charging failing txs for\n\u003e     incurring those costs, it seems a bit backwards to penalise successful\n\u003e     txs who at least pay a proportional fee for the same thing. Until we've\n\u003e     got a way of handling that, having zero base fee seems at least fair.\n\nYes, the dreaded mechanism against payment lockup, which as far as I understand has a lot of thought already sunk into it without any widely-accepted solution, sigh.\n\n\nRegards,\nZmnSCPxj"}
