Return-Path: Received: from smtp4.osuosl.org (smtp4.osuosl.org [IPv6:2605:bc80:3010::137]) by lists.linuxfoundation.org (Postfix) with ESMTP id 0C5FBC0032 for ; Tue, 17 Oct 2023 17:04:16 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp4.osuosl.org (Postfix) with ESMTP id DB6BB41E90 for ; Tue, 17 Oct 2023 17:04:15 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp4.osuosl.org DB6BB41E90 Authentication-Results: smtp4.osuosl.org; dkim=pass (2048-bit key) header.d=protonmail.com header.i=@protonmail.com header.a=rsa-sha256 header.s=protonmail3 header.b=HT5hDYwl X-Virus-Scanned: amavisd-new at osuosl.org X-Spam-Flag: NO X-Spam-Score: -1.599 X-Spam-Level: X-Spam-Status: No, score=-1.599 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, FROM_LOCAL_NOVOWEL=0.5, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no Received: from smtp4.osuosl.org ([127.0.0.1]) by localhost (smtp4.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id OGSBLp6E0f2T for ; Tue, 17 Oct 2023 17:04:14 +0000 (UTC) Received: from mail-40135.protonmail.ch (mail-40135.protonmail.ch [185.70.40.135]) by smtp4.osuosl.org (Postfix) with ESMTPS id 3B8D541E8D for ; Tue, 17 Oct 2023 17:04:14 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp4.osuosl.org 3B8D541E8D DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com; s=protonmail3; t=1697562251; x=1697821451; bh=2Cet29r+6tTbOPt2Mg6DDlWjGT+KVmp2thBvF7MSiu4=; h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References: Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID: Message-ID:BIMI-Selector; b=HT5hDYwlgEYA/jClIQlN7KzwZnbDlqbnsE79Um4NN9T37he/LLto4FUYHkVaZW8ba 1GxbBbOL3ur7r2cH/jcqmzM09tT8vTev+nOJYUo3Fd00aZGwrz4B8jUp5Wb21WGYRE 5BWPTcw+A/KsYJqEGkppl0OjyQtNFh/XE2fpr5+pxYjCQzznuxTa3pE8oBByPZh8ye Li2hWSICt87NW2DdRMnD9HsAnaSai6mcxCwZfs3corvGX2/5gVxlrPfhvR42VLBnRO 7vLEMlknhHs9n9Z5YYmgrhkrXpLQip9OaZDb/3FNgfiMrB2zDO50sVqVwjRcscUDRs hjUPmQfhXUzOw== Date: Tue, 17 Oct 2023 17:04:06 +0000 To: Bastien TEINTURIER From: ZmnSCPxj Message-ID: In-Reply-To: References: Feedback-ID: 2872618:user:proton MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Cc: Bitcoin Protocol Discussion , "lightning-dev\\\\\\\\@lists.linuxfoundation.org" Subject: Re: [bitcoin-dev] Batch exchange withdrawal to lightning requires covenants X-BeenThere: bitcoin-dev@lists.linuxfoundation.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Bitcoin Protocol Discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Oct 2023 17:04:16 -0000 Good morning Bastien, I have not gotten around to posting it yet, but I have a write-up in my com= puter with the title: > Batched Splicing Considered Risky The core of the risk is that if: * I have no funds right now in a channel (e.g. the LSP allowed me to have 0= reserve, or this is a newly-singlefunded channel from the LSP to me). * I have an old state (e.g. for a newly-singlefunded channel, it could have= been `update_fee`d, so that the initial transaction is old state). Then if I participate in a batched splice, I can disrupt the batched splice= by broadcasting the old state and somehow convincing miners to confirm it = before the batched splice. Thus, it is important for *any* batched splicing mechanism to have a backou= t, where if the batched splice transaction can no longer be confirmed due t= o some participant disrupting it by posting an old commitment transaction, = either a subset of the splice is re-created or the channels revert back to = pre-splice state (with knowledge that the post-splice state can no longer b= e confirmed). I know that current splicing tech is to run both the pre-splice and post-sp= lice state simultaneously until the splicing transaction is confirmed. However we need to *also* check if the splicing transaction *cannot* be con= firmed --- by checking if the other inputs to the splice transaction were a= lready consumed by transactions that have deeply confirmed, and in that cas= e, to drop the post-splice state and revert to the pre-splice state. I do not know if existing splice implementations actually perform such a ch= eck. Unless all splice implementations do this, then any kind of batched splicin= g is risky. Regards, ZmnSCPxj