On Tue, Jan 30, 2024 at 04:12:07AM +0000, ZmnSCPxj wrote:
> Peter Todd proposes to sign multiple versions of offchain transactions at 
> varying feerates.
> However, this proposal has the issue that if you are not the counterparty 
> paying for onchain fees (e.g. the original acceptor of the channel, as per 
> "initiator pays" principle), then you have no disincentive to just use the 
> highest-feerate version always, and have a tiny incentive to only store the 
> signature for the highest-feerate version to reduce your own storage costs 
> slightly.

You are incorrect. Lightning commitments actually come in two different
versions, for the local and remote sides. Obviously, I'm proposing that fees be
taken from the side choosing to sign and broadcast the transaction. Which is
essentially no different from CPFP anchors, where the side choosing to get the
transaction mined pays the fee (though with anchors, it is easy for both sides
to choose to contribute, but in practice this almost never seems to happen in
my experience running LN nodes).

> In addition, it is also incentive-incompatible for the party that pays 
> onchain fees to withhold signatures for the higher-fee versions, because if 
> you are the party who does not pay fees and all you hold are the complete 
> signatures for the lowest-fee version (because the counterparty does not want 
> to trust you with signatures for higher-fee versions because you will just 
> abuse it), then you will need anchor outputs again to bump up the fee.

That is also incorrect. If the protocol demands multiple fee variants exist,
the state of the lightning channel simply doesn't advance until all required
fee-variants are provided. Withholding can't happen any more than someone could
"withhold" a state by failing to provide the last byte of a commitment
transaction: until the protocol state requirements have been fufilled in full,
the previous state remains in effect.

> However, there may be issues with hosting HTLCs; technically HTLCs are nested 
> inside a larger contract (the channel) and if so, do you need a separate 
> transaction to resolve them (Poon-Dryja does!) and do you also have to 
> multi-feerate *in addition to* multi-feerate the outer transaction (e.g. 
> commitment transaction in Poon-Dryja) resulting in a O(N * N) transactions 
> for N feerates?

I covered HTLCs in my blog post on the subject; I would suggest you read it in
full. There are multiple potential options to deal with HTLC feerates to avoid
the obvious N^2 problem:

https://petertodd.org/2023/v3-transactions-review#htlcs-and-replace-by-fee

-- 
https://petertodd.org 'peter'[:-1]@petertodd.org

Attachment: signature.asc
Description: PGP signature

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

Reply via email to