<oembed><type>rich</type><version>1.0</version><author_name>npub17rld56k4365lfphyd8u8kwuejey5xcazdxptserx03wc4jc9g24stx9l2h</author_name><author_url>https://nostr.ae/npub17rld56k4365lfphyd8u8kwuejey5xcazdxptserx03wc4jc9g24stx9l2h</author_url><provider_name>njump</provider_name><provider_url>https://nostr.ae</provider_url><html>📅 Original date posted:2022-10-16&#xA;📝 Original message:On Thu, Oct 13, 2022 at 02:35:22PM +1000, Anthony Towns via bitcoin-dev wrote:&#xA;&gt; On Wed, Oct 12, 2022 at 04:11:05PM +0000, Pieter Wuille via bitcoin-dev wrote:&#xA;&gt; &gt; In my view, it is just what I said: a step towards getting full RBF&#xA;&gt; &gt; on the network, by allowing experimentation and socializing the notion&#xA;&gt; &gt; that developers believe it is time.&#xA;&gt; We &#34;believe it is time&#34; for what exactly, though? (a) To start&#xA;&gt; deprerecating accepting zeroconf txs on mainnet, over the next 6, 12 or&#xA;&gt; 18 months; or (b) to start switching mainnet mining and relay nodes over&#xA;&gt; to full RBF?&#xA;&#xA;For what it&#39;s worth, that was a serious question: I don&#39;t feel like I&#xA;know what other people&#39;s answer to it is.&#xA;&#xA;Seems to me like there&#39;s fundamentally maybe three approaches:&#xA;&#xA; 1) Continue supporting and encouraging accepting unconfirmed &#34;on-chain&#34;&#xA;    payments indefinitely&#xA;&#xA; 2) Draw a line in the sand now, but give people who are currently&#xA;    accepting unconfirmed txs time to update their software and business&#xA;    model&#xA;&#xA; 3) Encourage mainnet miners and relay nodes to support unconditional&#xA;    RBF immediately, no matter how much that increases the risk to&#xA;    existing businesses that are still accepting unconfirmed txs&#xA;&#xA;I think Antoine gave a pretty decent rationale for why we shouldn&#39;t&#xA;indefinitely continue with conditional RBF in [0] [1] -- it makes it&#xA;easy to disrupt decentralised pooling protocols, whether that be for&#xA;establishing lightning channels or coinjoins or anything else.&#xA;&#xA;[0] https://lists.linuxfoundation.org/pipermail/lightning-dev/2021-May/003033.html&#xA;[1] https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2022-June/020557.html&#xA;&#xA;It&#39;s also an unstable equilibrium -- if everyone does first-seen-is-final&#xA;at the mempool level, everything is fine; but it only takes a few&#xA;defectors to start relaying and mining full RBF txs to spoil zeroconf&#xA;for everyone -- so even if it were desirable to maintain it forever,&#xA;it&#39;s probably not actually possible to maintain it indefinitely.&#xA;&#xA;If so, that leaves the choice between (2) and (3). You might argue&#xA;that there&#39;s a 4th option: ignore the problem and think about it later;&#xA;but to me that seems like it will just eventually result in outcome (3).&#xA;&#xA;&#xA;At least a few people are already running full RBF relay nodes [2] [3]&#xA;[4], and there&#39;s a report that non-signalling RBF txs are now getting&#xA;mined [5] when they weren&#39;t a few months ago [6]. I wasn&#39;t able to&#xA;confirm the latter to my satisfaction: looking at mempool.observer, the&#xA;non-RBF signalling conflicting txs don&#39;t seem to have been consistently&#xA;paying a higher feerate, so I couldn&#39;t rule out the possibility that&#xA;the difference might just be due to inconsistent relaying.&#xA;&#xA;[2] https://twitter.com/murchandamus/status/1552488955328831492&#xA;[3] https://twitter.com/LukeDashjr/status/977211607947317254&#xA;[4] https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2022-June/020592.html&#xA;[5] https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2022-June/020592.html&#xA;[6] https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2022-June/020592.html&#xA;&#xA;It seems to me that the best approach for implementing (3) would be&#xA;to change the default for -mempoolfullrbf to true immediately, which&#xA;is both what Knots has been doing for years, and what #26305 proposes&#xA;[7].  So from seeing what people are actually *doing*, I could easily&#xA;be convinced that (3) is the goal people are actually working towards.&#xA;&#xA;[7] https://github.com/bitcoin/bitcoin/pull/26305&#xA;&#xA;But if (3) *is* what we&#39;re really trying to do, I think it&#39;s a bit&#xA;disingenuous to assume that that effort will fail, and tell people that&#xA;nothing&#39;s going to change on mainnet in the near future [8] [9] [10]&#xA;[11]. If pools are starting to allow replacements of txs that didn&#39;t&#xA;signal according to BIP 125 and mine blocks including those replacements,&#xA;then it&#39;s true that zero-conf apps are in much more immediate danger&#xA;than they were a month ago, and as far as I can see, we shouldn&#39;t be&#xA;pretending otherwise.&#xA;&#xA;[8] https://github.com/bitcoin/bitcoin/pull/26287#issuecomment-1274953204&#xA;[9] https://github.com/bitcoin/bitcoin/pull/26287#issuecomment-1276682043&#xA;[10] https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2022-October/020981.html&#xA;[11] https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2022-October/021006.html&#xA;&#xA;Personally, I prefer an approach like (2) -- commit to doing something&#xA;first, give people time to prepare for it, and then do it, and outside&#xA;of Knots, I don&#39;t think there&#39;s been any clear commitment to deprecating&#xA;zeroconf txs up until now. But what we&#39;re currently doing is suboptimal&#xA;for that in two ways:&#xA;&#xA; - there&#39;s no real commitment that the change will actually happen&#xA; - even if it does, there&#39;s no indication when that will be&#xA; - it&#39;s not easy to test your apps against the new world order, because&#xA;   it&#39;s not well supported on either testnet or signet, being disabled&#xA;   by default on both those networks&#xA;&#xA;Dario suggested an approach [12] that seems like it would resolve all&#xA;these issues:&#xA;&#xA;] This could be one such proposal:&#xA;] 1. We activate [..] full-RBF on testnet now.&#xA;] 2. We commit now (in the code) to a block height in the future at&#xA;]    which [..] full-RBF will activate on mainnet.&#xA;&#xA;(I&#39;ve delted the words &#34;opt-in&#34; and &#34;opt-out&#34; from the quote above,&#xA;because they didn&#39;t make sense to me)&#xA;&#xA;[12] https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2022-October/021007.html&#xA;&#xA;I&#39;ve made up a patch along these lines [13]; it&#39;s easy to use a timestamp&#xA;rather than a block height, so I&#39;ve arbitrarily picked 1st May (slightly&#xA;over 6 months away) as the changeover time. If people are willing to&#xA;give zeroconf businesses some time to adapt, including something along&#xA;those lines in 24.0 seems a better approach to me:&#xA;&#xA; * it gives a clear deadline for businesses to adapt, so that they don&#39;t&#xA;   defer it and suddenly complain &#34;oh no, we didn&#39;t think you were&#xA;   serious, please give us more time&#34; later&#xA;&#xA; * it gives plenty(?) of time to update your code and test it, as well&#xA;   as teach customers and customer support about the new behaviour&#xA;&#xA; * when the deadline hits, presumably plenty of nodes and miners will&#xA;   immediately start supporting the new behaviour on mainnet, so that&#xA;   protocols can quickly start relying on that method of tx pinning no&#xA;   longer being applicable&#xA;&#xA; * nodes on signet and testnet will quickly adopt the new behaviour,&#xA;   well before it&#39;s available on mainnet, making testing easier&#xA;&#xA;[13] https://github.com/bitcoin/bitcoin/pull/26323&#xA;&#xA;To me, this seems like a good way of achieving what I said previously:&#xA;&#xA;&gt; If we&#39;re trying to socialise the idea that zeroconf deprecation is&#xA;&gt; happening and that your business now has a real deadline for migrating&#xA;&gt; away from accepting unconfirmed txs if the risk of being defrauded&#xA;&gt; concerns you, then enabling experimentation on test nets and not touching&#xA;&gt; mainnet until a later release seems fairly fine to me -- similar to&#xA;&gt; activating soft forks on test nets prior to activating it on mainnet.&#xA;&#xA;Cheers,&#xA;aj</html></oembed>