<oembed><type>rich</type><version>1.0</version><title>Greg Sanders [ARCHIVE] wrote</title><author_name>Greg Sanders [ARCHIVE] (npub1jd…3gh0m)</author_name><author_url>https://yabu.me/npub1jdl3plz00rvxwc6g2ckemzrgg0amx5wen4kfvs3laxtssxvk9cvsf3gh0m</author_url><provider_name>njump</provider_name><provider_url>https://yabu.me</provider_url><html>📅 Original date posted:2023-10-17&#xA;🗒️ Summary of this message: Batched splicing is risky because if an old state is broadcasted and confirmed before the splice, it can disrupt the process. It is important for batched splicing mechanisms to have a backout option.&#xA;📝 Original message:&#xA;&gt; I do not know if existing splice implementations actually perform such a&#xA;check.&#xA;Unless all splice implementations do this, then any kind of batched&#xA;splicing is risky.&#xA;&#xA;As long as the implementation decides to splice again at some point when a&#xA;prior&#xA;splice isn&#39;t confirming, it will self-resolve once any subsequent splice is&#xA;confirmed.&#xA;&#xA;Cheers,&#xA;Greg&#xA;&#xA;On Tue, Oct 17, 2023 at 1:04 PM ZmnSCPxj via bitcoin-dev &lt;&#xA;bitcoin-dev at lists.linuxfoundation.org&gt; wrote:&#xA;&#xA;&gt; Good morning Bastien,&#xA;&gt;&#xA;&gt; I have not gotten around to posting it yet, but I have a write-up in my&#xA;&gt; computer with the title:&#xA;&gt;&#xA;&gt; &gt; Batched Splicing Considered Risky&#xA;&gt;&#xA;&gt; The core of the risk is that if:&#xA;&gt;&#xA;&gt; * I have no funds right now in a channel (e.g. the LSP allowed me to have&#xA;&gt; 0 reserve, or this is a newly-singlefunded channel from the LSP to me).&#xA;&gt; * I have an old state (e.g. for a newly-singlefunded channel, it could&#xA;&gt; have been `update_fee`d, so that the initial transaction is old state).&#xA;&gt;&#xA;&gt; Then if I participate in a batched splice, I can disrupt the batched&#xA;&gt; splice by broadcasting the old state and somehow convincing miners to&#xA;&gt; confirm it before the batched splice.&#xA;&gt;&#xA;&gt; Thus, it is important for *any* batched splicing mechanism to have a&#xA;&gt; backout, where if the batched splice transaction can no longer be confirmed&#xA;&gt; due to some participant disrupting it by posting an old commitment&#xA;&gt; transaction, either a subset of the splice is re-created or the channels&#xA;&gt; revert back to pre-splice state (with knowledge that the post-splice state&#xA;&gt; can no longer be confirmed).&#xA;&gt;&#xA;&gt; I know that current splicing tech is to run both the pre-splice and&#xA;&gt; post-splice state simultaneously until the splicing transaction is&#xA;&gt; confirmed.&#xA;&gt; However we need to *also* check if the splicing transaction *cannot* be&#xA;&gt; confirmed --- by checking if the other inputs to the splice transaction&#xA;&gt; were already consumed by transactions that have deeply confirmed, and in&#xA;&gt; that case, to drop the post-splice state and revert to the pre-splice state.&#xA;&gt; I do not know if existing splice implementations actually perform such a&#xA;&gt; check.&#xA;&gt; Unless all splice implementations do this, then any kind of batched&#xA;&gt; splicing is risky.&#xA;&gt;&#xA;&gt; Regards,&#xA;&gt; ZmnSCPxj&#xA;&gt;&#xA;&gt; _______________________________________________&#xA;&gt; bitcoin-dev mailing list&#xA;&gt; bitcoin-dev at lists.linuxfoundation.org&#xA;&gt; https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&#xA;&gt;&#xA;-------------- next part --------------&#xA;An HTML attachment was scrubbed...&#xA;URL: &lt;http://lists.linuxfoundation.org/pipermail/lightning-dev/attachments/20231017/831a1dfc/attachment-0001.html&gt;</html></oembed>