<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <updated></updated>
  <generator>https://nostr.ae</generator>

  <title>Nostr notes by </title>
  <author>
    <name></name>
  </author>
  <link rel="self" type="application/atom+xml" href="https://nostr.ae/npub1c3j2v4ws7hf9sj2xkr4dale0z4htw7lup37qeh2wxll4pcvlg03qe2aw73.rss" />
  <link href="https://nostr.ae/npub1c3j2v4ws7hf9sj2xkr4dale0z4htw7lup37qeh2wxll4pcvlg03qe2aw73" />
  <id>https://nostr.ae/npub1c3j2v4ws7hf9sj2xkr4dale0z4htw7lup37qeh2wxll4pcvlg03qe2aw73</id>
  <icon></icon>
  <logo></logo>




  <entry>
    <id>https://nostr.ae/nevent1qqsfxxnyqlg46dkhvls3nx9ax94j4zj785v5lxxc8sp7y5zxk5teuzszyrzxffj46r6aykzfg6cw4hhl9u2kadmmlsx8crxafcml758pnap7yw9lark</id>
    
      <title type="html">📅 Original date posted:2022-10-12 📝 Original message:Hello ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsfxxnyqlg46dkhvls3nx9ax94j4zj785v5lxxc8sp7y5zxk5teuzszyrzxffj46r6aykzfg6cw4hhl9u2kadmmlsx8crxafcml758pnap7yw9lark" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs840drwy390wvwc0knalcq3aexjfq6wjshcgjy78ugg74swh5zlfs73cu2s&#39;&gt;nevent1q…cu2s&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2022-10-12&lt;br/&gt;📝 Original message:Hello Pieter,&lt;br/&gt;&lt;br/&gt;Thanks for taking the time to comment! I&amp;#39;ll answer inline.&lt;br/&gt;&lt;br/&gt;On Wed, Oct 12, 2022 at 2:51 PM Pieter Wuille &amp;lt;bitcoin-dev at wuille.net&amp;gt;&lt;br/&gt;wrote:&lt;br/&gt;&amp;gt; I certainly recognize that adding the flag is a likely step towards, over&lt;br/&gt;&amp;gt; time, the full RBF policy becoming more widely adopted on the network.&lt;br/&gt;That is&lt;br/&gt;&amp;gt; presumably the reason why people are in favor of having the flag, even&lt;br/&gt;default&lt;br/&gt;&amp;gt; off - including me. I believe that policy&amp;#39;s adoption is inevitable&lt;br/&gt;eventually,&lt;br/&gt;&amp;gt; but the speed at which that is achieved is certainly a function of&lt;br/&gt;&amp;gt; availability and adopted of software which provides the option.&lt;br/&gt;&lt;br/&gt;As stated in the original posting, I believe too that a full-RBF network is&lt;br/&gt;not&lt;br/&gt;only inevitable but also desirable. Miner incentives will eventually win,&lt;br/&gt;so we&lt;br/&gt;should address them before they fully kick in (ie. before transaction fees&lt;br/&gt;become a meaningful portion of the block reward).&lt;br/&gt;&lt;br/&gt;&amp;gt; So I have a hard time imagining how it would change anything&lt;br/&gt;*immediately* on&lt;br/&gt;&amp;gt; the network at large (without things like default on and/or preferential&lt;br/&gt;&amp;gt; peering, ...), but I still believe it&amp;#39;s an important step.&lt;br/&gt;&lt;br/&gt;Notice that I&amp;#39;m not saying this changes anything immediately on the network&lt;br/&gt;at&lt;br/&gt;large. In fact, it is unlikely that the opt-in flag alone would be enough to&lt;br/&gt;migrate the network at large to full-RBF.&lt;br/&gt;&lt;br/&gt;There&amp;#39;s a real possibility that, after deployment of the opt-in flag,&lt;br/&gt;either no&lt;br/&gt;meaningful hashing power adopts it or no connected component of&lt;br/&gt;transaction-relaying nodes adopts it. If that&amp;#39;s the case, the deployment&lt;br/&gt;won&amp;#39;t&lt;br/&gt;help nodes participating in multi-party funded transactions protect against&lt;br/&gt;the&lt;br/&gt;class of attacks described in [1] (which was, as I understand, the original&lt;br/&gt;intention of #25353).&lt;br/&gt;&lt;br/&gt;If that&amp;#39;s not the case, it means that at least some meaningful hashing power&lt;br/&gt;adopted it and that there exist some connected components of&lt;br/&gt;transaction-relaying nodes that adopted it. This is certainly far from&lt;br/&gt;having&lt;br/&gt;wide adoption of full-RBF in the network at large. However, once we reach&lt;br/&gt;that&lt;br/&gt;minimal level of adoption in the mining and relaying layers, any node on a&lt;br/&gt;full-RBF connected component can send an on-chain payment to an application&lt;br/&gt;and&lt;br/&gt;then get a replacement mined. That is, applications that accept incoming&lt;br/&gt;on-chain payments from untrusted parties can be immediately exposed to&lt;br/&gt;full-RBF&lt;br/&gt;transaction replacements, even if they didn&amp;#39;t opt into full-RBF in their&lt;br/&gt;nodes.&lt;br/&gt;&lt;br/&gt;In an adversarial setting, such as the one for zero-conf applications (as&lt;br/&gt;defined in the original posting), this increases the risk of an attack&lt;br/&gt;substantially, making the entire strategy moot.&lt;br/&gt;&lt;br/&gt;&amp;gt; In my view, it is just what I said: a step towards getting full RBF on the&lt;br/&gt;&amp;gt; network, by allowing experimentation and socializing the notion that&lt;br/&gt;&amp;gt; developers believe it is time.&lt;br/&gt;&lt;br/&gt;Those are worthy goals. I believe we can design a deployment strategy for&lt;br/&gt;full-RBF that takes them into account and, at the same time, gives a clear&lt;br/&gt;timeline for any affected application to adapt.&lt;br/&gt;&lt;br/&gt;This could be one such proposal:&lt;br/&gt;&lt;br/&gt;1. We activate opt-in full-RBF on testnet now.&lt;br/&gt;2. We commit now (in the code) to a block height in the future at which&lt;br/&gt;opt-out&lt;br/&gt;   full-RBF will activate on mainnet.&lt;br/&gt;&lt;br/&gt;The first point will allow for experimentation and give a testing ground to&lt;br/&gt;all&lt;br/&gt;affected applications. The second point socializes the notion that&lt;br/&gt;developers&lt;br/&gt;believe it is time, giving a clear message and timeline for anyone affected&lt;br/&gt;to&lt;br/&gt;adapt. It also has the benefit that many more nodes will have upgraded by&lt;br/&gt;the&lt;br/&gt;time we reach the activation block height, making the transition to a&lt;br/&gt;full-RBF&lt;br/&gt;network much more predictable and easy to reason about.&lt;br/&gt;&lt;br/&gt;There&amp;#39;s an argument to be made that the miner incentive incompatibility&lt;br/&gt;problem&lt;br/&gt;of a non-full-RBF network gets measurably worse at the time of the next&lt;br/&gt;halving.&lt;br/&gt;To fix this, we could choose any block height before that, giving a clear&lt;br/&gt;and&lt;br/&gt;predictable transition timeline.&lt;br/&gt;&lt;br/&gt;[1]&lt;br/&gt;&lt;a href=&#34;https://lists.linuxfoundation.org/pipermail/lightning-dev/2021-May/003033.html&#34;&gt;https://lists.linuxfoundation.org/pipermail/lightning-dev/2021-May/003033.html&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;On Wed, Oct 12, 2022 at 1:11 PM Pieter Wuille &amp;lt;bitcoin-dev at wuille.net&amp;gt;&lt;br/&gt;wrote:&lt;br/&gt;&lt;br/&gt;&amp;gt; On Wednesday, October 12th, 2022 at 1:42 AM, Anthony Towns &amp;lt;&lt;br/&gt;&amp;gt; aj at erisian.com.au&amp;gt; wrote:&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; On Tue, Oct 11, 2022 at 04:18:10PM &#43;0000, Pieter Wuille via bitcoin-dev&lt;br/&gt;&amp;gt; wrote:&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; On Friday, October 7th, 2022 at 5:37 PM, Dario Sneidermanis via&lt;br/&gt;&amp;gt; bitcoin-dev bitcoin-dev at lists.linuxfoundation.org wrote:&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; &amp;gt; Thanks for the fast answer! It seems I missed the link to the PR,&lt;br/&gt;&amp;gt; sorry for the&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; &amp;gt; confusion. I&amp;#39;m referring to the opt-in flag for full-RBF from #25353&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; &amp;gt; (&lt;a href=&#34;https://github.com/bitcoin/bitcoin/pull/25353&#34;&gt;https://github.com/bitcoin/bitcoin/pull/25353&lt;/a&gt;).&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; &amp;gt; It is not clear to me why you believe the merging of this particular&lt;br/&gt;&amp;gt; pull request poses an immediate risk to you.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; Did you see the rest of Dario&amp;#39;s reply, bottom-posted after the quoted&lt;br/&gt;&amp;gt; &amp;gt; text? Namely:&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Oh, my mail client for some reason chose to hide all that. Dario, I&amp;#39;m&lt;br/&gt;&amp;gt; sorry for missing this; I see now that you were certainly aware of what the&lt;br/&gt;&amp;gt; PR under consideration did.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Further comments inline.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; On Fri, Oct 07, 2022 at 06:37:38PM -0300, Dario Sneidermanis via&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; The question then is whether an opt-in flag for full-RBF will have&lt;br/&gt;&amp;gt; enough&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; adoption to get us from 1 to 2. If it isn&amp;#39;t, then #25353 won&amp;#39;t meet its&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; objective of allowing nodes participating in multi-party funding&lt;br/&gt;&amp;gt; protocols&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; to assume that they can rely on full-RBF. If it is, then zero-conf&lt;br/&gt;&amp;gt; applications&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; will be at severe risk (per the logic in the initial email).&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; That logic seems reasonably sound to me:&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; - if adding the option does nothing, then there&amp;#39;s no point adding it,&lt;br/&gt;&amp;gt; &amp;gt; and no harm in restricting it to test nets only&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; - if adding the option does do something, then businesses using zero-conf&lt;br/&gt;&amp;gt; &amp;gt; need to react immediately, or will go from approximately zero risk of&lt;br/&gt;&amp;gt; &amp;gt; losing funds, to substantial risk&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; (I guess having the option today may allow you to manually switch your&lt;br/&gt;&amp;gt; &amp;gt; node over to supporting fullrbf in future when the majority of the&lt;br/&gt;&amp;gt; network&lt;br/&gt;&amp;gt; &amp;gt; supports it, without needing to do an additional upgrade in the meantime;&lt;br/&gt;&amp;gt; &amp;gt; but that seems like a pretty weak benefit)&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; I certainly recognize that adding the flag is a likely step towards, over&lt;br/&gt;&amp;gt; time, the full RBF policy becoming more widely adopted on the network. That&lt;br/&gt;&amp;gt; is presumably the reason why people are in favor of having the flag, even&lt;br/&gt;&amp;gt; default off - including me. I believe that policy&amp;#39;s adoption is inevitable&lt;br/&gt;&amp;gt; eventually, but the speed at which that is achieved is certainly a function&lt;br/&gt;&amp;gt; of availability and adopted of software which provides the option.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; That said, I think it&amp;#39;s a bit of a jump to conclude that the only two&lt;br/&gt;&amp;gt; options are that either the existence of the flag either has no effect at&lt;br/&gt;&amp;gt; all, or poses an immediate threat to those relying on its absence. In my&lt;br/&gt;&amp;gt; view, it is just what I said: a step towards getting full RBF on the&lt;br/&gt;&amp;gt; network, by allowing experimentation and socializing the notion that&lt;br/&gt;&amp;gt; developers believe it is time. So I have a hard time imagining how it would&lt;br/&gt;&amp;gt; change anything *immediately* on the network at large (without things like&lt;br/&gt;&amp;gt; default on and/or preferential peering, ...), but I still believe it&amp;#39;s an&lt;br/&gt;&amp;gt; important step.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Cheers,&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; --&lt;br/&gt;&amp;gt; Pieter&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;An HTML attachment was scrubbed...&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20221012/5280640b/attachment-0001.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20221012/5280640b/attachment-0001.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T23:14:19Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs8rp43wagam92rl6rhvkww83kfdzsusvutncmf5flmm4ww3umewlgzyrzxffj46r6aykzfg6cw4hhl9u2kadmmlsx8crxafcml758pnap7y2c93gn</id>
    
      <title type="html">📅 Original date posted:2022-10-07 📝 Original message:Hello ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs8rp43wagam92rl6rhvkww83kfdzsusvutncmf5flmm4ww3umewlgzyrzxffj46r6aykzfg6cw4hhl9u2kadmmlsx8crxafcml758pnap7y2c93gn" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqst3ngxlxl32anmw5xxeu02hs2mrmmdc36thjdu82qadde8xaf58ggq8f0v5&#39;&gt;nevent1q…f0v5&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2022-10-07&lt;br/&gt;📝 Original message:Hello David,&lt;br/&gt;&lt;br/&gt;Thanks for the fast answer! It seems I missed the link to the PR, sorry for&lt;br/&gt;the&lt;br/&gt;confusion. I&amp;#39;m referring to the opt-in flag for full-RBF from #25353&lt;br/&gt;(&lt;a href=&#34;https://github.com/bitcoin/bitcoin/pull/25353&#34;&gt;https://github.com/bitcoin/bitcoin/pull/25353&lt;/a&gt;).&lt;br/&gt;&lt;br/&gt;On Fri, Oct 7, 2022 at 2:21 PM David A. Harding &amp;lt;dave at dtrt.org&amp;gt; wrote:&lt;br/&gt;&lt;br/&gt;&amp;gt; On 2022-10-07 06:20, Dario Sneidermanis via bitcoin-dev wrote:&lt;br/&gt;&amp;gt; &amp;gt; Hello list,&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; I&amp;#39;m Dario, from Muun wallet [...] we&amp;#39;ve been reviewing the latest&lt;br/&gt;&amp;gt; &amp;gt; bitcoin core release&lt;br/&gt;&amp;gt; &amp;gt; candidate [...] we understood we had at least a year from the initial&lt;br/&gt;&amp;gt; &amp;gt; opt-in  deployment until opt-out was deployed, giving us enough time to&lt;br/&gt;&amp;gt; &amp;gt; adapt&lt;br/&gt;&amp;gt; &amp;gt; Muun to the new policies. However, when reviewing the 24.0 release&lt;br/&gt;&amp;gt; &amp;gt; candidate&lt;br/&gt;&amp;gt; &amp;gt; just a few  days ago, we realized that zero-conf apps (like Muun) must&lt;br/&gt;&amp;gt; &amp;gt; *immediately turn off* their zero-conf features.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Hi Dario,&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; I&amp;#39;m wondering if there&amp;#39;s been some confusion.  There are two RBF-related&lt;br/&gt;&amp;gt; items in the current release notes draft:[1]&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; 1. &amp;#34;A new mempoolfullrbf option has been added, which enables the&lt;br/&gt;&amp;gt; mempool to accept transaction replacement without enforcing BIP125&lt;br/&gt;&amp;gt; replaceability signaling. (#25353)&amp;#34;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; 2. &amp;#34;The -walletrbf startup option will now default to true. The wallet&lt;br/&gt;&amp;gt; will now default to opt-in RBF on transactions that it creates.&lt;br/&gt;&amp;gt; (#25610)&amp;#34;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; The first item (from PR #25353) does allow a transaction without a&lt;br/&gt;&amp;gt; BIP125 signal to be replaced, but this configuration option is set to&lt;br/&gt;&amp;gt; disabled by default.[2]  There have been software forks of Bitcoin Core&lt;br/&gt;&amp;gt; since at least 2015 which have allowed replacement of non-signaling&lt;br/&gt;&amp;gt; transactions, so this option just makes that behavior a little bit more&lt;br/&gt;&amp;gt; accessible to users of Bitcoin Core.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;The &amp;#34;activation&amp;#34; of full-RBF after deployment works in a pretty interesting&lt;br/&gt;way:&lt;br/&gt;&lt;br/&gt;1. If no miner is running full-RBF or there aren&amp;#39;t easily accessible&lt;br/&gt;connected&lt;br/&gt;   components of nodes running full-RBF connected to the miners, then&lt;br/&gt;full-RBF&lt;br/&gt;   is mostly ineffective since replacements aren&amp;#39;t relayed and/or mined.&lt;br/&gt;2. There&amp;#39;s a middle ground where *some* connected components of full-RBF&lt;br/&gt;nodes&lt;br/&gt;   can relay and mine replacements, where some full-RBF nodes will be able&lt;br/&gt;to&lt;br/&gt;   replace via full-RBF and some won&amp;#39;t (depending on their peers).&lt;br/&gt;3. With high enough adoption, the relay graph has enough density of full-RBF&lt;br/&gt;   nodes that almost all full-RBF nodes can replace transactions via&lt;br/&gt;full-RBF.&lt;br/&gt;&lt;br/&gt;While there have been forks of Bitcoin Core (like Bitcoin Knots) running&lt;br/&gt;full-RBF for a while, today most nodes (by far) are running Bitcoin Core.&lt;br/&gt;So,&lt;br/&gt;Bitcoin Core adding an opt-in flag (ie. off by default) makes it easier to&lt;br/&gt;be&lt;br/&gt;picked up by most node operators. Making the flag opt-out (ie. on by&lt;br/&gt;default)&lt;br/&gt;would make it easier still. We are dealing with a gradient going from hard&lt;br/&gt;enough that we are still in 1, to easy enough that we get to 3.&lt;br/&gt;&lt;br/&gt;The question then is whether an opt-in flag for full-RBF will have enough&lt;br/&gt;adoption to get us from 1 to 2. If it isn&amp;#39;t, then #25353 won&amp;#39;t meet its&lt;br/&gt;objective of allowing nodes participating in multi-party funding protocols&lt;br/&gt;to&lt;br/&gt;assume that they can rely on full-RBF. If it is, then zero-conf applications&lt;br/&gt;will be at severe risk (per the logic in the initial email).&lt;br/&gt;-------------- next part --------------&lt;br/&gt;An HTML attachment was scrubbed...&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20221007/a17e3454/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20221007/a17e3454/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T23:14:18Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs9yvr494ppcpkl36zqk6qvjfyt4uh6z7j7wlaksvhzyg2g6rsd0vgzyrzxffj46r6aykzfg6cw4hhl9u2kadmmlsx8crxafcml758pnap7yn9dxr2</id>
    
      <title type="html">📅 Original date posted:2022-10-07 📝 Original message:Hello ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs9yvr494ppcpkl36zqk6qvjfyt4uh6z7j7wlaksvhzyg2g6rsd0vgzyrzxffj46r6aykzfg6cw4hhl9u2kadmmlsx8crxafcml758pnap7yn9dxr2" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsfg6u6sgccq0mncfuvpr98fdvtcdxkhf5pat50725zuadh3uhqn2cpse6ch&#39;&gt;nevent1q…e6ch&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2022-10-07&lt;br/&gt;📝 Original message:Hello list,&lt;br/&gt;&lt;br/&gt;I&amp;#39;m Dario, from Muun wallet, a mobile non-custodial bitcoin wallet. For the&lt;br/&gt;past&lt;br/&gt;few days we&amp;#39;ve been reviewing the latest bitcoin core release candidate,&lt;br/&gt;and we&lt;br/&gt;found some troubling facts related to the opt-in full-RBF deployment.&lt;br/&gt;&lt;br/&gt;We first learned about the opt-in full-RBF proposal last June when it was&lt;br/&gt;announced on the mailing list. Closing the gap between the protocol&amp;#39;s relay&lt;br/&gt;policies and the miner incentives is inevitable, so it was a welcomed&lt;br/&gt;addition.&lt;br/&gt;Furthermore, allowing transaction replacements that remove the opt-in RBF&lt;br/&gt;flag&lt;br/&gt;was deeply problematic.&lt;br/&gt;&lt;br/&gt;At the time, we understood we had at least a year from the initial opt-in&lt;br/&gt;deployment until opt-out was deployed, giving us enough time to adapt Muun&lt;br/&gt;to&lt;br/&gt;the new policies. However, when reviewing the 24.0 release candidate just a&lt;br/&gt;few&lt;br/&gt;days ago, we realized that zero-conf apps (like Muun) must *immediately turn&lt;br/&gt;off* their zero-conf features.&lt;br/&gt;&lt;br/&gt;I understand this wasn&amp;#39;t the intention when designing the opt-in deployment&lt;br/&gt;mechanism. Given this new information, do you see a path where we can delay&lt;br/&gt;the&lt;br/&gt;opt-in deployment and find a safer way to deploy full-RBF?&lt;br/&gt;&lt;br/&gt;It&amp;#39;d be great for this deployment to be a success so that we can continue&lt;br/&gt;fixing&lt;br/&gt;the remaining relay policy problems, such as package relay and the RBF&lt;br/&gt;rules.&lt;br/&gt;Maybe we could go straight to an opt-out deployment locked by code at a&lt;br/&gt;certain&lt;br/&gt;height in the future to give time to everyone and, at the same time, avoid a&lt;br/&gt;huge mempool divergence event?&lt;br/&gt;&lt;br/&gt;Below is our analysis of how zero-conf apps break with opt-in full-RBF. I&lt;br/&gt;hope&lt;br/&gt;it helps.&lt;br/&gt;&lt;br/&gt;Cheers,&lt;br/&gt;Dario&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;# How do zero-conf apps work&lt;br/&gt;&lt;br/&gt;While the workings and trade-offs of zero-conf applications might be known&lt;br/&gt;by&lt;br/&gt;many in this list, it&amp;#39;s useful to define precisely how they work to&lt;br/&gt;understand&lt;br/&gt;how they break.&lt;br/&gt;&lt;br/&gt;We call zero-conf applications to entities that accept on-chain payments&lt;br/&gt;from&lt;br/&gt;*untrusted parties* and will sometimes deliver the paid-for product or&lt;br/&gt;service&lt;br/&gt;without waiting for the transaction to be included in a block.&lt;br/&gt;&lt;br/&gt;Some examples of zero-conf apps:&lt;br/&gt;&lt;br/&gt;- Muun&amp;#39;s submarine swaps for outgoing lightning payments&lt;br/&gt;- Bitrefill&amp;#39;s on-chain payments for gift cards and phone top-ups&lt;br/&gt;- Many bitcoin ATMs&amp;#39; on-chain deposits for selling bitcoin for cash (at&lt;br/&gt;least&lt;br/&gt;  the two biggest bitcoin ATM manufacturers support this: Genesis Coin and&lt;br/&gt;  General Byte)&lt;br/&gt;&lt;br/&gt;All of these applications are receiving incoming on-chain transactions for&lt;br/&gt;which&lt;br/&gt;they don&amp;#39;t control the inputs, and performing a risk analysis to decide&lt;br/&gt;whether&lt;br/&gt;they are ok with accepting the payment without confirmation.&lt;br/&gt;&lt;br/&gt;In practice, this works because once the bitcoin P2P network has fully&lt;br/&gt;propagated a non-RBF transaction, you need the collaboration of a miner to&lt;br/&gt;replace it, which isn&amp;#39;t easy to get today. Even though many of the biggest&lt;br/&gt;miners offer off-band transaction broadcasting services, they currently&lt;br/&gt;won&amp;#39;t&lt;br/&gt;process conflicting transactions.&lt;br/&gt;&lt;br/&gt;Roughly, the risk analysis goes like this:&lt;br/&gt;&lt;br/&gt;1. if an incoming transaction is RBF (direct or inherited)&lt;br/&gt;   --&amp;gt; too risky, wait for 1 conf (or more) since it can be replaced at any&lt;br/&gt;time&lt;br/&gt;2. if the payment is for an amount greater than X&lt;br/&gt;   --&amp;gt; too risky, wait for 1 conf (or more), since the amount is worthy of a&lt;br/&gt;       sophisticated attacker&lt;br/&gt;3. wait for full(ish) propagation of the incoming transaction&lt;br/&gt;4. if there&amp;#39;s no double-spend attempt&lt;br/&gt;   --&amp;gt; accept 0-conf&lt;br/&gt;&lt;br/&gt;As with any other risk analysis, there&amp;#39;s always a false-negative detection&lt;br/&gt;rate,&lt;br/&gt;leading to an expected loss, which the zero-conf app should be willing to&lt;br/&gt;bear.&lt;br/&gt;Notice that the expected loss is tunable via the amount X in the above&lt;br/&gt;analysis.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;# Why are zero-conf apps not protected with an opt-in deployment&lt;br/&gt;&lt;br/&gt;Full-RBF adoption works on three different layers:&lt;br/&gt;&lt;br/&gt;- The transaction application layer&lt;br/&gt;- The transaction relaying layer&lt;br/&gt;- The transaction mining layer&lt;br/&gt;&lt;br/&gt;If an application wants to replace with full-RBF an *outgoing* transaction,&lt;br/&gt;it&lt;br/&gt;will need:&lt;br/&gt;&lt;br/&gt;- An upgraded node that opted into full-RBF, from which it can broadcast the&lt;br/&gt;  replacement transaction&lt;br/&gt;- A connected component of upgraded nodes that opted into full-RBF, that can&lt;br/&gt;  relay the replacement transaction&lt;br/&gt;- A miner in that connected component with an upgraded node that opted into&lt;br/&gt;  full-RBF, that can mine the replacement transaction&lt;br/&gt;&lt;br/&gt;However, an application cannot control whether a replacement to an&lt;br/&gt;*incoming*&lt;br/&gt;transaction is relayed via full-RBF. As soon as a single application can&lt;br/&gt;generate replacements easily via full-RBF, all other applications have to&lt;br/&gt;assume&lt;br/&gt;that any incoming transaction from an untrusted party might be replaced via&lt;br/&gt;full-RBF. That is, for the application layer this is a forced upgrade.&lt;br/&gt;&lt;br/&gt;As soon as an unsophisticated attacker can use opt-in full-RBF, the risk&lt;br/&gt;analysis performed by zero-conf applications stops working because the&lt;br/&gt;transactions to analyze are all incoming transactions from untrusted&lt;br/&gt;parties.&lt;br/&gt;Since some wallets already implement cancel functionality for opt-in RBF&lt;br/&gt;transactions, enabling the same functionality for every transaction wouldn&amp;#39;t&lt;br/&gt;require much work, making canceling any unconfirmed transaction a one-click&lt;br/&gt;experience. After this, the security model of zero-conf applications goes&lt;br/&gt;from&lt;br/&gt;&amp;#34;susceptible to attacks from miners&amp;#34; to &amp;#34;anyone can perform an attack, with&lt;br/&gt;an&lt;br/&gt;easy-to-use interface&amp;#34;.&lt;br/&gt;&lt;br/&gt;That is, the opt-in deployment of full-RBF doesn&amp;#39;t protect zero-conf&lt;br/&gt;applications from having to turn off their zero-conf features very soon&lt;br/&gt;after&lt;br/&gt;the initial deployment. All mitigations are mostly ineffective against&lt;br/&gt;untrusted parties.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;# Other things we have to fix&lt;br/&gt;&lt;br/&gt;While it&amp;#39;s clear how full-RBF breaks zero-conf applications, other more&lt;br/&gt;subtle&lt;br/&gt;things break in *many* wallets (Muun included). If given the opportunity, we&lt;br/&gt;would like to fix them before deployment. One could argue that these things&lt;br/&gt;were already broken, but they get considerably worse as the network adopts&lt;br/&gt;full-RBF (even with an opt-in deployment), so we should fix them.&lt;br/&gt;&lt;br/&gt;## Mental model for unconfirmed incoming transactions&lt;br/&gt;&lt;br/&gt;Many wallets with support for on-chain payments (Muun included) show&lt;br/&gt;incoming&lt;br/&gt;external transactions in some way to their users before they confirm. This&lt;br/&gt;is a&lt;br/&gt;common practice because not showing them leads users to worry that their&lt;br/&gt;money&lt;br/&gt;disappeared (exchanges doing this is the #1 issue we have to deal with in&lt;br/&gt;our&lt;br/&gt;customer support channels).&lt;br/&gt;&lt;br/&gt;With full-RBF, wallets should make it extremely clear to users that&lt;br/&gt;unconfirmed&lt;br/&gt;funds are not theirs (yet). Otherwise, protocol-unaware users that are&lt;br/&gt;transacting on-chain with untrusted parties can be easily scammed if they&lt;br/&gt;don&amp;#39;t&lt;br/&gt;know they have to wait for a confirmation. Eg. in Argentina, it&amp;#39;s pretty&lt;br/&gt;common&lt;br/&gt;to meet someone in person to buy bitcoin P2P for cash, even for newcomers.&lt;br/&gt;&lt;br/&gt;## Block explorers as payment receipts&lt;br/&gt;&lt;br/&gt;Most wallets with support for on-chain payments (Muun included) use the&lt;br/&gt;transaction view of a block explorer as a shareable payment receipt. The&lt;br/&gt;sender&lt;br/&gt;of an on-chain transaction usually shares this link with the receiver to let&lt;br/&gt;them know they made a payment. Protocol-unaware receivers sometimes take&lt;br/&gt;this&lt;br/&gt;link as proof of payment.&lt;br/&gt;&lt;br/&gt;Most explorers currently don&amp;#39;t track payment replacements and, more&lt;br/&gt;importantly,&lt;br/&gt;don&amp;#39;t warn users that unconfirmed funds are not theirs (yet). With full-RBF,&lt;br/&gt;wallets should either stop relying on explorers for this functionality or&lt;br/&gt;wait&lt;br/&gt;for them to support it explicitly.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;# Impact at Muun&lt;br/&gt;&lt;br/&gt;Work to transition Muun from using zero-conf submarine swaps to using&lt;br/&gt;payment&lt;br/&gt;channels is ongoing, but we are still several months away from being&lt;br/&gt;production&lt;br/&gt;ready. This means we would have to turn off outgoing lightning payments for&lt;br/&gt;&#43;100k monthly active users, which is a good chunk of all users making&lt;br/&gt;non-custodial lightning payments today.&lt;br/&gt;&lt;br/&gt;Furthermore, the more subtle fixes imply non-trivial amounts of product work&lt;br/&gt;that we cannot reasonably deploy before they start affecting users.&lt;br/&gt;&lt;br/&gt;While I cannot talk for other applications, there are many impacted in one&lt;br/&gt;way&lt;br/&gt;or another, and none of the ones I checked with were aware of this change,&lt;br/&gt;or&lt;br/&gt;its implications.&lt;br/&gt;-------------- next part --------------&lt;br/&gt;An HTML attachment was scrubbed...&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20221007/d8b61478/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20221007/d8b61478/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T23:14:16Z</updated>
  </entry>

</feed>