<oembed><type>rich</type><version>1.0</version><author_name>npub1qg5r4lja0e34twn6psh49qlrzj0k28dtxxw0k4fag6sarqprfm2s7nqm4r</author_name><author_url>https://nostr.ae/npub1qg5r4lja0e34twn6psh49qlrzj0k28dtxxw0k4fag6sarqprfm2s7nqm4r</author_url><provider_name>njump</provider_name><provider_url>https://nostr.ae</provider_url><html>📅 Original date posted:2022-12-05&#xA;📝 Original message:&gt;&#xA;&gt; The perception seems to be that Core adding the full RBF option is&#xA;&gt; increasing the risk to zero-conf users, but I&#39;m not convinced that that is&#xA;&gt; the case.&#xA;&#xA;&#xA;If this &#34;perception&#34; were not true, RBF &amp; full-RBF would not be necessary&#xA;at all. Think about it.&#xA;&#xA;It&#39;s always been the risk of getting double-spent out of hundreds or&#xA;&gt; thousands of bitcoins that&#39;s worth seriously worrying about, which is much&#xA;&gt; more the kind of attack a determined attacker is able to carry out.&#xA;&#xA;&#xA;The risk exposure to merchants providing zero-conf acceptance as a service&#xA;is finite, capped by their risk-tolerance, and capped by the current block&#xA;exposure. Merchants cap their exposure to be an amount worth less than the&#xA;value of this service.&#xA;&#xA;It is highly inefficient and difficult for a miner to pull off an&#xA;industry-wide attack across diverse merchants to capture the current&#xA;maximum exposure in any given block, not to mention the enormous surface&#xA;area of legal risk across jurisdictions...&#xA;&#xA;I don&#39;t think zero-conf opponents properly grasp that the risk exposure is&#xA;exact and perfectly, trustlessly manageable. I would like the opportunity&#xA;to spec the methods Bitrefill, Synonym, and most such merchants, use to&#xA;make it standard practice, as it is cheaper for merchants and more&#xA;convenient to Bitcoin consumers when merchants behave this way.&#xA;&#xA;As has been pointed out by may others before, full RBF is aligned with&#xA;&gt; miner (and user) economic incentives&#xA;&#xA;&#xA;This is a theory, not a fact. I can refute this theory by pointing out&#xA;several aspects:&#xA;&#xA;1.  RBF is actually a fee-minimization feature that allows users to game&#xA;the system to spend the *least* amount in fees that correlates to their&#xA;time-preference. Miners earn less when fees can be minimized (obviously).&#xA;This feature also comes at an expense (albeit small) to nodes providing&#xA;replacement service and propagation.&#xA;&#xA;2. Miners care about max fees per block, not slightly increased fees on a&#xA;minority % of incidentally replaced txns when they happen to need it. They&#xA;want the most txns for the highest price per *block*. In order to qualify&#xA;for zero-conf acceptance, merchants require that the fee rate match or&#xA;exceed an amount that makes the txn likely to be included in the very next&#xA;block. This creates a priority competition from users with high&#xA;time-preference. This creates not only more fees for miners, but more txns&#xA;from more people using the chain for commerce. This is evidenced by stats&#xA;provided recently to this mailing list, but here are more numbers from&#xA;Bitrefill:&#xA;https://github.com/bitcoin/bitcoin/pull/26525#issuecomment-1332823282&#xA;&#xA;3. Miners ultimately want what users want, as more users = more txns = more&#xA;fees = higher BTC price. For all of Bitcoin&#39;s history, more users have&#xA;wanted zero-conf than replacements. This is evidenced by first-seen policy&#xA;thriving for years without disruption (until engineers actively disrupted&#xA;it, using fallible theories as justification). This is also evidenced by&#xA;the UASF battle where miners capitulated to providing the type of blocks&#xA;that users demanded, to avoid uncertainty.&#xA;&#xA;4. A replaceable mempool is inherently less valuable than a first-seen&#xA;policy mempool in that Bitcoin is ultimately a ledger for a *payments*&#xA;system where people are trying to pay and be paid with certainty. A&#xA;full-RBF system would result in more real-world doublespends to existing&#xA;merchants and p2p commerce, as it is impossible to fully teach all aspects&#xA;of Bitcoin dynamics to users, particularly when they have enjoyed many&#xA;years of first-seen behavior as status quo.&#xA;&#xA;Zero-conf and first-seen policies are clearly more&#xA;incentive-compatible than RBF outright for these reasons.&#xA;&#xA;The long-term &#39;what to do about it&#39; is to use Lightning if you want fast&#xA;&gt; payments with risk-free instant settlement&#xA;&#xA;&#xA;Many zero-conf proponents work on the bleeding edge of supporting&#xA;Lightning, including myself. Lightning is not risk-free and the base layer&#xA;should not be assuming it as a primary dependency for commercial payments.&#xA;The UX and complexity of supporting Lightning is still considerable,&#xA;adoption is still very low, and there are many unsolved attack vectors and&#xA;risks that remain untested due to Lightning&#39;s low prevalence.&#xA;&#xA;Further, zero-conf is also useful as a tool in improving Lightning&#xA;onboarding, rebalancing, splicing, and UX overall. Bitcoin second-layers&#xA;are only as good as the base layer, everything else is a tradeoff.&#xA;&#xA;Bitcoin core 24 with the full RBF option is already out in the wild at&#xA;&gt; around 5%+ of running nodes and growing, so it&#39;s too late to kill it.&#xA;&#xA;&#xA;This is pure speculation. If Bitcoin Core publishes an update without the&#xA;mistakenly-rushed feature, the mempoolfullrbf movement is likely to die on&#xA;the vine as users opt into the latest versions more and more, as evidenced&#xA;by all older versions decreasing in usage over time. The incentive to run&#xA;old versions, just to be able to force non-RBF txns to be treated as RBF,&#xA;is lower than the incentive and likelihood of updating. Frankly, such an&#xA;incentive is mostly obscure, vindictive, and perverse, IMO.&#xA;&#xA;We should remove the mempoolfullrbf feature immediately from Bitcoin Core&#xA;distributions, as requested here:&#xA;https://github.com/bitcoin/bitcoin/pull/26525&#xA;&#xA;This mistake demands correction, and no one has provided a&#xA;rational beneficial argument so far for breaking the user space and&#xA;disrupting mempool harmony.&#xA;&#xA;If you would like further arguments and refutations of full-RBF, please&#xA;read all of the posts in my PR thread:&#xA;https://github.com/bitcoin/bitcoin/pull/26525&#xA;&#xA;Thank you,&#xA;&#xA;--&#xA;John Carvalho&#xA;CEO, Synonym.to &lt;http://synonym.to/&gt;&#xA;&#xA;&#xA;&#xA;Date: Mon, 05 Dec 2022 12:21:44 +0000&#xA;&gt; From: angus &lt;angus at toaster.cc&gt;&#xA;&gt; To: Daniel Lipshitz &lt;daniel at gap600.com&gt;, Bitcoin Protocol Discussion&#xA;&gt;         &lt;bitcoin-dev at lists.linuxfoundation.org&gt;&#xA;&gt; Subject: [bitcoin-dev] [Opt-in full-RBF] Zero-conf apps in immediate&#xA;&gt;         danger&#xA;&gt; Message-ID:&#xA;&gt;&#xA;&gt; &lt;-C_sX7ApYy_2MgXfl7e1ONddIi9gtET5jV4MTl_F_CstCvTuV0vTFfazF7tKBd53o6QbZ1xygayPIaCVjDyV-9yklnfk_t0IH23rw2LtqKQ=@toaster.cc&gt;&#xA;&gt;&#xA;&gt; Content-Type: text/plain; charset=&#34;utf-8&#34;&#xA;&gt;&#xA;&gt; Core adding full RBF is a change of node policy that may be highly&#xA;&gt; inconvenient for zero-conf users, but there has always been and will always&#xA;&gt; be a risk of a double-spend for anyone that treats zero-confirmation&#xA;&gt; transactions as settled. It&#39;s literally in the name - this transaction has&#xA;&gt; zero confirmations and no guarantee it&#39;ll make it into a block, and so has&#xA;&gt; not yet settled.&#xA;&gt;&#xA;&gt; The perception seems to be that Core adding the full RBF option is&#xA;&gt; increasing the risk to zero-conf users, but I&#39;m not convinced that that is&#xA;&gt; the case - someone wanting to double-spend attack you isn&#39;t going to be&#xA;&gt; bothered to do so over a few thousand sats (unless they can do it thousands&#xA;&gt; of times), and losing a few thousand sats to a double-spend isn&#39;t the&#xA;&gt; biggest deal.&#xA;&gt;&#xA;&gt; It&#39;s always been the risk of getting double-spent out of hundreds or&#xA;&gt; thousands of bitcoins that&#39;s worth seriously worrying about, which is much&#xA;&gt; more the kind of attack a determined attacker is able to carry out. Such a&#xA;&gt; determined attacker is much more likely to attempt and succeed at a sybil&#xA;&gt; attack, or directly colluding with a miner. So your zero-conf risk&#xA;&gt; increases non-linearly as the amount of bitcoin being transacted grows.&#xA;&gt; (caveat: this paragraph is opinion).&#xA;&gt;&#xA;&gt; There does, however, seem to be a legitimate business for providing&#xA;&gt; insurance/risk management for people that are willing to accept the&#xA;&gt; zero-conf risk - it is pretty similar to accepting credit cards with a&#xA;&gt; chargeback risk or any payment card with a capture risk, though there&#39;s&#xA;&gt; no-one to mediate a dispute. On-chain is final.&#xA;&gt;&#xA;&gt; But what doesn&#39;t make any sense is trying to avoid Bitcoin Core and nodes&#xA;&gt; from adopting a full RBF policy to try to protect this use case. As has&#xA;&gt; been pointed out by may others before, full RBF is aligned with miner (and&#xA;&gt; user) economic incentives and is a node policy, not consensus, so you can&#39;t&#xA;&gt; even tell which nodes are doing it nor can you prevent them from doing so.&#xA;&gt; Second, Bitcoin core 24 with the full RBF option is already out in the wild&#xA;&gt; at around 5%+ of running nodes and growing, so it&#39;s too late to kill it.&#xA;&gt;&#xA;&gt; So my point is that relying on node policy as part of your protection for&#xA;&gt; zero-conf transaction acceptance is fragile, and should not be relied upon.&#xA;&gt; The protocol rules have always tacitly allowed double-spending before a&#xA;&gt; confirmation, and it has always been clear that there&#39;s no consensus on&#xA;&gt; which transactions have occurred until they have in a block and have&#xA;&gt; at-least one confirmation.&#xA;&gt;&#xA;&gt; The long-term &#39;what to do about it&#39; is to use Lightning if you want fast&#xA;&gt; payments with risk-free instant settlement, or as above, accept the&#xA;&gt; zero-conf risk and cover yourself with an insurance premium (e.g. a margin&#xA;&gt; on transactions that goes into an insurance fund, and limiting max&#xA;&gt; transaction amount so you&#39;re not exposed to uncoverable losses if you do&#xA;&gt; get double-spend attacked)&#xA;&gt;&#xA;&gt; Angus&#xA;&gt;&#xA;-------------- next part --------------&#xA;An HTML attachment was scrubbed...&#xA;URL: &lt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20221205/f3d67ada/attachment-0001.html&gt;</html></oembed>