<oembed><type>rich</type><version>1.0</version><author_name>npub1jdl3plz00rvxwc6g2ckemzrgg0amx5wen4kfvs3laxtssxvk9cvsf3gh0m</author_name><author_url>https://nostr.ae/npub1jdl3plz00rvxwc6g2ckemzrgg0amx5wen4kfvs3laxtssxvk9cvsf3gh0m</author_url><provider_name>njump</provider_name><provider_url>https://nostr.ae</provider_url><html>📅 Original date posted:2022-06-15&#xA;📝 Original message:&gt; If something relies on a policy which can be changed without breaking&#xA;consensus rules, how is it secure in any case with or without full rbf?&#xA;&#xA;The security of LN and other related systems are something like: &#34;given&#xA;proper fees offered, can a transaction be mined within N blocks?&#34; You&#39;re&#xA;simply not allowed to out-bid your attacker in certain circumstances due to&#xA;today&#39;s miner incentive-incompatible relay policies.&#xA;&#xA;There is also a time-value dimension to this with other simpler systems&#xA;where your funds can be locked up for potentially weeks for similar reasons.&#xA;&#xA;&gt;  ... arguments about how many people RBF being sufficient or not ...&#xA;&#xA;The idea that we should only build robust systems after the broken ones are&#xA;attacked is not a serious argument.&#xA;&#xA;&gt; I am not opposed to full-rbf; rather, I am opposed to the notion that&#xA;full-rbf will solve all problems&#xA;&#xA;This is a strawman.&#xA;&#xA;Full-RBF is a simple, obvious, incentive-compatible step to getting closer&#xA;to more robust layer two systems. Fixing the rest of the holes is for&#xA;future proposals which are a bit more involved and definitely less mature.&#xA;&#xA;&gt;  would suggest users to try Bitcoin Knots instead&#xA;&gt; Developers should provide basic RBF policy options rather than attempting&#xA;to define what constitutes a good policy and removing the ability to&#xA;disable something when necessary.&#xA;&#xA;If Knots has these knobs, just use Knots rather than lobby all&#xA;implementations to have miner incentive incompatible knobs?&#xA;&#xA;Cheers,&#xA;Greg&#xA;&#xA;On Wed, Jun 15, 2022 at 8:27 PM alicexbt via bitcoin-dev &lt;&#xA;bitcoin-dev at lists.linuxfoundation.org&gt; wrote:&#xA;&#xA;&gt; Hi Antoine,&#xA;&gt;&#xA;&gt;&#xA;&gt; Thanks for opening the pull request to add support for full-rbf in Bitcoin&#xA;&gt; Core. I have a few disagreements with the approach and questions.&#xA;&gt;&#xA;&gt; Recent discussions among LN devs have brought back on the surface concerns&#xA;&gt; about the security of multi-party funded transactions (coinjoins,&#xA;&gt; dual-funded LN channels, on-chain DLCs, ...). It turns out there is a&#xA;&gt; low-fruit, naive DoS vector playable against the funding flow of any such&#xA;&gt; construction due to the lack of existent full-rbf transaction-relay&#xA;&gt; topology on today&#39;s p2p network [0] [1].&#xA;&gt;&#xA;&gt;&#xA;&gt; 1)If something relies on a policy which can be changed without breaking&#xA;&gt; consensus rules, how is it secure in any case with or without full rbf? If&#xA;&gt; I write a python script that expects user to enter char &#39;a&#39; or &#39;b&#39; but user&#xA;&gt; can enter &#39;c&#39; and there is no code to handle exceptions or other chars,&#xA;&gt; will it be secure?&#xA;&gt;&#xA;&gt; 2)full-rbf is not default in the 2 open pull requests, so this experiment&#xA;&gt; still relies on users changing RBF policies manually. If majority of nodes&#xA;&gt; use default opt-in policy, how would this affect vulnerable projects?&#xA;&gt;&#xA;&gt; If you&#39;re a mining operator looking to increase your income, you might be&#xA;&gt; interested to experiment with full-rbf as a policy.&#xA;&gt;&#xA;&gt;&#xA;&gt; Miners can only increase their income if users replace transactions. 2-3%&#xA;&gt; transactions are replaced with opt-in RBF, if someone did not replace&#xA;&gt; earlier why would they do it with full RBF? Or even if we add some users in&#xA;&gt; it who could not signal for some reasons, do you think it would be anything&#xA;&gt; above 5%?&#xA;&gt;&#xA;&gt; If you&#39;re a Bitcoin user or business and you don&#39;t like full-rbf, please&#xA;&gt; express an opinion on how it might affect your software/operations. I&#39;m&#xA;&gt; always interested to learn more about mempool and transaction-relay&#xA;&gt; interactions with upper-layers and applications and to listen to feedback&#xA;&gt; in those areas, and I guess a lot of other Bitcoin researchers/devs too. I&#xA;&gt; know there have been a lot of concerns about full-rbf in the past, however&#xA;&gt; I believe the Bitcoin ecosystem has matured a lot since then.&#xA;&gt;&#xA;&gt;&#xA;&gt; I am not opposed to full-rbf; rather, I am opposed to the notion that&#xA;&gt; full-rbf will solve all problems and the lack of basic options in Bitcoin&#xA;&gt; Core to employ/disable different RBF policies. There is also a speculation&#xA;&gt; about making full RBF default in an year which isn&#39;t relevant to discuss at&#xA;&gt; this point without trying different RBF policies.&#xA;&gt;&#xA;&gt; I would suggest users to try Bitcoin Knots instead which already has an&#xA;&gt; option to disable all RBF policies if required, opt-in and full RBF policy.&#xA;&gt; This can also be done using GUI if not familiar with config option&#xA;&gt; mempoolreplacement​.&#xA;&gt;&#xA;&gt; The rationale in PR #16171 was insufficient to justify removing it in the&#xA;&gt; first place, had 2 NACKs and was reopened to merge it. Why bother with a&#xA;&gt; few lines of code that may allow someone disable it if required in local&#xA;&gt; mempool since it&#39;s only useful when a big percentage of miners utilize it&#xA;&gt; and essentially underused according to the PR author? Developers should&#xA;&gt; provide basic RBF policy options rather than attempting to define what&#xA;&gt; constitutes a good policy and removing the ability to disable something&#xA;&gt; when necessary.&#xA;&gt;&#xA;&gt;&#xA;&gt; /dev/fd0&#xA;&gt;&#xA;&gt; Sent with Proton Mail &lt;https://proton.me/&gt; secure email.&#xA;&gt;&#xA;&gt; ------- Original Message -------&#xA;&gt; On Tuesday, June 14th, 2022 at 5:55 AM, Antoine Riard via bitcoin-dev &lt;&#xA;&gt; bitcoin-dev at lists.linuxfoundation.org&gt; wrote:&#xA;&gt;&#xA;&gt; Hi list,&#xA;&gt;&#xA;&gt; Recent discussions among LN devs have brought back on the surface concerns&#xA;&gt; about the security of multi-party funded transactions (coinjoins,&#xA;&gt; dual-funded LN channels, on-chain DLCs, ...). It turns out there is a&#xA;&gt; low-fruit, naive DoS vector playable against the funding flow of any such&#xA;&gt; construction due to the lack of existent full-rbf transaction-relay&#xA;&gt; topology on today&#39;s p2p network [0] [1]. While it does not consist in a&#xA;&gt; direct loss of funds, if exploited well I think it&#39;s annoying enough to&#xA;&gt; inflict significant timevalue loss or fee-bumping waste&#xA;&gt; to the future providers or distributed swarm of users doing multi-party&#xA;&gt; funded transactions. Of course, it can be fixed one layer above by&#xA;&gt; introducing either fidelity bonds or a reliable centralized coordinator,&#xA;&gt; though at the price of an overhead per-participant ressources cost and loss&#xA;&gt; in system openness [1].&#xA;&gt;&#xA;&gt; For that reason, I believe it would be beneficial to the flourishing of&#xA;&gt; multi-party funded transactions to fix the Dos vector by seeing a subset of&#xA;&gt; the network running full-rbf and enabling propagation of honest multi-party&#xA;&gt; transactions to the interested miners, replacing potential non-signaling&#xA;&gt; double-spend from a malicious counterparty. Moving towards that direction,&#xA;&gt; I&#39;ve submitted a small patch against Bitcoin Core enabling it to turn on&#xA;&gt; full-rbf as a policy, still under review [3]. The default setting stays&#xA;&gt; **false**, i.e keeping opt-in RBF as a default replacement policy. I&#39;ve&#xA;&gt; started to run the patch on a public node at 146.190.224.15.&#xA;&gt;&#xA;&gt; If you&#39;re a node operator curious to play with full-rbf, feel free to&#xA;&gt; connect to this node or spawn up a toy, public node yourself. There is a&#xA;&gt; ##uafrbf libera chat if you would like information on the settings or&#xA;&gt; looking for full-rbf friends (though that step could be automated in the&#xA;&gt; future by setting up a dedicated network bit and reserving a few outbound&#xA;&gt; slots for them).&#xA;&gt;&#xA;&gt; If you&#39;re a mining operator looking to increase your income, you might be&#xA;&gt; interested to experiment with full-rbf as a policy. Indeed, in the future I&#xA;&gt; believe the multi-party transactions issuers who need full-rbf to secure&#xA;&gt; their funding flow should connect by default to full-rbf peers. One can&#xA;&gt; conjecture that their transactions are likely to be more compelling in&#xA;&gt; their feerate as their liquidity needs are higher than the simple&#xA;&gt; transaction. For today, I think we have really few standards and bitcoin&#xA;&gt; softwares relying on multi-party funded transactions [4].&#xA;&gt;&#xA;&gt; If you&#39;re a Bitcoin user or business and you don&#39;t like full-rbf, please&#xA;&gt; express an opinion on how it might affect your software/operations. I&#39;m&#xA;&gt; always interested to learn more about mempool and transaction-relay&#xA;&gt; interactions with upper-layers and applications and to listen to feedback&#xA;&gt; in those areas, and I guess a lot of other Bitcoin researchers/devs too. I&#xA;&gt; know there have been a lot of concerns about full-rbf in the past, however&#xA;&gt; I believe the Bitcoin ecosystem has matured a lot since then.&#xA;&gt;&#xA;&gt; Any mistakes or missing context is my own.&#xA;&gt;&#xA;&gt; Cheers,&#xA;&gt; Antoine&#xA;&gt;&#xA;&gt; [0] For more info about replace-by-fee, see&#xA;&gt; https://bitcoinops.org/en/topics/replace-by-fee/&#xA;&gt;&#xA;&gt; [1] For more details about the DoS vector, see&#xA;&gt; https://lists.linuxfoundation.org/pipermail/lightning-dev/2021-May/003033.html&#xA;&gt;&#xA;&gt; [2] E.g I think it does not affect the Lightning Pool service, as there is&#xA;&gt; a preliminary step where the participant funds are locked first in a 2-of-2&#xA;&gt; with the coordinator before being committed in the multi-party batch&#xA;&gt; transaction.&#xA;&gt;&#xA;&gt; [3] https://github.com/bitcoin/bitcoin/pull/25353&#xA;&gt;&#xA;&gt; [4] E.g DLCs :&#xA;&gt; https://github.com/discreetlogcontracts/dlcspecs/blob/master/Transactions.md&#xA;&gt; ; Lightning dual-funded channel :&#xA;&gt; https://github.com/lightning/bolts/pull/851&#xA;&gt;&#xA;&gt;&#xA;&gt; _______________________________________________&#xA;&gt; bitcoin-dev mailing list&#xA;&gt; bitcoin-dev at lists.linuxfoundation.org&#xA;&gt; https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&#xA;&gt;&#xA;-------------- next part --------------&#xA;An HTML attachment was scrubbed...&#xA;URL: &lt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20220615/31d6050c/attachment-0001.html&gt;</html></oembed>