<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <updated>2023-06-09T12:13:37Z</updated>
  <generator>https://yabu.me</generator>

  <title>Nostr notes by Jeremy Rubin [ARCHIVE]</title>
  <author>
    <name>Jeremy Rubin [ARCHIVE]</name>
  </author>
  <link rel="self" type="application/atom+xml" href="https://yabu.me/npub1xukrzempxc95ags094lgrfvnvwm7gkuwj3d98qwrzgsynskyhp9qkfzef0.rss" />
  <link href="https://yabu.me/npub1xukrzempxc95ags094lgrfvnvwm7gkuwj3d98qwrzgsynskyhp9qkfzef0" />
  <id>https://yabu.me/npub1xukrzempxc95ags094lgrfvnvwm7gkuwj3d98qwrzgsynskyhp9qkfzef0</id>
  <icon></icon>
  <logo></logo>




  <entry>
    <id>https://yabu.me/nevent1qqsv5wah3jn4ve6us3v7fqulet9hcdckt0l45svr7zf5kvrlnms5psgzyqmjcvt8vymqkn4zpukhaqd9jd3m0ezm362955upcvfzqjwzcjuy5jqxeeg</id>
    
      <title type="html">📅 Original date posted:2022-02-18 📝 Original message: &amp;gt; ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsv5wah3jn4ve6us3v7fqulet9hcdckt0l45svr7zf5kvrlnms5psgzyqmjcvt8vymqkn4zpukhaqd9jd3m0ezm362955upcvfzqjwzcjuy5jqxeeg" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsfsa59fph0k9uzddzn8ctdmh48q4tjqt2484m5urh0m6su634ayvc9n0pnl&#39;&gt;nevent1q…0pnl&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2022-02-18&lt;br/&gt;📝 Original message:&lt;br/&gt;&amp;gt; As I said, it&amp;#39;s a new kind of pinning attack, distinct from other types&lt;br/&gt;of pinning attack.&lt;br/&gt;&lt;br/&gt;I think pinning is &amp;#34;formally defined&amp;#34; as sequences of transactions which&lt;br/&gt;prevent or make it less likely for you to make any progress (in terms of&lt;br/&gt;units of computation proceeding).&lt;br/&gt;&lt;br/&gt;Something that only increases possibility to make progress cannot be&lt;br/&gt;pinning.&lt;br/&gt;&lt;br/&gt;If you want to call it something else, with a negative connotation, maybe&lt;br/&gt;call it &amp;#34;necromancing&amp;#34; (bringing back txns that would otherwise be&lt;br/&gt;feerate/fee irrational).&lt;br/&gt;&lt;br/&gt;I would posit that we should be wholly unconcerned with necromancing -- if&lt;br/&gt;your protocol is particularly vulnerable to a third party necromancing then&lt;br/&gt;your protocol is insecure and we shouldn&amp;#39;t hamper Bitcoin&amp;#39;s forward&lt;br/&gt;progress on secure applications to service already insecure ones. Lightning&lt;br/&gt;is particularly necromancy resistant by design, but pinning vulnerable.&lt;br/&gt;This is also true with things like coinjoins which are necromancy resistant&lt;br/&gt;but pinning vulnerable.&lt;br/&gt;&lt;br/&gt;Necromancy in particular is something that isn&amp;#39;t uniquely un-present in&lt;br/&gt;Bitcoin today, and things like package relay and elimination of pinning are&lt;br/&gt;inherently at odds with making necromancy either for CPFP use cases.&lt;br/&gt;&lt;br/&gt;In particular, for the use case you mentioned &amp;#34;Eg a third party could mess&lt;br/&gt;up OpenTimestamps calendars at relatively low cost by delaying the mining&lt;br/&gt;of timestamp txs.&amp;#34;, this is incorrect. A third party can only accelerate&lt;br/&gt;the mining on the timestamp transactions, but they *can* accelerate the&lt;br/&gt;mining of any such timestamp transaction. If you have a single output chain&lt;br/&gt;that you&amp;#39;re RBF&amp;#39;ing per block, then at most they can cause you to shift the&lt;br/&gt;calendar commits forward one block. But again, they cannot pin you. If you&lt;br/&gt;want to shift it back one block earlier, just offer a higher fee for the&lt;br/&gt;later RBF&amp;#39;d calendar. Thus the interference is limited by how much you wish&lt;br/&gt;to pay to guarantee your commitment is in this block as opposed to the next.&lt;br/&gt;&lt;br/&gt;By the way, you can already do out-of-band transaction fees to a very&lt;br/&gt;similar effect, google &amp;#34;BTC transaction accelerator&amp;#34;. If the attack were at&lt;br/&gt;all valuable to perform, it could happen today.&lt;br/&gt;&lt;br/&gt;Lastly, if you do get &amp;#34;necromanced&amp;#34; on an earlier RBF&amp;#39;d transaction by a&lt;br/&gt;third party for OTS, you should be relatively happy because it cost you&lt;br/&gt;less fees overall, since the undoing of your later RBF surely returned some&lt;br/&gt;satoshis to your wallet.&lt;br/&gt;&lt;br/&gt;Best,&lt;br/&gt;&lt;br/&gt;Jeremy&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/lightning-dev/attachments/20220218/83410688/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/lightning-dev/attachments/20220218/83410688/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-09T13:05:09Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsr28lp0x2ewel3etqc3kj4kxlew66kk7y7ya4a7nkkz40aretjrcszyqmjcvt8vymqkn4zpukhaqd9jd3m0ezm362955upcvfzqjwzcjuy5kwmw7y</id>
    
      <title type="html">📅 Original date posted:2022-02-10 📝 Original message: ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsr28lp0x2ewel3etqc3kj4kxlew66kk7y7ya4a7nkkz40aretjrcszyqmjcvt8vymqkn4zpukhaqd9jd3m0ezm362955upcvfzqjwzcjuy5kwmw7y" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsfqusu9z4dnx2nrp57mm2z72hjt9kaj5qxg3av2yk7kqah0e98nts3436xh&#39;&gt;nevent1q…36xh&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2022-02-10&lt;br/&gt;📝 Original message:&lt;br/&gt;That&amp;#39;s not really pinning; painning usually refers to pinning something to&lt;br/&gt;the bottom of the mempool whereas these mechanisms make it easier to&lt;br/&gt;guarantee that progress can be made on confirming the transactions you&amp;#39;re&lt;br/&gt;interested in.&lt;br/&gt;&lt;br/&gt;Often times in these protocols &amp;#34;the call is coming inside the house&amp;#34;. It&amp;#39;s&lt;br/&gt;not a third party adding fees we are scared of, it&amp;#39;s a direct party to the&lt;br/&gt;protocol!&lt;br/&gt;&lt;br/&gt;Sponsors or fee accounts would enable you to ensure the protocol you&amp;#39;re&lt;br/&gt;working on makes forward progress. For things like Eltoo the internal&lt;br/&gt;ratchet makes this work well.&lt;br/&gt;&lt;br/&gt;Protocols which depend on in mempool replacements before confirmation&lt;br/&gt;already must be happy (should they be secure) with any prior state being&lt;br/&gt;mined. If a third party pays the fee you might even be happier since the&lt;br/&gt;execution wasn&amp;#39;t on your dime.&lt;br/&gt;&lt;br/&gt;Cheers,&lt;br/&gt;&lt;br/&gt;Jeremy&lt;br/&gt;&lt;br/&gt;On Wed, Feb 9, 2022, 10:59 PM Peter Todd via bitcoin-dev &amp;lt;&lt;br/&gt;bitcoin-dev at lists.linuxfoundation.org&amp;gt; wrote:&lt;br/&gt;&lt;br/&gt;&amp;gt; On Sat, Jan 01, 2022 at 12:04:00PM -0800, Jeremy via bitcoin-dev wrote:&lt;br/&gt;&amp;gt; &amp;gt; Happy new years devs,&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; I figured I would share some thoughts for conceptual review that have&lt;br/&gt;&amp;gt; been&lt;br/&gt;&amp;gt; &amp;gt; bouncing around my head as an opportunity to clean up the fee paying&lt;br/&gt;&amp;gt; &amp;gt; semantics in bitcoin &amp;#34;for good&amp;#34;. The design space is very wide on the&lt;br/&gt;&amp;gt; &amp;gt; approach I&amp;#39;ll share, so below is just a sketch of how it could work which&lt;br/&gt;&amp;gt; &amp;gt; I&amp;#39;m sure could be improved greatly.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; Transaction fees are an integral part of bitcoin.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; However, due to quirks of Bitcoin&amp;#39;s transaction design, fees are a part&lt;br/&gt;&amp;gt; of&lt;br/&gt;&amp;gt; &amp;gt; the transactions that they occur in.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; While this works in a &amp;#34;Bitcoin 1.0&amp;#34; world, where all transactions are&lt;br/&gt;&amp;gt; &amp;gt; simple on-chain transfers, real world use of Bitcoin requires support for&lt;br/&gt;&amp;gt; &amp;gt; things like Fee Bumping stuck transactions, DoS resistant Payment&lt;br/&gt;&amp;gt; Channels,&lt;br/&gt;&amp;gt; &amp;gt; and other long lived Smart Contracts that can&amp;#39;t predict future fee rates.&lt;br/&gt;&amp;gt; &amp;gt; Having the fees paid in band makes writing these contracts much more&lt;br/&gt;&amp;gt; &amp;gt; difficult as you can&amp;#39;t merely express the logic you want for the&lt;br/&gt;&amp;gt; &amp;gt; transaction, but also the fees.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; Previously, I proposed a special type of transaction called a &amp;#34;Sponsor&amp;#34;&lt;br/&gt;&amp;gt; &amp;gt; which has some special consensus &#43; mempool rules to allow arbitrarily&lt;br/&gt;&amp;gt; &amp;gt; appending fees to a transaction to bump it up in the mempool.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; As an alternative, we could establish an account system in Bitcoin as an&lt;br/&gt;&amp;gt; &amp;gt; &amp;#34;extension block&amp;#34;.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;lt;snip&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; This type of design works really well for channels because the addition&lt;br/&gt;&amp;gt; of&lt;br/&gt;&amp;gt; &amp;gt; fees to e.g. a channel state does not require any sort of pre-planning&lt;br/&gt;&amp;gt; &amp;gt; (e.g. anchors) or transaction flexibility (SIGHASH flags). This sort of&lt;br/&gt;&amp;gt; &amp;gt; design is naturally immune to pinning issues since you could offer to&lt;br/&gt;&amp;gt; pay a&lt;br/&gt;&amp;gt; &amp;gt; fee for any TXID and the number of fee adding offers does not need to be&lt;br/&gt;&amp;gt; &amp;gt; restricted in the same way the descendant transactions would need to be.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; So it&amp;#39;s important to recognize that fee accounts introduce their own kind&lt;br/&gt;&amp;gt; of&lt;br/&gt;&amp;gt; transaction pinning attacks: third parties would be able to attach&lt;br/&gt;&amp;gt; arbitrary&lt;br/&gt;&amp;gt; fees to any transaction without permission. This isn&amp;#39;t necessarily a good&lt;br/&gt;&amp;gt; thing: I don&amp;#39;t want third parties to be able to grief my transaction&lt;br/&gt;&amp;gt; engines by&lt;br/&gt;&amp;gt; getting obsolete transactions confirmed in liu of the replacments I&lt;br/&gt;&amp;gt; actually&lt;br/&gt;&amp;gt; want confirmed. Eg a third party could mess up OpenTimestamps calendars at&lt;br/&gt;&amp;gt; relatively low cost by delaying the mining of timestamp txs.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Of course, there&amp;#39;s an obvious way to fix this: allow transactions to&lt;br/&gt;&amp;gt; designate&lt;br/&gt;&amp;gt; a pubkey allowed to add further transaction fees if required. Which Bitcoin&lt;br/&gt;&amp;gt; already has in two forms: Replace-by-Fee and Child Pays for Parent.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; --&lt;br/&gt;&amp;gt; &lt;a href=&#34;https://petertodd.org&#34;&gt;https://petertodd.org&lt;/a&gt; &amp;#39;peter&amp;#39;[:-1]@petertodd.org&lt;br/&gt;&amp;gt; _______________________________________________&lt;br/&gt;&amp;gt; bitcoin-dev mailing list&lt;br/&gt;&amp;gt; bitcoin-dev at lists.linuxfoundation.org&lt;br/&gt;&amp;gt; &lt;a href=&#34;https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&#34;&gt;https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&lt;/a&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/lightning-dev/attachments/20220210/bfed4525/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/lightning-dev/attachments/20220210/bfed4525/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-09T13:05:08Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqspvyqm7kugr8q47qc3yn022p3yjhk7s5l880hpuskcqqxpx4np4wgzyqmjcvt8vymqkn4zpukhaqd9jd3m0ezm362955upcvfzqjwzcjuy5kcg0g0</id>
    
      <title type="html">📅 Original date posted:2022-04-26 📝 Original message:I ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqspvyqm7kugr8q47qc3yn022p3yjhk7s5l880hpuskcqqxpx4np4wgzyqmjcvt8vymqkn4zpukhaqd9jd3m0ezm362955upcvfzqjwzcjuy5kcg0g0" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsr6av756y540j2dxe5wgrqd5xkssqtk8v4m2s26sq7wkt02ld02dq2fjcch&#39;&gt;nevent1q…jcch&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2022-04-26&lt;br/&gt;📝 Original message:I can&amp;#39;t find all of my earlier references around this, I thought I made a&lt;br/&gt;thread on it, but as a reminder, my thoughts for mild tweaks to APO that&lt;br/&gt;make it a bit less hacky are as follows:&lt;br/&gt;&lt;br/&gt;- Remove OP_1 key punning and replace it with OP_GENERATOR and&lt;br/&gt;OP_INTERNALKEY (maybe OP_EXTERNALKEY too?). The key punning is useful&lt;br/&gt;generically, because I may want to reuse the internal key in conjunction&lt;br/&gt;with a script path in some circumstances.&lt;br/&gt;- Add an additional sequence field that is specific to a signature with no&lt;br/&gt;other consensus meaning, so APO can be used with absolute timelocks. For&lt;br/&gt;example, this makes it impossible for more than one ratchet to be&lt;br/&gt;aggregated within a single transaction under any circumstance if their&lt;br/&gt;sequences differ (not sure this is a good example, but an example&lt;br/&gt;nonetheless).&lt;br/&gt;- Replace tagged keys for APO with either a Checksig2 or a separate feature&lt;br/&gt;flag that enables or disables APO behavior so that we can have programmatic&lt;br/&gt;control over if APO is allowed for a given key (e..g., OP_IF &amp;lt;N&amp;gt; CSV DROP&lt;br/&gt;CHECKSIG2 OP_ELSE CHECKSIG OP_ENDIF enables APO to be turned on after a&lt;br/&gt;certain time, perhaps for a pre-approved backup transaction).&lt;br/&gt;&lt;br/&gt;Overall, this would make eltoo ratchets look something like this:&lt;br/&gt;&lt;br/&gt;&amp;lt;sig&amp;gt; &amp;lt;seq&amp;gt; OP_1 OP_INTERNALKEY OP_CHECKSIG2VERIFY &amp;lt;N&amp;gt; OP_GREATERTHAN&lt;br/&gt;&lt;br/&gt;where checksig2 leaves seq on the stack which can be used to enforce the&lt;br/&gt;ratchet.&lt;br/&gt;&lt;br/&gt;and covenants like:&lt;br/&gt;&lt;br/&gt;&amp;lt;sig&amp;gt; OP_1 OP_1 OP_GENERATOR OP_CHECKSIG2VERIFY&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;On Fri, Apr 22, 2022 at 4:23 AM darosior via bitcoin-dev &amp;lt;&lt;br/&gt;bitcoin-dev at lists.linuxfoundation.org&amp;gt; wrote:&lt;br/&gt;&lt;br/&gt;&amp;gt; I would like to know people&amp;#39;s sentiment about doing (a very slightly&lt;br/&gt;&amp;gt; tweaked version of) BIP118 in place of&lt;br/&gt;&amp;gt; (or before doing) BIP119.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; SIGHASH_ANYPREVOUT and its precedent iterations have been discussed for&lt;br/&gt;&amp;gt; over 6 years. It presents proven and&lt;br/&gt;&amp;gt; implemented usecases, that are demanded and (please someone correct me if&lt;br/&gt;&amp;gt; i&amp;#39;m wrong) more widely accepted than&lt;br/&gt;&amp;gt; CTV&amp;#39;s.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; SIGHASH_ANYPREVOUTANYSCRIPT, if its &amp;#34;ANYONECANPAY&amp;#34; behaviour is made&lt;br/&gt;&amp;gt; optional [0], can emulate CTV just fine.&lt;br/&gt;&amp;gt; Sure then you can&amp;#39;t have bare or Segwit v0 CTV, and it&amp;#39;s a bit more&lt;br/&gt;&amp;gt; expensive to use. But we can consider CTV&lt;br/&gt;&amp;gt; an optimization of APO-AS covenants.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; CTV advocates have been presenting vaults as the flagship usecase.&lt;br/&gt;&amp;gt; Although as someone who&amp;#39;ve been trying to&lt;br/&gt;&amp;gt; implement practical vaults for the past 2 years i doubt CTV is necessary&lt;br/&gt;&amp;gt; nor sufficient for this (but still&lt;br/&gt;&amp;gt; useful!), using APO-AS covers it. And it&amp;#39;s not a couple dozen more virtual&lt;br/&gt;&amp;gt; bytes that are going to matter for&lt;br/&gt;&amp;gt; a potential vault user.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; If after some time all of us who are currently dubious about CTV&amp;#39;s stated&lt;br/&gt;&amp;gt; usecases are proven wrong by onchain&lt;br/&gt;&amp;gt; usage of a less efficient construction to achieve the same goal, we could&lt;br/&gt;&amp;gt; roll-out CTV as an optimization.  In&lt;br/&gt;&amp;gt; the meantime others will have been able to deploy new applications&lt;br/&gt;&amp;gt; leveraging ANYPREVOUT (Eltoo, blind&lt;br/&gt;&amp;gt; statechains, etc..[1]).&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Given the interest in, and demand for, both simple covenants and better&lt;br/&gt;&amp;gt; offchain protocols it seems to me that&lt;br/&gt;&amp;gt; BIP118 is a soft fork candidate that could benefit more (if not most of)&lt;br/&gt;&amp;gt; Bitcoin users.&lt;br/&gt;&amp;gt; Actually i&amp;#39;d also be interested in knowing if people would oppose the&lt;br/&gt;&amp;gt; APO-AS part of BIP118, since it enables&lt;br/&gt;&amp;gt; CTV&amp;#39;s features, for the same reason they&amp;#39;d oppose BIP119.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; [0] That is, to not commit to the other inputs of the transaction (via&lt;br/&gt;&amp;gt; `sha_sequences` and maybe also&lt;br/&gt;&amp;gt; `sha_amounts`). Cf&lt;br/&gt;&amp;gt; &lt;a href=&#34;https://github.com/bitcoin/bips/blob/master/bip-0118.mediawiki#signature-message&#34;&gt;https://github.com/bitcoin/bips/blob/master/bip-0118.mediawiki#signature-message&lt;/a&gt;&lt;br/&gt;&amp;gt; .&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; [1] &lt;a href=&#34;https://anyprevout.xyz/&#34;&gt;https://anyprevout.xyz/&lt;/a&gt; &amp;#34;Use Cases&amp;#34; section&lt;br/&gt;&amp;gt; _______________________________________________&lt;br/&gt;&amp;gt; bitcoin-dev mailing list&lt;br/&gt;&amp;gt; bitcoin-dev at lists.linuxfoundation.org&lt;br/&gt;&amp;gt; &lt;a href=&#34;https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&#34;&gt;https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&lt;/a&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/20220426/8de4425a/attachment-0001.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20220426/8de4425a/attachment-0001.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T23:08:02Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqszccnytvuacxrhgyyv0qm9vmvl36gyemuwpajsf8y8t3ypda6grpqzyqmjcvt8vymqkn4zpukhaqd9jd3m0ezm362955upcvfzqjwzcjuy5gd8lnq</id>
    
      <title type="html">📅 Original date posted:2022-03-13 📝 Original message:Hi ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqszccnytvuacxrhgyyv0qm9vmvl36gyemuwpajsf8y8t3ypda6grpqzyqmjcvt8vymqkn4zpukhaqd9jd3m0ezm362955upcvfzqjwzcjuy5gd8lnq" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsdvf537aryxadx4l7zzww9zlrqzf5zpaxuraxs8ekjyf9h85wgs3gx62dkl&#39;&gt;nevent1q…2dkl&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2022-03-13&lt;br/&gt;📝 Original message:Hi Antoine,&lt;br/&gt;&lt;br/&gt;I have a few high level thoughts on your post comparing these types of&lt;br/&gt;primitive to an explicit soft fork approach:&lt;br/&gt;&lt;br/&gt;1) Transaction sponsors *is* a type of covenant. Precisely, it is very&lt;br/&gt;similar to an &amp;#34;Impossible Input&amp;#34; covenant in conjunction with a &amp;#34;IUTXO&amp;#34; I&lt;br/&gt;defined in my 2017 workshop&lt;br/&gt;&lt;a href=&#34;https://rubin.io/public/pdfs/multi-txn-contracts.pdf&#34;&gt;https://rubin.io/public/pdfs/multi-txn-contracts.pdf&lt;/a&gt; (I know, I know...&lt;br/&gt;self citation, not cool, but helps with context).&lt;br/&gt;&lt;br/&gt;However, for Sponsors itself we optimize the properties of how it works &amp;amp;&lt;br/&gt;is represented, as well as &amp;#34;tighten the hatches&amp;#34; on binding to specific TX&lt;br/&gt;vs merely spend of the outputs (which wouldn&amp;#39;t work as well with APO).&lt;br/&gt;&lt;br/&gt;Perhaps thinking of something like sponsors as a form of covenant, rather&lt;br/&gt;than a special purpose thing, is helpful?&lt;br/&gt;&lt;br/&gt;There&amp;#39;s a lot you could do with a general &amp;#34;observe other txns in {this&lt;br/&gt;block, the chain}&amp;#34; primitive. The catch is that for sponsors we don&amp;#39;t&lt;br/&gt;*care* to enable people to use this as a &amp;#34;smart contracting primitive&amp;#34;, we&lt;br/&gt;want to use it for fee bumping. So we don&amp;#39;t care about programmability, we&lt;br/&gt;care about being able to use the covenant to bump fees.&lt;br/&gt;&lt;br/&gt;2) On Chain Efficiency.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;A) Precommitted Levels&lt;br/&gt;As you&amp;#39;ve noted, an approach like precomitted different fee levels might&lt;br/&gt;work, but has substantial costs.&lt;br/&gt;&lt;br/&gt;However, with sponsors, the minimum viable version of this (not quite what&lt;br/&gt;is spec&amp;#39;d in my prior email, but it could be done this way if we care to&lt;br/&gt;optimize for bytes) would require 1 in and 1 out with only 32 bytes extra.&lt;br/&gt;So that&amp;#39;s around 40 bytes outpoint &#43; 64 bytes signature &#43; 40 bytes output &#43;&lt;br/&gt;32 bytes metadata = 174 bytes per bump. Bumps in this way can also&lt;br/&gt;amortize, so bumping &amp;gt;1 txn at the same time would hit the limit of 32&lt;br/&gt;bytes &#43; 144/n  bytes to bump more than one thing. You can imagine cases&lt;br/&gt;where this might be popular, like &amp;#34;close &amp;gt;1 of my LN channels&amp;#34; or &amp;#34;start&lt;br/&gt;withdrawals for 5 of my JamesOB vaulted coins&amp;#34;&lt;br/&gt;&lt;br/&gt;B) Fancy(er) Covenants&lt;br/&gt;&lt;br/&gt;We might also have something with OP_CAT and CSFS where bumps are done as&lt;br/&gt;some sort of covenant-y thing that lets you arbitrarily rewrite&lt;br/&gt;transactions.&lt;br/&gt;&lt;br/&gt;Not too much to say other than that it is difficult to get these down in&lt;br/&gt;size as the scripts become more complex, not to mention the (hotly&lt;br/&gt;discussed of late) ramifications of those covenants more generally.&lt;br/&gt;&lt;br/&gt;Absent a concrete fancy covenant with fee bumping, I can&amp;#39;t comment.&lt;br/&gt;&lt;br/&gt;3) On Capital Efficiency&lt;br/&gt;&lt;br/&gt;Something like a precommitted or covenant fee bump requires the fee capital&lt;br/&gt;to be pre-committed inside the UTXO, whereas for something like Sponsors&lt;br/&gt;you can use capital you get sometime later. In certain models -- e.g.,&lt;br/&gt;channels -- where you might expect only log(N) of your channels to fail in&lt;br/&gt;a given epoch, you don&amp;#39;t need to allocate as much capital as if you were to&lt;br/&gt;have to do it in-band. This is also true for vaults where you know you only&lt;br/&gt;want to open 1 per month let&amp;#39;s say, and not &amp;lt;all of your vaults&amp;gt; per month,&lt;br/&gt;which pre-committing requires.&lt;br/&gt;&lt;br/&gt;4) On Protocol Design&lt;br/&gt;&lt;br/&gt;It&amp;#39;s nice that you can abstract away your protocol design concerns as a&lt;br/&gt;&amp;#34;second tier composition check&amp;#34; v.s. having to modify your protocol to work&lt;br/&gt;with a fee bumping thing.&lt;br/&gt;&lt;br/&gt;There are a myriad of ways dynamic txns (e.g. for Eltoo) can lead to RBF&lt;br/&gt;pinning and similar, Sponsor type things allow you to design such protocols&lt;br/&gt;to not have any native way of paying for fees inside the actual&lt;br/&gt;&amp;#34;Transaction Intents&amp;#34; and use an external system to create the intended&lt;br/&gt;effect. It seems (to me) more robust that we can prove that a Sponsors&lt;br/&gt;mechanism allows any transaction -- regardless of covenant stuff, bugs,&lt;br/&gt;pinning, etc -- to move forward.&lt;br/&gt;&lt;br/&gt;Still... careful protocol design may permit the use of optimized&lt;br/&gt;constructions! For example, in a vault rather than assigning *no fee* maybe&lt;br/&gt;you can have a single branch with a reasonable estimated fee. If you are&lt;br/&gt;correct or overshot (let&amp;#39;s say 50% chance?) then you don&amp;#39;t need to add a&lt;br/&gt;sponsor. If you undershot, not to worry, just add a sponsor. Adopted&lt;br/&gt;broadly, this would cut the expected value of using sponsors by &amp;lt;however&lt;br/&gt;good you are at estimating future fees&amp;gt;. This basically enables all&lt;br/&gt;protocols to try to be more efficient, but backstop that with a guaranteed&lt;br/&gt;to work safe mechanism.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;There was something else I was going to say but I forgot about it... if it&lt;br/&gt;comes to me I&amp;#39;ll send a follow up email.&lt;br/&gt;&lt;br/&gt;Cheers,&lt;br/&gt;&lt;br/&gt;Jeremy&lt;br/&gt;&lt;br/&gt;p.s.&lt;br/&gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;gt; *Of course this makes for a perfect DoS: it would be trivial for a miner&lt;br/&gt;&amp;gt; to infer that you are using*&lt;br/&gt;&amp;gt; *a specific vault standard and guess other leaves and replace the witness&lt;br/&gt;&amp;gt; to use the highest-feerate*&lt;br/&gt;&amp;gt; *spending path. You could require a signature from any of the&lt;br/&gt;&amp;gt; participants. Or, at the cost of an**additional depth, in the tree you&lt;br/&gt;&amp;gt; could &amp;#34;salt&amp;#34; each leaf by pairing it with -say- an OP_RETURN leaf.*&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;you don&amp;#39;t need a salt, you just need a unique payout addr (e.g. hardened&lt;br/&gt;derivation) per revocation txn and you cannot guess the branch.&lt;br/&gt;&lt;br/&gt;--&lt;br/&gt;@JeremyRubin &amp;lt;&lt;a href=&#34;https://twitter.com/JeremyRubin&amp;gt&#34;&gt;https://twitter.com/JeremyRubin&amp;gt&lt;/a&gt;;&lt;br/&gt;&lt;br/&gt;On Sat, Mar 12, 2022 at 10:34 AM darosior via bitcoin-dev &amp;lt;&lt;br/&gt;bitcoin-dev at lists.linuxfoundation.org&amp;gt; wrote:&lt;br/&gt;&lt;br/&gt;&amp;gt; The idea of a soft fork to fix dynamic fee bumping was recently put back&lt;br/&gt;&amp;gt; on the table. It might&lt;br/&gt;&amp;gt; sound radical, as what prevents today reasonable fee bumping for contracts&lt;br/&gt;&amp;gt; with presigned&lt;br/&gt;&amp;gt; transactions (pinning) has to do with nodes&amp;#39; relay policy. But the&lt;br/&gt;&amp;gt; frustration is understandable&lt;br/&gt;&amp;gt; given the complexity of designing fee bumping with today&amp;#39;s primitives. [0]&lt;br/&gt;&amp;gt; Recently too, there was a lot of discussions around covenants. Covenants&lt;br/&gt;&amp;gt; (conceptually, not talking&lt;br/&gt;&amp;gt; about any specific proposal) seem to open lots of new use cases and to be&lt;br/&gt;&amp;gt; desired by (some?) Bitcoin&lt;br/&gt;&amp;gt; application developers and users.&lt;br/&gt;&amp;gt; I think that fee bumping using covenants has attractive properties, and it&lt;br/&gt;&amp;gt; requires a soft fork that&lt;br/&gt;&amp;gt; is already desirable beyond (trying) to fix fee bumping. However i could&lt;br/&gt;&amp;gt; not come up with a solution&lt;br/&gt;&amp;gt; as neat for other protocols than vaults. I&amp;#39;d like to hear from others&lt;br/&gt;&amp;gt; about 1) taking this route for&lt;br/&gt;&amp;gt; fee bumping 2) better ideas on applying this to other protocols.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; In a vault construction you have a UTxO which can only be spent by an&lt;br/&gt;&amp;gt; Unvaulting transaction, whose&lt;br/&gt;&amp;gt; output triggers a timelock before the expiration of which a revocation&lt;br/&gt;&amp;gt; transaction may be confirmed.&lt;br/&gt;&amp;gt; The revocation transaction being signed in advance (typically before&lt;br/&gt;&amp;gt; sharing the signature for the&lt;br/&gt;&amp;gt; Unvault transaction) you need fee bumping in order for the contract to&lt;br/&gt;&amp;gt; actually be enforceable.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Now, with a covenant you could commit to the revocation tx instead of&lt;br/&gt;&amp;gt; presigning it. And using a&lt;br/&gt;&amp;gt; Taproot tree you could commit to different versions of it with increasing&lt;br/&gt;&amp;gt; feerate. Any network&lt;br/&gt;&amp;gt; monitor (the brooadcaster, a watchtower, ..) would be able to RBF the&lt;br/&gt;&amp;gt; revocation transaction if it&lt;br/&gt;&amp;gt; doesn&amp;#39;t confirm by spending using a leaf with a higher-feerate transaction&lt;br/&gt;&amp;gt; being committed to.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Of course this makes for a perfect DoS: it would be trivial for a miner to&lt;br/&gt;&amp;gt; infer that you are using&lt;br/&gt;&amp;gt; a specific vault standard and guess other leaves and replace the witness&lt;br/&gt;&amp;gt; to use the highest-feerate&lt;br/&gt;&amp;gt; spending path. You could require a signature from any of the participants.&lt;br/&gt;&amp;gt; Or, at the cost of an&lt;br/&gt;&amp;gt; additional depth, in the tree you could &amp;#34;salt&amp;#34; each leaf by pairing it&lt;br/&gt;&amp;gt; with -say- an OP_RETURN leaf.&lt;br/&gt;&amp;gt; But this leaves you with a possible internal blackmail for multi-party&lt;br/&gt;&amp;gt; contracts (although it&amp;#39;s less&lt;br/&gt;&amp;gt; of an issue for vaults, and not one for single-party vaults).&lt;br/&gt;&amp;gt; What you could do instead is attaching an increasing relative timelock to&lt;br/&gt;&amp;gt; each leaf (as the committed&lt;br/&gt;&amp;gt; revocation feerate increases, so does the timelock). You need to be&lt;br/&gt;&amp;gt; careful to note wreck miner&lt;br/&gt;&amp;gt; incentives here (see [0], [1], [2] on &amp;#34;miner harvesting&amp;#34;), but this&lt;br/&gt;&amp;gt; enables the nice property of a&lt;br/&gt;&amp;gt; feerate which &amp;#34;adapts&amp;#34; to the block space market. Another nice property of&lt;br/&gt;&amp;gt; this approach is the&lt;br/&gt;&amp;gt; integrated anti fee sniping protection if the revocation transaction pays&lt;br/&gt;&amp;gt; a non-trivial amount of&lt;br/&gt;&amp;gt; fees.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Paying fees from &amp;#34;shared&amp;#34; funds instead of a per-watchtower fee-bumping&lt;br/&gt;&amp;gt; wallet opened up the&lt;br/&gt;&amp;gt; blackmail from the previous section, but the benefits of paying from&lt;br/&gt;&amp;gt; internal funds shouldn&amp;#39;t be&lt;br/&gt;&amp;gt; understated.&lt;br/&gt;&amp;gt; No need to decide on an amount to be refilled. No need to bother the user&lt;br/&gt;&amp;gt; to refill the fee-bumping&lt;br/&gt;&amp;gt; wallet (before they can participate in more contracts, or worse before a&lt;br/&gt;&amp;gt; deadline at which all&lt;br/&gt;&amp;gt; contracts are closed). No need for a potentially large amount of funds to&lt;br/&gt;&amp;gt; just sit on a hot wallet&lt;br/&gt;&amp;gt; &amp;#34;just in case&amp;#34;. No need to duplicate this amount as you replicate the&lt;br/&gt;&amp;gt; number of network monitors&lt;br/&gt;&amp;gt; (which is critical to the security of such contracts).&lt;br/&gt;&amp;gt; In addition, note how modifying the feerate of the revocation transaction&lt;br/&gt;&amp;gt; in place is less expensive&lt;br/&gt;&amp;gt; than adding a (pair of) new input (and output), let alone adding an entire&lt;br/&gt;&amp;gt; new transaction to CPFP.&lt;br/&gt;&amp;gt; Aside, and less importantly, it can be made to work with today&amp;#39;s relay&lt;br/&gt;&amp;gt; rules (just use fee thresholds&lt;br/&gt;&amp;gt; adapted to the current RBF thresholds, potentially with some leeway to&lt;br/&gt;&amp;gt; account for policy changes).&lt;br/&gt;&amp;gt; Paying from shared funds (in addition to paying from internal funds) also&lt;br/&gt;&amp;gt; prevents pervert&lt;br/&gt;&amp;gt; incentives for contracts with more than 2 parties. In case one of the&lt;br/&gt;&amp;gt; parties breaches it, all&lt;br/&gt;&amp;gt; remaining parties have an incentive to enforce the contract.. But only one&lt;br/&gt;&amp;gt; would otherwise pay for&lt;br/&gt;&amp;gt; it! It would open up the door to some potential sneaky techniques to wait&lt;br/&gt;&amp;gt; for another party to pay&lt;br/&gt;&amp;gt; for the fees, which is at odd with the reactive security model.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Let&amp;#39;s examine how it could be concretely designed. Say you have a vault&lt;br/&gt;&amp;gt; wallet software for a setup&lt;br/&gt;&amp;gt; with 5 participants. The revocation delay is 144 blocks. You assume&lt;br/&gt;&amp;gt; revocation to be infrequent (if&lt;br/&gt;&amp;gt; one happens it&amp;#39;s probably a misconfigured watchtower that needs be fixed&lt;br/&gt;&amp;gt; before the next&lt;br/&gt;&amp;gt; unvaulting), so you can afford infrequent overpayments and larger fee&lt;br/&gt;&amp;gt; thresholds. Participants&lt;br/&gt;&amp;gt; assume the vault will be spent within a year and assume a maximum possible&lt;br/&gt;&amp;gt; feerate for this year of&lt;br/&gt;&amp;gt; 10ksat/vb.&lt;br/&gt;&amp;gt; They create a Taproot tree of depth 7. First leaf is the spending path&lt;br/&gt;&amp;gt; (open to whomever the vault&lt;br/&gt;&amp;gt; pays after the 144 blocks). Then the leaf `i` for `i` in `[1, 127]` is a&lt;br/&gt;&amp;gt; covenant to the revocation&lt;br/&gt;&amp;gt; transaction with a feerate `i * 79` sats/vb and a relative timelock of `i&lt;br/&gt;&amp;gt; - 1` blocks.&lt;br/&gt;&amp;gt; Assuming the covenant to the revocation transaction is 33 bytes [3],&lt;br/&gt;&amp;gt; that&amp;#39;s a witness of:&lt;br/&gt;&amp;gt;     1 &#43; 33     &#43; 1 &#43; 33 &#43; 7 * 32 = 292 WU (73 vb)&lt;br/&gt;&amp;gt;     ^^^^^^       ^^^^^^^^^^^^^^&lt;br/&gt;&amp;gt;     witscript     control block&lt;br/&gt;&amp;gt; for any of the revocation paths. The revocation transaction is 1-input&lt;br/&gt;&amp;gt; 1-output, so in total it&amp;#39;s&lt;br/&gt;&amp;gt;     10.5 &#43;   41 &#43; 73      &#43; 43    = 167.5 vb&lt;br/&gt;&amp;gt;     ^^^^    ^^^^^^^^^^^    ^^^^&lt;br/&gt;&amp;gt;     header  input|witness  output&lt;br/&gt;&amp;gt; The transaction size is not what you&amp;#39;d necessarily want to optimize for&lt;br/&gt;&amp;gt; first, still, it is smaller&lt;br/&gt;&amp;gt; in this case than using other feebumping primitives and has a smaller&lt;br/&gt;&amp;gt; footprint on the UTxO set. For&lt;br/&gt;&amp;gt; instance for adding a feebumping input and change output assuming all&lt;br/&gt;&amp;gt; Taproot inputs and outputs&lt;br/&gt;&amp;gt; (CPFP is necessarily even larger):&lt;br/&gt;&amp;gt;     5 * 64 &#43;  1 &#43; 5 * (32 &#43; 1) &#43; 1 &#43; 33 = 520 WU (105 vb)&lt;br/&gt;&amp;gt;     ^^^^^^    ^^^^^^^^^^^^^^^    ^^^^^^&lt;br/&gt;&amp;gt;     witness      witscript       control&lt;br/&gt;&amp;gt;     10.5  &#43;  41 &#43; 105      &#43; 41 &#43; 16.5         &#43; 2 * 43  = 300 vb&lt;br/&gt;&amp;gt;     ^^^^     ^^^^^^^^        ^^^^^^^^^           ^^^^^^&lt;br/&gt;&amp;gt;     header   input|witness   fb input|witness    outputs&lt;br/&gt;&amp;gt; From there, you can afford more depths at the tiny cost of 8 more vbytes&lt;br/&gt;&amp;gt; each. You might want them&lt;br/&gt;&amp;gt; for:&lt;br/&gt;&amp;gt; - more granularity (if you can afford large enough timelocks)&lt;br/&gt;&amp;gt; - optimizing for the spending path rather than the revocation one&lt;br/&gt;&amp;gt; - adding a hashlock to prevent nuisance (with the above script a third&lt;br/&gt;&amp;gt; party could malleate a&lt;br/&gt;&amp;gt;   spending path into a revocation one). You can use the OP_RETURN trick&lt;br/&gt;&amp;gt; from above to prevent that.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Unfortunately, the timelocked-covenant approach to feebumping only applies&lt;br/&gt;&amp;gt; to bumping the first&lt;br/&gt;&amp;gt; transaction of a chain (you can&amp;#39;t pay for the parent with a timelock) so&lt;br/&gt;&amp;gt; for instance it&amp;#39;s not&lt;br/&gt;&amp;gt; usable for HTLC transactions in Lightning to bump the parent commitment&lt;br/&gt;&amp;gt; tx. The same goes for&lt;br/&gt;&amp;gt; bumping the update tx in Coinpool.&lt;br/&gt;&amp;gt; It could be worked around by having a different covenant per participant&lt;br/&gt;&amp;gt; (paying the fee from either&lt;br/&gt;&amp;gt; of the participants&amp;#39; output) behind a signature check. Of course it&lt;br/&gt;&amp;gt; requires funds to already be in&lt;br/&gt;&amp;gt; the contract (HTLC, Coinpool leaf) to pay for your own unilateral close,&lt;br/&gt;&amp;gt; but if you don&amp;#39;t have any&lt;br/&gt;&amp;gt; fund in the contract it doesn&amp;#39;t make sense to try to feebump it in the&lt;br/&gt;&amp;gt; first place. The same goes&lt;br/&gt;&amp;gt; for small amounts: you&amp;#39;d only allocate up to the value of the contract&lt;br/&gt;&amp;gt; (minus a dust preference) in&lt;br/&gt;&amp;gt; fees in order to enforce it.&lt;br/&gt;&amp;gt; This is less nice for external monitors as it requires a private key (or&lt;br/&gt;&amp;gt; another secret) to be&lt;br/&gt;&amp;gt; committed to in advance) to be able to bump [4] and does not get rid of&lt;br/&gt;&amp;gt; the &amp;#34;who&amp;#39;s gonna pay for the&lt;br/&gt;&amp;gt; enforcement&amp;#34; issue in &amp;gt;2-parties contracts. Still, it&amp;#39;s more optimal and&lt;br/&gt;&amp;gt; usable than CPFP or adding&lt;br/&gt;&amp;gt; a pair of input/output for all the reasons mentioned above.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Thoughts?&lt;br/&gt;&amp;gt; Antoine&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; [0]&lt;br/&gt;&amp;gt; &lt;a href=&#34;https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2021-November/019614.html&#34;&gt;https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2021-November/019614.html&lt;/a&gt;&lt;br/&gt;&amp;gt; [1]&lt;br/&gt;&amp;gt; &lt;a href=&#34;https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2021-November/019615.html&#34;&gt;https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2021-November/019615.html&lt;/a&gt;&lt;br/&gt;&amp;gt; [2]&lt;br/&gt;&amp;gt; &lt;a href=&#34;https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2021-December/019627.html&#34;&gt;https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2021-December/019627.html&lt;/a&gt;&lt;br/&gt;&amp;gt; [3] That&amp;#39;s obviously close to the CTV construction. But using another more&lt;br/&gt;&amp;gt; flexible (and therefore&lt;br/&gt;&amp;gt;     less optimized) construction would not be a big deal. It might in fact&lt;br/&gt;&amp;gt; be necessary for more&lt;br/&gt;&amp;gt;     elaborated (realistic?) usecases than the simple one detailed here.&lt;br/&gt;&amp;gt; [4]&lt;br/&gt;&amp;gt; &lt;a href=&#34;https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2022-February/019879.html&#34;&gt;https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2022-February/019879.html&lt;/a&gt;&lt;br/&gt;&amp;gt; _______________________________________________&lt;br/&gt;&amp;gt; bitcoin-dev mailing list&lt;br/&gt;&amp;gt; bitcoin-dev at lists.linuxfoundation.org&lt;br/&gt;&amp;gt; &lt;a href=&#34;https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&#34;&gt;https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&lt;/a&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/20220312/980f7dcc/attachment-0001.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20220312/980f7dcc/attachment-0001.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T23:06:26Z</updated>
  </entry>

</feed>