Return-Path: Received: from smtp2.osuosl.org (smtp2.osuosl.org [140.211.166.133]) by lists.linuxfoundation.org (Postfix) with ESMTP id 69A81C0032 for ; Mon, 5 Dec 2022 12:21:13 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp2.osuosl.org (Postfix) with ESMTP id 3175A404F5 for ; Mon, 5 Dec 2022 12:21:13 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp2.osuosl.org 3175A404F5 Authentication-Results: smtp2.osuosl.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20210112 header.b=FdCkFypS X-Virus-Scanned: amavisd-new at osuosl.org X-Spam-Flag: NO X-Spam-Score: -0.099 X-Spam-Level: X-Spam-Status: No, score=-0.099 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, HTML_MESSAGE=0.001, PDS_OTHER_BAD_TLD=1.999, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=no autolearn_force=no Received: from smtp2.osuosl.org ([127.0.0.1]) by localhost (smtp2.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id V9tDhATG1K2u for ; Mon, 5 Dec 2022 12:21:11 +0000 (UTC) X-Greylist: whitelisted by SQLgrey-1.8.0 DKIM-Filter: OpenDKIM Filter v2.11.0 smtp2.osuosl.org 3CBE0400A4 Received: from mail-pf1-x435.google.com (mail-pf1-x435.google.com [IPv6:2607:f8b0:4864:20::435]) by smtp2.osuosl.org (Postfix) with ESMTPS id 3CBE0400A4 for ; Mon, 5 Dec 2022 12:21:11 +0000 (UTC) Received: by mail-pf1-x435.google.com with SMTP id c13so4050176pfp.5 for ; Mon, 05 Dec 2022 04:21:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=Wb+KZJig45UrhFvCn95j46TRjHKC73T1F3N4YEvqZfw=; b=FdCkFypSLi1I/MrVMJVYMBYX5N3uwH3MrEMvlQ1pXLkBvk7s+6WBbDHhwiqxnxdzw2 EHpq1KcXG2WG4ly6/E6CR9+I4+Hw0A2bMa48Ub3s6VwjSU95pVR8pqL1CltSU1AZsue/ kwBNn5Zrnt5wgd/1yxJFfttzF4WzV4WNj5i5/XTafwk/IMsgDpRJfDF4aPB3uYXVBiXm cm18h7HzLye18Xdhw+akGXcTIfgZGYcuOWBUH5LFtYtOgAW+QInkXaZEubDkOKwSnrq3 9Ve6anTOhXwGLTnFQD7/wNZYHx0i5gMj/M8uQ1fwleumGmtdQx2lchJawcUqtex71Dv4 9NTA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=Wb+KZJig45UrhFvCn95j46TRjHKC73T1F3N4YEvqZfw=; b=0j3GR3GBJJ6gy/RgdCYF4qt181SvOkL2Tol8ETRq/l140iot42MaKgptYqrfI/L/Wv cz4JfB+q4WaBWki1HNFntivDQmkD4DwMcaifj9mbrAwzN6qf476skZ5qzY3vPUVahQWY caEUQ8EqCq+ziaMhSc3jf3oIiSH4P/AzHChKmaXLo4ZxI7Zt2W+rWS1sX341ya5wGNLG 7O01/qy73gh4fxdFjm8ZsBruWUpe6B1VMsrVuSq4FmDdHeieOgPBBFRFYVnMSOeMGa8L XbDr+3d1AJN69+v5d9WwTJzvLbuXydOB5XHeTAeCk3ZXR9hRwH2IOC6U46kiAevzfCVn sG7Q== X-Gm-Message-State: ANoB5pnMAaQ/1aivgG6ST/vUg1Je2/c6QRGwin9tFIYCwsu/ovOGxLhI f2XSs+5qLg87f7rnyiVqcSNnto/iP3cEnCAIQIU/cJTgFjY= X-Google-Smtp-Source: AA0mqf6It82O21Vl/XYvKjzN0KaiSmJAkwl5FWvEfKynn9N+17xsje5VRVNHo7cD1SIBEidzF0gt0CZnTpPniA/P1IA= X-Received: by 2002:a63:f453:0:b0:478:d3a8:6ba5 with SMTP id p19-20020a63f453000000b00478d3a86ba5mr450203pgk.619.1670242870156; Mon, 05 Dec 2022 04:21:10 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: El_Hoy Date: Mon, 5 Dec 2022 09:20:58 -0300 Message-ID: To: Bitcoin Protocol Discussion Content-Type: multipart/alternative; boundary="000000000000f6e36a05ef13b8eb" X-Mailman-Approved-At: Mon, 05 Dec 2022 13:26:26 +0000 Cc: Daniel Lipshitz Subject: Re: [bitcoin-dev] Announcement: Full-RBF Miner Bounty 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: Mon, 05 Dec 2022 12:21:13 -0000 --000000000000f6e36a05ef13b8eb Content-Type: text/plain; charset="UTF-8" The only option I see against the attack Peter Todd is doing to opt-in RBF and 0Conf bitcoin usage is working on a bitcoin core implementation that stops propagation of full-rbf replaced blocks. Running multiple of such nodes on the network will add a risk to miners that enable full-rbf that would work as an incentive against that. Obviously that would require adding an option on bitcoin core (that is not technically but politically difficult to implement as Petter Todd already have commit access to the main repository). That said, a sufficiently incentivized actor (like Daniel Lipshitz or Muun wallet developers) could work on a fork and run several nodes with such functionality. As far as I understand the percolation model, with 10 to 20 nodes running such a rule would create a significant risk for full-rbf miners. Regards. --- Eloy On Tue, Nov 15, 2022 at 11:43 AM Peter Todd via bitcoin-dev < bitcoin-dev@lists.linuxfoundation.org> wrote: > On Tue, Nov 15, 2022 at 03:36:08PM +1000, Anthony Towns via bitcoin-dev > wrote: > > On Tue, Nov 08, 2022 at 01:16:13PM -0500, Peter Todd via bitcoin-dev > wrote: > > > FYI I've gotten a few hundred dollars worth of donations to this > effort, and > > > have raised the reward to about 0.02 BTC, or $400 USD at current > prices. > > > > Seems like this has been mostly claimed (0.014btc / $235, 9238sat/vb): > > I'm turning it back on when (if) the mempool settles down. I've got more > than > enough donations to give another run at it (the majority was donated > privately > FWIW). There's a risk of the mempool filling up again of course; hard to > avoid > that. > > Right now of course it's really easy to double spend with the obvious > low-fee/high-fee method as the min relay fee keeps shifting. > > > > https://mempool.space/tx/397dcbe4e95ec40616e3dfc4ff8ffa158d2e72020b7d11fc2be29d934d69138c > > > > The block it was claimed in seems to have been about an hour after the > > default mempool filled up: > > > > https://twitter.com/murchandamus/status/1592274621977477120 > > > > That block actually seems to have included two > > alice.btc.calendar.opentimestamps.org txs, the other paying $7.88 > > (309sat/vb): > > > > > https://mempool.space/tx/ba9670109a6551458d5e1e23600c7bf2dc094894abdf59fe7aa020ccfead07cf > > The second is because I turned down the full-rbf reward to more normal fee > levels. There's also another full-rbf double-spend from the Bob calendar, > along > the same lines: > 7e76b351009326a574f3120164dbbe6d85e07e04a7bbdc40f0277fcb008d2cd2 > > I double-spent the txin of the high fee tx that got mined. But I > mistakenly had > RBF enabled in that double-spend, so while it propagated initially, I > believe > it was replaced when something (someone?) rebroadcast the high-fee 397dcb > tx. > > > Timeline (utc) to me looks like: > > > > - 13:12 - block 763148 is mined: last one that had a min fee < 1.5sat/vb > > - 13:33 - > f503868c64d454c472859b793f3ee7cdc8f519c64f8b1748d8040cd8ce6dc6e1 > > is announced and propogates widely (1.2sat/vb) > > - 18:42 - > 746daab9bcc331be313818658b4a502bb4f3370a691fd90015fabcd7759e0944 > > is announced and propogates widely (1.2sat/vb) > > - 21:52 - ba967010 tx is announced and propogates widely, since > > conflicting tx 746daab9 has been removed from default > > mempools > > - 21:53 - murch tweets about default mempool filling up > > - 22:03 - 397dcbe4 tx is announced and propogates widely, since > > conflicting tx f503868 has already been removed from default > > mempools > > Is that 22:03 time for 397 from your node's logs? It was originally > announced > hours earlier. From one of my full-rbf nodes: > > 2022-11-14T14:08:37Z [mempool] replacing tx > 764867062b67fea61810c3858d587da83a28290545e882935a32285028084317 with > 397dcbe4e95ec40616e3dfc4ff8ffa158d2e72020b7d11fc2be29d934d69138c for > 0.00468 additional fees, -1 delta bytes > > > - 22:35 - block 763189 is mined > > - 22:39 - block 763190 is mined > > - 23:11 - block 763191 is mined > > - 23:17 - block 763192 is mined including 397dcbe4 > > > > miningpool.observer reports both 397dcbe4 and ba967010 as missing in the > > first three blocks, and gives similar mempool ages for those txs to what > > my logs report: > > > > > https://miningpool.observer/template-and-block/0000000000000000000436aba59d8430061e0e50592215f7f263bfb1073ccac7 > > > https://miningpool.observer/template-and-block/00000000000000000005600404792bacfd8a164d2fe9843766afb2bfbd937309 > > > https://miningpool.observer/template-and-block/00000000000000000004a3073f58c9eae40f251ea7aeaeac870daeac4b238fd1 > > > > That presumably means those pools (AntPool twice and "unknown") are > > running with large mempools that didn't kept the earlier 1.2sat/vb txs. > > To be clear, you think that AntPool and that other exchange is running > with a > larger than normal max mempool size limit? You mean those miners *did* > keep the > earlier 1.2sat/vb tx? > > > The txs were mined by Foundry: > > > > > https://miningpool.observer/template-and-block/00000000000000000001382a226aedac822de80309cca2bf1253b35d4f8144f5 > > > > This seems to be pretty good evidence that we currently don't have any > > significant hashrate mining with fullrbf policies (<0.5% if there was a > > high fee replacement available prior to every block having been mined), > > despite the bounty having been collected. > > Oh, we can put much lower bounds on that. I've been running OTS calendars > with > full-rbf replacements for a few months without clear evidence of a full-rbf > replacement. While there was good reason to think some miners were mining > full-rbf before a few years back, they probably didn't bother to reapply > their > patches each upgrade. `mempoolfullrbf=1` is much simpler to use. > > -- > https://petertodd.org 'peter'[:-1]@petertodd.org > _______________________________________________ > bitcoin-dev mailing list > bitcoin-dev@lists.linuxfoundation.org > https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev > --000000000000f6e36a05ef13b8eb Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
The only option I see against the attack Peter Todd i= s doing to opt-in RBF and 0Conf bitcoin usage is working on a bitcoin core = implementation that stops propagation of full-rbf replaced blocks. Running = multiple of such nodes on the network will add a risk to miners that enable= full-rbf that would work as an incentive against that.

Obviously that would require adding an option on bitcoin core (that i= s not technically but politically difficult to implement as Petter Todd alr= eady have commit access to the main repository).

T= hat said, a sufficiently incentivized actor (like Daniel Lipshitz or Muun w= allet developers) could work on a fork and run several nodes with such func= tionality. As far as I understand the percolation model, with 10 to 20 node= s running such a rule would create a significant risk for full-rbf miners.<= /div>

Regards.

---=C2=A0 Eloy


On Tue, Nov 15, 2022 at 11:43 AM Peter Todd via bitcoin-dev <bitcoin-dev@lists.linuxf= oundation.org> wrote:
On Tue, Nov 15, 2022 at 03:36:08PM +1000, Anthony Towns via bi= tcoin-dev wrote:
> On Tue, Nov 08, 2022 at 01:16:13PM -0500, Peter Todd via bitcoin-dev w= rote:
> > FYI I've gotten a few hundred dollars worth of donations to t= his effort, and
> > have raised the reward to about 0.02 BTC, or $400 USD at current = prices.
>
> Seems like this has been mostly claimed (0.014btc / $235, 9238sat/vb):=

I'm turning it back on when (if) the mempool settles down. I've got= more than
enough donations to give another run at it (the majority was donated privat= ely
FWIW). There's a risk of the mempool filling up again of course; hard t= o avoid
that.

Right now of course it's really easy to double spend with the obvious low-fee/high-fee method as the min relay fee keeps shifting.

> https:= //mempool.space/tx/397dcbe4e95ec40616e3dfc4ff8ffa158d2e72020b7d11fc2be29d93= 4d69138c
>
> The block it was claimed in seems to have been about an hour after the=
> default mempool filled up:
>
> https://twitter.com/murchandamus/sta= tus/1592274621977477120
>
> That block actually seems to have included two
> alice.btc.calendar.opentimestamps.org txs, the = other paying $7.88
> (309sat/vb):
>
> https:= //mempool.space/tx/ba9670109a6551458d5e1e23600c7bf2dc094894abdf59fe7aa020cc= fead07cf

The second is because I turned down the full-rbf reward to more normal fee<= br> levels. There's also another full-rbf double-spend from the Bob calenda= r, along
the same lines: 7e76b351009326a574f3120164dbbe6d85e07e04a7bbdc40f0277fcb008= d2cd2

I double-spent the txin of the high fee tx that got mined. But I mistakenly= had
RBF enabled in that double-spend, so while it propagated initially, I belie= ve
it was replaced when something (someone?) rebroadcast the high-fee 397dcb t= x.

> Timeline (utc) to me looks like:
>
>=C2=A0 - 13:12 - block 763148 is mined: last one that had a min fee <= ; 1.5sat/vb
>=C2=A0 - 13:33 - f503868c64d454c472859b793f3ee7cdc8f519c64f8b1748d8040c= d8ce6dc6e1
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 is announced and propogates w= idely (1.2sat/vb)
>=C2=A0 - 18:42 - 746daab9bcc331be313818658b4a502bb4f3370a691fd90015fabc= d7759e0944
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 is announced and propogates w= idely (1.2sat/vb)
>=C2=A0 - 21:52 - ba967010 tx is announced and propogates widely, since<= br> >=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 conflicting tx 746daab9 has b= een removed from default
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 mempools
>=C2=A0 - 21:53 - murch tweets about default mempool filling up
>=C2=A0 - 22:03 - 397dcbe4 tx is announced and propogates widely, since<= br> >=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 conflicting tx f503868 has al= ready been removed from default
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 mempools

Is that 22:03 time for 397 from your node's logs? It was originally ann= ounced
hours earlier. From one of my full-rbf nodes:

=C2=A0 =C2=A0 2022-11-14T14:08:37Z [mempool] replacing tx 764867062b67fea61= 810c3858d587da83a28290545e882935a32285028084317 with 397dcbe4e95ec40616e3df= c4ff8ffa158d2e72020b7d11fc2be29d934d69138c for 0.00468 additional fees, -1 = delta bytes

>=C2=A0 - 22:35 - block 763189 is mined
>=C2=A0 - 22:39 - block 763190 is mined
>=C2=A0 - 23:11 - block 763191 is mined
>=C2=A0 - 23:17 - block 763192 is mined including 397dcbe4
>
> miningpool.observer reports both 397dcbe4 and ba967010 as missing in t= he
> first three blocks, and gives similar mempool ages for those txs to wh= at
> my logs report:
>
>=C2=A0 =C2=A0https://miningpool.observer/template-and-block/= 0000000000000000000436aba59d8430061e0e50592215f7f263bfb1073ccac7
>=C2=A0 =C2=A0https://miningpool.observer/template-and-block/= 00000000000000000005600404792bacfd8a164d2fe9843766afb2bfbd937309
>=C2=A0 =C2=A0https://miningpool.observer/template-and-block/= 00000000000000000004a3073f58c9eae40f251ea7aeaeac870daeac4b238fd1
>
> That presumably means those pools (AntPool twice and "unknown&quo= t;) are
> running with large mempools that didn't kept the earlier 1.2sat/vb= txs.

To be clear, you think that AntPool and that other exchange is running with= a
larger than normal max mempool size limit? You mean those miners *did* keep= the
earlier 1.2sat/vb tx?

> The txs were mined by Foundry:
>
>=C2=A0 =C2=A0https://miningpool.observer/template-and-block/= 00000000000000000001382a226aedac822de80309cca2bf1253b35d4f8144f5
>
> This seems to be pretty good evidence that we currently don't have= any
> significant hashrate mining with fullrbf policies (<0.5% if there w= as a
> high fee replacement available prior to every block having been mined)= ,
> despite the bounty having been collected.

Oh, we can put much lower bounds on that. I've been running OTS calenda= rs with
full-rbf replacements for a few months without clear evidence of a full-rbf=
replacement.=C2=A0 While there was good reason to think some miners were mi= ning
full-rbf before a few years back, they probably didn't bother to reappl= y their
patches each upgrade. `mempoolfullrbf=3D1` is much simpler to use.

--
http= s://petertodd.org 'peter'[:-1]@petertodd.org
_______________________________________________
bitcoin-dev mailing list
= bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mail= man/listinfo/bitcoin-dev
--000000000000f6e36a05ef13b8eb--