Return-Path: Received: from smtp3.osuosl.org (smtp3.osuosl.org [140.211.166.136]) by lists.linuxfoundation.org (Postfix) with ESMTP id B51C6C002D for ; Tue, 10 Jan 2023 20:14:50 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp3.osuosl.org (Postfix) with ESMTP id 90BF760D73 for ; Tue, 10 Jan 2023 20:14:50 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp3.osuosl.org 90BF760D73 X-Virus-Scanned: amavisd-new at osuosl.org X-Spam-Flag: NO X-Spam-Score: -1.902 X-Spam-Level: X-Spam-Status: No, score=-1.902 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no Received: from smtp3.osuosl.org ([127.0.0.1]) by localhost (smtp3.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 3jMJ7Efw5NHv for ; Tue, 10 Jan 2023 20:14:50 +0000 (UTC) X-Greylist: delayed 10:12:11 by SQLgrey-1.8.0 DKIM-Filter: OpenDKIM Filter v2.11.0 smtp3.osuosl.org F39F860AF2 Received: from smtpauth.rollernet.us (smtpauth.rollernet.us [IPv6:2607:fe70:0:3::d]) by smtp3.osuosl.org (Postfix) with ESMTPS id F39F860AF2 for ; Tue, 10 Jan 2023 20:14:49 +0000 (UTC) Received: from smtpauth.rollernet.us (localhost [127.0.0.1]) by smtpauth.rollernet.us (Postfix) with ESMTP id C68662800040; Tue, 10 Jan 2023 12:14:47 -0800 (PST) Received: from webmail.rollernet.us (webmail.rollernet.us [IPv6:2607:fe70:0:14::a]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) by smtpauth.rollernet.us (Postfix) with ESMTPSA; Tue, 10 Jan 2023 12:14:47 -0800 (PST) MIME-Version: 1.0 Date: Tue, 10 Jan 2023 10:14:47 -1000 From: "David A. Harding" To: Peter Todd In-Reply-To: References: <6089e1f0140684435bf5e87b0c13d561@dtrt.org> User-Agent: Roundcube Webmail/1.4.10 Message-ID: <6cebd312ca960e634729cc574c2e97b0@dtrt.org> X-Sender: dave@dtrt.org Content-Type: text/plain; charset=US-ASCII; format=flowed Content-Transfer-Encoding: 7bit X-Rollernet-Abuse: Contact abuse@rollernet.us to report. Abuse policy: http://www.rollernet.us/policy X-Rollernet-Submit: Submit ID 6b33.63bdc737.4ee4b.0 Cc: Bitcoin Protocol Discussion Subject: Re: [bitcoin-dev] Why Full-RBF Makes DoS Attacks on Multiparty Protocols Significantly More Expensive 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, 10 Jan 2023 20:14:50 -0000 On 2023-01-10 00:06, Peter Todd wrote: > Remember, we'd like decentralized coinjoin implementations like > Joinmarket to > work. How does a decentralized coinjoin implement "conflict > monitoring"? 1. Run a relay node with a conflict-detection patch. Stock Bitcoin Core with -debug=mempoolrej will tell you when it rejects a transaction for conflicting with a transaction already in the mempool, e.g.: 2022-11-01T02:53:17Z 867b85d68d7a7244c1d65c4797006b56973110ac243ab5ee15a8c4d220060c58 from peer=58 was not accepted: txn-mempool-conflict I think it would be easy to extend this facility to list the inputs which conflicted. So if Alice sees a conflict created by Mallory, she can create a new coinjoin transaction without Mallory. This method has the advantage of being fast and attributing fault, although it does require Alice's node be online at the time Mallory's conflict is propagated. 2. Simply assume a conflict exists for otherwise unexplainable failures. For example, if Alice sees several new blocks whose bottom feerates are well below the feerates of an unconfirmed coinjoin transaction that Alice helped create and broadcast, she can assume it's a conflict that is preventing preventing confirmation of the coinjoin. She can find an entirely different set of collaborators and create a non-conflicting transaction without ever needing to know which inputs from the original transaction conflicted. This method has the disadvantage of being slow (on the order of hours) and not attributing fault, although it doesn't require Alice has any information beyond copies of recent blocks. I didn't list these methods or others before because the specific method used to detect conflicts doesn't matter to the realization that software which uses conflict detection and evasion to defeat the $17.00 attack also defeats the $0.05 attack without any need for full-RBF. -Dave