Good morning Pierre,
>> Thus, after Symmetric CSV, we could also add an additional CLTV constraint
>> that determines the minimum channel lifetime.
>
> I'm nitpicking, but parties have to exchange the first commitment txes (one
> for each side) *before* the funding tx is even published. As a consequence,
> the absolute CLTV delay wouldn't really constrain the duration of the
> channel, because the timer starts running before the channel is created. Do
> you think that matters?
This is quite correct; but it is similar to the case where Mercy (who is buying
liquidity) opens the channel, with Licky providing part of the funds, and then
Mercy shutting down its node. As long as the funding transaction gets
confirmed and it is possible for Licky to broadcast the commitment transaction,
the same analysis applies: Mercy pays Licky to lock its funds, so Licky earns
here already, regardless whether Mercy uses the capacity or not.
Since we (broadly) agreed that initiator of the channel pays onchain fees,
Mercy is in control of how fast (or slow) the time is between the two of them
agreeing to a specific CLTV blockheight, to when the channel actually opens.
Thus it could be interpreted, that any discrepancy between the time they agree,
and the time the channel gets confirmed and starts its onchain lifetime, is
equivalent to Mercy shutting down its node for that duration (and the same
analysis applies: Mercy has wasted its money on paying Licky for liquidity it
didn't use).
The above analysis hinges on the funding transaction actually getting
confirmed, though.
One possibility is that Mercy could lowball the onchain fee for the funding
transaction. If the mempool becomes backlogged, instead of Mercy then
requesting an RBF of the funding transaction, Mercy could just double-spend
only its own inputs, invalidating the funding transaction. This means, that
Licky funds have temporarily been locked, then they attempt to open the channel
with a low onchain fee, and if that fails then the deal is cancelled and both
get their funds back immediately. Licky then loses all ability to earn (but at
least the channel lifetime is no longer imposed in that case).
The time from when both sides agree to open the channel and exchange signatures
for the funding transaction, to the time the funding transaction confirms, may
be sensitive due to the possibility of one side unilaterally RBFing their
inputs.
So let us now write the contract in full:
1. Mercy agrees to pay N satoshi to Licky.
2. Licky agrees to have L satoshi locked for use in the channel until
blockheight B.
3. Either side may void this contract by paying a miner fee, until the time
the funding transaction confirms.
4. Mercy is responsible for getting the funding transaction confirmed.
Regards,
ZmnSCPxj
_______________________________________________
Lightning-dev mailing list
[email protected]
https://lists.linuxfoundation.org/mailman/listinfo/lightning-dev