Good morning aj, et al.

> Hey *,
>
> There's been discussions on twitter and elsewhere advocating for
> setting the BOLT#7 fee_base_msat value [0] to zero. I'm just writing
> this to summarise my understanding in a place that's able to easily be
> referenced later.
>
> Setting the base fee to zero has a couple of benefits:
>
> -   it means you only have one value to optimise when trying to collect
>     the most fees, and one-dimensional optimisation problems are
>     obviously easier to write code for than two-dimensional optimisation
>     problems

Indeed, this is a good point regarding this.


> -   when finding a route, if all the fees on all the channels are
>     proportional only, you'll never have to worry about paying more fees
>     just as a result of splitting a payment; that makes routing easier
>     (see [1])

If we neglect roundoff errors.

On the other hand, roundoff errors involved are <1msat per split, so it 
probably will not matter to most people.

>     So what's the cost? The cost is that there's no longer a fixed minimum
>     fee -- so if you try sending a 1sat payment you'll pay 0.1% of the fee
>     to send a 1000sat payment, and there may be fixed costs that you have
>     in routing payments that you'd like to be compensated for (eg, the
>     computational work to update channel state, the bandwith to forward the
>     tx, or the opportunity cost for not being able to accept another htlc if
>     you've hit your max htlcs per channel limit).
>
>     But there's no need to explicitly separate those costs the way we do
>     now; instead of charging 1sat base fee and 0.02% proportional fee,
>     you can instead just set the 0.02% proportional fee and have a minimum
>     payment size of 5000 sats (htlc_minimum_msat=5e6, ~$2), since 0.02%
>     of that is 1sat. Nobody will be asking you to route without offering a
>     fee of at least 1sat, but all the optimisation steps are easier.

Should this minimum a node will be willing to forward be part of gossip, and 
how does this affect routing algorithms?

>     You could go a step further, and have the node side accept smaller
>     payments despite the htlc minimum setting: eg, accept a 3000 sat payment
>     provided it pays the same fee that a 5000 sat payment would have. That is,
>     treat the setting as minimum_fee=1sat, rather than minimum_amount=5000sat;
>     so the advertised value is just calculated from the real settings,
>     and that nodes that want to send very small values despite having to
>     pay high rates can just invert the calculation.

I like this idea, as I think it matches more what the incentives are.
But 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).

On the other hand, this still is a two-dimensional optimization algorithm, with 
`minimum_fee` and `proportional_fee_millionths` as the two dimensions.
So maybe just have a single proportional-fee mechanism...

>
>     I think something like this approach also makes sense when your channel
>     becomes overloaded; eg if you have x HTLC slots available, and y channel
>     capacity available, setting a minimum payment size of something like
>     y/2/x**2 allows you to accept small payments (good for the network)
>     when you're channel is not busy, but reserves the last slots for larger
>     payments so that you don't end up missing out on profits because you
>     ran out of capacity due to low value spam.
>
>     Two other aspects related to this:
>
>     At present, I think all the fixed costs are also incurred even when
>     a htlc fails, so until we have some way of charging failing txs for
>     incurring those costs, it seems a bit backwards to penalise successful
>     txs who at least pay a proportional fee for the same thing. Until we've
>     got a way of handling that, having zero base fee seems at least fair.

Yes, 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.


Regards,
ZmnSCPxj

_______________________________________________
Lightning-dev mailing list
Lightning-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/lightning-dev

Reply via email to