On 2023-10-17 03:03, Bastien TEINTURIER via bitcoin-dev wrote:
Good morning list,
I've been trying to design a protocol to let users withdraw funds from
exchanges directly into their lightning wallet in an efficient way
(with the smallest on-chain footprint possible).
Hi, Bastien.
Is swap-in-potentiam[1] an option here? For example, Exchange E wants
to pay users A, B, and C, who each have different counterparties. Then:
- E gets from each of A, B, C a public key for their separate
counterparties (e.g., D, E, F)
- E gets confirmed a transaction paying three swap-in-potentiam outputs,
one each for {A,D}, {B,E}, {C,F}
- Each of the parties then offchain spends the SiP outputs into a
standard LN-penalty channel construction and starts using it
- Ideally, before the SiP expires, each party is able to drain the
channel into their other channels and mutually settle it with just an
onchain spend of the SiP output
- Non-ideally, the previously offchain spend of the SiP output that
established the LN-penalty channel is put onchain
In the best case, this involves four transactions:
- E's one-input, four-output batch withdrawl (the fourth output is E's
change)
- Three separate one-input, one-output transactions to settle the SiP
outputs
I think that's the same number (and approximate size) of transactions
that you'll get from the SIGHASH_ANYPREVOUT|SIGHASH_SINGLE solution you
outline, although your solution allows the channels to remain open
indefinitely, whereas the SiP solution has an expiry.
-Dave
[1]
https://lists.linuxfoundation.org/pipermail/lightning-dev/2023-January/003810.html
(I know Eclair already uses SiP; the above reference is for other
readers)
_______________________________________________
Lightning-dev mailing list
Lightning-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/lightning-dev