Good morning lisa,

> As you point out below, at the very least a liquidity providing node would 
> get paid. Another thing worth considering is that the spec, as written, is 
> merely a mechanism for advertising and receiving offers for dual funding. 
> There are no rules about what offers you, as a liquidity advertising node, 
> have to accept. A node operator has the flexibility to reject any offer above 
> or below their stated fee rate, or if they don't relish the idea of funding a 
> badly skewed channel. If you're worried about capital being tied up 
> unnecessarily, you can reject offers without a sizeable input of their own.
>
> There are, however, scenarios where requests for badly skewed channels make 
> sense. Imagine that you're a large vendor, such as Amazon. You're likely not 
> going to ever need much outbound capacity, but you will be perpetually in the 
> market for more inbound capacity.
>
> In fact, as a liquidity provider, I think that you'll probably be delighted 
> to have an open channel with Amazon, as there's a good chance that channel 
> will be highly utilized, which means more fee traffic for you, and a high 
> probability that they'll be requesting more liquidity from you in the future, 
> as the existing channel gets unbalanced.

This is correct and I have since changed my mind.  A true market would only 
impose that the market taker actually pay for the service.

>> A counterpoint to this argument, however, is that if the fee for the 
>> liquidity is high enough, then it does not matter to you whether I use the 
>> 1.0 BTC or not: you have already been paid for it.
>>
>> This however brings up the other potential attack:
>>
>> 1.  I advertise that I have 1.0 BTC available for liquidity requests.
>> 2.  You answer this advertisement, and pay me a good fee for this 1.0 BTC 
>> being locked into a channel.
>> 3.  After the channel is opened, I immediately close it, having earned the 
>> fee for liquidity, without in fact delivering that liquidity.
>>
>> Perhaps we can modify channel commitment transactions for channels opened 
>> via liquidity requests, so that they have an `nSequence` that prevents them 
>> from being claimed for a month or so.  What do you think?
>
> At what point should a liquidity providing node (maker) be able to close the 
> channel? Immediately is not very beneficial to either of you -- you both tied 
> up your money for the time required to push through bitcoin txns through, 
> plus you lose closing + opening fees. Stipulating a length of time isn't 
> necessarily beneficial either -- if you've connected to a high volume payment 
> channel, the liquidity you've provided will be used up rather quickly, 
> rendering the channel itself pretty useless.

Please see the other thread regarding the proposed mechanism that I and Rene 
generated.

https://lists.linuxfoundation.org/pipermail/lightning-dev/2018-November/001555.html

In this mechanism, only the liquidity provider is encumbered by the agreed-upon 
channel lifetime.

In particular, section "Reduction of Licky Obligation", I point out that if the 
merchant has received funds, then the money of the liquidity provider that is 
encumbered by this lifetime is reduced.
That is, the channel balance on the side of the liquidity provider is reduced 
due to the merchant receiving funds.
I pointed out also, that this should be perfectly fine for the merchant, since 
the point of it is to receive payments, and this change in channel balance 
implies that the merchant has received payments.

Once the channel has saturated to the minimum receivable amount, only the 
channel reserve of the liquidity provider remains encumbered with the channel 
lifetime.
It would be quite fine for the liquidity provider to close the channel, as the 
locked funds are now only quite small.

> Considering incentives, keeping a high-traffic channel open should be worth 
> more in routing fees than the liquidity that you've provided. If the 
> liquidity market acts rationally, it should price itself to reflect this 
> reality and the risk of being laolu'd should remain fairly insignificant.

There are two sides of the laolu attack (I actually came up with both sides of 
the attack and wrote it on-list before the summit, but I suppose "being 
laolued" is easier to say than "being ZmnSCPxjed").

1.  If the liquidity market values the routing fees more than the liquidity 
fees, such that liquidity fees are small, then I can attack this market by 
requesting capacity, paying a tiny liquidity fee, then shutting off my node and 
letting the liquidity provider close the channel after it realizes it will 
never earn routing fees from me.
2.  If the liquidity market values the liquidity fees more than the routing 
fees, then I can attack this market by offering capacity, then closing the 
channel and re-offering my freed capacity to another customer.

To prevent one of the above attacks should be sufficient, since this will lead 
the market to value one class of fees more than the other, biased towards the 
attack that has been shut down.

It is impossible to prevent  the first attack, since it is impossible to 
distinguish between a node that was hit by lightning and destroyed utterly, and 
a node that is simply turned off to attack the liquidity market.

Hence, the proposal to impose a minimum channel lifetime, in order to prevent 
the second attack.  We expect the liquidity market to then settle to the 
protected side, i.e. liquidity providers will value liquidity fees higher than 
routing fees.

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

Reply via email to