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

  <title>Nostr notes by Andrew Poelstra [ARCHIVE]</title>
  <author>
    <name>Andrew Poelstra [ARCHIVE]</name>
  </author>
  <link rel="self" type="application/atom+xml" href="https://njump.me/npub1ae27kq6z802dkqw4ey4dgdx493szm8dpmcm76d7vt0ma9gf6fj4svz5t04.rss" />
  <link href="https://njump.me/npub1ae27kq6z802dkqw4ey4dgdx493szm8dpmcm76d7vt0ma9gf6fj4svz5t04" />
  <id>https://njump.me/npub1ae27kq6z802dkqw4ey4dgdx493szm8dpmcm76d7vt0ma9gf6fj4svz5t04</id>
  <icon></icon>
  <logo></logo>




  <entry>
    <id>https://njump.me/nevent1qqsyuw9ku9wt2238y8fcev66k0qlecaumcprmdfhpq73z8zsg8vw7zszyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2kljhvxh</id>
    
      <title type="html">📅 Original date posted:2023-09-01 🗒️ Summary of this ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsyuw9ku9wt2238y8fcev66k0qlecaumcprmdfhpq73z8zsg8vw7zszyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2kljhvxh" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsp6702ta0rzc5qaj00gzk8wtyr6lvfmejx4fage9vzs57sqwvedpc6uzcta&#39;&gt;nevent1q…zcta&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2023-09-01&lt;br/&gt;🗒️ Summary of this message: The author considered indexing all transactions but decided against it due to increased complexity and potential issues with compressed transactions becoming invalidated. The space savings would be less than a byte per input, not worth the implementation complexity.&lt;br/&gt;📝 Original message:&lt;br/&gt;Hi Fabian,&lt;br/&gt;&lt;br/&gt;We did consider indexing all txos -- even, amusingly, by using ordinals --&lt;br/&gt;but decided that the extra index requirements for the decompressor (which&lt;br/&gt;otherwise just requires a bit of extra CPU cycles but nothing beyond a&lt;br/&gt;normal Core node).&lt;br/&gt;&lt;br/&gt;A while ago we looked into putting the whole UTXOset into a trie so that&lt;br/&gt;we could do prefix lookups. I think we discarded this idea for the same&lt;br/&gt;reason, and because it could lead to surprising behavior for users since&lt;br/&gt;a compressed tx might get invalidated by some UTXO showing up whose&lt;br/&gt;prefix is too close to one of its inputs. Where &amp;#34;prefix&amp;#34; likely means&lt;br/&gt;some special-purpose hash of the prevout that users will never otherwise&lt;br/&gt;encounter.&lt;br/&gt;&lt;br/&gt;We were also a bit put off by the data structure complexity since the&lt;br/&gt;UTXO set no longer fits in RAM so it takes nontrivial effort to&lt;br/&gt;implement a new index :) plus it drops our chances of getting code into&lt;br/&gt;Core by a very large factor.&lt;br/&gt;&lt;br/&gt;We can swag what the space savings would be: there are 122MM utxos right&lt;br/&gt;now, which is a bit under 2^27. So assuming a uniform distribution of&lt;br/&gt;prefixes we&amp;#39;d need to specify 28 bits to identify a UTXO. To contrast,&lt;br/&gt;to identify a blockheight we need 20 bits and then maybe 12 more bits to&lt;br/&gt;specify a TXO within a block. Plus whatever varint overhead we have.&lt;br/&gt;(I&amp;#39;ve been working on this project but busy with family stuff and don&amp;#39;t&lt;br/&gt;remember exactly where we landed on the varints for this. I think we&lt;br/&gt;agreed that there was room for improvement but didn&amp;#39;t want to hold up&lt;br/&gt;posting the rest of the concept because of it.)&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;The TL;DR is that we probably save a little less than a byte per input,&lt;br/&gt;on average, which is not trivial but probably not worth the decreased&lt;br/&gt;UX and greatly increased implementation complexity.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Best&lt;br/&gt;Andrew&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;On Fri, Sep 01, 2023 at 10:24:54AM &#43;0000, Fabian via bitcoin-dev wrote:&lt;br/&gt;&amp;gt; Hi Tom,&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; without having gone into the details yet, thanks for the great effort you have put into this research and implementation already!&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; &amp;gt; The bulk of our size savings come from replacing the prevout of each input by a block height and index.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Have you also considered using just an index from a sorted UTXO set instead? The potential additional space saving might be minor but this would make the scheme compatible with pruning. I had this on my list as a future research topic but didn&amp;#39;t get around to it yet.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Thanks,&lt;br/&gt;&amp;gt; Fabian&lt;br/&gt;&amp;gt; ------- Original Message -------&lt;br/&gt;&amp;gt; On Thursday, August 31st, 2023 at 11:30 PM, Tom Briar via bitcoin-dev &amp;lt;bitcoin-dev at lists.linuxfoundation.org&amp;gt; wrote:&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; &amp;gt; Hey everyone,&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; I&amp;#39;ve been working on a way to compress bitcoin transactions for transmission throughsteganography, satellite broadcasting,&lt;br/&gt;&amp;gt; &amp;gt; and other low bandwidth channels with high CPU availability on decompression.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; [compressed_transactions.md](&lt;a href=&#34;https://github.com/TomBriar/bitcoin/blob/2023-05--tx-compression/doc/compressed_transactions.md&#34;&gt;https://github.com/TomBriar/bitcoin/blob/2023-05--tx-compression/doc/compressed_transactions.md&lt;/a&gt;)&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; In the document I describe a compression schema that&amp;#39;s tailored for the most common transactions single parties are likely to make.&lt;br/&gt;&amp;gt; &amp;gt; In every case it falls back such that no transaction will become malformed or corrupted.&lt;br/&gt;&amp;gt; &amp;gt; Here&amp;#39;s a PR for implementing this schema.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; [2023 05 tx compression](&lt;a href=&#34;https://github.com/TomBriar/bitcoin/pull/3&#34;&gt;https://github.com/TomBriar/bitcoin/pull/3&lt;/a&gt;)&lt;br/&gt;&amp;gt; &amp;gt; Thanks-&lt;br/&gt;&amp;gt; &amp;gt; Tom.&lt;br/&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;&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Andrew Poelstra&lt;br/&gt;Director of Research, Blockstream&lt;br/&gt;Email: apoelstra at wpsoftware.net&lt;br/&gt;Web:   &lt;a href=&#34;https://www.wpsoftware.net/andrew&#34;&gt;https://www.wpsoftware.net/andrew&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;The sun is always shining in space&lt;br/&gt;    -Justin Lewis-Webster&lt;br/&gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;A non-text attachment was scrubbed...&lt;br/&gt;Name: signature.asc&lt;br/&gt;Type: application/pgp-signature&lt;br/&gt;Size: 488 bytes&lt;br/&gt;Desc: not available&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20230901/9169334e/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20230901/9169334e/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-09-07T11:52:35Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqs0dl03fke2gdc99nswkykp7xt2dz8dalysykeampr48tp4cymp24szyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2kglt2v9</id>
    
      <title type="html">📅 Original date posted:2023-08-31 🗒️ Summary of this ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqs0dl03fke2gdc99nswkykp7xt2dz8dalysykeampr48tp4cymp24szyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2kglt2v9" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs83lnc53wehl33fw7td7hz99f6pkxd0d67zcrm68d0mjhau8j9e7cfaw7vp&#39;&gt;nevent1q…w7vp&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2023-08-31&lt;br/&gt;🗒️ Summary of this message: Tom Briar has developed a compression schema for bitcoin transactions that can be transmitted through low bandwidth channels without corruption.&lt;br/&gt;📝 Original message:&lt;br/&gt;On Thu, Aug 31, 2023 at 09:30:16PM &#43;0000, Tom Briar via bitcoin-dev wrote:&lt;br/&gt;&amp;gt; Hey everyone,&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; I&amp;#39;ve been working on a way to compress bitcoin transactions for transmission throughsteganography, satellite broadcasting,&lt;br/&gt;&amp;gt; and other low bandwidth channels with high CPU availability on decompression.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; [compressed_transactions.md](&lt;a href=&#34;https://github.com/TomBriar/bitcoin/blob/2023-05--tx-compression/doc/compressed_transactions.md&#34;&gt;https://github.com/TomBriar/bitcoin/blob/2023-05--tx-compression/doc/compressed_transactions.md&lt;/a&gt;)&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; In the document I describe a compression schema that&amp;#39;s tailored for the most common transactions single parties are likely to make.&lt;br/&gt;&amp;gt; In every case it falls back such that no transaction will become malformed or corrupted.&lt;br/&gt;&amp;gt; Here&amp;#39;s a PR for implementing this schema.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; [2023 05 tx compression](&lt;a href=&#34;https://github.com/TomBriar/bitcoin/pull/3&#34;&gt;https://github.com/TomBriar/bitcoin/pull/3&lt;/a&gt;)&lt;br/&gt;&lt;br/&gt;Hey Tom,&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Thank you for posting this. Could you put together a chart with some&lt;br/&gt;size numbers so we can get a picture of how strong this compression is?&lt;br/&gt;&lt;br/&gt;I understand that because this is targeted at stego/satellite&lt;br/&gt;applications where the user is expected to &amp;#34;shape&amp;#34; their transaction,&lt;br/&gt;that you won&amp;#39;t get great numbers if you just look at the historical&lt;br/&gt;chain or try to analyze &amp;#34;average&amp;#34; transactions. But it would be great to&lt;br/&gt;post a chart with uncompressed/compressed sizes for &amp;#34;optimum&amp;#34;&lt;br/&gt;transactions. At the very least, a 2-in-2-out wpkh transaction, and a&lt;br/&gt;2-in-2-out Taproot transaction.&lt;br/&gt;&lt;br/&gt;Since the scheme includes explicit support for p2sh-wpkh and p2pkh it&lt;br/&gt;would also be great to see numbers for those, though they&amp;#39;re less common&lt;br/&gt;and less interesting.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Cheers&lt;br/&gt;Andrew&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Andrew Poelstra&lt;br/&gt;Director of Research, Blockstream&lt;br/&gt;Email: apoelstra at wpsoftware.net&lt;br/&gt;Web:   &lt;a href=&#34;https://www.wpsoftware.net/andrew&#34;&gt;https://www.wpsoftware.net/andrew&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;The sun is always shining in space&lt;br/&gt;    -Justin Lewis-Webster&lt;br/&gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;A non-text attachment was scrubbed...&lt;br/&gt;Name: signature.asc&lt;br/&gt;Type: application/pgp-signature&lt;br/&gt;Size: 488 bytes&lt;br/&gt;Desc: not available&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20230901/1a0ba0e7/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20230901/1a0ba0e7/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-09-07T11:52:34Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsfl0rgckxn79zfeesqzv3qtfursdgdewvq2dq2hcqt08a9apa44nczyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2kv5usxr</id>
    
      <title type="html">📅 Original date posted:2023-08-11 🗒️ Summary of this ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsfl0rgckxn79zfeesqzv3qtfursdgdewvq2dq2hcqt08a9apa44nczyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2kv5usxr" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsd37gzn23a4tl5t0y468n7fxr4mtnne7aff3djzv7t52t3ua9t3ds3u400w&#39;&gt;nevent1q…400w&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2023-08-11&lt;br/&gt;🗒️ Summary of this message: The author is seeking input on the function &amp;#34;is_segwit()&amp;#34; and its return value for p2tr transactions. The term &amp;#34;segwit v0&amp;#34; is used for p2wsh or p2wpkh outputs.&lt;br/&gt;📝 Original message:&lt;br/&gt;On Fri, Aug 11, 2023 at 02:45:57PM &#43;1000, Tobin Harding via bitcoin-dev wrote:&lt;br/&gt;&amp;gt; Question for OG bitcoin API designers please.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; If you were to see the following function&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt;     `is_segwit()`&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; would you assume it returns `true` or `false` for a p2tr transaction?&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Currently we (rust-bitcoin) are being liberal with the use of `v0` but&lt;br/&gt;&amp;gt; its a pretty ugly. Is there an official, or widely used, name for segwit v0?&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;As others have said, I think `is_segwit` should match all segwit&lt;br/&gt;versions. Pavol also sorta answered your &amp;#34;widely used name&amp;#34; question&lt;br/&gt;though he didn&amp;#39;t draw attention to it -- segwit v0 outputs are called&lt;br/&gt;&amp;#34;p2wsh&amp;#34; or &amp;#34;p2wpkh&amp;#34;.&lt;br/&gt;&lt;br/&gt;But I don&amp;#39;t know any term that covers &amp;#34;p2wsh or p2wpkh but not p2tr&amp;#34;.&lt;br/&gt;Other than &amp;#34;segwit_v0&amp;#34;, which we are currently using, and which I agree&lt;br/&gt;is a bit of a mouthful.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Andrew Poelstra&lt;br/&gt;Director of Research, Blockstream&lt;br/&gt;Email: apoelstra at wpsoftware.net&lt;br/&gt;Web:   &lt;a href=&#34;https://www.wpsoftware.net/andrew&#34;&gt;https://www.wpsoftware.net/andrew&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;The sun is always shining in space&lt;br/&gt;    -Justin Lewis-Webster&lt;br/&gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;A non-text attachment was scrubbed...&lt;br/&gt;Name: signature.asc&lt;br/&gt;Type: application/pgp-signature&lt;br/&gt;Size: 488 bytes&lt;br/&gt;Desc: not available&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20230811/edc59c34/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20230811/edc59c34/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-08-12T09:56:45Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsqvva6e57xu3t6y8dujn2fxv5a8fzf54n37cw7ezhcekfqmhtxfnszyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2kgk3feu</id>
    
      <title type="html">📅 Original date posted:2023-07-26 🗒️ Summary of this ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsqvva6e57xu3t6y8dujn2fxv5a8fzf54n37cw7ezhcekfqmhtxfnszyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2kgk3feu" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqstfgtw0n93xjv45maf0yea769wq57hlv57rt3lt5rmuy4k88ecqes6kh9re&#39;&gt;nevent1q…h9re&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2023-07-26&lt;br/&gt;🗒️ Summary of this message: POSK (proof of secret key) is not a perfect solution for preventing rogue key attacks and has logistical difficulties in implementation.&lt;br/&gt;📝 Original message:&lt;br/&gt;On Wed, Jul 26, 2023 at 12:09:41AM -0400, Erik Aronesty via bitcoin-dev wrote:&lt;br/&gt;&amp;gt; personally, i think *any* time a public key is transmitted, it should come&lt;br/&gt;&amp;gt; with a &amp;#34;proof of secret key&amp;#34;.   it should be baked-in to low level&lt;br/&gt;&amp;gt; protocols so that people don&amp;#39;t accidentally create vulns.  alt discussion&lt;br/&gt;&amp;gt; link:  &lt;a href=&#34;https://gist.github.com/RubenSomsen/be7a4760dd4596d06963d67baf140406&#34;&gt;https://gist.github.com/RubenSomsen/be7a4760dd4596d06963d67baf140406&lt;/a&gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;POSK is not a panacea. For example, if you were to try to eliminate&lt;br/&gt;rogue key attacks in MuSig by using POSK rather than by rerandomizing&lt;br/&gt;the keys, the last person to contribute a key could add a Taproot&lt;br/&gt;commitment to their key, thereby modifying the final key to have a&lt;br/&gt;Taproot spending path that other participants don&amp;#39;t know about. If they&lt;br/&gt;did this, they&amp;#39;d have no problem producing a POSK since Taproot&lt;br/&gt;commitments don&amp;#39;t affect knowledge of the secret key.&lt;br/&gt;&lt;br/&gt;POSKs are also logistically difficult to produce in many contexts. They&lt;br/&gt;essentially require an interactive challege-response (otherwise somebody&lt;br/&gt;could just copy a POSK from some other source), meaning that all&lt;br/&gt;participants need to be online and have secret key access at key setup&lt;br/&gt;time.&lt;br/&gt;&lt;br/&gt;In some contexts maybe it&amp;#39;s sufficient to have a static POSK. Aside from&lt;br/&gt;the complexity of determining this, you then need a key serialization&lt;br/&gt;format that includes the POSK. There are standard key formats for all&lt;br/&gt;widely used EC keys but none have a facility for this. If you are trying&lt;br/&gt;to use already-published keys that do not have a POSK attached, you are&lt;br/&gt;out of luck.&lt;br/&gt;&lt;br/&gt;If your protocol requires POSKs to be provably published, you also run&lt;br/&gt;into difficulties because they don&amp;#39;t make sense to embed on-chain (since&lt;br/&gt;blockchain validators don&amp;#39;t care about them, and they&amp;#39;re twice as big as&lt;br/&gt;the keys themselves) so you need to establish some other publication&lt;br/&gt;medium.&lt;br/&gt;&lt;br/&gt;If you want to support nested multisignatures, you need to jointly&lt;br/&gt;produce POSKs, which requires its own protocol complexity.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;The MuSig and MuSig2 papers say essentially the same thing as the above;&lt;br/&gt;it&amp;#39;s why we put so much effort into developing a scheme which was&lt;br/&gt;provably secure in the plain public key model, which means that POSKs&lt;br/&gt;are superfluous and you don&amp;#39;t need to deal with all these logistical&lt;br/&gt;hurdles.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Andrew Poelstra&lt;br/&gt;Director of Research, Blockstream&lt;br/&gt;Email: apoelstra at wpsoftware.net&lt;br/&gt;Web:   &lt;a href=&#34;https://www.wpsoftware.net/andrew&#34;&gt;https://www.wpsoftware.net/andrew&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;The sun is always shining in space&lt;br/&gt;    -Justin Lewis-Webster&lt;br/&gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;A non-text attachment was scrubbed...&lt;br/&gt;Name: signature.asc&lt;br/&gt;Type: application/pgp-signature&lt;br/&gt;Size: 488 bytes&lt;br/&gt;Desc: not available&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20230726/84e90df1/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20230726/84e90df1/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-07-27T00:26:33Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqs8ydvajctam299m8kafy685r5jjk7wph878n574hym9407tufhe9gzyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2kk0svp8</id>
    
      <title type="html">📅 Original date posted:2019-10-09 📝 Original message: On ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqs8ydvajctam299m8kafy685r5jjk7wph878n574hym9407tufhe9gzyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2kk0svp8" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqspax0ug3k88txqn7uypw28uxj4l3s9rpuc37l4wq5v3ylq787ahssr95cv6&#39;&gt;nevent1q…5cv6&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2019-10-09&lt;br/&gt;📝 Original message:&lt;br/&gt;On Thu, Oct 03, 2019 at 11:05:52AM -0400, Ethan Heilman wrote:&lt;br/&gt;&amp;gt; To avoid derailing the NO_INPUT conversation, I have changed the&lt;br/&gt;&amp;gt; subject to OP_CAT.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Responding to:&lt;br/&gt;&amp;gt; &amp;#34;&amp;#34;&amp;#34;&lt;br/&gt;&amp;gt; * `SIGHASH` flags attached to signatures are a misdesign, sadly&lt;br/&gt;&amp;gt; retained from the original BitCoin 0.1.0 Alpha for Windows design, on&lt;br/&gt;&amp;gt; par with:&lt;br/&gt;&amp;gt; [..]&lt;br/&gt;&amp;gt; * `OP_CAT` and `OP_MULT` and `OP_ADD` and friends&lt;br/&gt;&amp;gt; [..]&lt;br/&gt;&amp;gt; &amp;#34;&amp;#34;&amp;#34;&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; OP_CAT is an extremely valuable op code. I understand why it was&lt;br/&gt;&amp;gt; removed as the situation at the time with scripts was dire. However&lt;br/&gt;&amp;gt; most of the protocols I&amp;#39;ve wanted to build on Bitcoin run into the&lt;br/&gt;&amp;gt; limitation that stack values can not be concatenated. For instance&lt;br/&gt;&amp;gt; TumbleBit would have far smaller transaction sizes if OP_CAT was&lt;br/&gt;&amp;gt; supported in Bitcoin. If it happens to me as a researcher it is&lt;br/&gt;&amp;gt; probably holding other people back as well. If I could wave a magic&lt;br/&gt;&amp;gt; wand and turn on one of the disabled op codes it would be OP_CAT.  Of&lt;br/&gt;&amp;gt; course with the change that size of each concatenated value must be 64&lt;br/&gt;&amp;gt; Bytes or less.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;Just throwing my two cents in here - as others have noted, OP_CAT&lt;br/&gt;lets you create Merkle trees (allowing e.g. log-sized accountable&lt;br/&gt;threshold sigs, at least in a post-Schnorr future).&lt;br/&gt;&lt;br/&gt;It also allows manipulating signatures - e.g. forcing the revelation&lt;br/&gt;of discrete logs by requiring the user use the (1/2) point as a nonce&lt;br/&gt;(this starts with 11 zero bytes, which no other computationally&lt;br/&gt;accessible point does), or by requiring two sigs with the same nonce.&lt;br/&gt;&lt;br/&gt;It also lets you do proof-of-work-like computations on hashes or&lt;br/&gt;curvepoints; or enforce that EC points come from a hash and have&lt;br/&gt;no known discrete log. You can also switch on hashes, something&lt;br/&gt;currently impossible because of the 4-byte limitation on numeric&lt;br/&gt;opcodes. I don&amp;#39;t have specific application of these in mind but&lt;br/&gt;definitely have cut off many lines of inquiry because they were&lt;br/&gt;impossible.&lt;br/&gt;&lt;br/&gt;You could build a crappy Lamport signature, though the key would&lt;br/&gt;be so big that you&amp;#39;d never do this pre-MAST :P.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Andrew Poelstra&lt;br/&gt;Director of Research, Blockstream&lt;br/&gt;Email: apoelstra at wpsoftware.net&lt;br/&gt;Web:   &lt;a href=&#34;https://www.wpsoftware.net/andrew&#34;&gt;https://www.wpsoftware.net/andrew&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;The sun is always shining in space&lt;br/&gt;    -Justin Lewis-Webster&lt;br/&gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;A non-text attachment was scrubbed...&lt;br/&gt;Name: signature.asc&lt;br/&gt;Type: application/pgp-signature&lt;br/&gt;Size: 488 bytes&lt;br/&gt;Desc: not available&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/lightning-dev/attachments/20191009/8edaa1f9/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/lightning-dev/attachments/20191009/8edaa1f9/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-09T12:56:27Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsw7nwyda50vujgh5admpx922rhx9g0v40h9yrgvnj5zfssyldyrsszyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2kwjgtnz</id>
    
      <title type="html">📅 Original date posted:2018-03-06 📝 Original message: Hi ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsw7nwyda50vujgh5admpx922rhx9g0v40h9yrgvnj5zfssyldyrsszyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2kwjgtnz" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs8x8zrxslke877ryp85ym662q8kg0z5aq5jmnjg0c9k6we70y2qksnkcuxj&#39;&gt;nevent1q…cuxj&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2018-03-06&lt;br/&gt;📝 Original message:&lt;br/&gt;Hi Anthony,&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;If you have adaptor/Bellare-Neven signatures you can actually do state updates&lt;br/&gt;in a much simpler way. Suppose we have two parties, Alice and Bob.&lt;br/&gt;&lt;br/&gt;The basic structure of a payment channel in state i is&lt;br/&gt;&lt;br/&gt;  Funding tx --&amp;gt; Commit_i --&amp;gt; Close_i&lt;br/&gt;&lt;br/&gt;where Commit_i is a transaction with one output with the following script&lt;br/&gt;&lt;br/&gt;   IF AB_i ELSE &amp;lt;csv&amp;gt; CSV AB&amp;#39;_i ENDIF CHECKSIG&lt;br/&gt;&lt;br/&gt;and Close_i is a transaction moving the coins to their final destination.&lt;br/&gt;&lt;br/&gt;(I&amp;#39;m using IF/ELSE, but for efficiency the CSV branch could be hidden behind&lt;br/&gt;a Taproot.)&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;To create a new state i, A and B interact as follows.&lt;br/&gt;&lt;br/&gt;    0. Create tx_i, a 1-in-1-out tx which spends the funding tx output to&lt;br/&gt;       the Commit_i output.&lt;br/&gt;&lt;br/&gt;    1. Both sign a closing transaction tx&amp;#39;_i which spends this output to the&lt;br/&gt;       Close_i output. tx&amp;#39;_i will be valid &amp;lt;csv&amp;gt; blocks after the Commit&lt;br/&gt;       transaction is posted to the blockchain.&lt;br/&gt;&lt;br/&gt;    2. A and B interactively sign tx_i twice. In the final step of this&lt;br/&gt;       interaction, A gives s^1_{A,i} to B and B gives s^2_{B,i} to A.&lt;br/&gt;&lt;br/&gt;       Now A can generate s^2_{A,i} to complete a signature and post tx_i,&lt;br/&gt;       or B can generate s^1_{B,i} to the same effect.&lt;br/&gt;&lt;br/&gt;After creating a new state i, A and B revoke state i-1 as follows:&lt;br/&gt;&lt;br/&gt;    3. A sends an adaptor signature for s^2_{A,i-1} which reveals her half&lt;br/&gt;       of AB_i if she publishes that signature. Similarly B sends an&lt;br/&gt;       adaptor sig for s^1_{B,i-1} which reveals his half of AB_{i-1}.&lt;br/&gt;&lt;br/&gt;       Now if either party completes tx_i and to post the (i-1)th state&lt;br/&gt;       to the chain, the _other_ party will learn the secret key to AB_i&lt;br/&gt;       and can take the coins.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;The partial signatures in step (2) can be adaptor signatures which link&lt;br/&gt;this state update to other state updates in other channel, giving complete&lt;br/&gt;paths. In fact you can link arbitrary sets of channels to get multipaths,&lt;br/&gt;so AMP comes for free in this scheme.&lt;br/&gt;&lt;br/&gt;As Anthony mentioned in his email, the payment receipt is now a discrete log&lt;br/&gt;(which can be reblinded so that participants in the hop who aren&amp;#39;t the sender&lt;br/&gt;or recipient can&amp;#39;t see it). This means that the sender can sign with this,&lt;br/&gt;getting a transferrable proof of payment that also works with AMP.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;The required state to store consists of these adaptor signatures, so it&amp;#39;s&lt;br/&gt;linear in the number of state updates in each channel. I believe outsourcing&lt;br/&gt;will be quadratic :( but I haven&amp;#39;t worked out those details. Though you can&lt;br/&gt;get a weak form of monitoring by giving the adaptor signatures to the monitor&lt;br/&gt;and having it contact the affected party with &amp;#34;wake up! somebody published an&lt;br/&gt;old state and revealed the key x, please use it to take your coins&amp;#34;.&lt;br/&gt;&lt;br/&gt;I haven&amp;#39;t worked out blind monitoring either, it seems like it should be&lt;br/&gt;doable because everything here is discrete-log based which is inherently&lt;br/&gt;friendly toward blinding.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Andrew&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;On Tue, Mar 06, 2018 at 08:18:31PM &#43;0000, Christian Decker wrote:&lt;br/&gt;&amp;gt; ---------- Forwarded message ---------&lt;br/&gt;&amp;gt; From: Anthony Towns &amp;lt;aj at erisian.com.au&amp;gt;&lt;br/&gt;&amp;gt; Date: Mon, Feb 19, 2018 at 11:59 PM&lt;br/&gt;&amp;gt; Subject: [Lightning-dev] Post-Schnorr lightning txes&lt;br/&gt;&amp;gt; To: &amp;lt;lightning-dev at lists.linuxfoundation.org&amp;gt;&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Hi *,&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; My understanding of lightning may be out of date, so please forgive&lt;br/&gt;&amp;gt; (or at least correct :) any errors on my behalf.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; I was thinking about whether Greg Maxwell&amp;#39;s graftroot might solve the&lt;br/&gt;&amp;gt; channel monitoring problem (spoiler: not really) and ended up with maybe&lt;br/&gt;&amp;gt; an interesting take on Schnorr. I don&amp;#39;t think I&amp;#39;ve seen any specific&lt;br/&gt;&amp;gt; writeup of what that might look like, so hopefully at least some of this&lt;br/&gt;&amp;gt; is novel!&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; I&amp;#39;m assuming familiarity with current thinking on Schnorr sigs -- but all&lt;br/&gt;&amp;gt; you should need to know is the quick summary at footnote [0].&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; So I think there&amp;#39;s four main scenarios for closing a lightning channel:&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt;  - both parties are happy to close, do so cooperatively, and can&lt;br/&gt;&amp;gt;    sign a new unconditional transaction that they agree on. already fine.&lt;br/&gt;&amp;gt;    (should happen almost all of the time, call it 80%)&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt;  - communications failure: one side has to close, but the other side&lt;br/&gt;&amp;gt;    is happy to cooperate as far as they&amp;#39;re able but can only do so via&lt;br/&gt;&amp;gt;    the blockchain and maybe with some delay (maybe 15% of the time)&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt;  - disappearance, uncooperative: one side effectively completely&lt;br/&gt;&amp;gt;    disappears so the other side has to fully close the channel on their&lt;br/&gt;&amp;gt;    own (5% of the time)&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt;  - misbehaviour: one side tries publishing an old channel state due to&lt;br/&gt;&amp;gt;    error or maliciousness, and the other collects the entire balance as&lt;br/&gt;&amp;gt;    penalty (0% of the time)&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; With &amp;#34;graftroot&amp;#34; in mind, I was thinking that optimising for the last&lt;br/&gt;&amp;gt; case might be interesting -- despite expecting it to be vanishingly&lt;br/&gt;&amp;gt; rare. That would have to look something like:&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt;    (0) funding tx&lt;br/&gt;&amp;gt;    (1) ...which is spent by a misbehaving commitment tx&lt;br/&gt;&amp;gt;    (2) ...which is spent by a penalty tx&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; You do need 3 txes for that case, but you really only need 1 output&lt;br/&gt;&amp;gt; for each: so (0) is 2-in-1-out, (1) is 1-in-1-out, (2) is 1-in-1-out;&lt;br/&gt;&amp;gt; which could all be relatively cheap. (And (2) could be batched with other&lt;br/&gt;&amp;gt; txes making it 1 input in a potentially large tx)&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; For concreteness, I&amp;#39;m going to treat A as the one doing the penalising,&lt;br/&gt;&amp;gt; and B (Bad?) as the one that&amp;#39;s misbehaving.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; If you treat each of those txes as a muSig Schnorr pay-to-pubkey, the&lt;br/&gt;&amp;gt; output addresses would be:&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt;    (0) funding tx pays to [A,B]&lt;br/&gt;&amp;gt;    (1) commitment tx pays to [A(i),Revocation(B,i)]&lt;br/&gt;&amp;gt;    (2) pays to A&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; (where i is a commitment id / counter for the channel state)&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; If B misbehaves by posting the commitment tx after revealing the&lt;br/&gt;&amp;gt; revocation secret, A can calculate A(i) and Revocation(B,i) and claim&lt;br/&gt;&amp;gt; all the funds immediately.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; As far as the other cases go:&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt;   - In a cooperative close, you don&amp;#39;t publish any commitment txes, you&lt;br/&gt;&amp;gt;     just spend the funding to each party&amp;#39;s preferred destinations&lt;br/&gt;&amp;gt;     directly; so this is already great.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt;   - Otherwise, you need to be able to actually commit to how the funds&lt;br/&gt;&amp;gt;     get distributed.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; But committing to distributing funds is easy: just jointly sign&lt;br/&gt;&amp;gt; a transaction with [A(i),Revocation(B,i)]. Since B is the one we&amp;#39;re&lt;br/&gt;&amp;gt; worrying about misbehaving, it needs to hold a transaction with the&lt;br/&gt;&amp;gt; appropriate outputs that is:&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt;   - timelocked to `to_self_delay` blocks/seconds in advance via nSequence&lt;br/&gt;&amp;gt;   - signed by A(i)&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; That ensures A has `to_self_delay` blocks/seconds to penalise misehaviour,&lt;br/&gt;&amp;gt; and that when closing properly, B can complete the signature using the&lt;br/&gt;&amp;gt; current revocation secret.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; This means the &amp;#34;appropriate outputs&amp;#34; no longer need the OP_CSV step, which&lt;br/&gt;&amp;gt; should simplify the scripts a bit.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Having B have a distribution transaction isn&amp;#39;t enough -- B could vanish&lt;br/&gt;&amp;gt; between publishing the commitment transaction and the distribution&lt;br/&gt;&amp;gt; transaction, leaving A without access to any funds. So A needs a&lt;br/&gt;&amp;gt; corresponding distribution transaction. But because that transaction can&lt;br/&gt;&amp;gt; only be published if B signs and publishes the corresponding commitment&lt;br/&gt;&amp;gt; transaction, the fact that it&amp;#39;s published indicates both A and B are&lt;br/&gt;&amp;gt; happy with the channel close -- so this is a semi-cooperative close and&lt;br/&gt;&amp;gt; no delay is needed. So A should hold a partially signed transaction with&lt;br/&gt;&amp;gt; the same outputs:&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt;   - without any timelock&lt;br/&gt;&amp;gt;   - signed by Revocation(B,i), waiting for signature by A(i)&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Thus, if B does a non-cooperative close, either:&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt;   - A proves misbehaviour and claims all the funds immediately&lt;br/&gt;&amp;gt;   - A agrees that the channel state is correct, signs and publishes&lt;br/&gt;&amp;gt;     the un-timelocked distribution transaction, then claims A&amp;#39;s outputs;&lt;br/&gt;&amp;gt;     B can then immediately claim its outputs&lt;br/&gt;&amp;gt;   - A does nothing, and B waits for the `to_self_delay` period, signs&lt;br/&gt;&amp;gt;     and publishes its transaction, then claims B&amp;#39;s outputs; A can eventually&lt;br/&gt;&amp;gt;     claim its own outputs&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; In that case all of the transactions except the in-flight HTLCs just look&lt;br/&gt;&amp;gt; like simple pay-to-pubkey transactions.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Further, other than the historical secrets no old information needs&lt;br/&gt;&amp;gt; to be retained: misbehaviour can be dealt with (and can only be dealt&lt;br/&gt;&amp;gt; with) by creating a new transaction signed by your own secrets and the&lt;br/&gt;&amp;gt; revocation information.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; None of that actually relies on Schnorr-multisig, I think -- it could&lt;br/&gt;&amp;gt; be done today with normal 2-of-2 multisig as far as I can see.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; I&amp;#39;m not 100% sure how this approach works compared to the current one&lt;br/&gt;&amp;gt; for the CSV/CLTV overlap problem. I think any case you could solve by&lt;br/&gt;&amp;gt; obtaining a HTLC-Timeout or HTLC-Success transaction currently, you could&lt;br/&gt;&amp;gt; solve in the above scenario by just updating the channel state to remove&lt;br/&gt;&amp;gt; the HTLC.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; So I believe the above lets you completely forget info about old HTLCs,&lt;br/&gt;&amp;gt; while still enforcing correct behavior, and also makes enforcing correct&lt;br/&gt;&amp;gt; behaviour cheaper because it&amp;#39;s just two extremely simple transactions&lt;br/&gt;&amp;gt; to post. If I haven&amp;#39;t missed any corner cases, it also seems to simplify&lt;br/&gt;&amp;gt; the scripts a fair bit.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Does this make sense? It seems to to me...&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; So for completeness, it would make sense to do HTLCs via Schnorr --&lt;br/&gt;&amp;gt; at least to make them reveal elliptic curve private keys, and ideally&lt;br/&gt;&amp;gt; to make them mostly indistinguishable from regular transactions as a&lt;br/&gt;&amp;gt; &amp;#34;scriptless script&amp;#34; [1] or &amp;#34;discreet log contract&amp;#34; [2]. (I think, at&lt;br/&gt;&amp;gt; least for HTLCs, these end up being the same?)&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; The idea then is to have the HTLC payment hash be R=r*G, where r is the&lt;br/&gt;&amp;gt; secret/payment receipt.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Supposing your current commitment has n HTLCs in-flight, some paying A&lt;br/&gt;&amp;gt; if the HTLC succeeds and &amp;#34;r&amp;#34; is revealed, others paying B. We&amp;#39;ll focus&lt;br/&gt;&amp;gt; on one paying A.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; So you succeed by A completing a signature that reveals r to B,&lt;br/&gt;&amp;gt; and which simultaneously allows collection of the funds on chain. A&lt;br/&gt;&amp;gt; needs to be able to do this knowing nothing other than r (and their own&lt;br/&gt;&amp;gt; private keys). So agree to sign to muSig 2-of-2 multisig [A,B]. A and B&lt;br/&gt;&amp;gt; generate random values i and j respectively and reveal I=i*G and J=j*G,&lt;br/&gt;&amp;gt; and each calculates Q=I&#43;J&#43;R, and they generate partial signatures of a&lt;br/&gt;&amp;gt; transaction paying A:&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt;     I, i &#43; H(X,Q,m)*H(L,A)*a&lt;br/&gt;&amp;gt;     J, j &#43; H(X,Q,m)*H(L,B)*b&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; where L = H(A,B) and X = H(L,A)*A &#43; H(L,B)*B as usual. Once A knows r,&lt;br/&gt;&amp;gt; A can construct a full signature by adding R, r to the above values,&lt;br/&gt;&amp;gt; and B can then determine r by subtracting the above values from signature&lt;br/&gt;&amp;gt; A generated.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; To ensure B gets paid if the HTLC timesout, they should also sign a&lt;br/&gt;&amp;gt; timelocked transaction paying B directly, that B can hold onto until&lt;br/&gt;&amp;gt; the channel state gets updated.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; And once you&amp;#39;re doing payment hashes via ECC, you can of course change&lt;br/&gt;&amp;gt; them at each hop to make it harder to correlate steps in a payment route.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; I think that when combined with the above method of handling CSV delays&lt;br/&gt;&amp;gt; and revocation, this covers all the needed cases with a straightforward&lt;br/&gt;&amp;gt; pay-to-pubkey(hash) output, no script info needed at all. It does mean&lt;br/&gt;&amp;gt; each HTLC needs a signature every time the channel state updates (B needs&lt;br/&gt;&amp;gt; to sign a tx allowing A to claim the output once A knows the secret,&lt;br/&gt;&amp;gt; A needs to sign a tx allowing B to claim the output on timeout).&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; For channel monitoring this is pretty good, I think. You need to&lt;br/&gt;&amp;gt; keep track of the revocation info and your secret keys -- but that&amp;#39;s&lt;br/&gt;&amp;gt; essentially a constant amount of data.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; If you&amp;#39;re happy to have the data grow by 64 bytes every time the channel&lt;br/&gt;&amp;gt; state updates, you can outsource channel monitoring: arrange a formula&lt;br/&gt;&amp;gt; for constructing a penalty tx based on the channel commitment tx --&lt;br/&gt;&amp;gt; eg, 95% of the balance goes to me, 4% goes to the monitor&amp;#39;s address, 1%&lt;br/&gt;&amp;gt; goes to fees, there&amp;#39;s a relative locktime of to_self_delay/3 to allow me&lt;br/&gt;&amp;gt; to directly claim 100% of the funds if I happen to be paying attention;&lt;br/&gt;&amp;gt; then do a partial signature with A(i), and then allow the monitoring&lt;br/&gt;&amp;gt; service to catch fraudulent transactions, work out the appropriate&lt;br/&gt;&amp;gt; revocation secret, and finish the signature.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; If your channel updates 100 times a second for an entire year, that&amp;#39;s&lt;br/&gt;&amp;gt; 200GB of data, which seems pretty feasible. (You can&amp;#39;t just regenerate&lt;br/&gt;&amp;gt; that data though, unless you keep each commitment tx) And it&amp;#39;s pretty&lt;br/&gt;&amp;gt; easy to work out which bit of data you need to access: the funding&lt;br/&gt;&amp;gt; tx that&amp;#39;s being spent tells you which channel, and the channel state&lt;br/&gt;&amp;gt; index is encoded in the locktime and sequence, so you should only need&lt;br/&gt;&amp;gt; small/logarithmic overhead even for frequently updated channels rather&lt;br/&gt;&amp;gt; than any serious indexes.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; I don&amp;#39;t think you can do better than that without serious changes to&lt;br/&gt;&amp;gt; bitcoin: if you let the monitoring agency sign on its own, you&amp;#39;d need some&lt;br/&gt;&amp;gt; sort of covenant opcode to ensure it sends any money to you; and with&lt;br/&gt;&amp;gt; segwit outputs, there&amp;#39;s no way to provide a signature for a transaction&lt;br/&gt;&amp;gt; without committing to exactly which transaction you&amp;#39;re signing.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; I was hoping covenants and graftroot would be enough, but I don&amp;#39;t&lt;br/&gt;&amp;gt; think they are. The idea would be that since the transaction spends to&lt;br/&gt;&amp;gt; A(i)&#43;Rev(B,i), you&amp;#39;d sign an output script with A that uses covenant&lt;br/&gt;&amp;gt; opcodes to ensure the transaction only pays the appropriate monitoring&lt;br/&gt;&amp;gt; reward, and the monitor could then work out A(i)-A and Rev(B,i) and finish&lt;br/&gt;&amp;gt; the signature. But the signature by &amp;#34;A&amp;#34; would need to know A(i)&#43;Rev(B,i)&lt;br/&gt;&amp;gt; when calculating the hash, and that&amp;#39;s different for every commitment&lt;br/&gt;&amp;gt; transaction, so as far as I can see, it just doesn&amp;#39;t work. You can&amp;#39;t&lt;br/&gt;&amp;gt; drop the muSig-style construction because you need to be protect yourself&lt;br/&gt;&amp;gt; against potential malicious choice of the revocation secret [3].&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Summary:&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt;  - Funding txes as 2-of-2 multisig is still great. Convert to&lt;br/&gt;&amp;gt;    Schnorr/muSig when available of course.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt;  - Generate 6&#43;8*n transactions everytime the channel state is updated,&lt;br/&gt;&amp;gt;    (n = number of HTLCs in-flight)&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt;    1. Channel state commitment tx, held by A, spends funding tx,&lt;br/&gt;&amp;gt;       payable to Schnorr muSig address [A(i),Rev(B,i)], signed by B&lt;br/&gt;&amp;gt;    2. Channel fund distribution tx, held by A (CSV), spends (1),&lt;br/&gt;&amp;gt;       signed by Rev(B,i)&lt;br/&gt;&amp;gt;    3. Channel fund distribution tx, held by B (no CSV), spends (1),&lt;br/&gt;&amp;gt;       signed by A(i)&lt;br/&gt;&amp;gt;    4. Channel state commitment tx, held by B, spends funding tx&lt;br/&gt;&amp;gt;       payable to Schnorr muSig address [B(i),Rev(A,i)], signed by A&lt;br/&gt;&amp;gt;    5. Channel fund distribution tx, held by B (CSV), spends (4),&lt;br/&gt;&amp;gt;       signed by Rev(A,i)&lt;br/&gt;&amp;gt;    6. Channel fund distribution tx, held by A (no CSV), spends (4),&lt;br/&gt;&amp;gt;       signed by B(i)&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt;    The fund distribution txs all pay the same collection of addresses:&lt;br/&gt;&amp;gt;      - channel balance for A directly to A&amp;#39;s preferred address&lt;br/&gt;&amp;gt;      - channel balance for B directly to B&amp;#39;s preferred address&lt;br/&gt;&amp;gt;      - HTLC balance to muSig address for [A,B] for each in-flight HTLC&lt;br/&gt;&amp;gt;        paying A on success&lt;br/&gt;&amp;gt;      - HTLC balance to muSig address for [B,A] for each in-flight HTLC&lt;br/&gt;&amp;gt;        paying B on success&lt;br/&gt;&amp;gt;      - (probably makes sense to bump the HTLC addresses by some random&lt;br/&gt;&amp;gt;        value to make it harder for third parties to tell which addresses&lt;br/&gt;&amp;gt;        were balances versus HTLCs)&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt;    Both (1) and (4) include obscured channel state ids as per current&lt;br/&gt;&amp;gt;    standard.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt;    For each HTLC that pays X on timeout and Y on success:&lt;br/&gt;&amp;gt;      a. Timeout tx, held by X, signed by Y, spends from (2)&lt;br/&gt;&amp;gt;      b. Timeout tx, held by X, signed by Y, spends from (3)&lt;br/&gt;&amp;gt;      c. Timeout tx, held by X, signed by Y, spends from (5)&lt;br/&gt;&amp;gt;      d. Timeout tx, held by X, signed by Y, spends from (6)&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt;      e. Success tx, held by Y, signed by X, spends from (2)&lt;br/&gt;&amp;gt;      f. Success tx, held by Y, signed by X, spends from (3)&lt;br/&gt;&amp;gt;      g. Success tx, held by Y, signed by X, spends from (5)&lt;br/&gt;&amp;gt;      h. Success tx, held by Y, signed by X, spends from (6)&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt;      (these should all be able to be SIGHASH_SINGLE, ANYONECANPAY&lt;br/&gt;&amp;gt;       to allow some level of aggregation)&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt;  - Fund distribution tx outputs can all be pay2pubkey(hash): HTLCs work&lt;br/&gt;&amp;gt;    by pre-signed timelocked transactions and scriptless&lt;br/&gt;&amp;gt;    scripts/discreet-log contracts to reveal the secret; balances work&lt;br/&gt;&amp;gt;    directly; CSV and revocations are already handled by that point&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt;  - You can discard all old transaction info and HTLC parameters once&lt;br/&gt;&amp;gt;    they&amp;#39;re not relevant to the current channel state&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt;  - Channel monitoring can be outsourced pretty efficiently -- as little as&lt;br/&gt;&amp;gt;    a signature per state could be made to works as far as I can see,&lt;br/&gt;&amp;gt;    which doesn&amp;#39;t add up too fast.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt;  - There&amp;#39;s still no plausible way of doing constant space outsourced&lt;br/&gt;&amp;gt;    channel monitoring without some sort of SIGHASH_NOINPUT, at least&lt;br/&gt;&amp;gt;    that I can see&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Thoughts?&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; [4]&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Cheers,&lt;br/&gt;&amp;gt; aj, very sad that this didn&amp;#39;t turn out to be a potential use case for&lt;br/&gt;&amp;gt;     graftroot :(&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; [0] In particular, I&amp;#39;m assuming that:&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt;     - Schnorr sigs in bitcoin will look something like:&lt;br/&gt;&amp;gt;         R, r &#43; H(X,R,m)*x&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt;       (where m is the message being signed by private key x, r is a&lt;br/&gt;&amp;gt;       random per-sig nonce, R and X are public keys corresponding to r,x;&lt;br/&gt;&amp;gt;       H is the secure hash function)&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt;     - muSig is a secure way for untrusting parties to construct an n-of-n&lt;br/&gt;&amp;gt;       combined signature; for public keys A and B, it produces a combined&lt;br/&gt;&amp;gt;       public key:&lt;br/&gt;&amp;gt;         X = H(L,A)*A &#43; H(L,B)*B&lt;br/&gt;&amp;gt;       with L = H(A,B)&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt;    See&lt;br/&gt;&amp;gt; &lt;a href=&#34;https://blockstream.com/2018/01/23/musig-key-aggregation-schnorr-signatures.html&#34;&gt;https://blockstream.com/2018/01/23/musig-key-aggregation-schnorr-signatures.html&lt;/a&gt;&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; [1]&lt;br/&gt;&amp;gt; &lt;a href=&#34;https://scalingbitcoin.org/stanford2017/Day2/Using-the-Chain-for-what-Chains-are-Good-For.pdf&#34;&gt;https://scalingbitcoin.org/stanford2017/Day2/Using-the-Chain-for-what-Chains-are-Good-For.pdf&lt;/a&gt;&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; &lt;a href=&#34;http://diyhpl.us/wiki/transcripts/scalingbitcoin/stanford-2017/using-the-chain-for-what-chains-are-good-for/&#34;&gt;http://diyhpl.us/wiki/transcripts/scalingbitcoin/stanford-2017/using-the-chain-for-what-chains-are-good-for/&lt;/a&gt;&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; [2] &lt;a href=&#34;https://adiabat.github.io/dlc.pdf&#34;&gt;https://adiabat.github.io/dlc.pdf&lt;/a&gt;&lt;br/&gt;&amp;gt;     &lt;a href=&#34;https://diyhpl.us/wiki/transcripts/discreet-log-contracts/&#34;&gt;https://diyhpl.us/wiki/transcripts/discreet-log-contracts/&lt;/a&gt;&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; [3] Well, maybe you could request a zero-knowledge proof to ensure a new&lt;br/&gt;&amp;gt;     revocation hash conforms to the standard for generating revocation&lt;br/&gt;&amp;gt;     secrets without revealing the secret, and have the public key be&lt;br/&gt;&amp;gt;     a(i)*G &#43; r(B,i)*G without using the muSig construct, but that would&lt;br/&gt;&amp;gt;     probably be obnoxious to have to generate every time you update&lt;br/&gt;&amp;gt;     the channel state.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; [4] As an aside -- this could make it feasible and interesting to penalise&lt;br/&gt;&amp;gt;     disappearance as well as misbehaviour. If you add a transaction&lt;br/&gt;&amp;gt;     the B pre-signs, spending the commitment tx A holds, giving all the&lt;br/&gt;&amp;gt;     channel funds to A but only after a very large CSV timeout, perhaps&lt;br/&gt;&amp;gt;     `to_self_delay`*50, then the scenarios are:&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt;     If A is present:&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt;       - B publishes an old commitment: A immediately steals all the&lt;br/&gt;&amp;gt;         funds if active or outsourced misbehaviour monitoring. Whoops!&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt;       - B publishes the current commitment: A publishes its distribution&lt;br/&gt;&amp;gt;         transaction and collects its funds immediately, allowing B to&lt;br/&gt;&amp;gt;         do likewise&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt;     If A has disappeared:&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt;       - B publises the current commitment and waits a modest amount&lt;br/&gt;&amp;gt;         of time, publishes its distribution transaction claiming its&lt;br/&gt;&amp;gt;         rightful funds, and allowing A to collect its funds if it ever&lt;br/&gt;&amp;gt;         does reappear and still knows its secrets&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt;       - B publishes the current commitment, waits a fair while,&lt;br/&gt;&amp;gt;         A reappears and publishes its distribution transactions, both&lt;br/&gt;&amp;gt;         parties get their rightful funds&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt;       - B publishes the current commitment, waits an extended period&lt;br/&gt;&amp;gt;         of time, and claims the entire channel&amp;#39;s funds. If B is&lt;br/&gt;&amp;gt;         particularly reputable, and A can prove its identity (but not&lt;br/&gt;&amp;gt;         recover all its secrets) maybe B even refunds A some/all of its&lt;br/&gt;&amp;gt;         rightful balance&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt;     Perhaps that provides too much of an incentive to try blocking&lt;br/&gt;&amp;gt;     someone from having access to the blockchain though.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; _______________________________________________&lt;br/&gt;&amp;gt; Lightning-dev mailing list&lt;br/&gt;&amp;gt; Lightning-dev at lists.linuxfoundation.org&lt;br/&gt;&amp;gt; &lt;a href=&#34;https://lists.linuxfoundation.org/mailman/listinfo/lightning-dev&#34;&gt;https://lists.linuxfoundation.org/mailman/listinfo/lightning-dev&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Andrew Poelstra&lt;br/&gt;Mathematics Department, Blockstream&lt;br/&gt;Email: apoelstra at wpsoftware.net&lt;br/&gt;Web:   &lt;a href=&#34;https://www.wpsoftware.net/andrew&#34;&gt;https://www.wpsoftware.net/andrew&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&amp;#34;A goose alone, I suppose, can know the loneliness of geese&lt;br/&gt; who can never find their peace,&lt;br/&gt; whether north or south or west or east&amp;#34;&lt;br/&gt;       --Joanna Newsom&lt;br/&gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;A non-text attachment was scrubbed...&lt;br/&gt;Name: signature.asc&lt;br/&gt;Type: application/pgp-signature&lt;br/&gt;Size: 455 bytes&lt;br/&gt;Desc: not available&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/lightning-dev/attachments/20180306/ed21a545/attachment-0001.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/lightning-dev/attachments/20180306/ed21a545/attachment-0001.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-09T12:49:22Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsg5nw73g3yqy7u4am4sj5l37gmmrr8nk3sqcj48n79v0gm49458cszyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2kjun9lf</id>
    
      <title type="html">📅 Original date posted:2023-04-05 🗒️ Summary of this ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsg5nw73g3yqy7u4am4sj5l37gmmrr8nk3sqcj48n79v0gm49458cszyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2kjun9lf" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs86vq5vylrkncqhgnaw778yvvlewglxjdx4hpg3gm4cks5hjejc7c2x258m&#39;&gt;nevent1q…258m&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2023-04-05&lt;br/&gt;🗒️ Summary of this message: Murch has proposed an informational BIP to establish a shared vocabulary for various components and aspects of transactions to avoid confusion.&lt;br/&gt;📝 Original message:On Wed, Apr 05, 2023 at 02:54:15PM -0400, Murch via bitcoin-dev wrote:&lt;br/&gt;&amp;gt; Hey everyone,&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Over the years, I have participated in a few conversations about various&lt;br/&gt;&amp;gt; aspects of transactions. Often a chunk of the conversation is spent on&lt;br/&gt;&amp;gt; establishing a shared vocabulary. There are many competing terms—e.g. I can&lt;br/&gt;&amp;gt; think of at least three additional terms that refer to `scriptPubKey`.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; I’ve drafted an informational BIP that proposes terminology for various&lt;br/&gt;&amp;gt; components and aspects of transactions. As some established terms are&lt;br/&gt;&amp;gt; already contradictory, the proposal does not aim for a perfectly consistent&lt;br/&gt;&amp;gt; selection of terms, but rather just to establish a shared vocabulary to&lt;br/&gt;&amp;gt; avoid confusion.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Draft: &lt;a href=&#34;https://github.com/Xekyo/bips/pull/1&#34;&gt;https://github.com/Xekyo/bips/pull/1&lt;/a&gt;&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Please let me know whether you’d be interested in the creation of such a&lt;br/&gt;&amp;gt; BIP.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;I would be interested in such a BIP existing.&lt;br/&gt;&lt;br/&gt;I will leave to others the hard work of bikeshedding every single term.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Cheers&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Andrew Poelstra&lt;br/&gt;Director of Research, Blockstream&lt;br/&gt;Email: apoelstra at wpsoftware.net&lt;br/&gt;Web:   &lt;a href=&#34;https://www.wpsoftware.net/andrew&#34;&gt;https://www.wpsoftware.net/andrew&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;The sun is always shining in space&lt;br/&gt;    -Justin Lewis-Webster&lt;br/&gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;A non-text attachment was scrubbed...&lt;br/&gt;Name: signature.asc&lt;br/&gt;Type: application/pgp-signature&lt;br/&gt;Size: 488 bytes&lt;br/&gt;Desc: not available&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20230405/69c926e9/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20230405/69c926e9/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T23:20:22Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqspareaylng8ef4zr5vh4acs5cy6mhxs6p96k5vx9h7qzldkr9rsmgzyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2k5kp035</id>
    
      <title type="html">📅 Original date posted:2023-02-20 🗒️ Summary of this ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqspareaylng8ef4zr5vh4acs5cy6mhxs6p96k5vx9h7qzldkr9rsmgzyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2k5kp035" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs2mkuexcd8txfklp3uhdpqu6chc82zujhz62ypj77xmapv2hz69ncv3x2re&#39;&gt;nevent1q…x2re&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2023-02-20&lt;br/&gt;🗒️ Summary of this message: Andrew Poelstra has opened a PR to the BIPs repo for a new scheme, with updates to address concerns raised by Pavol Rusnak, David Harding, and Christopher Allen.&lt;br/&gt;📝 Original message:On Wed, Feb 15, 2023 at 09:16:02PM -0500, Russell O&amp;#39;Connor via bitcoin-dev wrote:&lt;br/&gt;&amp;gt; I&amp;#39;ve been asked by Dr. Curr and Professor Snead to forward this message to&lt;br/&gt;&amp;gt; this mailing list, as it may be of general interest to Bitcoin users.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;lt;snip&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;I have opened a PR to the BIPs repo for this scheme: &lt;a href=&#34;https://github.com/bitcoin/bips/pull/1425&#34;&gt;https://github.com/bitcoin/bips/pull/1425&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Thanks very much to Pavol Rusnak, David Harding, and Christopher Allen&lt;br/&gt;for their comments on this list. We&amp;#39;ve updated the draft text to try to&lt;br/&gt;address your concerns. In particular:&lt;br/&gt;&lt;br/&gt;  * Added more text to &amp;#34;Motivation&amp;#34; distinguishing the scheme from SLIP-39&lt;br/&gt;  * Added more details to &amp;#34;Rationale&amp;#34;  about error correction capabilities&lt;br/&gt;    of the code, and to explain that the code does not defend against&lt;br/&gt;    malicious errors&lt;br/&gt;  * Added a note to use uppercase for QR codes&lt;br/&gt;  * Rearranged and clarified the &amp;#34;creating shares&amp;#34; instructions&lt;br/&gt;  * Added text about hand-computation, in particular hand-computation&lt;br/&gt;    of share verification, to &amp;#34;Motivation&amp;#34;.&lt;br/&gt;&lt;br/&gt;If any of you would like to be listed under Acknowledgements, please let&lt;br/&gt;me know here or on the PR.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Cheers&lt;br/&gt;Andrew&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Andrew Poelstra&lt;br/&gt;Director of Research, Blockstream&lt;br/&gt;Email: apoelstra at wpsoftware.net&lt;br/&gt;Web:   &lt;a href=&#34;https://www.wpsoftware.net/andrew&#34;&gt;https://www.wpsoftware.net/andrew&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;The sun is always shining in space&lt;br/&gt;    -Justin Lewis-Webster&lt;br/&gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;A non-text attachment was scrubbed...&lt;br/&gt;Name: signature.asc&lt;br/&gt;Type: application/pgp-signature&lt;br/&gt;Size: 488 bytes&lt;br/&gt;Desc: not available&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20230220/38465703/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20230220/38465703/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T23:19:48Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsp0vv5c35887n6eqa432rz7jm0y5xldsd39h5n2t7p397ey85mvwqzyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2kh570wd</id>
    
      <title type="html">📅 Original date posted:2023-02-19 🗒️ Summary of this ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsp0vv5c35887n6eqa432rz7jm0y5xldsd39h5n2t7p397ey85mvwqzyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2kh570wd" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqstryvl4h7y6hddfhxwa8lg94dzp20ztasj0xdffyj2s0cafve6tfs2h9re9&#39;&gt;nevent1q…9re9&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2023-02-19&lt;br/&gt;🗒️ Summary of this message: A new proposal for generating and encoding Bitcoin private keys has been introduced, with benefits including a more compact encoding and the ability to verify the integrity of each share independently without using a computer. However, the proposal does not support passphrases or hardening of any form, and has no hardware wallet support.&lt;br/&gt;📝 Original message:On Sun, Feb 19, 2023 at 10:13:33AM -1000, David A. Harding wrote:&lt;br/&gt;&amp;gt; On 2023-02-16 03:49, Andrew Poelstra via bitcoin-dev wrote:&lt;br/&gt;&amp;gt; &amp;gt; the draft lists several benefits over SLIP-0039.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; The only benefit over SLIP39 that I see explicitly mentioned in the&lt;br/&gt;&amp;gt; draft BIP is &amp;#34;simple enough for hand computation&amp;#34;.  In the FAQ[1] on the&lt;br/&gt;&amp;gt; project&amp;#39;s website, I see some additional reasons:&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;Oh, you&amp;#39;re right! I think we removed this text in one of our revisions.&lt;br/&gt;I&amp;#39;ll see if it makes sense to put it back.&lt;br/&gt;&lt;br/&gt;&amp;gt; | This scheme is essentially the same as SLIP39, with the following&lt;br/&gt;&amp;gt; differences:&lt;br/&gt;&amp;gt; |&lt;br/&gt;&amp;gt; | - The checksum is longer, slightly stronger, and designed to be&lt;br/&gt;&amp;gt; |   computable by hand.&lt;br/&gt;&amp;gt; |&lt;br/&gt;&amp;gt; | - Our encoding is more compact, giving us room for a bit of more&lt;br/&gt;&amp;gt; |   metadata, which is also designed to be readable by hand.&lt;br/&gt;&amp;gt; |&lt;br/&gt;&amp;gt; | - Unlike SLIP39, we do not support passphrases or hardening of any&lt;br/&gt;&amp;gt; |   form.&lt;br/&gt;&amp;gt; |&lt;br/&gt;&amp;gt; | - Unlike SLIP39, we have no hardware wallet support. But we hope that&lt;br/&gt;&amp;gt; |   will change!&lt;br/&gt;&amp;gt; &lt;br/&gt;&lt;br/&gt;These are roughly the benefits -- a more compact encoding which is&lt;br/&gt;always a fixed width. We also list &amp;#34;not supporting features such as&lt;br/&gt;passphrases&amp;#34; as a benefit, for users who don&amp;#39;t need/want this.&lt;br/&gt;&lt;br/&gt;&amp;gt; &amp;lt;snip&amp;gt;&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; When I first saw the post about this, it was unclear to me that it was a&lt;br/&gt;&amp;gt; serious project, but I&amp;#39;ve become increasingly interested as I researched&lt;br/&gt;&amp;gt; it.  I&amp;#39;m not personally that interested in generating entropy from dice&lt;br/&gt;&amp;gt; or encoding shares by hand---it&amp;#39;s already imperative that I acquire a&lt;br/&gt;&amp;gt; trustworthy computer and load it with trustworthy software in order to&lt;br/&gt;&amp;gt; use my seed securely, so I might as well have it generate my seeds and my&lt;br/&gt;&amp;gt; recovery codes for me.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;Yes, we&amp;#39;ve been a bit coy about how serious this project is, because on&lt;br/&gt;its face it&amp;#39;s such a silly thing. But for my part, I&amp;#39;ve been using it&lt;br/&gt;for real coins for over a year and I consider it to be serious.&lt;br/&gt;&lt;br/&gt;&amp;gt; What really did catch my attention, but which was kind of buried in the&lt;br/&gt;&amp;gt; project documentation, is the ability to verify the integrity of each&lt;br/&gt;&amp;gt; share independently without using a computer.  For example, if I store a&lt;br/&gt;&amp;gt; share with some relative who lives thousands of kilometers away, I&amp;#39;ll be&lt;br/&gt;&amp;gt; able to take that share out of its tamper-evident bag on my annual&lt;br/&gt;&amp;gt; holiday visit, verify that I can still read it accurately by validating&lt;br/&gt;&amp;gt; its checksum, and put it into a new bag for another year.  For this&lt;br/&gt;&amp;gt; procedure, I don&amp;#39;t need to bring copies of any of my other shares,&lt;br/&gt;&amp;gt; allowing them (and my seed) to stay safe.&lt;br/&gt;&amp;gt; &lt;br/&gt;&lt;br/&gt;This is good feedback. I strongly agree that this is the big selling&lt;br/&gt;point for this -- that you can vet shares/seeds which *aren&amp;#39;t* being&lt;br/&gt;actively used, without exposing them to the sorts of threats associated&lt;br/&gt;with active use.&lt;br/&gt;&lt;br/&gt;We should make this more prominent in the BIP motivation.&lt;br/&gt;&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; I do have one question after watching an excellent video[2] about the&lt;br/&gt;&amp;gt; motivation for this system.  In the video, one of the threat models&lt;br/&gt;&amp;gt; described is a disarrangement of the words in a metal backup system.&lt;br/&gt;&amp;gt; The implication seems to be that this would be an accidental&lt;br/&gt;&amp;gt; disarrangement, which obviously the Codex32 checksum would catch during&lt;br/&gt;&amp;gt; periodic offline verification.  But what about deliberate modification&lt;br/&gt;&amp;gt; of a recovery code?  For example, Bob doesn&amp;#39;t keep his seed loaded on&lt;br/&gt;&amp;gt; any computer; it only exists in Codex32 shares which Bob plans to&lt;br/&gt;&amp;gt; combine together in 20 years when he retires, although he makes regular&lt;br/&gt;&amp;gt; deposits to the pubkeys derived from the seed&amp;#39;s master xpub.  Mallory is&lt;br/&gt;&amp;gt; able to obtain access to Bob&amp;#39;s shares, allowing her to immediately steal&lt;br/&gt;&amp;gt; his current funds---but also allowing her to replace them with&lt;br/&gt;&amp;gt; similar-looking&lt;br/&gt;&amp;gt; shares with the same metadata and valid checksums so that Bob&lt;br/&gt;&amp;gt; continues making deposits to the wallet.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; I&amp;#39;m curious about whether there&amp;#39;s a way to prevent this attack without&lt;br/&gt;&amp;gt; otherwise compromising the properties of the code?  For example, some&lt;br/&gt;&amp;gt; extra data that Bob can carry around (or memorize) for verifying the&lt;br/&gt;&amp;gt; shares haven&amp;#39;t changed, but which is not otherwise needed for recovery&lt;br/&gt;&amp;gt; (so there&amp;#39;s no problem if it&amp;#39;s lost).&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;Unfortunately not, as near as I can tell ... one way to think of this is&lt;br/&gt;that Alice can flip a lot of random tiles then &amp;#34;error correct&amp;#34; it to get&lt;br/&gt;a new valid, but incorrect, seed. So as long as we support error&lt;br/&gt;correction it&amp;#39;ll be possible to wreck seeds in this way.&lt;br/&gt;&lt;br/&gt;It&amp;#39;s actually even worse than this ... as long as there&amp;#39;s a clearly&lt;br/&gt;defined &amp;#34;checksum&amp;#34; at the end of a share, Alice will be able to mangele&lt;br/&gt;tiles and then just re-compute the checksum at the end.&lt;br/&gt;&lt;br/&gt;So what we really need to prevent this is something like a MAC: where&lt;br/&gt;Bob has a secret value which gets input into the checksum somehow, which&lt;br/&gt;Alice can&amp;#39;t create valid checksums without knowing. Unfortunately I&lt;br/&gt;don&amp;#39;t see any way to do this with linear codes. With a hash-based&lt;br/&gt;&amp;#34;checksum&amp;#34; a la BIP39 it would definitely be possible, but of course,&lt;br/&gt;not hand-computable.&lt;br/&gt;&lt;br/&gt;BTW, to execute this attack Alice doesn&amp;#39;t need to compromise *all* the&lt;br/&gt;shares. Just enough that Bob no longer has threshold-many un-tampered&lt;br/&gt;ones left.&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Andrew Poelstra&lt;br/&gt;Director of Research, Blockstream&lt;br/&gt;Email: apoelstra at wpsoftware.net&lt;br/&gt;Web:   &lt;a href=&#34;https://www.wpsoftware.net/andrew&#34;&gt;https://www.wpsoftware.net/andrew&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;The sun is always shining in space&lt;br/&gt;    -Justin Lewis-Webster&lt;br/&gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;A non-text attachment was scrubbed...&lt;br/&gt;Name: signature.asc&lt;br/&gt;Type: application/pgp-signature&lt;br/&gt;Size: 488 bytes&lt;br/&gt;Desc: not available&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20230219/56f6c656/attachment-0001.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20230219/56f6c656/attachment-0001.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T23:19:43Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqszld3sarxqfc94rt30zvn70k2mskzrk4lgd835rsfj28gau3rn92qzyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2kk6j5yl</id>
    
      <title type="html">📅 Original date posted:2023-02-16 🗒️ Summary of this ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqszld3sarxqfc94rt30zvn70k2mskzrk4lgd835rsfj28gau3rn92qzyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2kk6j5yl" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs9sv0798tt8jvsqenxewsh8cwcqhtcdnvnwjytng5sfxnml84p5ccrzdtzq&#39;&gt;nevent1q…dtzq&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2023-02-16&lt;br/&gt;🗒️ Summary of this message: A proposed Bitcoin Improvement Proposal (BIP) aims to simplify hand computation for users, but its benefits over an existing standard are not substantial.&lt;br/&gt;📝 Original message:On Thu, Feb 16, 2023 at 12:50:12PM &#43;0100, Pavol Rusnak via bitcoin-dev wrote:&lt;br/&gt;&amp;gt; Hi!&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; The BIP states that its only advantage over SLIP-0039, which has been used&lt;br/&gt;&amp;gt; in production for nearly three years (in at at least 3 SW/HW wallet&lt;br/&gt;&amp;gt; implementations), is that it aims to be simple enough for hand computation.&lt;br/&gt;&amp;gt; However, the BIP also indicates that &amp;#34;details of hand computation are&lt;br/&gt;&amp;gt; outside the scope of this standard, and implementers do not need to be&lt;br/&gt;&amp;gt; concerned with this possibility.&amp;#34; Therefore, I am curious about how&lt;br/&gt;&amp;gt; significant this advantage over SLIP-0039 really is. If hand computation is&lt;br/&gt;&amp;gt; not straightforward and there are no other substantial advantages over&lt;br/&gt;&amp;gt; SLIP-0039, I cannot help but feel that this BIP is simply a result of&lt;br/&gt;&amp;gt; not-invented-here syndrome, but please correct me if I am wrong.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;In my view, the hand computation is actually the main benefit of this&lt;br/&gt;scheme. The process *is* straightforward, but tedious enough (and the&lt;br/&gt;security benefits obscure enough, though they really shouldn&amp;#39;t be...&lt;br/&gt;&amp;#34;computers are opaque and untrustworthy&amp;#34; should be a common sentiment)&lt;br/&gt;that it&amp;#39;s hard to expect more than a small absolute number of users to&lt;br/&gt;actually do it.&lt;br/&gt;&lt;br/&gt;But for the purpose of the *standard*, what is important is that it is&lt;br/&gt;possible to implement and use this within a normal hww workflow. This is&lt;br/&gt;important for hand-computing users who know that their coins will not&lt;br/&gt;die with them (since the &amp;#39;standard&amp;#39; has fallen into obscurity), and&lt;br/&gt;important for &amp;#34;normal&amp;#34; users who have the option to seamlessly switch&lt;br/&gt;over to hand computation as the BTC price goes up or the world becomes&lt;br/&gt;scarier.&lt;br/&gt;&lt;br/&gt;For what it&amp;#39;s worth, the draft lists several benefits over SLIP-0039.&lt;br/&gt;I agree that none of them are particularly strong [1], and even together&lt;br/&gt;they probably wouldn&amp;#39;t meet the threshold to take the time to write a&lt;br/&gt;standard, but I assure you the motivation was not NIH :).&lt;br/&gt;&lt;br/&gt;&amp;gt; Keep in mind that the encoded shares in SLIP-0039 consist of exactly 200 or&lt;br/&gt;&amp;gt; 330 bits, both of which are divisible by 5. This makes it straightforward&lt;br/&gt;&amp;gt; to encode them as Bech32 strings.&lt;br/&gt;&amp;gt; &lt;br/&gt;&lt;br/&gt;This is true! And very convenient for people who may want to simply&lt;br/&gt;&amp;#34;layer on&amp;#34; the codex32 checksum/splitting logic onto their SLIP39 words.&lt;br/&gt;They can use a lookup table to do the conversion, spend years or&lt;br/&gt;whataever doing hand-computation on them, and then use a lookup table&lt;br/&gt;to go back.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;[1] One listed reason is that &amp;#34;a SLIP is not a BIP&amp;#34;. I have heard people&lt;br/&gt;    speculate that this is one reason SLIP-0039 is not nearly as&lt;br/&gt;    widespread as BIP-0039, even though it is objectively a far better&lt;br/&gt;    standard. I&amp;#39;m unsure whether I believe this, but &amp;#34;there is no other&lt;br/&gt;    BIP&amp;#34; does seem like a good reason for BIP-0039&amp;#39;s continued&lt;br/&gt;    dominance.&lt;br/&gt;&lt;br/&gt;    At the very least, it means that on BIP-0039 itself we have nothing&lt;br/&gt;    that we could say &amp;#34;supercedes&amp;#34; or &amp;#34;is recommended instead of&amp;#34; the&lt;br/&gt;    BIP. See &lt;a href=&#34;https://github.com/bitcoin/bips/pull/1413&#34;&gt;https://github.com/bitcoin/bips/pull/1413&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;    So it&amp;#39;s something of an aside, but I think it would probably be good&lt;br/&gt;    for the ecosystem (though maybe bad for this BIP&amp;#39;s prospects :)) if&lt;br/&gt;    you would request a BIP number for SLIP-0039.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Andrew Poelstra&lt;br/&gt;Director of Research, Blockstream&lt;br/&gt;Email: apoelstra at wpsoftware.net&lt;br/&gt;Web:   &lt;a href=&#34;https://www.wpsoftware.net/andrew&#34;&gt;https://www.wpsoftware.net/andrew&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;The sun is always shining in space&lt;br/&gt;    -Justin Lewis-Webster&lt;br/&gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;A non-text attachment was scrubbed...&lt;br/&gt;Name: signature.asc&lt;br/&gt;Type: application/pgp-signature&lt;br/&gt;Size: 488 bytes&lt;br/&gt;Desc: not available&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20230216/7f6aa147/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20230216/7f6aa147/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T23:19:41Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsxhq6errge5ulaf6uwr96zjufprrezvcccglthr9w86mdq9269pqczyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2kthrrg0</id>
    
      <title type="html">📅 Original date posted:2023-02-17 🗒️ Summary of this ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsxhq6errge5ulaf6uwr96zjufprrezvcccglthr9w86mdq9269pqczyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2kthrrg0" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqswmzxsejpcp2djjqnmu2sgsem549vx2we0j4malvqp5q5kalqf0aqtggac8&#39;&gt;nevent1q…gac8&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2023-02-17&lt;br/&gt;🗒️ Summary of this message: Andrew Poelstra suggests using static analysis to ensure inscription scripts are &amp;#34;plausible&amp;#34; and comply with the CLEANSTACK rule, which could increase their space cost.&lt;br/&gt;📝 Original message:On Sat, Feb 18, 2023 at 02:03:15AM &#43;0200, Peter Todd wrote:&lt;br/&gt;&amp;gt; On February 18, 2023 1:35:34 AM GMT&#43;02:00, Andrew Poelstra via bitcoin-dev &lt;br/&gt;&amp;gt; &amp;gt;You could try statically analyze `&amp;lt;anything&amp;gt;` to determine whether the&lt;br/&gt;&amp;gt; &amp;gt;IF branch could ever be taken. For example there is no path through&lt;br/&gt;&amp;gt; &amp;gt;the &amp;#34;inscription script&amp;#34; that would result in all the crap being dropped&lt;br/&gt;&amp;gt; &amp;gt;by the end of the script, violating the CLEANSTACK rule.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;This sort of filtering, assuming it could be reliably and efficiently&lt;br/&gt;&amp;gt; &amp;gt;done, would at least force inscription scripts to be &amp;#34;plausible&amp;#34;, and&lt;br/&gt;&amp;gt; &amp;gt;would greatly increase their space cost by e.g. requiring OP_DROP to be&lt;br/&gt;&amp;gt; &amp;gt;added somewhere hundreds of times.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; &amp;#34;greatly increase their space cost&amp;#34;?&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Tell me, what is the actual % increase to adding OP_DROPs like you propose?&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;By standardness rules (where you can have up to 80-byte pushes), a&lt;br/&gt;little over 1%. By consensus (520-byte pushes) less than 0.2%.&lt;br/&gt;&lt;br/&gt;Perhaps &amp;#34;greatly increase&amp;#34; is a stretch :) but if the fee market is&lt;br/&gt;functioning and we&amp;#39;re talking about large amounts of data, it&amp;#39;s not&lt;br/&gt;trivial either.&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Andrew Poelstra&lt;br/&gt;Director of Research, Blockstream&lt;br/&gt;Email: apoelstra at wpsoftware.net&lt;br/&gt;Web:   &lt;a href=&#34;https://www.wpsoftware.net/andrew&#34;&gt;https://www.wpsoftware.net/andrew&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;The sun is always shining in space&lt;br/&gt;    -Justin Lewis-Webster&lt;br/&gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;A non-text attachment was scrubbed...&lt;br/&gt;Name: signature.asc&lt;br/&gt;Type: application/pgp-signature&lt;br/&gt;Size: 488 bytes&lt;br/&gt;Desc: not available&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20230218/dcd75895/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20230218/dcd75895/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T23:19:36Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsy4af8j49eflnnw09sthwzgwx5j48ty37qwm8ym7rr4vxkujrvfnszyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2kpdl3gg</id>
    
      <title type="html">📅 Original date posted:2023-02-17 🗒️ Summary of this ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsy4af8j49eflnnw09sthwzgwx5j48ty37qwm8ym7rr4vxkujrvfnszyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2kpdl3gg" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsvmpkl8d7lqucerlpc949dsazrl2p5kfuuqnauk3davddtzkm9h3cy09n5v&#39;&gt;nevent1q…9n5v&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2023-02-17&lt;br/&gt;🗒️ Summary of this message: Andrew Poelstra discusses the potential issues with banning specific script fragments in Bitcoin and suggests an alternative solution.&lt;br/&gt;📝 Original message:On Fri, Feb 17, 2023 at 11:35:34PM &#43;0000, Andrew Poelstra via bitcoin-dev wrote:&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; If you ban any of these specific script fragments then spammers will&lt;br/&gt;&amp;gt; just use `IF &amp;lt;anything&amp;gt; ENDIF` and provide the `FALSE` as a zero push.&lt;br/&gt;&amp;gt; And banning *this* would ban legitimate use cases.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;I realize this is confusingly worded. I mean, they&amp;#39;d provide the `FALSE`&lt;br/&gt;as a separate witness element rather than being part of the witnessScript.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Andrew Poelstra&lt;br/&gt;Director of Research, Blockstream&lt;br/&gt;Email: apoelstra at wpsoftware.net&lt;br/&gt;Web:   &lt;a href=&#34;https://www.wpsoftware.net/andrew&#34;&gt;https://www.wpsoftware.net/andrew&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;The sun is always shining in space&lt;br/&gt;    -Justin Lewis-Webster&lt;br/&gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;A non-text attachment was scrubbed...&lt;br/&gt;Name: signature.asc&lt;br/&gt;Type: application/pgp-signature&lt;br/&gt;Size: 488 bytes&lt;br/&gt;Desc: not available&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20230217/ac844572/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20230217/ac844572/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T23:19:35Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsvmpkl8d7lqucerlpc949dsazrl2p5kfuuqnauk3davddtzkm9h3czyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2kaq7yum</id>
    
      <title type="html">📅 Original date posted:2023-02-17 🗒️ Summary of this ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsvmpkl8d7lqucerlpc949dsazrl2p5kfuuqnauk3davddtzkm9h3czyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2kaq7yum" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqstwfm56s4m6jer36nqs7wgu3u6qxp4r83696547q7skprj4yu8a7gkrlhu8&#39;&gt;nevent1q…lhu8&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2023-02-17&lt;br/&gt;🗒️ Summary of this message: Andrew Poelstra suggests filtering script fragments to make inscription scripts &amp;#34;plausible&amp;#34; and increase their space cost, but warns against banning legitimate use cases.&lt;br/&gt;📝 Original message:On Fri, Feb 17, 2023 at 03:56:31PM &#43;0100, vjudeu via bitcoin-dev wrote:&lt;br/&gt;&amp;gt; &amp;gt; [0]: &lt;a href=&#34;https://gist.github.com/luke-jr/4c022839584020444915c84bdd825831&#34;&gt;https://gist.github.com/luke-jr/4c022839584020444915c84bdd825831&lt;/a&gt;&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; I wonder how far should that rule go: SCRIPT_ERR_DISCOURAGE_UPGRADABLE_NOPS. Because &amp;#34;OP_FALSE OP_IF &amp;lt;anything&amp;gt; OP_ENDIF&amp;#34; is effectively the same as &amp;#34;OP_NOP&amp;#34;, and putting NOPs in many places is considered non-standard. The same is true for &amp;#34;OP_TRUE OP_NOTIF &amp;lt;anything&amp;gt; OP_ENDIF&amp;#34;, and also there are many variants, where someone could use &amp;#34;OP_FALSE OP_NOT&amp;#34; instead of &amp;#34;OP_TRUE&amp;#34;, or check if &amp;#34;2&#43;2==4&amp;#34; by using &amp;#34;OP_2 OP_2 OP_ADD OP_4 OP_EQUAL&amp;#34; (instead of putting &amp;#34;OP_TRUE&amp;#34;).&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;If you ban any of these specific script fragments then spammers will&lt;br/&gt;just use `IF &amp;lt;anything&amp;gt; ENDIF` and provide the `FALSE` as a zero push.&lt;br/&gt;And banning *this* would ban legitimate use cases.&lt;br/&gt;&lt;br/&gt;You could try statically analyze `&amp;lt;anything&amp;gt;` to determine whether the&lt;br/&gt;IF branch could ever be taken. For example there is no path through&lt;br/&gt;the &amp;#34;inscription script&amp;#34; that would result in all the crap being dropped&lt;br/&gt;by the end of the script, violating the CLEANSTACK rule.&lt;br/&gt;&lt;br/&gt;This sort of filtering, assuming it could be reliably and efficiently&lt;br/&gt;done, would at least force inscription scripts to be &amp;#34;plausible&amp;#34;, and&lt;br/&gt;would greatly increase their space cost by e.g. requiring OP_DROP to be&lt;br/&gt;added somewhere hundreds of times.&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Andrew Poelstra&lt;br/&gt;Director of Research, Blockstream&lt;br/&gt;Email: apoelstra at wpsoftware.net&lt;br/&gt;Web:   &lt;a href=&#34;https://www.wpsoftware.net/andrew&#34;&gt;https://www.wpsoftware.net/andrew&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;The sun is always shining in space&lt;br/&gt;    -Justin Lewis-Webster&lt;br/&gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;A non-text attachment was scrubbed...&lt;br/&gt;Name: signature.asc&lt;br/&gt;Type: application/pgp-signature&lt;br/&gt;Size: 488 bytes&lt;br/&gt;Desc: not available&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20230217/c02a60b1/attachment-0001.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20230217/c02a60b1/attachment-0001.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T23:19:34Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsdxmr3g42jj6a5xq02nt9yy3vrjk5cjdnkf5ylevr7dyz68w75agqzyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2kc9099d</id>
    
      <title type="html">📅 Original date posted:2023-02-08 🗒️ Summary of this ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsdxmr3g42jj6a5xq02nt9yy3vrjk5cjdnkf5ylevr7dyz68w75agqzyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2kc9099d" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs0sfkpnypsj89m2lx7g6drnw9pf592z6nszx9lrv5d7q5uf5pxwtg0rr62s&#39;&gt;nevent1q…r62s&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2023-02-08&lt;br/&gt;🗒️ Summary of this message: A potential bug in Taproot allows the same Tapleaf to be repeated multiple times in the same Taproot, which could incur different Tapfee rates.&lt;br/&gt;📝 Original message:On Wed, Feb 08, 2023 at 09:34:57AM &#43;0000, Michael Folkson wrote:&lt;br/&gt;&amp;gt; Hi Andrew&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; &amp;gt; There is a bug in Taproot that allows the same Tapleaf to be repeated multiple times in the same Taproot, potentially at different Taplevels incurring different Tapfee rates.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; The countermeasure is that you should always know the entire Taptree when interacting with someone&amp;#39;s Tapspend.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; I wouldn&amp;#39;t say it is a &amp;#34;bug&amp;#34; unless there is a remedy for the bug that wasn&amp;#39;t (and retrospectively should have been) included in the Taproot design. In retrospect and assuming you could redesign the Taproot consensus rules again today would you prevent spending from a valid P2TR address if a repeated Tapleaf hash was used to prove that a spending path was embedded in a Taproot tree? That&amp;#39;s the only thing I can think of to attempt to remedy this &amp;#34;bug&amp;#34; and it would only be a partial protection as proving a spending path exists within a Taproot tree only requires a subset of the Tapleaf hashes.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; I only point this out because there seems to be a push to find &amp;#34;bugs&amp;#34; and &amp;#34;accidental blowups&amp;#34; in the Taproot design currently. No problem with this if there are any, they should definitely be highlighted and discussed if they do exist. The nearest to a possible inferior design decision thus far that I&amp;#39;m aware of is x-only pubkeys in BIP340 [0].&lt;br/&gt;&amp;gt; &lt;br/&gt;&lt;br/&gt;I&amp;#39;m actually not certain what Russell&amp;#39;s referring to, but if it&amp;#39;s indeed&lt;br/&gt;possible to construct TapTrees where the &amp;#34;same&amp;#34; leafhash appears multiple&lt;br/&gt;times at different heights, that&amp;#39;s something unintended and which we&lt;br/&gt;could&amp;#39;ve fixed by changing the Merkle structure. I don&amp;#39;t even think&lt;br/&gt;there would&amp;#39;ve been an efficiency tradeoff.&lt;br/&gt;&lt;br/&gt;So I think it&amp;#39;s totally reasonable to call such a thing a &amp;#34;bug&amp;#34;.&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Andrew Poelstra&lt;br/&gt;Director of Research, Blockstream&lt;br/&gt;Email: apoelstra at wpsoftware.net&lt;br/&gt;Web:   &lt;a href=&#34;https://www.wpsoftware.net/andrew&#34;&gt;https://www.wpsoftware.net/andrew&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;The sun is always shining in space&lt;br/&gt;    -Justin Lewis-Webster&lt;br/&gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;A non-text attachment was scrubbed...&lt;br/&gt;Name: signature.asc&lt;br/&gt;Type: application/pgp-signature&lt;br/&gt;Size: 488 bytes&lt;br/&gt;Desc: not available&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20230208/81f97b92/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20230208/81f97b92/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T23:19:28Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqs8pwp76jw4g6gfshrk2nwrhjysh5dkwqn0qw0rz2s2n8z0mjxmt8czyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2ka6dxpw</id>
    
      <title type="html">📅 Original date posted:2023-02-07 🗒️ Summary of this ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqs8pwp76jw4g6gfshrk2nwrhjysh5dkwqn0qw0rz2s2n8z0mjxmt8czyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2ka6dxpw" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqswksz9jqyq3m6uvaq4075faehqvj0s60p87qq5h8rmwp0u0du0xjglgr6ej&#39;&gt;nevent1q…r6ej&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2023-02-07&lt;br/&gt;🗒️ Summary of this message: Miniscript can help prevent an attack in multiparty transactions where the last input uses a larger signature to extract a fee from other parties. It allows participants to determine the maximum witness size and sign under specific conditions. Taproot also has a maximum signature size of 65 bytes, reducing the potential for this attack. However, there are still some cases where the attack can occur, but Miniscript provides tools to identify and mitigate the risk.&lt;br/&gt;📝 Original message:On Tue, Feb 07, 2023 at 04:49:28AM &#43;0200, Yuval Kogman via bitcoin-dev wrote:&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Since Taproot (more generally any kind of MAST) spends have variable size which&lt;br/&gt;&amp;gt; depends on the path being used, the last such input to be signed in a multiparty&lt;br/&gt;&amp;gt; transaction can always use a larger than estimated signature to unfairly extract&lt;br/&gt;&amp;gt; a fee contribution from the other parties to the transaction (keeping the&lt;br/&gt;&amp;gt; absolute fees the same and reducing the feerate for the transaction).&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;Using Miniscript [1] it is possible for all participants to determine&lt;br/&gt;the maximum witness size of the tree, which can bound the size of this&lt;br/&gt;attack. In fact, they can bound the size *given that their own signature&lt;br/&gt;is used*, or subject to other whatever other conditions they would like,&lt;br/&gt;and only sign under those conditions.&lt;br/&gt;&lt;br/&gt;Furthermore, under Taproot individual signatures have a maximum size of&lt;br/&gt;65 bytes; an &amp;#34;attacker&amp;#34; can reduce this to 64 by not including a sighash&lt;br/&gt;flag, but he has one byte of play. (Pre-Taproot signatures could take up&lt;br/&gt;to 73 bytes with significant room to reduce this by using crypto tricks&lt;br/&gt;and/or grinding).&lt;br/&gt;&lt;br/&gt;Peter Todd also suggests in this thread that the use of uncompressed&lt;br/&gt;keys can cause &amp;#34;surprise&amp;#34; witness inflation, but (a) since segwit&lt;br/&gt;uncompressed keys are also banned, so keys are a fixed 33 bytes (32 in&lt;br/&gt;Taproot), and (b) we expect users of Miniscript to always know all the&lt;br/&gt;keys used in a script that they&amp;#39;re signing. Except perhaps in obscure&lt;br/&gt;cases where, say, the &amp;#34;victim&amp;#34; is a somewhat passive countersigner of&lt;br/&gt;a transaction, e.g. BitGo, ... in which case they&amp;#39;re not the one putting&lt;br/&gt;up fees or with an interest in the transaction going through.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;With Miniscript, the problem is narrower:&lt;br/&gt;&lt;br/&gt;* There is some more-expensive branch that could be taken without&lt;br/&gt;  Alice&amp;#39;s signature. In which case Alice is only signing at all to&lt;br/&gt;  optimistically reduce the witness size... but she cannot assume&lt;br/&gt;  that she is going to be successful!&lt;br/&gt;&lt;br/&gt;  Notably, in this case Alice does not really have any interest in the&lt;br/&gt;  coins, in the sense that they can move entirely without her consent,&lt;br/&gt;  so it&amp;#39;s hard to imagine that she has an interest in the transaction&amp;#39;s&lt;br/&gt;  speedy confirmation.&lt;br/&gt;&lt;br/&gt;* There is some more-expensive branch that could be taken by moving&lt;br/&gt;  Alice&amp;#39;s signature. This is the case that you identify in the thread.&lt;br/&gt;&lt;br/&gt;While the attack remains in both cases, fortunately Miniscript gives&lt;br/&gt;Alice the tools to (a) determine which, if any, case applies to the&lt;br/&gt;script under question, and (b) determine what the maximum witness size&lt;br/&gt;might be, and just sign assuming that, treating any savings as &amp;#34;bonus&amp;#34;.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;[1] &lt;a href=&#34;https://bitcoin.sipa.be/miniscript/&#34;&gt;https://bitcoin.sipa.be/miniscript/&lt;/a&gt;&lt;br/&gt;[2] In Taproot, if you want to prevent signatures migrating to another&lt;br/&gt;    branch or within a branch, you can use the CODESEPARATOR opcode&lt;br/&gt;    which was redisegned in Taproot for exactly this purpose... we&lt;br/&gt;    really did about witness malleation in its design!&lt;br/&gt;&lt;br/&gt;    If you want to prevent signatures from moving around *within* a&lt;br/&gt;    branch,&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Andrew Poelstra&lt;br/&gt;Director of Research, Blockstream&lt;br/&gt;Email: apoelstra at wpsoftware.net&lt;br/&gt;Web:   &lt;a href=&#34;https://www.wpsoftware.net/andrew&#34;&gt;https://www.wpsoftware.net/andrew&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;The sun is always shining in space&lt;br/&gt;    -Justin Lewis-Webster&lt;br/&gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;A non-text attachment was scrubbed...&lt;br/&gt;Name: signature.asc&lt;br/&gt;Type: application/pgp-signature&lt;br/&gt;Size: 488 bytes&lt;br/&gt;Desc: not available&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20230207/bd1c6f4e/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20230207/bd1c6f4e/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T23:19:26Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqs9jgkay96cs67y59dpfzlsj77dn89pvzs55uszqk69cfwpgga98wqzyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2kg9cslg</id>
    
      <title type="html">📅 Original date posted:2023-02-07 🗒️ Summary of this ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqs9jgkay96cs67y59dpfzlsj77dn89pvzs55uszqk69cfwpgga98wqzyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2kg9cslg" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs8pwp76jw4g6gfshrk2nwrhjysh5dkwqn0qw0rz2s2n8z0mjxmt8cncp6nn&#39;&gt;nevent1q…p6nn&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2023-02-07&lt;br/&gt;🗒️ Summary of this message: Andrew Poelstra discusses Taproot&amp;#39;s CODESEPARATOR opcode and the prevention of signature migration between tapbranches in his recent email.&lt;br/&gt;📝 Original message:Some people highlighted some minor problems with my last email:&lt;br/&gt;&lt;br/&gt;On Tue, Feb 07, 2023 at 01:46:22PM &#43;0000, Andrew Poelstra via bitcoin-dev wrote:&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; [1] &lt;a href=&#34;https://bitcoin.sipa.be/miniscript/&#34;&gt;https://bitcoin.sipa.be/miniscript/&lt;/a&gt;&lt;br/&gt;&amp;gt; [2] In Taproot, if you want to prevent signatures migrating to another&lt;br/&gt;&amp;gt;     branch or within a branch, you can use the CODESEPARATOR opcode&lt;br/&gt;&amp;gt;     which was redisegned in Taproot for exactly this purpose... we&lt;br/&gt;&amp;gt;     really did about witness malleation in its design!&lt;br/&gt;&lt;br/&gt;In Taproot the tapleaf hash is always covered by the signature (though&lt;br/&gt;not in some ANYONECANPAY proposals) so you can never migrate signatures&lt;br/&gt;between tapbranches.&lt;br/&gt;&lt;br/&gt;I had thought this was the case, but then I re-confused myself by&lt;br/&gt;reading BIP 341 .... which has much of the sighash specified, but not&lt;br/&gt;all of it! The tapleaf hash is added in BIP 342.&lt;br/&gt;&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt;     If you want to prevent signatures from moving around *within* a&lt;br/&gt;&amp;gt;     branch,&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;And this sentence I just meant to delete :)&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Andrew Poelstra&lt;br/&gt;Director of Research, Blockstream&lt;br/&gt;Email: apoelstra at wpsoftware.net&lt;br/&gt;Web:   &lt;a href=&#34;https://www.wpsoftware.net/andrew&#34;&gt;https://www.wpsoftware.net/andrew&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;The sun is always shining in space&lt;br/&gt;    -Justin Lewis-Webster&lt;br/&gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;A non-text attachment was scrubbed...&lt;br/&gt;Name: signature.asc&lt;br/&gt;Type: application/pgp-signature&lt;br/&gt;Size: 488 bytes&lt;br/&gt;Desc: not available&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20230207/8d59f739/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20230207/8d59f739/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T23:19:26Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsrha69tu9q35d74v50c8x65wjj8zdpsgzmp4ps6sy45lfpr3xdekszyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2kmp99yt</id>
    
      <title type="html">📅 Original date posted:2023-02-05 🗒️ Summary of this ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsrha69tu9q35d74v50c8x65wjj8zdpsgzmp4ps6sy45lfpr3xdekszyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2kmp99yt" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsvmun7ej859unpedsdnlq2ddxggzs6u8qm73avkd8sj3s2v9e3tps0e3a4p&#39;&gt;nevent1q…3a4p&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2023-02-05&lt;br/&gt;🗒️ Summary of this message: A proposal has been made to make OP_RETURN a free-for-all, given that users have found ways to store arbitrary amounts of data on-chain.&lt;br/&gt;📝 Original message:On Sat, Feb 04, 2023 at 07:11:35PM -0500, Russell O&amp;#39;Connor via bitcoin-dev wrote:&lt;br/&gt;&amp;gt; Since bytes in the witness are cheaper than bytes in the script pubkey,&lt;br/&gt;&amp;gt; there is a crossover point in data size where it will simply be cheaper to&lt;br/&gt;&amp;gt; use witness data.  Where that crossover point is depends on the finer&lt;br/&gt;&amp;gt; details of the overhead of the two methods, but you could make some&lt;br/&gt;&amp;gt; reasonable assumptions.  Such a calculation could form the basis of a&lt;br/&gt;&amp;gt; reasonable OP_RETURN proposal.  I don&amp;#39;t know if it would be persuasive, but&lt;br/&gt;&amp;gt; it would at least be coherent.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;I agree with Peter that, given that users have found ways to store arbitrary&lt;br/&gt;amounts of data on-chain if they really want, we might as well just make&lt;br/&gt;OP_RETURN a free-for-all.&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Andrew Poelstra&lt;br/&gt;Director of Research, Blockstream&lt;br/&gt;Email: apoelstra at wpsoftware.net&lt;br/&gt;Web:   &lt;a href=&#34;https://www.wpsoftware.net/andrew&#34;&gt;https://www.wpsoftware.net/andrew&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;The sun is always shining in space&lt;br/&gt;    -Justin Lewis-Webster&lt;br/&gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;A non-text attachment was scrubbed...&lt;br/&gt;Name: signature.asc&lt;br/&gt;Type: application/pgp-signature&lt;br/&gt;Size: 488 bytes&lt;br/&gt;Desc: not available&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20230205/210aac82/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20230205/210aac82/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T23:19:04Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqs2wh7z232c8hw6kdk6qfvw43zzcy4ud79t7pg2pykjrn5q97y9slqzyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2khxwkmc</id>
    
      <title type="html">📅 Original date posted:2023-02-01 🗒️ Summary of this ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqs2wh7z232c8hw6kdk6qfvw43zzcy4ud79t7pg2pykjrn5q97y9slqzyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2khxwkmc" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsdcrul0ud0tjeyvv24w425j5t6ptpwd2ezvehefqs7k6wek0a6n8sckzye3&#39;&gt;nevent1q…zye3&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2023-02-01&lt;br/&gt;🗒️ Summary of this message: A technical discussion on the efficiency of using OP_FALSE IF ... ENDIF versus OpPush &amp;lt;data&amp;gt; OpDrop for pushing large amounts of data into the Bitcoin blockchain.&lt;br/&gt;📝 Original message:On Tue, Jan 31, 2023 at 09:07:16PM -0500, Peter Todd via bitcoin-dev wrote:&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; On January 31, 2023 7:46:32 PM EST, Christopher Allen via bitcoin-dev &amp;lt;bitcoin-dev at lists.linuxfoundation.org&amp;gt; wrote:&lt;br/&gt;&amp;gt; &amp;gt;All other things being equal, which is better if you need to place a&lt;br/&gt;&amp;gt; &amp;gt;64-bytes into the Bitcoin blockchain? A traditional OP_RETURN or a spent&lt;br/&gt;&amp;gt; &amp;gt;taproot transaction such as:&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;OP_FALSE&lt;br/&gt;&amp;gt; &amp;gt;OP_IF&lt;br/&gt;&amp;gt; &amp;gt;OP_PUSH my64bytes&lt;br/&gt;&amp;gt; &amp;gt;OP_ENDIF&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; What&amp;#39;s wrong with OpPush &amp;lt;data&amp;gt; OpDrop?&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;This is a technical nit, but the reason is that &amp;lt;data&amp;gt; is limited to 520&lt;br/&gt;bytes (and I believe, 80 bytes by standardness in Taproot), so if you&lt;br/&gt;are pushing a ton of data and need multiple pushes, it&amp;#39;s more efficient&lt;br/&gt;to use FALSE IF ... ENDIF since you avoid the repeated DROPs.&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Andrew Poelstra&lt;br/&gt;Director of Research, Blockstream&lt;br/&gt;Email: apoelstra at wpsoftware.net&lt;br/&gt;Web:   &lt;a href=&#34;https://www.wpsoftware.net/andrew&#34;&gt;https://www.wpsoftware.net/andrew&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;The sun is always shining in space&lt;br/&gt;    -Justin Lewis-Webster&lt;br/&gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;A non-text attachment was scrubbed...&lt;br/&gt;Name: signature.asc&lt;br/&gt;Type: application/pgp-signature&lt;br/&gt;Size: 488 bytes&lt;br/&gt;Desc: not available&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20230201/4ed63515/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20230201/4ed63515/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T23:18:55Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsw2ezxc9jegy04mr4ztf6h6ha8mz5mdp3dcxuyvrd8fnuges7av9szyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2k775tff</id>
    
      <title type="html">📅 Original date posted:2023-01-27 🗒️ Summary of this ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsw2ezxc9jegy04mr4ztf6h6ha8mz5mdp3dcxuyvrd8fnuges7av9szyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2k775tff" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqszzsl78ytjnyplqywye75hcz456d075uc4gscdwvc7w5alznuud4s6kv2c0&#39;&gt;nevent1q…v2c0&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2023-01-27&lt;br/&gt;🗒️ Summary of this message: A developer is questioning the wisdom of allowing unlimited storage of NFT content as witness data on the Bitcoin blockchain, but there is no sensible way to prevent it. Arbitrary data storage in witnesses cannot be banned without incentivizing worse behavior or breaking legitimate use cases. While there is a reasonable argument that such data is toxic to the network, there is no principled way to stop it.&lt;br/&gt;📝 Original message:On Fri, Jan 27, 2023 at 09:44:10AM -0300, Robert Dickinson via bitcoin-dev wrote:&lt;br/&gt;&amp;gt; I&amp;#39;m curious what opinions exist and what actions might be taken by core&lt;br/&gt;&amp;gt; developers regarding storing unlimited amounts of NFT (or other?) content&lt;br/&gt;&amp;gt; as witness data (&lt;a href=&#34;https://docs.ordinals.com/inscriptions.html&#34;&gt;https://docs.ordinals.com/inscriptions.html&lt;/a&gt;). The ordinal&lt;br/&gt;&amp;gt; scheme is elegant and genius IMHO, but when I think about the future disk&lt;br/&gt;&amp;gt; use of all unpruned nodes, I question whether unlimited storage is wise to&lt;br/&gt;&amp;gt; allow for such use cases. Wouldn&amp;#39;t it be better to find a way to impose a&lt;br/&gt;&amp;gt; size limit similar to OP_RETURN for such inscriptions?&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; I think it would be useful to link a sat to a deed or other legal construct&lt;br/&gt;&amp;gt; for proof of ownership in the real world, so that real property can be&lt;br/&gt;&amp;gt; transferred on the blockchain using ordinals, but storing the property&lt;br/&gt;&amp;gt; itself on the blockchain seems nonsensical to me.&lt;br/&gt;&lt;br/&gt;Unfortunately, as near as I can tell there is no sensible way to prevent&lt;br/&gt;people from storing arbitrary data in witnesses without incentivizing&lt;br/&gt;even worse behavior and/or breaking legitimate use cases.&lt;br/&gt;&lt;br/&gt;If we ban &amp;#34;useless data&amp;#34; then it would be easy for would-be data storers&lt;br/&gt;to instead embed their data inside &amp;#34;useful&amp;#34; data such as dummy&lt;br/&gt;signatures or public keys. Doing so would incur a ~2x cost to them, but&lt;br/&gt;if 2x is enough to disincentivize storage, then there&amp;#39;s no need to have&lt;br/&gt;this discussion because they will will be forced to stop due to fee&lt;br/&gt;market competition anyway. (And if not, it means there is little demand&lt;br/&gt;for Bitcoin blockspace, so what&amp;#39;s the problem with paying miners to fill&lt;br/&gt;it with data that validators don&amp;#39;t even need to perform real computation&lt;br/&gt;on?).&lt;br/&gt;&lt;br/&gt;But if we were to ban &amp;#34;useful&amp;#34; data, for example, saying that a witness&lt;br/&gt;can&amp;#39;t have more than 20 signatures in it, then we are into the same&lt;br/&gt;problem we had pre-Taproot: that it is effectively impossible construct&lt;br/&gt;signing policies in a general and composeable way, because any software&lt;br/&gt;that does so will need to account for multiple independent limits. We&lt;br/&gt;deliberately replaced such limits with &amp;#34;you need to pay 50 weight for&lt;br/&gt;each signature&amp;#34; to makes this sort of analysis tractable.&lt;br/&gt;&lt;br/&gt;There&amp;#39;s a reasonable argument that this sort of data is toxic to the&lt;br/&gt;network, since even though &amp;#34;the market is willing to bear&amp;#34; the price of&lt;br/&gt;scares blockspace, if people were storing NFTs and other crap on the&lt;br/&gt;chain, then the Bitcoin fee market would become entangled with random&lt;br/&gt;pump&amp;amp;dump markets, undermining legitimate use cases and potentially&lt;br/&gt;preventing new technology like LN from gaining a strong foothold. But&lt;br/&gt;from a technical point of view, I don&amp;#39;t see any principled way to stop&lt;br/&gt;this.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Andrew Poelstra&lt;br/&gt;Director of Research, Blockstream&lt;br/&gt;Email: apoelstra at wpsoftware.net&lt;br/&gt;Web:   &lt;a href=&#34;https://www.wpsoftware.net/andrew&#34;&gt;https://www.wpsoftware.net/andrew&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;The sun is always shining in space&lt;br/&gt;    -Justin Lewis-Webster&lt;br/&gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;A non-text attachment was scrubbed...&lt;br/&gt;Name: signature.asc&lt;br/&gt;Type: application/pgp-signature&lt;br/&gt;Size: 488 bytes&lt;br/&gt;Desc: not available&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20230127/1ca9b7cf/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20230127/1ca9b7cf/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T23:18:48Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsz3qf28kqve58c8yvs4k0gqwpxhqwlnaz0jzfnxj3h2c6s3xckqfszyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2klw388u</id>
    
      <title type="html">📅 Original date posted:2022-10-18 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsz3qf28kqve58c8yvs4k0gqwpxhqwlnaz0jzfnxj3h2c6s3xckqfszyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2klw388u" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsrdzhh78p33r6e3spjschlr2hlkgyqzr6c3p8d7apkktgfzhw85vqk67y80&#39;&gt;nevent1q…7y80&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2022-10-18&lt;br/&gt;📝 Original message:On Mon, Oct 17, 2022 at 07:07:07PM -0500, Bryan Bishop via bitcoin-dev wrote:&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Isn&amp;#39;t this the same problem but now for copy-pasting pubkeys instead of an&lt;br/&gt;&amp;gt; address?&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;No, as I understand the proposal, the &amp;#34;public key&amp;#34; held by the wallet is simply&lt;br/&gt;a signing key used to authenticate addresses, and never leaves the wallet. Yes,&lt;br/&gt;if the wallet&amp;#39;s own memory is compromised, it can be tricked into accepting bad&lt;br/&gt;addresses, but this is much much harder than compromising data on the clipboard,&lt;br/&gt;which basically any application can do without any &amp;#34;real&amp;#34; exploits or special&lt;br/&gt;permissions.&lt;br/&gt;&lt;br/&gt;As an extreme, this proposal could be run on a hardware wallet which had some&lt;br/&gt;out-of-band way to obtain and authenticate public keys (similar to Signal QR&lt;br/&gt;codes).&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Andrew Poelstra&lt;br/&gt;Director of Research, Blockstream&lt;br/&gt;Email: apoelstra at wpsoftware.net&lt;br/&gt;Web:   &lt;a href=&#34;https://www.wpsoftware.net/andrew&#34;&gt;https://www.wpsoftware.net/andrew&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;The sun is always shining in space&lt;br/&gt;    -Justin Lewis-Webster&lt;br/&gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;A non-text attachment was scrubbed...&lt;br/&gt;Name: signature.asc&lt;br/&gt;Type: application/pgp-signature&lt;br/&gt;Size: 488 bytes&lt;br/&gt;Desc: not available&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20221018/4b4311f4/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20221018/4b4311f4/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T23:14:05Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsw0q8xlmsldtlmwjwh0draxuujgxct9mglg8p0yjp3ag2n0ntu6zgzyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2k9zyr8q</id>
    
      <title type="html">📅 Original date posted:2022-09-29 📝 Original ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsw0q8xlmsldtlmwjwh0draxuujgxct9mglg8p0yjp3ag2n0ntu6zgzyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2k9zyr8q" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs283pj29szupeucj86ptrpeqdqgzrd0t0cv7rn8wcalgplw4l285c2gnh4d&#39;&gt;nevent1q…nh4d&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2022-09-29&lt;br/&gt;📝 Original message:I&amp;#39;m really happy to see this discussion. I don&amp;#39;t have any comments on the spec&lt;br/&gt;because I think I&amp;#39;d have to be more in-the-weeds trying to implement a hww to&lt;br/&gt;understand how well it works for realistic use cases. But a strong concept-ACk&lt;br/&gt;from me and thanks to Salvatore for exploring this!&lt;br/&gt;&lt;br/&gt;On Mon, May 09, 2022 at 11:36:47AM &#43;0000, darosior via bitcoin-dev wrote:&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Unrelated question, since you mentioned `musig2` descriptors in this context. I thought Musig2 wasn&amp;#39;t really&lt;br/&gt;&amp;gt; feasible for hardware signing devices, especially stateless ones. Do you think/know whether it is actually&lt;br/&gt;&amp;gt; possible for a HW to take part in a Musig2?&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;As Salvatore mentioned in his reply, there are a couple ways that hwws can deal&lt;br/&gt;with musig2 -- specifically, having state (and I believe you can get away with&lt;br/&gt;as little state as a single monotonic counter) or having a RNG which is reliable&lt;br/&gt;enough that it at least won&amp;#39;t repeat values.&lt;br/&gt;&lt;br/&gt;Because these aren&amp;#39;t blockers for all hwws, even if they are blockers for some,&lt;br/&gt;I&amp;#39;d really like to see musig2 support in these protocols, or at least for musig2&lt;br/&gt;to be considered in their design.&lt;br/&gt; &lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Andrew Poelstra&lt;br/&gt;Director of Research, Blockstream&lt;br/&gt;Email: apoelstra at wpsoftware.net&lt;br/&gt;Web:   &lt;a href=&#34;https://www.wpsoftware.net/andrew&#34;&gt;https://www.wpsoftware.net/andrew&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;The sun is always shining in space&lt;br/&gt;    -Justin Lewis-Webster&lt;br/&gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;A non-text attachment was scrubbed...&lt;br/&gt;Name: signature.asc&lt;br/&gt;Type: application/pgp-signature&lt;br/&gt;Size: 488 bytes&lt;br/&gt;Desc: not available&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20220929/b9bc0273/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20220929/b9bc0273/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T23:13:58Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsygnz2la3esrt29qf3xmjvph2qqe7all3lz5z53y875hw68j00glgzyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2klmap35</id>
    
      <title type="html">📅 Original date posted:2022-06-14 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsygnz2la3esrt29qf3xmjvph2qqe7all3lz5z53y875hw68j00glgzyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2klmap35" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsz9yfzpdf0agz5gdxanmgux85uudee4z5sp85pfz85kqplnylgsycspzxjc&#39;&gt;nevent1q…zxjc&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2022-06-14&lt;br/&gt;📝 Original message:On Tue, Jun 14, 2022 at 01:15:08PM -0400, Undiscussed Horrific Abuse, One Victim of Many via bitcoin-dev wrote:&lt;br/&gt;&amp;gt; I&amp;#39;m replying to Peter, skipping the other emails.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; I perceive all these emails as disruptive trolling, ignoring the&lt;br/&gt;&amp;gt; importance of real timestamping, while handwaving about things that&lt;br/&gt;&amp;gt; are roughly false and harmful.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Since the start of cryptocurrency, Bitcoin has been used to write&lt;br/&gt;&amp;gt; timestamps that stay intact despite malicious action to arbitrary&lt;br/&gt;&amp;gt; systems and records, showing the earliest on-chain publication of&lt;br/&gt;&amp;gt; data. It seems misleading that OTS does not do that, when it is such a&lt;br/&gt;&amp;gt; prominent system.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;Please be cautious with tone and when assuming bad faith. I don&amp;#39;t believe&lt;br/&gt;that Peter is trolling. Also, as politely as I can, when something like&lt;br/&gt;OTS whose model is dead-simple, well-documented, and has been running for&lt;br/&gt;years providing significant value to many people, comes under attack for&lt;br/&gt;being underspecified or failing to do what it says ... this is a&lt;br/&gt;surprising claim, to say the least.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;After talking to a few people offline, all of whom are baffled at this&lt;br/&gt;entire conversation, I think the issue might come down to the way that&lt;br/&gt;people interpret &amp;#34;timestamping&amp;#34;.&lt;br/&gt;&lt;br/&gt;If you believe that &amp;#34;timestamping&amp;#34; means providing a verifiable ordering&lt;br/&gt;to events, then of course OTS does not accomplish this, nor has it ever&lt;br/&gt;claimed to. If you think that &amp;#34;timestamping&amp;#34; means proving that some&lt;br/&gt;data existed at a particular time, then this is exactly what OTS does.&lt;br/&gt;&lt;br/&gt;Personally -- and I suspect this is true of Peter as well -- I have always&lt;br/&gt;read the word as having the latter meaning, and it never occurred to me&lt;br/&gt;until now that others might have a different interpretation.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;I apologize for contributing to a thread that is getting a bit out of hand,&lt;br/&gt;but I hope this can help the different parties see where the confusion is.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Andrew Poelstra&lt;br/&gt;Director of Research, Blockstream&lt;br/&gt;Email: apoelstra at wpsoftware.net&lt;br/&gt;Web:   &lt;a href=&#34;https://www.wpsoftware.net/andrew&#34;&gt;https://www.wpsoftware.net/andrew&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;The sun is always shining in space&lt;br/&gt;    -Justin Lewis-Webster&lt;br/&gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;A non-text attachment was scrubbed...&lt;br/&gt;Name: signature.asc&lt;br/&gt;Type: application/pgp-signature&lt;br/&gt;Size: 488 bytes&lt;br/&gt;Desc: not available&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20220614/023b2f8a/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20220614/023b2f8a/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T23:10:42Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqs09uzyv6e4t3vzyhf8kcm43tx9uq7ma57c77n2pstpmst30erccgqzyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2kzpy9ve</id>
    
      <title type="html">📅 Original date posted:2021-08-24 📝 Original ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqs09uzyv6e4t3vzyhf8kcm43tx9uq7ma57c77n2pstpmst30erccgqzyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2kzpy9ve" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsxy57jm4v2n04rpndqr77p7rwp9e94a6x3slv5lk0m3dwah5m5txqm77n2z&#39;&gt;nevent1q…7n2z&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2021-08-24&lt;br/&gt;📝 Original message:Simplicity does not compile to Bitcoin Script, and Sapio assumes extensions&lt;br/&gt;to Bitcoin Script that are not currently part of the consensus code.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;On Tue, Aug 24, 2021 at 03:36:29PM &#43;0800, Gijs van Dam via bitcoin-dev wrote:&lt;br/&gt;&amp;gt; Hi,&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Bitcoin does not have a virtual machine. But you do have [Miniscript][1],&lt;br/&gt;&amp;gt; [Min.sc][2], [Simplicity][3] and [Sapio][4]. These are all higher level&lt;br/&gt;&amp;gt; languages that compile to Bitcoin Script. Sapio is &amp;#34;just&amp;#34; Rust, so that&lt;br/&gt;&amp;gt; might fit your setting best.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; By the way, this question also has an answer on [Bitcoin Stackexchange][5]&lt;br/&gt;&amp;gt; which is a great resource for questions like this.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; [1]: &lt;a href=&#34;http://bitcoin.sipa.be/miniscript/&#34;&gt;http://bitcoin.sipa.be/miniscript/&lt;/a&gt;&lt;br/&gt;&amp;gt; [2]: &lt;a href=&#34;https://min.sc/&#34;&gt;https://min.sc/&lt;/a&gt;&lt;br/&gt;&amp;gt; [3]: &lt;a href=&#34;https://github.com/ElementsProject/simplicity&#34;&gt;https://github.com/ElementsProject/simplicity&lt;/a&gt;&lt;br/&gt;&amp;gt; [4]: &lt;a href=&#34;https://learn.sapio-lang.org/&#34;&gt;https://learn.sapio-lang.org/&lt;/a&gt;&lt;br/&gt;&amp;gt; [5]:&lt;br/&gt;&amp;gt; &lt;a href=&#34;https://bitcoin.stackexchange.com/questions/108261/is-there-a-tool-like-ethereum-evm-at-present-for-bitcoin-script&#34;&gt;https://bitcoin.stackexchange.com/questions/108261/is-there-a-tool-like-ethereum-evm-at-present-for-bitcoin-script&lt;/a&gt;&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; On Tue, Aug 24, 2021 at 2:55 PM Null Null via bitcoin-dev &amp;lt;&lt;br/&gt;&amp;gt; bitcoin-dev at lists.linuxfoundation.org&amp;gt; wrote:&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; &amp;gt; Hi all,&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; Is there a tool like Ethereum EVM at present? Users can write bitcoin&lt;br/&gt;&amp;gt; &amp;gt; scripts in a syntax just like python(or like other programming language);&lt;br/&gt;&amp;gt; &amp;gt; through this tool, they can be translated into bitcoin original scripts; it&lt;br/&gt;&amp;gt; &amp;gt; sounds like a new programming language has been invented.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; In my opinion， Bitcoin script programming is based on reverse Polish&lt;br/&gt;&amp;gt; &amp;gt; expression; this is not friendly to programmers;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; In fact, Bitcoin&amp;#39;s opcode expression ability is very rich, and it may be&lt;br/&gt;&amp;gt; &amp;gt; unfriendly, which has affected the promotion of Bitcoin in the technical&lt;br/&gt;&amp;gt; &amp;gt; community.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; Hope for hearing some voice about this.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; Best wish.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; _______________________________________________&lt;br/&gt;&amp;gt; &amp;gt; bitcoin-dev mailing list&lt;br/&gt;&amp;gt; &amp;gt; bitcoin-dev at lists.linuxfoundation.org&lt;br/&gt;&amp;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; &amp;gt;&lt;br/&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;&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Andrew Poelstra&lt;br/&gt;Director of Research, Blockstream&lt;br/&gt;Email: apoelstra at wpsoftware.net&lt;br/&gt;Web:   &lt;a href=&#34;https://www.wpsoftware.net/andrew&#34;&gt;https://www.wpsoftware.net/andrew&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;The sun is always shining in space&lt;br/&gt;    -Justin Lewis-Webster
    </content>
    <updated>2023-06-07T22:58:14Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqszm3vxrpxs9v7w3uuyxzjwz8whr5dhxkqatjf3cv97phmsp7de0pgzyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2kqrql3w</id>
    
      <title type="html">📅 Original date posted:2021-04-16 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqszm3vxrpxs9v7w3uuyxzjwz8whr5dhxkqatjf3cv97phmsp7de0pgzyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2kqrql3w" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsd8sjftx632f4466kmry508m03ze6payn3sls6l4uez4he8y4uvpsltxyc7&#39;&gt;nevent1q…xyc7&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2021-04-16&lt;br/&gt;📝 Original message:On Fri, Apr 16, 2021 at 03:34:33PM &#43;0000, Christopher Gilliard via bitcoin-dev wrote:&lt;br/&gt;&amp;gt; This sounds like a good justification to remove the legacy multi-signature&lt;br/&gt;&amp;gt; capabilities as well.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;Doing so would confiscate coins, and also it is impossible to remove&lt;br/&gt;legacy multisignatures in general without gutting almost all of Script.&lt;br/&gt; &lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; Thus, given that it is otherwise impossible to stop people from putting&lt;br/&gt;&amp;gt; arbitrary data values into their transactions, then we rather encourage&lt;br/&gt;&amp;gt; people who are going to encode their arbitrary data in transaction to use&lt;br/&gt;&amp;gt; the OP_RETURN outputs in order to avoid UTXO bloat.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; You can&amp;#39;t make it completely impossible to do that, but you can make it&lt;br/&gt;&amp;gt; harder and at the same time you can provide a solution for doing what they&lt;br/&gt;&amp;gt; want to do.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;I don&amp;#39;t think you can even make it harder in a meaningful sense. There is&lt;br/&gt;too much flexibility in transaction data.&lt;br/&gt; &lt;br/&gt;-- &lt;br/&gt;Andrew Poelstra&lt;br/&gt;Director of Research, Blockstream&lt;br/&gt;Email: apoelstra at wpsoftware.net&lt;br/&gt;Web:   &lt;a href=&#34;https://www.wpsoftware.net/andrew&#34;&gt;https://www.wpsoftware.net/andrew&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;The sun is always shining in space&lt;br/&gt;    -Justin Lewis-Webster
    </content>
    <updated>2023-06-07T22:51:43Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsyhh8r2l68afnqsw6xne852dwn37nz524whnprhjnnwhynwdzpq7gzyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2k9d5vsc</id>
    
      <title type="html">📅 Original date posted:2021-04-08 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsyhh8r2l68afnqsw6xne852dwn37nz524whnprhjnnwhynwdzpq7gzyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2k9d5vsc" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs0rswsd0r9k8j5q7ps6mlz077cx5sqzflgjz4w2yeavajhcc7l2wgft2jyw&#39;&gt;nevent1q…2jyw&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2021-04-08&lt;br/&gt;📝 Original message:On Thu, Apr 08, 2021 at 12:40:42PM &#43;0100, Michael Folkson via bitcoin-dev wrote:&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; All of this makes me extremely uncomfortable and I dread to think what&lt;br/&gt;&amp;gt; individuals and businesses all over the world who have plans to&lt;br/&gt;&amp;gt; utilize and build on Taproot are making of all of this. As an&lt;br/&gt;&amp;gt; individual I would like to distance myself from this circus. I will&lt;br/&gt;&amp;gt; try to keep the mailing list informed though of further developments&lt;br/&gt;&amp;gt; re Speedy Trial in Core or progress on an alternative client.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;Thank you for your updates.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;For what it&amp;#39;s worth, as somebody who wants to use Taproot I don&amp;#39;t care *at&lt;br/&gt;all* about activation parameters, and I especially don&amp;#39;t care about block&lt;br/&gt;height vs MTP.&lt;br/&gt;&lt;br/&gt;If a coin toss is what it takes for people to move past this that&amp;#39;s fine&lt;br/&gt;by me.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt; &lt;br/&gt;-- &lt;br/&gt;Andrew Poelstra&lt;br/&gt;Director of Research, Blockstream&lt;br/&gt;Email: apoelstra at wpsoftware.net&lt;br/&gt;Web:   &lt;a href=&#34;https://www.wpsoftware.net/andrew&#34;&gt;https://www.wpsoftware.net/andrew&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;The sun is always shining in space&lt;br/&gt;    -Justin Lewis-Webster
    </content>
    <updated>2023-06-07T22:51:32Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqswl48p5zc5r97lj2ucaz4rk4zhjxdtp9e9l7p4duupmnsx04dwewqzyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2kte4hjq</id>
    
      <title type="html">📅 Original date posted:2021-04-16 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqswl48p5zc5r97lj2ucaz4rk4zhjxdtp9e9l7p4duupmnsx04dwewqzyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2kte4hjq" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsz44k3k65egndhdxg80302s4uwrky8krsgg24lr7gv4z4fut4k2sc4sthrc&#39;&gt;nevent1q…thrc&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2021-04-16&lt;br/&gt;📝 Original message:On Fri, Apr 16, 2021 at 03:34:33PM &#43;0000, Christopher Gilliard via bitcoin-dev wrote:&lt;br/&gt;&amp;gt; This sounds like a good justification to remove the legacy multi-signature&lt;br/&gt;&amp;gt; capabilities as well.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;Doing so would confiscate coins, and also it is impossible to remove&lt;br/&gt;legacy multisignatures in general without gutting almost all of Script.&lt;br/&gt; &lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; Thus, given that it is otherwise impossible to stop people from putting&lt;br/&gt;&amp;gt; arbitrary data values into their transactions, then we rather encourage&lt;br/&gt;&amp;gt; people who are going to encode their arbitrary data in transaction to use&lt;br/&gt;&amp;gt; the OP_RETURN outputs in order to avoid UTXO bloat.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; You can&amp;#39;t make it completely impossible to do that, but you can make it&lt;br/&gt;&amp;gt; harder and at the same time you can provide a solution for doing what they&lt;br/&gt;&amp;gt; want to do.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;I don&amp;#39;t think you can even make it harder in a meaningful sense. There is&lt;br/&gt;too much flexibility in transaction data.&lt;br/&gt; &lt;br/&gt;-- &lt;br/&gt;Andrew Poelstra&lt;br/&gt;Director of Research, Blockstream&lt;br/&gt;Email: apoelstra at wpsoftware.net&lt;br/&gt;Web:   &lt;a href=&#34;https://www.wpsoftware.net/andrew&#34;&gt;https://www.wpsoftware.net/andrew&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;The sun is always shining in space&lt;br/&gt;    -Justin Lewis-Webster
    </content>
    <updated>2023-06-07T18:31:35Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqs0m7ccdqr4h8j9ljjvredlxr0wdf59vz9zf4n22uwu6m3ymx3v0uczyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2kgdht8v</id>
    
      <title type="html">📅 Original date posted:2021-03-16 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqs0m7ccdqr4h8j9ljjvredlxr0wdf59vz9zf4n22uwu6m3ymx3v0uczyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2kgdht8v" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs82pa08p74uqfhlxmhv6zf8cnmzvj0340prrh4qywnyd7aw8yy6fqgpmg5j&#39;&gt;nevent1q…mg5j&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2021-03-16&lt;br/&gt;📝 Original message:On Tue, Mar 16, 2021 at 03:10:21PM &#43;0100, Andrea via bitcoin-dev wrote:&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Hi! Sorry for the OT, could you provide some references to ring signatures&lt;br/&gt;&amp;gt; over/for/via taproot (I mean the schema or something like that)? And what is&lt;br/&gt;&amp;gt; &amp;#34;Provisions&amp;#34; (the capital letter makes me think it&amp;#39;s a product/technology)?&lt;br/&gt;&amp;gt; I&amp;#39;m a rookie following this mailing since just a few months...&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;Thanks for posting such a positive message in an otherwise tense thread :)&lt;br/&gt;&lt;br/&gt;Provisions is a scheme for providing proof of ownership of funds, developed&lt;br/&gt;by Dagher et al in 2015 at &lt;a href=&#34;https://eprint.iacr.org/2015/1008&#34;&gt;https://eprint.iacr.org/2015/1008&lt;/a&gt; . The way it&lt;br/&gt;works is to collect all of the Bitcoin outputs which have exposed/known&lt;br/&gt;public keys then associate to these keys a Pedersen commitment which commits&lt;br/&gt;to the outputs&amp;#39; amounts in a homomorphic way.&lt;br/&gt;&lt;br/&gt;Homomorphic means that even though the commitments hide what the original&lt;br/&gt;amounts are, anyone can add them together (in some sense) to get a new&lt;br/&gt;commitment to the sum of the original amounts.&lt;br/&gt;&lt;br/&gt;So Provisions is essentially a zero-knowledge proof of the following statement&lt;br/&gt;&lt;br/&gt;    1. I have a commitment to &amp;gt;100BTC (or whatever)...&lt;br/&gt;    2. ...which is a sum of commitments of actual UTXO values...&lt;br/&gt;    3. ...where these UTXOs come from the set of known-public-key UTXOs...&lt;br/&gt;    4. ...and I am able to sign with the public keys associated to them.&lt;br/&gt;&lt;br/&gt;which proves ownership of some amount of BTC, without revealing which specific&lt;br/&gt;UTXOs were involved. This zero-knowledge proof can be done fairly efficiently&lt;br/&gt;by exploiting the structure of EC public keys and Pedersen commitments.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Unfortunately, most unspent Bitcoin outputs do not have known public keys,&lt;br/&gt;which means that you can only do a Provisions proof using a small anonymity&lt;br/&gt;set. However, all Taproot outputs, by virtue of having exposed public keys&lt;br/&gt;(which is the point under contention in this thread), will be in the set of&lt;br/&gt;exposed-public-key UTXOs, allowing people to do Provisions proofs where&lt;br/&gt;their anonymity set consists of a large proportion of active coins.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;BTW, even without Provisions, there are some similar and simpler things you&lt;br/&gt;can do with Taproot keys along these lines. See for example&lt;br/&gt;&lt;a href=&#34;https://twitter.com/n1ckler/status/1334240709814136833&#34;&gt;https://twitter.com/n1ckler/status/1334240709814136833&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Andrew Poelstra&lt;br/&gt;Director of Research, Blockstream&lt;br/&gt;Email: apoelstra at wpsoftware.net&lt;br/&gt;Web:   &lt;a href=&#34;https://www.wpsoftware.net/andrew&#34;&gt;https://www.wpsoftware.net/andrew&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;The sun is always shining in space&lt;br/&gt;    -Justin Lewis-Webster&lt;br/&gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;A non-text attachment was scrubbed...&lt;br/&gt;Name: signature.asc&lt;br/&gt;Type: application/pgp-signature&lt;br/&gt;Size: 488 bytes&lt;br/&gt;Desc: not available&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20210316/a17a0bd9/attachment-0001.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20210316/a17a0bd9/attachment-0001.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T18:30:57Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqszcp8zl89prqk4zyxxdvmvfvlvhpk307sdu7je0c3kqh4c3hn260czyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2kealupg</id>
    
      <title type="html">📅 Original date posted:2021-03-15 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqszcp8zl89prqk4zyxxdvmvfvlvhpk307sdu7je0c3kqh4c3hn260czyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2kealupg" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs0thp5l2q6karm90dlugg0dzdvhu3ttd6nqdcfapl5td9q5hujzmgz23tvv&#39;&gt;nevent1q…3tvv&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2021-03-15&lt;br/&gt;📝 Original message:On Mon, Mar 15, 2021 at 09:48:15PM &#43;0000, Luke Dashjr via bitcoin-dev wrote:&lt;br/&gt;&amp;gt; Also, what I didn&amp;#39;t know myself until today, is that we do not actually gain &lt;br/&gt;&amp;gt; anything from this: the features proposed to make use of the raw keys being &lt;br/&gt;&amp;gt; public prior to spending can be implemented with hashed keys as well.&lt;br/&gt;&amp;gt; It would use significantly more CPU time and bandwidth (between private &lt;br/&gt;&amp;gt; parties, not on-chain), but there should be no shortage of that for anyone &lt;br/&gt;&amp;gt; running a full node (indeed, CPU time is freed up by Taproot!); at worst, it &lt;br/&gt;&amp;gt; would create an incentive for more people to use their own full node, which &lt;br/&gt;&amp;gt; is a good thing!&lt;br/&gt;&amp;gt; &lt;br/&gt;&lt;br/&gt;&amp;#34;No gain&amp;#34; except to save significant CPU time and bandwidth? As Matt points&lt;br/&gt;out there is also a storage hit (unless you want to _really_ waste CPU time&lt;br/&gt;by using pubkey recovery, eliminating any hope of batch validation while&lt;br/&gt;introducing a new dependency on an algorithm with a very unclear patent&lt;br/&gt;story).&lt;br/&gt;&lt;br/&gt;Having exposed keys also lets you do ring signatures over outputs, creating the&lt;br/&gt;ability to do private proof of funds via Provisions.&lt;br/&gt;&lt;br/&gt;&amp;gt; Despite this, I still don&amp;#39;t think it&amp;#39;s a reason to NACK Taproot: it should be &lt;br/&gt;&amp;gt; fairly trivial to add a hash on top in an additional softfork and fix this.&lt;br/&gt;&amp;gt; &lt;br/&gt;&lt;br/&gt;This would make Bitcoin strictly worse.&lt;br/&gt;&lt;br/&gt;&amp;gt; In addition to the points made by Mark, I also want to add two more, in &lt;br/&gt;&amp;gt; response to Pieter&amp;#39;s &amp;#34;you can&amp;#39;t claim much security if 37% of the supply is &lt;br/&gt;&amp;gt; at risk&amp;#34; argument. This argument is based in part on the fact that many &lt;br/&gt;&amp;gt; people reuse Bitcoin invoice addresses.&lt;br/&gt;&amp;gt; &lt;br/&gt;&lt;br/&gt;37% is a dramatic understatement. Every address which is derived using BIP32&lt;br/&gt;should be assumed compromised to a QC attacker because xpubs are not treated&lt;br/&gt;like secret key material and are trivial to e.g. extract from hardware wallets&lt;br/&gt;or PSBTs. I expect the real number is close to 100%.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;In any case, Taproot keys, when used according to the recommendation in&lt;br/&gt;BIP-0341, are already hashes of their internal keys, so (a) Taproot outputs&lt;br/&gt;actually have better quantum resistance than legacy outputs; and (b) adding&lt;br/&gt;another hash would be strictly redundant.&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Andrew Poelstra&lt;br/&gt;Director of Research, Blockstream&lt;br/&gt;Email: apoelstra at wpsoftware.net&lt;br/&gt;Web:   &lt;a href=&#34;https://www.wpsoftware.net/andrew&#34;&gt;https://www.wpsoftware.net/andrew&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;The sun is always shining in space&lt;br/&gt;    -Justin Lewis-Webster&lt;br/&gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;A non-text attachment was scrubbed...&lt;br/&gt;Name: signature.asc&lt;br/&gt;Type: application/pgp-signature&lt;br/&gt;Size: 488 bytes&lt;br/&gt;Desc: not available&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20210315/386e13df/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20210315/386e13df/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T18:30:55Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsdh88fddz5hcmyfpxjh07qvuwq5hvpmgmrg5yqkp0fyqrpx90fjuczyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2knxl4k9</id>
    
      <title type="html">📅 Original date posted:2021-03-16 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsdh88fddz5hcmyfpxjh07qvuwq5hvpmgmrg5yqkp0fyqrpx90fjuczyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2knxl4k9" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsq955c7yh3yxhz5wqd6cxkgqpdy7kgu8shkydnmhvvu6jq9qt9pjsjefdgv&#39;&gt;nevent1q…fdgv&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2021-03-16&lt;br/&gt;📝 Original message:On Tue, Mar 16, 2021 at 03:44:25AM &#43;0000, Luke Dashjr wrote:&lt;br/&gt;&amp;gt; (To reiterate: I do not intend any of this as a NACK of Taproot.)&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;Thanks, although it&amp;#39;s still somewhat frustrating to be rehashing this&lt;br/&gt;discussion again after so many years.&lt;br/&gt; &lt;br/&gt;&amp;gt; On Monday 15 March 2021 23:12:18 Andrew Poelstra wrote:&lt;br/&gt;&amp;gt; &amp;gt; &amp;#34;No gain&amp;#34; except to save significant CPU time and bandwidth?&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; The CPU time is localised to involved nodes, and (correct me if I&amp;#39;m wrong) &lt;br/&gt;&amp;gt; trivial in comparison to what is required to run a full node in the first &lt;br/&gt;&amp;gt; place. I&amp;#39;m not sure how it looks with bandwidth.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;I really can&amp;#39;t parse what &amp;#34;localized to involved nodes&amp;#34; means. All Bitcoin&lt;br/&gt;nodes will be affected. Right now for nodes with sufficient bandwidth, signature&lt;br/&gt;validation is the slowest part of validating transactions, which is why it&lt;br/&gt;is disabled for the bulk of the chain during IBD. Taproot, by virtue of&lt;br/&gt;enabling batch verification, would give a 2-3x speedup when validating the&lt;br/&gt;same number of signatures.&lt;br/&gt; &lt;br/&gt;&amp;gt; &amp;gt; Having exposed keys also lets you do ring signatures over outputs, creating&lt;br/&gt;&amp;gt; &amp;gt; the ability to do private proof of funds via Provisions.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; But you can also do comparable proofs behind a hash with Bulletproofs, right?&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;Yes, if you are willing to accept independent &amp;gt;100000x slowdowns on proving,&lt;br/&gt;verification and code review.&lt;br/&gt; &lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; Despite this, I still don&amp;#39;t think it&amp;#39;s a reason to NACK Taproot: it&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; should be fairly trivial to add a hash on top in an additional softfork&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; and fix this.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; This would make Bitcoin strictly worse.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; How so? People could just not use it if they don&amp;#39;t care, right?&lt;br/&gt;&amp;gt; The alternative (if people care enough) is that those concerned about quantum &lt;br/&gt;&amp;gt; risk would be forced to forego the benefits of Taproot and stick to p2pkh or &lt;br/&gt;&amp;gt; such, which seems like an artificial punishment.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;People who do use it will reduce their privacy set, reduce the privacy set of&lt;br/&gt;people who aren&amp;#39;t using it, create confusion and delays for people implementing&lt;br/&gt;Taproot, and slow down Bitcoin nodes who would have to validate the extra&lt;br/&gt;material.&lt;br/&gt; &lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; In addition to the points made by Mark, I also want to add two more, in&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; response to Pieter&amp;#39;s &amp;#34;you can&amp;#39;t claim much security if 37% of the supply&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; is at risk&amp;#34; argument. This argument is based in part on the fact that&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; many people reuse Bitcoin invoice addresses.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; 37% is a dramatic understatement. Every address which is derived using&lt;br/&gt;&amp;gt; &amp;gt; BIP32 should be assumed compromised to a QC attacker because xpubs are not&lt;br/&gt;&amp;gt; &amp;gt; treated like secret key material and are trivial to e.g. extract from&lt;br/&gt;&amp;gt; &amp;gt; hardware wallets or PSBTs. I expect the real number is close to 100%.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; xpubs should be treated like secret key material IMO.&lt;br/&gt;&amp;gt; &lt;br/&gt;&lt;br/&gt;Your opinion is noted. This is not how xpubs are, in reality, treated. And&lt;br/&gt;it would make them significantly less useful if you could no longer share&lt;br/&gt;descriptors with people you would like to do multiparty transactions with.&lt;br/&gt;&lt;br/&gt;&amp;gt; A quantum attacker would need to compromise your PC to attack a hardware &lt;br/&gt;&amp;gt; wallet, right?&lt;br/&gt;&amp;gt; &lt;br/&gt;&lt;br/&gt;No, I expect you could get xpubs out of hardware wallets using any of the&lt;br/&gt;web endpoints provided by hardware wallet vendors, or by asking it to update&lt;br/&gt;a PSBT with any of its scriptpubkeys.&lt;br/&gt;&lt;br/&gt;&amp;gt; &amp;gt; In any case, Taproot keys, when used according to the recommendation in&lt;br/&gt;&amp;gt; &amp;gt; BIP-0341, are already hashes of their internal keys, so (a) Taproot outputs&lt;br/&gt;&amp;gt; &amp;gt; actually have better quantum resistance than legacy outputs; and (b) adding&lt;br/&gt;&amp;gt; &amp;gt; another hash would be strictly redundant.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; It not only stops the attacker from obtaining the original key, but also &lt;br/&gt;&amp;gt; prevents creating a new private key that can spend the output?&lt;br/&gt;&amp;gt; &lt;br/&gt;&lt;br/&gt;I don&amp;#39;t know what you mean by this. If the original key is usable, i.e. a QC&lt;br/&gt;has appeared overnight, then Bitcoin is screwed. (For that matter, the same is&lt;br/&gt;true if there is an overnight break in SHA2, or ECDSA, or any other major&lt;br/&gt;component of Bitcoin. Fortunately this is not how cryptographic breaks have&lt;br/&gt;historically appeared.) There is no new private key that could be created.&lt;br/&gt;&lt;br/&gt;If there is a QC where we have some warning, then we need to disable all EC&lt;br/&gt;operations in Script, including keypath spends of Taproot outputs, and this&lt;br/&gt;would be true with or without the redundant extra hash.&lt;br/&gt;&lt;br/&gt;Taproot, with or without the redundant hash, has a few distinct benefits over&lt;br/&gt;legacy outputs in this scenario:&lt;br/&gt;&lt;br/&gt;  * Taproot keys are hashes of semi-secret data (at least as secret as xpubs)&lt;br/&gt;    in a well-defined and simple way, by virtue of committing to an internal&lt;br/&gt;    key and some script (usually unspendable)&lt;br/&gt;  * By adding secret data to the script, users can provide extra data to prove&lt;br/&gt;    in a QC-hard way, even if their internal key is compromised&lt;br/&gt;  * Taproot keys can be chosen to be provably unspendable except by a DL break,&lt;br/&gt;    as David Harding points out, by using a NUMS point as an internal key.&lt;br/&gt;&lt;br/&gt;None of these factors are improved by adding an extra hash.&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Andrew Poelstra&lt;br/&gt;Director of Research, Blockstream&lt;br/&gt;Email: apoelstra at wpsoftware.net&lt;br/&gt;Web:   &lt;a href=&#34;https://www.wpsoftware.net/andrew&#34;&gt;https://www.wpsoftware.net/andrew&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;The sun is always shining in space&lt;br/&gt;    -Justin Lewis-Webster&lt;br/&gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;A non-text attachment was scrubbed...&lt;br/&gt;Name: signature.asc&lt;br/&gt;Type: application/pgp-signature&lt;br/&gt;Size: 488 bytes&lt;br/&gt;Desc: not available&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20210316/75447235/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20210316/75447235/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T18:30:54Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqs05yxzuxh8resc7ysx79ejn6lgzz240wddptjsgchawpuh6mfa47szyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2k6pfm5g</id>
    
      <title type="html">📅 Original date posted:2020-12-23 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqs05yxzuxh8resc7ysx79ejn6lgzz240wddptjsgchawpuh6mfa47szyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2k6pfm5g" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsyg8p9s0xvyrwtzfj78tllzfc7zj0qsfg4m3jxan4578tm3dn8n3qmepvdy&#39;&gt;nevent1q…pvdy&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2020-12-23&lt;br/&gt;📝 Original message:On Tue, Dec 22, 2020 at 12:22:37AM &#43;0000, Pieter Wuille via bitcoin-dev wrote:&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Re-reading your proposed text, I&amp;#39;m wondering if the &amp;#34;consensus-only validation&amp;#34; extension is intended to replace the inconclusive-due-to-consensus-and-standardness-differ state. If so, I don&amp;#39;t think it does, and regardless it doesn&amp;#39;t seem very useful.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; What I&amp;#39;m suggestion could be specified this way:&lt;br/&gt;&amp;gt; * If validator understands the script:&lt;br/&gt;&amp;gt;   * If signature is consensus valid (as far as the validator knows):&lt;br/&gt;&amp;gt;     * If signature is not known to trigger standardness rules intended for future extension (well-defined set of rules listed in BIP, and revisable): return valid&lt;br/&gt;&amp;gt;     * Otherwise: return inconclusive&lt;br/&gt;&amp;gt;   * Otherwise: return invalid&lt;br/&gt;&amp;gt; * Otherwise: return inconclusive&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Or in other words: every signature has a well-defined result (valid, invalid, inconclusive) &#43; validators may choose to report inconclusive for anything they don&amp;#39;t understand.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; This has the property that as long as new consensus rules only change things that were covered under for-future-extension standardness rules, no two validators will ever claim valid and invalid for the same signature. Only valid&#43;inconclusive or invalid&#43;inconclusive.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;I&amp;#39;ve updated my PR at &lt;a href=&#34;https://github.com/bitcoin/bips/pull/1048&#34;&gt;https://github.com/bitcoin/bips/pull/1048&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Differences:&lt;br/&gt;&lt;br/&gt;1. I compacted all the validation states into three: valid at time/age T/S, invalid,&lt;br/&gt;   and inconclusive.&lt;br/&gt;&lt;br/&gt;2. &amp;#34;Inconclusive&amp;#34; means either an &amp;#34;upgradeable rule&amp;#34; failed, e.g. use of a NOP or a&lt;br/&gt;   bad network version, or the validator just didn&amp;#39;t understand the scripts.&lt;br/&gt;&lt;br/&gt;3. I removed the &amp;#34;Extensions&amp;#34; sections now everything is in the main protocol.&lt;br/&gt;&lt;br/&gt;4. I removed the &amp;#34;to_sign&amp;#34; transaction from the wire serialization, since after all&lt;br/&gt;   this, it can always be inferred from the message and address. (This does mean,&lt;br/&gt;   however, that there is no way to sign for scriptPubKeys that don&amp;#39;t have addresses,&lt;br/&gt;   e.g. bare public keys or multisigs. I don&amp;#39;t think it&amp;#39;s worth complicated the&lt;br/&gt;   protocol for such obscure things.)&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Andrew Poelstra&lt;br/&gt;Director of Research, Blockstream&lt;br/&gt;Email: apoelstra at wpsoftware.net&lt;br/&gt;Web:   &lt;a href=&#34;https://www.wpsoftware.net/andrew&#34;&gt;https://www.wpsoftware.net/andrew&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;The sun is always shining in space&lt;br/&gt;    -Justin Lewis-Webster&lt;br/&gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;A non-text attachment was scrubbed...&lt;br/&gt;Name: signature.asc&lt;br/&gt;Type: application/pgp-signature&lt;br/&gt;Size: 488 bytes&lt;br/&gt;Desc: not available&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20201223/858f723b/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20201223/858f723b/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T18:27:53Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsyg8p9s0xvyrwtzfj78tllzfc7zj0qsfg4m3jxan4578tm3dn8n3qzyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2k4uzrpn</id>
    
      <title type="html">📅 Original date posted:2020-12-21 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsyg8p9s0xvyrwtzfj78tllzfc7zj0qsfg4m3jxan4578tm3dn8n3qzyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2k4uzrpn" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs23eut3fue9nq8cgcg3jyg6hzl5m6fxpnsyu2qaq77xdk9tk5p9dgwx68xq&#39;&gt;nevent1q…68xq&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2020-12-21&lt;br/&gt;📝 Original message:On Tue, Dec 22, 2020 at 12:22:37AM &#43;0000, Pieter Wuille via bitcoin-dev wrote:&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Re-reading your proposed text, I&amp;#39;m wondering if the &amp;#34;consensus-only validation&amp;#34; extension is intended to replace the inconclusive-due-to-consensus-and-standardness-differ state. If so, I don&amp;#39;t think it does, and regardless it doesn&amp;#39;t seem very useful.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; What I&amp;#39;m suggestion could be specified this way:&lt;br/&gt;&amp;gt; * If validator understands the script:&lt;br/&gt;&amp;gt;   * If signature is consensus valid (as far as the validator knows):&lt;br/&gt;&amp;gt;     * If signature is not known to trigger standardness rules intended for future extension (well-defined set of rules listed in BIP, and revisable): return valid&lt;br/&gt;&amp;gt;     * Otherwise: return inconclusive&lt;br/&gt;&amp;gt;   * Otherwise: return invalid&lt;br/&gt;&amp;gt; * Otherwise: return inconclusive&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Or in other words: every signature has a well-defined result (valid, invalid, inconclusive) &#43; validators may choose to report inconclusive for anything they don&amp;#39;t understand.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; This has the property that as long as new consensus rules only change things that were covered under for-future-extension standardness rules, no two validators will ever claim valid and invalid for the same signature. Only valid&#43;inconclusive or invalid&#43;inconclusive.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;I like it!&lt;br/&gt;&lt;br/&gt;My thinking regarding standardness vs consensus rules was essentially that&lt;br/&gt;I wanted to enforce the included standardness rules for anti-malleability&lt;br/&gt;reasons, i.e. the hope that for &amp;#34;normal scripts&amp;#34; we would get strong signatures,&lt;br/&gt;which may be important for anti-DoS reasons. (What I mean by this is that&lt;br/&gt;if you can easily create mutations of signatures, it may confuse software&lt;br/&gt;in similar ways to the Gox-era malleability attacks on wallet software of&lt;br/&gt;the time.) But conversely, it is hard to enforce these rules as an&lt;br/&gt;implementor, because libbitcoinconsensus does not expose them. So allowing&lt;br/&gt;both forms of validation, to me, was an attempt to encourage adoption&lt;br/&gt;rather than anything principled.&lt;br/&gt;&lt;br/&gt;I didn&amp;#39;t even consider the idea that validators should be able to signal &amp;#34;this&lt;br/&gt;signature appears to use future consensus rules&amp;#34;, although I should have been&lt;br/&gt;clued in by your &amp;#34;upgradeable rules&amp;#34; language that this was your goal. Now that&lt;br/&gt;you say this, it&amp;#39;s obvious that this is desireable, and also obvious that using&lt;br/&gt;the &amp;#34;inconclusive&amp;#34; state is an elegant way to achieve this.&lt;br/&gt;&lt;br/&gt;I also agree that &amp;#34;confirming validators should never disagree on valid vs&lt;br/&gt;invalid&amp;#34; is a good design goal and we should make that explicit.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;I&amp;#39;ll add a commit to my PR at &lt;a href=&#34;https://github.com/bitcoin/bips/pull/1048&#34;&gt;https://github.com/bitcoin/bips/pull/1048&lt;/a&gt; which&lt;br/&gt;adds these thoughts.&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Andrew Poelstra&lt;br/&gt;Director of Research, Blockstream&lt;br/&gt;Email: apoelstra at wpsoftware.net&lt;br/&gt;Web:   &lt;a href=&#34;https://www.wpsoftware.net/andrew&#34;&gt;https://www.wpsoftware.net/andrew&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;The sun is always shining in space&lt;br/&gt;    -Justin Lewis-Webster&lt;br/&gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;A non-text attachment was scrubbed...&lt;br/&gt;Name: signature.asc&lt;br/&gt;Type: application/pgp-signature&lt;br/&gt;Size: 488 bytes&lt;br/&gt;Desc: not available&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20201222/0486ba26/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20201222/0486ba26/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T18:27:52Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqs0lhnmu9t3fny2pr7jh89pmk7h6puzgvrtxx8zgnes6ynzk5vq5ngzyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2kyunm7z</id>
    
      <title type="html">📅 Original date posted:2020-12-18 📝 Original message:I have ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqs0lhnmu9t3fny2pr7jh89pmk7h6puzgvrtxx8zgnes6ynzk5vq5ngzyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2kyunm7z" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqswzpz8mlhghtapzuddfhaq38xn7zjx905hhjlwktpazhk4f69r20cph4ldu&#39;&gt;nevent1q…4ldu&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2020-12-18&lt;br/&gt;📝 Original message:I have gone over BIP-0322 and substantially rewritten the text.&lt;br/&gt;Everything I did is (I think) simply clarifying the existing&lt;br/&gt;protocol, which felt like it was written by committee and wasn&amp;#39;t&lt;br/&gt;easy to follow, EXCEPT:&lt;br/&gt;&lt;br/&gt;1. I rewrote the motivation section, which I believe originally&lt;br/&gt;   was a paraphrase of Luke-jr&amp;#39;s general objections to having any&lt;br/&gt;   signmessage functionality. I hope Luke in particular can take&lt;br/&gt;   a look at what I wrote under &amp;#34;Motivation&amp;#34; and see if it&lt;br/&gt;   captures his concerns.&lt;br/&gt;&lt;br/&gt;2. I merged the &amp;#34;consensus&amp;#34; and &amp;#34;upgradeable&amp;#34; rules to simply be&lt;br/&gt;   one set of rules, consisting of consensus checks plus additional&lt;br/&gt;   restrictions, all of which must be included. The new &amp;#34;Extensions&amp;#34;&lt;br/&gt;   section allows validators to output the state &amp;#34;consensus-valid&amp;#34;&lt;br/&gt;   if they really don&amp;#39;t want to check the additional restrictions.&lt;br/&gt;&lt;br/&gt;3. The &amp;#34;inconclusive&amp;#34; state, which was originally used for what I&amp;#39;ve&lt;br/&gt;   called &amp;#34;consensus-valid&amp;#34;, now indicates that a validator does not&lt;br/&gt;   understand the script that it is checking (also described in the&lt;br/&gt;   new &amp;#34;Extensions&amp;#34; section). The goal is that implementors are able&lt;br/&gt;   to be meaningfully BIP-0322 while only supporting a subset of&lt;br/&gt;   Script, e.g. the templates that their own software supports, or&lt;br/&gt;   Miniscript, or the non-raw non-address set of output descriptors,&lt;br/&gt;   or whatever.&lt;br/&gt;&lt;br/&gt;   We have seen opposition to supporting BIP-322, e.g. [1] because&lt;br/&gt;   of the requirement that you either have a full script interpreter&lt;br/&gt;   (plus an open-ended list of Core&amp;#39;s standardness flags, which is&lt;br/&gt;   not even available through libbitcoinconsensus) or nothing. On&lt;br/&gt;   the other hand, the vast majority of outputs are single-key p2pkh,&lt;br/&gt;   p2pkwh or p2sh-wpkh.&lt;br/&gt;&lt;br/&gt;The new text is here (and for posterity I will also include it&lt;br/&gt;inline below, though unless Github deletes it it will be easier&lt;br/&gt;to read in rendered form):&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://github.com/apoelstra/bips/blob/2020-12--bip322-overhaul/bip-0322.mediawiki&#34;&gt;https://github.com/apoelstra/bips/blob/2020-12--bip322-overhaul/bip-0322.mediawiki&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;I&amp;#39;ll also PR this to the BIPs repo in the next day or two, and&lt;br/&gt;comments on Github are then welcome.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;[1] &lt;a href=&#34;https://bitcointalk.org/index.php?topic=5261605.0&#34;&gt;https://bitcointalk.org/index.php?topic=5261605.0&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;* * * * * Full text of the above link * * * * *&lt;br/&gt;&lt;br/&gt;&amp;lt;pre&amp;gt;&lt;br/&gt;  BIP: 322&lt;br/&gt;  Layer: Applications&lt;br/&gt;  Title: Generic Signed Message Format&lt;br/&gt;  Author: Karl-Johan Alm &amp;lt;karljohan-alm at garage.co.jp&amp;gt;&lt;br/&gt;  Comments-Summary: No comments yet.&lt;br/&gt;  Comments-URI: &lt;a href=&#34;https://github.com/bitcoin/bips/wiki/Comments:BIP-0322&#34;&gt;https://github.com/bitcoin/bips/wiki/Comments:BIP-0322&lt;/a&gt;&lt;br/&gt;  Status: Draft&lt;br/&gt;  Type: Standards Track&lt;br/&gt;  Created: 2018-09-10&lt;br/&gt;  License: CC0-1.0&lt;br/&gt;&amp;lt;/pre&amp;gt;&lt;br/&gt;&lt;br/&gt;== Abstract ==&lt;br/&gt;&lt;br/&gt;A standard for interoperable signed messages based on the Bitcoin Script format, either for proving fund availability, or committing to a message as the intended recipient of funds sent to the invoice address.&lt;br/&gt;&lt;br/&gt;== Motivation ==&lt;br/&gt;&lt;br/&gt;The current message signing standard only works for P2PKH (1...) invoice addresses. We propose to extend and generalize the standard by using a Bitcoin Script based approach. This ensures that any coins, no matter what script they are controlled by, can in-principle be signed for. For easy interoperability with existing signing hardware, we also define a signature message format which resembles a Bitcoin transaction (except that it contains an invalid input, so it cannot be spent on any real network).&lt;br/&gt;&lt;br/&gt;Additionally, the current message signature format uses ECDSA signatures which do not commit to the public key, meaning that they do not actually prove knowledge of any secret keys. (Indeed, valid signatures can be tweaked by 3rd parties to become valid signatures on certain related keys.)&lt;br/&gt;&lt;br/&gt;Ultimately no message signing protocol can actually prove control of funds, both because a signature is obsolete as soon as it is created, and because the possessor of a secret key may be willing to sign messages on others&amp;#39; behalf even if it would not sign actual transactions. No signmessage protocol can fix these limitations.&lt;br/&gt;&lt;br/&gt;== Types of Signatures ==&lt;br/&gt;&lt;br/&gt;This BIP specifies three formats for signing messages: &amp;#39;&amp;#39;legacy&amp;#39;&amp;#39;, &amp;#39;&amp;#39;simple&amp;#39;&amp;#39; and &amp;#39;&amp;#39;full&amp;#39;&amp;#39;. Additionally, a variant of the &amp;#39;&amp;#39;full&amp;#39;&amp;#39; format can be used to demonstrate control over a set of UTXOs.&lt;br/&gt;&lt;br/&gt;=== Legacy ===&lt;br/&gt;&lt;br/&gt;New proofs should use the new format for all invoice address formats, including P2PKH.&lt;br/&gt;&lt;br/&gt;The legacy format MAY be used, but must be restricted to the legacy P2PKH invoice address format.&lt;br/&gt;&lt;br/&gt;=== Simple ===&lt;br/&gt;&lt;br/&gt;A &amp;#39;&amp;#39;simple&amp;#39;&amp;#39; signature consists of a witness stack, consensus encoded as a vector of vectors of bytes, and base64-encoded. Validators should construct &amp;lt;code&amp;gt;to_spend&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;to_sign&amp;lt;/code&amp;gt; as defined below, with default values for all fields except that&lt;br/&gt;&lt;br/&gt;* &amp;lt;code&amp;gt;message_hash&amp;lt;/code&amp;gt; is a BIP340-tagged hash of the message, as specified below&lt;br/&gt;* &amp;lt;code&amp;gt;message_challenge&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;to_spend&amp;lt;/code&amp;gt; is set to the scriptPubKey being signed with&lt;br/&gt;* &amp;lt;code&amp;gt;message_signature&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;to_sign&amp;lt;/code&amp;gt; is set to the provided simple signature.&lt;br/&gt;&lt;br/&gt;and then proceed as they would for a full signature.&lt;br/&gt;&lt;br/&gt;=== Full ===&lt;br/&gt;&lt;br/&gt;Full signatures follow an analogous specification to the BIP-325 challenges and solutions used by Signet.&lt;br/&gt;&lt;br/&gt;Let there be two virtual transactions to_spend and to_sign.&lt;br/&gt;&lt;br/&gt;The &amp;#34;to_spend&amp;#34; transaction is:&lt;br/&gt;&lt;br/&gt;    nVersion = 0&lt;br/&gt;    nLockTime = 0&lt;br/&gt;    vin[0].prevout.hash = 0000...000&lt;br/&gt;    vin[0].prevout.n = 0xFFFFFFFF&lt;br/&gt;    vin[0].nSequence = 0&lt;br/&gt;    vin[0].scriptSig = OP_0 PUSH32[ message_hash ]&lt;br/&gt;    vin[0].scriptWitness = []&lt;br/&gt;    vout[0].nValue = 0&lt;br/&gt;    vout[0].scriptPubKey = message_challenge&lt;br/&gt;&lt;br/&gt;where &amp;lt;code&amp;gt;message_hash&amp;lt;/code&amp;gt; is a BIP340-tagged hash of the message, i.e. sha256_tag(m), where tag = &amp;lt;code&amp;gt;BIP0322-signed-message&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;message_challenge&amp;lt;/code&amp;gt; is the to be proven (public) key script.&lt;br/&gt;&lt;br/&gt;The &amp;#34;to_sign&amp;#34; transaction is:&lt;br/&gt;&lt;br/&gt;    nVersion = 0 or as appropriate (e.g. 2, for time locks)&lt;br/&gt;    nLockTime = 0 or as appropriate (for time locks)&lt;br/&gt;    vin[0].prevout.hash = to_spend.txid&lt;br/&gt;    vin[0].prevout.n = 0&lt;br/&gt;    vin[0].nSequence = 0 or as appropriate (for time locks)&lt;br/&gt;    vin[0].scriptWitness = message_signature&lt;br/&gt;    vout[0].nValue = 0&lt;br/&gt;    vout[0].scriptPubKey = OP_RETURN&lt;br/&gt;&lt;br/&gt;A full signature consists of the base64-encoding of the to_spend and to_sign transactions concatenated in standard network serialisation.&lt;br/&gt;&lt;br/&gt;=== Full (Proof of Funds) ===&lt;br/&gt;&lt;br/&gt;A signer may construct a proof of funds, demonstrating control of a set of UTXOs, by constructing a full signature as above, with the following modifications.&lt;br/&gt;&lt;br/&gt;* &amp;lt;code&amp;gt;message_challenge&amp;lt;/code&amp;gt; is unused and shall be set to &amp;lt;code&amp;gt;OP_TRUE&amp;lt;/code&amp;gt;&lt;br/&gt;* Similarly, &amp;lt;code&amp;gt;message_signature&amp;lt;/code&amp;gt; is then empty.&lt;br/&gt;* All outputs that the signer wishes to demonstrate control of are included as additional outputs to &amp;lt;code&amp;gt;to_sign&amp;lt;/code&amp;gt;, and their witness and scriptSig data should be set as though these outputs were actually being spent.&lt;br/&gt;&lt;br/&gt;Unlike an ordinary signature, validators of a proof of funds need access to the current UTXO set, to learn that the claimed inputs exist on the blockchain, and to learn their scriptPubKeys.&lt;br/&gt;&lt;br/&gt;== Detailed Specification ==&lt;br/&gt;&lt;br/&gt;For all signature types, except legacy, the &amp;lt;code&amp;gt;to_spend&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;to_sign&amp;lt;/code&amp;gt; transactions must be valid transactions which pass all consensus checks, except of course that the output with prevout &amp;lt;code&amp;gt;000...000:FFFFFFFF&amp;lt;/code&amp;gt; does not exist.&lt;br/&gt;&lt;br/&gt;We additionally require the following restrictions be met.&lt;br/&gt;&lt;br/&gt;* All signatures must use the SIGHASH_ALL flag.&lt;br/&gt;* The use of &amp;lt;code&amp;gt;CODESEPARATOR&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;FindAndDelete&amp;lt;/code&amp;gt; is forbidden.&lt;br/&gt;* The use of NOPs reserved for upgrades is forbidden.&lt;br/&gt;* The use of segwit versions greater than 1 are forbidden.&lt;br/&gt;* &amp;lt;code&amp;gt;LOW_S&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STRICTENC&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;NULLFAIL&amp;lt;/code&amp;gt;: valid ECDSA signatures must be strictly DER-encoded and have a low-S value; invalid ECDSA signature must be the empty push&lt;br/&gt;* &amp;lt;code&amp;gt;MINIMALDATA&amp;lt;/code&amp;gt;: all pushes must be minimally encoded&lt;br/&gt;* &amp;lt;code&amp;gt;CLEANSTACK&amp;lt;/code&amp;gt;: require that only a single stack element remains after evaluation&lt;br/&gt;* &amp;lt;code&amp;gt;MINIMALIF&amp;lt;/code&amp;gt;: the argument of &amp;lt;code&amp;gt;IF&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;NOTIF&amp;lt;/code&amp;gt; must be exactly 0x01 or empty push&lt;br/&gt;&lt;br/&gt;Future versions of this BIP may relax these rules, in particular those around NOPs and future Segwit versions, as they are deployed on Bitcoin.&lt;br/&gt;&lt;br/&gt;=== Verification ===&lt;br/&gt;&lt;br/&gt;Validation consists of the following steps. A validator is given as input an address &amp;#39;&amp;#39;A&amp;#39;&amp;#39; (which may be omitted in a proof-of-funds), signature &amp;#39;&amp;#39;s&amp;#39;&amp;#39; and message &amp;#39;&amp;#39;m&amp;#39;&amp;#39;, and outputs one of four states (although validators are only required to be able to output the first and last):&lt;br/&gt;* &amp;#39;&amp;#39;valid&amp;#39;&amp;#39; indicates that the signature passed all checks described below&lt;br/&gt;* &amp;#39;&amp;#39;valid at time t and age s&amp;#39;&amp;#39; indicates that the signature has set timelocks but is otherwise valid (see &amp;#34;Extensions&amp;#34; below)&lt;br/&gt;* &amp;#39;&amp;#39;consensus-valid&amp;#39;&amp;#39; indicates that the signature passed validation except for the additonal restrictions in the above section (see &amp;#34;Extensions&amp;#34; below)&lt;br/&gt;* &amp;#39;&amp;#39;inconclusive&amp;#39;&amp;#39; means the validator was unable to check the scripts (see &amp;#34;Extensions&amp;#34; below)&lt;br/&gt;* &amp;#39;&amp;#39;invalid&amp;#39;&amp;#39; means none of the other states&lt;br/&gt;&lt;br/&gt;# Decode &amp;#39;&amp;#39;s&amp;#39;&amp;#39; as the transactions &amp;lt;code&amp;gt;to_sign&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;to_spend&amp;lt;/code&amp;gt;&lt;br/&gt;# Confirm that &amp;lt;code&amp;gt;message_hash&amp;lt;/code&amp;gt; is the correct hash of &amp;#39;&amp;#39;m&amp;#39;&amp;#39;&lt;br/&gt;# Confirm that &amp;lt;code&amp;gt;message_challenge&amp;lt;/code&amp;gt; is the scriptPubKey corresponding to &amp;#39;&amp;#39;A&amp;#39;&amp;#39; if &amp;#39;&amp;#39;A&amp;#39;&amp;#39; is present, and otherwise must be &amp;lt;code&amp;gt;OP_TRUE&amp;lt;/code&amp;gt;&lt;br/&gt;# Confirm that all other fields are set as specified above; in particular that&lt;br/&gt;** &amp;lt;code&amp;gt;to_spend&amp;lt;/code&amp;gt; has exactly one input and one output&lt;br/&gt;** &amp;lt;code&amp;gt;to_sign&amp;lt;/code&amp;gt; has at least one input and its first input spends the output of &amp;lt;/code&amp;gt;to_spend&amp;lt;/code&amp;gt;&lt;br/&gt;** &amp;lt;code&amp;gt;to_sign&amp;lt;/code&amp;gt; has exactly one output, as specified above&lt;br/&gt;# Confirm that the two transactions together satisfy all consensus rules, except for &amp;lt;code&amp;gt;to_spend&amp;lt;/code&amp;gt;&amp;#39;s missing input, and except that &amp;#39;&amp;#39;nSequence&amp;#39;&amp;#39; of &amp;lt;code&amp;gt;to_sign&amp;lt;/code&amp;gt;&amp;#39;s first input and &amp;#39;&amp;#39;nLockTime&amp;#39;&amp;#39; of &amp;lt;code&amp;gt;to_sign&amp;lt;/code&amp;gt; are not checked.&lt;br/&gt;# Confirm that all of the above restrictions are met.&lt;br/&gt;&lt;br/&gt;If the above conditions are met, the signature is considered &amp;#39;&amp;#39;valid&amp;#39;&amp;#39;. Otherwise the signature is &amp;#39;&amp;#39;invalid&amp;#39;&amp;#39;.&lt;br/&gt;&lt;br/&gt;=== Signing ===&lt;br/&gt;&lt;br/&gt;Signers who control an address &amp;#39;&amp;#39;A&amp;#39;&amp;#39; who wish to sign a message &amp;#39;&amp;#39;m&amp;#39;&amp;#39; act as follows:&lt;br/&gt;&lt;br/&gt;# They construct &amp;lt;code&amp;gt;to_spend&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;to_sign&amp;lt;/code&amp;gt; as specified above, using the scriptPubKey of &amp;#39;&amp;#39;A&amp;#39;&amp;#39; for &amp;lt;code&amp;gt;message_challenge&amp;lt;/code&amp;gt; and tagged hash of &amp;#39;&amp;#39;m&amp;#39;&amp;#39; as &amp;lt;code&amp;gt;message_hash&amp;lt;/code&amp;gt;.&lt;br/&gt;# Optionally, they may set nLockTime of &amp;lt;code&amp;gt;to_sign&amp;lt;/code&amp;gt; or nSequence of its first input.&lt;br/&gt;# Optionally, they may add any additional outputs to &amp;lt;code&amp;gt;to_sign&amp;lt;/code&amp;gt; that they wish to prove control of.&lt;br/&gt;# They satisfy &amp;lt;code&amp;gt;to_sign&amp;lt;/code&amp;gt; as they would any other transaction.&lt;br/&gt;&lt;br/&gt;They then encode their signature, choosing either &amp;#39;&amp;#39;simple&amp;#39;&amp;#39; or &amp;#39;&amp;#39;full&amp;#39;&amp;#39; as follows:&lt;br/&gt;&lt;br/&gt;* If they added no inputs to &amp;lt;code&amp;gt;to_sign&amp;lt;/code&amp;gt;, left nSequence and nLockTime at 0, and &amp;#39;&amp;#39;A&amp;#39;&amp;#39; is a Segwit address (either pure or P2SH-wrapped), then they may base64-encode &amp;lt;code&amp;gt;message_signature&amp;lt;/code&amp;gt;&lt;br/&gt;* Otherwise they must base64-encode the concatenation of &amp;lt;code&amp;gt;to_spend&amp;lt;/code&amp;gt; followed by &amp;lt;code&amp;gt;to_sign&amp;lt;/code&amp;gt;.&lt;br/&gt;&lt;br/&gt;== Extensions ==&lt;br/&gt;&lt;br/&gt;To ease implementation, we allow some additional states to be output rather than &amp;#39;&amp;#39;valid&amp;#39;&amp;#39; or &amp;#39;&amp;#39;invalid&amp;#39;&amp;#39;. Users who do not understand or who do not wish to deal with these states may treat them as &amp;#39;&amp;#39;invalid&amp;#39;&amp;#39;.&lt;br/&gt;&lt;br/&gt;=== Timelocks === &lt;br/&gt;&lt;br/&gt;If the nLockTime of &amp;lt;code&amp;gt;to_sign&amp;lt;/code&amp;gt; is set to &amp;#39;&amp;#39;t&amp;#39;&amp;#39;, and the nSequence of the first input of &amp;lt;code&amp;gt;to_sign&amp;lt;/code&amp;gt; is set to &amp;#39;&amp;#39;s&amp;#39;&amp;#39;, the validator may output the state &amp;#39;&amp;#39;valid at time t and age s&amp;#39;&amp;#39;.&lt;br/&gt;&lt;br/&gt;If both &amp;#39;&amp;#39;t&amp;#39;&amp;#39; and &amp;#39;&amp;#39;s&amp;#39;&amp;#39; are 0, the validator must instead output &amp;#39;&amp;#39;valid&amp;#39;&amp;#39;.&lt;br/&gt;&lt;br/&gt;Users may then wish to interpret this state as &amp;#39;&amp;#39;valid&amp;#39;&amp;#39; or &amp;#39;&amp;#39;invalid&amp;#39;&amp;#39; relative to the state of the current blockchain, but the rules for doing so are out of scope of this BIP.&lt;br/&gt;&lt;br/&gt;=== Incomplete Validation ===&lt;br/&gt;&lt;br/&gt;Some validators may not wish to implement a full script interpreter, choosing instead to support only specific script templates, or only Miniscript, for example. In this case, if they are unable to execute the scripts used by &amp;lt;code&amp;gt;to_sign&amp;lt;/code&amp;gt;, they should output the state &amp;#39;&amp;#39;inconclusive&amp;#39;&amp;#39;.&lt;br/&gt;&lt;br/&gt;Users should interpret this state as the same thing as &amp;#39;&amp;#39;invalid&amp;#39;&amp;#39;, although take it as a sign that they should find more capable software.&lt;br/&gt;&lt;br/&gt;=== Consensus-Only Validation ===&lt;br/&gt;&lt;br/&gt;Validators which are only able to check consensus-correctness of witnesses, but not the additional restrictions imposed by this BIP, may output the state &amp;#39;&amp;#39;consensus-valid&amp;#39;&amp;#39; to indicate that a signature has passed all consensus and structural checks.&lt;br/&gt;&lt;br/&gt;Users should interpret this state as the same thing as &amp;#39;&amp;#39;valid&amp;#39;&amp;#39; but be aware that other software may fail to validate the same signature.&lt;br/&gt;&lt;br/&gt;== Compatibility ==&lt;br/&gt;&lt;br/&gt;This specification is backwards compatible with the legacy signmessage/verifymessage specification through the special case as described above.&lt;br/&gt;&lt;br/&gt;== Reference implementation ==&lt;br/&gt;&lt;br/&gt;TODO&lt;br/&gt;&lt;br/&gt;== Acknowledgements ==&lt;br/&gt;&lt;br/&gt;Thanks to David Harding, Jim Posen, Kalle Rosenbaum, Pieter Wuille, Andrew Poelstra, and many others for their feedback on the specification.&lt;br/&gt;&lt;br/&gt;== References ==&lt;br/&gt;&lt;br/&gt;# Original mailing list thread: &lt;a href=&#34;https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2018-March/015818.html&#34;&gt;https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2018-March/015818.html&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;== Copyright ==&lt;br/&gt;&lt;br/&gt;This document is licensed under the Creative Commons CC0 1.0 Universal license.&lt;br/&gt;&lt;br/&gt;== Test vectors ==&lt;br/&gt;&lt;br/&gt;TODO&lt;br/&gt;&lt;br/&gt;* * * * * End full text * * * * *&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Andrew Poelstra&lt;br/&gt;Director of Research, Blockstream&lt;br/&gt;Email: apoelstra at wpsoftware.net&lt;br/&gt;Web:   &lt;a href=&#34;https://www.wpsoftware.net/andrew&#34;&gt;https://www.wpsoftware.net/andrew&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;The sun is always shining in space&lt;br/&gt;    -Justin Lewis-Webster&lt;br/&gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;A non-text attachment was scrubbed...&lt;br/&gt;Name: signature.asc&lt;br/&gt;Type: application/pgp-signature&lt;br/&gt;Size: 488 bytes&lt;br/&gt;Desc: not available&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20201218/f7228b77/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20201218/f7228b77/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T18:27:50Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsxx7p2zu9xhyph389965rehwsemp8wyd9jqgjf4zm85hlrdaqrm0qzyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2khm9sf2</id>
    
      <title type="html">📅 Original date posted:2020-12-23 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsxx7p2zu9xhyph389965rehwsemp8wyd9jqgjf4zm85hlrdaqrm0qzyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2khm9sf2" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs2uh5lrw4jm9a2d8xlehkqk58ad9w2qresuyzx06wk5c537cu3fugy4rstr&#39;&gt;nevent1q…rstr&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2020-12-23&lt;br/&gt;📝 Original message:On Wed, Dec 23, 2020 at 12:30:20AM -0300, fiatjaf via bitcoin-dev wrote:&lt;br/&gt;&amp;gt; Hi Andrew.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; I&amp;#39;m just a lurker here and I have not much experience with PSBTs, but still let me pose this very obvious question and concern: isn&amp;#39;t this change going to create a compatibility nightmare, with some software supporting version 1, others supporting version 2, and the ones that care enough about UX and are still maintained being forced to support both versions -- and for no very important reason except some improvements in the way data is structured?&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;Yes, software will have to support both versions for a long time (likely&lt;br/&gt;forever, at least in the case of Core). But I think this is okay, for a&lt;br/&gt;couple of reasons:&lt;br/&gt;&lt;br/&gt;1. it is very easy to convert from the old to new format, and from new to&lt;br/&gt;   old (unless the new one uses features unsupported by the old). Indeed,&lt;br/&gt;   the conversion logic is essentially the same as the logic that the&lt;br/&gt;   Extractor role uses, so there isn&amp;#39;t even that much redundant code.&lt;br/&gt;&lt;br/&gt;2. There actually isn&amp;#39;t a lot of software using PSBT out there, and most&lt;br/&gt;   of that that does use PSBT is under rapid development. The obvious&lt;br/&gt;   exception to this deployed hardware wallets, but as far as &amp;#34;software&lt;br/&gt;   developers supporting old things for the sake of old hardware wallets&amp;#34;&lt;br/&gt;   I think this transition is an order of magnitude simpler to handle&lt;br/&gt;   than many of the ad-hoc protocol changes that individual vendors have&lt;br/&gt;   done. In other words this is a &amp;#34;fact of life&amp;#34;, and not even one of&lt;br/&gt;   the grosser ones.&lt;br/&gt;&lt;br/&gt;3. PSBT is pretty-much a dumb pure data format, and the diff between the&lt;br/&gt;   new format and the old is pretty small.&lt;br/&gt;&lt;br/&gt;&amp;gt; Ultimately I don&amp;#39;t think it should matter if some data is structured in not-the-best-possible way, as long as it is clear enough for the computer and for the libraries already written to deal with it. Backwards-compatibility and general interoperability is worth much more than anything else in these cases.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;The reasons for switching to PSBT 2 are actually more than just structuring&lt;br/&gt;the data in a cleaner way. I agree that if the point of this upgrade were&lt;br/&gt;just elegance, it would not be worth the compatibility loss. But there are&lt;br/&gt;practical limitations that this proposal eliminates:&lt;br/&gt;&lt;br/&gt;1. PSBT provides no way to modify the set of inputs or outputs after the&lt;br/&gt;   Creator role is done.&lt;br/&gt;&lt;br/&gt;2. Because of this, it forces certain things (e.g. locktimes and sequence&lt;br/&gt;   numbers) to be chosen by the Creator, who may not have all the relevant&lt;br/&gt;   information, and who certainly might not have it before any Updaters&lt;br/&gt;   have done their part.&lt;br/&gt;&lt;br/&gt;as well, of course, as elegance reasons:&lt;br/&gt;&lt;br/&gt;3. Parsers of the existing PSBT need to understand the Bitcoin transaction&lt;br/&gt;   format just to learn e.g. how many inputs and outputs there are. It is&lt;br/&gt;   impossible to parse a PSBT without also parsing (almost) the whole&lt;br/&gt;   transaction.&lt;br/&gt;&lt;br/&gt;4. Similarly to cross-check fields like &amp;#39;non_witness_utxo&amp;#39; which are&lt;br/&gt;   committed to in the transaction, you have to parse the whole transaction&lt;br/&gt;   just to make sure that the purely-redundant data is correctly redundant.&lt;br/&gt;&lt;br/&gt;5. If you put a 0-input transaction into a PSBT (which would be pointless&lt;br/&gt;   because there&amp;#39;s no way to add inputs, but it&amp;#39;s not forbidden so your&lt;br/&gt;   software still has to deal with this somehow..), you need a different&lt;br/&gt;   transaction parser than the normal one, because there is an ambiguity&lt;br/&gt;   related to segwit that PSBT resolves differently.&lt;br/&gt;&lt;br/&gt;It&amp;#39;s also worth considering that PSBT is a young protocol, and future&lt;br/&gt;extensions will be easier starting from PSBT 2 than starting from the&lt;br/&gt;original version.&lt;br/&gt;&lt;br/&gt; &lt;br/&gt;&amp;gt; Also let me leave this article here, which I find very important (even if for some reason it ends up not being relevant to this specific case): &lt;a href=&#34;http://scripting.com/2017/05/09/rulesForStandardsmakers.html&#34;&gt;http://scripting.com/2017/05/09/rulesForStandardsmakers.html&lt;/a&gt;&lt;br/&gt;&amp;gt; &lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Andrew Poelstra&lt;br/&gt;Director of Research, Blockstream&lt;br/&gt;Email: apoelstra at wpsoftware.net&lt;br/&gt;Web:   &lt;a href=&#34;https://www.wpsoftware.net/andrew&#34;&gt;https://www.wpsoftware.net/andrew&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;The sun is always shining in space&lt;br/&gt;    -Justin Lewis-Webster&lt;br/&gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;A non-text attachment was scrubbed...&lt;br/&gt;Name: signature.asc&lt;br/&gt;Type: application/pgp-signature&lt;br/&gt;Size: 488 bytes&lt;br/&gt;Desc: not available&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20201223/05050b70/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20201223/05050b70/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T18:27:46Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqszk9v83vsqymhc2p9dtjys5ffmakk7jjnz2377w9fmmmykm00ttjqzyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2kg3q6qs</id>
    
      <title type="html">📅 Original date posted:2020-12-16 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqszk9v83vsqymhc2p9dtjys5ffmakk7jjnz2377w9fmmmykm00ttjqzyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2kg3q6qs" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsqpkqs004xgwkw5rc8qe8zaznurs6nyjvm54v2t0gngw9sc47jpzghhnepw&#39;&gt;nevent1q…nepw&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2020-12-16&lt;br/&gt;📝 Original message:On Wed, Dec 09, 2020 at 10:25:37PM &#43;0000, Andrew Chow via bitcoin-dev wrote:&lt;br/&gt;&amp;gt; Hi All,&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; I would like to propose a new PSBT version that addresses a few &lt;br/&gt;&amp;gt; deficiencies in the current PSBT v0. As this will be backwards &lt;br/&gt;&amp;gt; incompatible, a new PSBT version will be used, v1.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; The primary change is to truly have all input and output data for each &lt;br/&gt;&amp;gt; in their respective maps. Instead of having to parse an unsigned &lt;br/&gt;&amp;gt; transaction and lookup some data from there, and other data from the &lt;br/&gt;&amp;gt; correct map, all of the data for an input will be contained in its map. &lt;br/&gt;&amp;gt; Doing so also disallows PSBT_GLOBAL_UNSIGNED_TX in this new version. &lt;br/&gt;&amp;gt; Thus I propose that the following fields be added:&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Global:&lt;br/&gt;&amp;gt; * PSBT_GLOBAL_TX_VERSION = 0x02&lt;br/&gt;&amp;gt;  ?? * Key: empty&lt;br/&gt;&amp;gt;  ?? * Value: 32-bit little endian unsigned integer for the transaction &lt;br/&gt;&amp;gt; version number. Must be provided in PSBT v1 and omitted in v0.&lt;br/&gt;&lt;br/&gt;All of these changes sound great. It would definitely make working with&lt;br/&gt;PSBTs easier if all data was accessible in the same format, rather than&lt;br/&gt;being split between the global unsigned tx and the main body.&lt;br/&gt;&lt;br/&gt;One minor quibble is the version numbering -- you mention &amp;#34;v1&amp;#34; in this&lt;br/&gt;post but set GLOBAL_TX_VERSION to 2. I think we should consistently use&lt;br/&gt;2 everywhere; probably nobody thinks of the existing PSBT as &amp;#34;version 0&amp;#34;.&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Andrew Poelstra&lt;br/&gt;Director of Research, Blockstream&lt;br/&gt;Email: apoelstra at wpsoftware.net&lt;br/&gt;Web:   &lt;a href=&#34;https://www.wpsoftware.net/andrew&#34;&gt;https://www.wpsoftware.net/andrew&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;The sun is always shining in space&lt;br/&gt;    -Justin Lewis-Webster&lt;br/&gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;A non-text attachment was scrubbed...&lt;br/&gt;Name: signature.asc&lt;br/&gt;Type: application/pgp-signature&lt;br/&gt;Size: 488 bytes&lt;br/&gt;Desc: not available&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20201216/244f8942/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20201216/244f8942/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T18:27:44Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqs83qscau8txy5h434uzyxan2snsnykwnvmxcjk6zf2facnfz4ndgqzyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2k2h7gxm</id>
    
      <title type="html">📅 Original date posted:2019-10-09 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqs83qscau8txy5h434uzyxan2snsnykwnvmxcjk6zf2facnfz4ndgqzyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2k2h7gxm" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsq3npunefp8lrx8cp2twqrpamwj3p5cd6pdys5e5q3qwv7g0l3zxqqkyw5z&#39;&gt;nevent1q…yw5z&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2019-10-09&lt;br/&gt;📝 Original message:On Thu, Oct 03, 2019 at 11:05:52AM -0400, Ethan Heilman wrote:&lt;br/&gt;&amp;gt; To avoid derailing the NO_INPUT conversation, I have changed the&lt;br/&gt;&amp;gt; subject to OP_CAT.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Responding to:&lt;br/&gt;&amp;gt; &amp;#34;&amp;#34;&amp;#34;&lt;br/&gt;&amp;gt; * `SIGHASH` flags attached to signatures are a misdesign, sadly&lt;br/&gt;&amp;gt; retained from the original BitCoin 0.1.0 Alpha for Windows design, on&lt;br/&gt;&amp;gt; par with:&lt;br/&gt;&amp;gt; [..]&lt;br/&gt;&amp;gt; * `OP_CAT` and `OP_MULT` and `OP_ADD` and friends&lt;br/&gt;&amp;gt; [..]&lt;br/&gt;&amp;gt; &amp;#34;&amp;#34;&amp;#34;&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; OP_CAT is an extremely valuable op code. I understand why it was&lt;br/&gt;&amp;gt; removed as the situation at the time with scripts was dire. However&lt;br/&gt;&amp;gt; most of the protocols I&amp;#39;ve wanted to build on Bitcoin run into the&lt;br/&gt;&amp;gt; limitation that stack values can not be concatenated. For instance&lt;br/&gt;&amp;gt; TumbleBit would have far smaller transaction sizes if OP_CAT was&lt;br/&gt;&amp;gt; supported in Bitcoin. If it happens to me as a researcher it is&lt;br/&gt;&amp;gt; probably holding other people back as well. If I could wave a magic&lt;br/&gt;&amp;gt; wand and turn on one of the disabled op codes it would be OP_CAT.  Of&lt;br/&gt;&amp;gt; course with the change that size of each concatenated value must be 64&lt;br/&gt;&amp;gt; Bytes or less.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;Just throwing my two cents in here - as others have noted, OP_CAT&lt;br/&gt;lets you create Merkle trees (allowing e.g. log-sized accountable&lt;br/&gt;threshold sigs, at least in a post-Schnorr future).&lt;br/&gt;&lt;br/&gt;It also allows manipulating signatures - e.g. forcing the revelation&lt;br/&gt;of discrete logs by requiring the user use the (1/2) point as a nonce&lt;br/&gt;(this starts with 11 zero bytes, which no other computationally&lt;br/&gt;accessible point does), or by requiring two sigs with the same nonce.&lt;br/&gt;&lt;br/&gt;It also lets you do proof-of-work-like computations on hashes or&lt;br/&gt;curvepoints; or enforce that EC points come from a hash and have&lt;br/&gt;no known discrete log. You can also switch on hashes, something&lt;br/&gt;currently impossible because of the 4-byte limitation on numeric&lt;br/&gt;opcodes. I don&amp;#39;t have specific application of these in mind but&lt;br/&gt;definitely have cut off many lines of inquiry because they were&lt;br/&gt;impossible.&lt;br/&gt;&lt;br/&gt;You could build a crappy Lamport signature, though the key would&lt;br/&gt;be so big that you&amp;#39;d never do this pre-MAST :P.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Andrew Poelstra&lt;br/&gt;Director of Research, Blockstream&lt;br/&gt;Email: apoelstra at wpsoftware.net&lt;br/&gt;Web:   &lt;a href=&#34;https://www.wpsoftware.net/andrew&#34;&gt;https://www.wpsoftware.net/andrew&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;The sun is always shining in space&lt;br/&gt;    -Justin Lewis-Webster&lt;br/&gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;A non-text attachment was scrubbed...&lt;br/&gt;Name: signature.asc&lt;br/&gt;Type: application/pgp-signature&lt;br/&gt;Size: 488 bytes&lt;br/&gt;Desc: not available&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20191009/8edaa1f9/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20191009/8edaa1f9/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T18:20:59Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsvuskwfqd5y236a0yj3rkkm9k0n88y9m54u6kd2nd5h3rd5qw965gzyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2kkqmrrp</id>
    
      <title type="html">📅 Original date posted:2019-09-20 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsvuskwfqd5y236a0yj3rkkm9k0n88y9m54u6kd2nd5h3rd5qw965gzyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2kkqmrrp" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs8vxmjamm70erdenakszcek44fe59jyyammc7ykzpmxqasw207zfqkrj72g&#39;&gt;nevent1q…j72g&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2019-09-20&lt;br/&gt;📝 Original message:On Fri, Sep 20, 2019 at 04:54:34AM &#43;1000, Lloyd Fournier via bitcoin-dev wrote:&lt;br/&gt;&amp;gt; Hi ZmnSCPxj,&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; I can give some context on the exchange during the talk. I was the &amp;#34;Q&amp;#34; and&lt;br/&gt;&amp;gt; Andrew Polestra was the &amp;#34;A&amp;#34;.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; I followed up with Andrew after and he indeed knew about the pre-signed&lt;br/&gt;&amp;gt; nlocktime transaction double spend technique (actually, I thought he was&lt;br/&gt;&amp;gt; the one who originally came up with that idea for scriptless atomic swaps).&lt;br/&gt;&amp;gt; He clarified saying that you can do that with locktime (absolute time&lt;br/&gt;&amp;gt; locks) but not with sequence numbers (relative time locks). i.e. to enforce&lt;br/&gt;&amp;gt; sequence numbers you need to use OP_CHECKSEQUENCEVERIFY. He said that it&lt;br/&gt;&amp;gt; would make sense to change that so it&amp;#39;s enforced regardless of script.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; However, I talked to Antoine Riard later who was adamant that sequence&lt;br/&gt;&amp;gt; numbers already worked as expected. He pointed to the fact that BIP68&lt;br/&gt;&amp;gt; already describes it as an independent constraint [1]&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; So if things do work as described in BIP68 then we should be able to do&lt;br/&gt;&amp;gt; lightning on Bitcoin without any script once we have Schnorr. I&amp;#39;m keen to&lt;br/&gt;&amp;gt; actually figure out all the details of how to do this. It works in my head&lt;br/&gt;&amp;gt; but I think I should write it down somewhere to make sure it works.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt;  [1] &lt;a href=&#34;https://github.com/bitcoin/bips/blob/master/bip-0068.mediawiki&#34;&gt;https://github.com/bitcoin/bips/blob/master/bip-0068.mediawiki&lt;/a&gt;&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; LL&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;Yep, during the recorded exchange I was confused about the content of&lt;br/&gt;the BIP. Later I described the exchange to Dan Robinson, who showed me&lt;br/&gt;the actual text :).&lt;br/&gt;&lt;br/&gt;Sorry for the confusion - Lloyd was totally right and you can do&lt;br/&gt;relative locktimes this way in Taproot without needing to expose a&lt;br/&gt;script.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Having said this, there is the important caveat that your &amp;#34;emergency&lt;br/&gt;backout&amp;#34; keys are online to produce a pre-signed transaction, and&lt;br/&gt;that a suitable destination is known beforehand. This makes sense for&lt;br/&gt;Lightning or most atomic swap protocols where the money simply returns&lt;br/&gt;to the original owner, but not e.g. for Liquid, where the emergency&lt;br/&gt;keys have never been brought online (and anyway the contents of any&lt;br/&gt;transaction they might sign depends on facts and circumstances that&lt;br/&gt;aren&amp;#39;t known ahead of time).&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Andrew Poelstra&lt;br/&gt;Director of Research, Blockstream&lt;br/&gt;Email: apoelstra at wpsoftware.net&lt;br/&gt;Web:   &lt;a href=&#34;https://www.wpsoftware.net/andrew&#34;&gt;https://www.wpsoftware.net/andrew&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;The sun is always shining in space&lt;br/&gt;    -Justin Lewis-Webster&lt;br/&gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;A non-text attachment was scrubbed...&lt;br/&gt;Name: signature.asc&lt;br/&gt;Type: application/pgp-signature&lt;br/&gt;Size: 488 bytes&lt;br/&gt;Desc: not available&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20190920/b1a4b294/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20190920/b1a4b294/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T18:20:39Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqspm6xymfx33npmwesrkk6rldwj0p2mq34f6pvkt3xu6c89hy7qknszyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2k6zlz5h</id>
    
      <title type="html">📅 Original date posted:2019-03-06 📝 Original message:Hi ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqspm6xymfx33npmwesrkk6rldwj0p2mq34f6pvkt3xu6c89hy7qknszyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2k6zlz5h" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsfvd5dxk5ml3ylp0uuv39e28wmsn0euc02mwfc5vjse8nnyunpxhscgv5fm&#39;&gt;nevent1q…v5fm&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2019-03-06&lt;br/&gt;📝 Original message:Hi all,&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;I&amp;#39;d like to start initial discussion about an extension to BIP174 [1] to add&lt;br/&gt;some fields that I&amp;#39;ve found myself wanting when using PSBT in practice. For&lt;br/&gt;now I&amp;#39;ll just list the things that I&amp;#39;d like to see, and if we can come up&lt;br/&gt;with a stable list then I&amp;#39;ll try to write up a more formal draft.&lt;br/&gt;&lt;br/&gt;Basically I&amp;#39;d just like to add some more fixed data fields.&lt;br/&gt;&lt;br/&gt;1. Add an field to PSBT_GLOBAL_UNSIGNED_TX to the global table which contains&lt;br/&gt;   just a txid of the unsigned transaction, for bandwidth savings in case&lt;br/&gt;   signers have already seen the tx or can construct it themselves.&lt;br/&gt;&lt;br/&gt;   This field would be fixed 32 bytes.&lt;br/&gt;&lt;br/&gt;   (This would actually be a breaking change since the current PSBT rules require&lt;br/&gt;   PSBT_GLOBAL_UNSIGNED_TX to always be present. Maybe this is a no-go for that&lt;br/&gt;   reason alone.)&lt;br/&gt;&lt;br/&gt;2. Add a version field to the global table.&lt;br/&gt;&lt;br/&gt;3. Add fields to the per-input tables for&lt;br/&gt;   (a) confirmed depth of the referenced txout; this is useful for finalizers&lt;br/&gt;       trying to create optimized witnesses, for e.g. cases when CSV timeouts&lt;br/&gt;       expire and some signatures become unnecessary.&lt;br/&gt;&lt;br/&gt;       This field must be a varint.&lt;br/&gt;&lt;br/&gt;   (b) a map from SHA2 hashes to their 32-byte preimages; this field must be&lt;br/&gt;       fixed 32 bytes. This, plus the CSV thing, would allow writing finalizers&lt;br/&gt;       that work with all of Miniscript [2].&lt;br/&gt;&lt;br/&gt;   (c) a map from public keys to 32-byte &amp;#34;tweaks&amp;#34; that are used in the pay-to-contract&lt;br/&gt;       construction. Selfishly I&amp;#39;d like this to be a variable-length bytestring&lt;br/&gt;       with the semantics that (a) the first 33 bytes represent an untweaked&lt;br/&gt;       pubkey; (b) the HMAC-SHA256 of the whole thing, when multiplied by G and&lt;br/&gt;       added to the untweaked pubkey, result in the target key. This matches the&lt;br/&gt;       algorithm in [3] which is deployed in Blockstream&amp;#39;s Liquid, but I&amp;#39;d be&lt;br/&gt;       happy with a more efficient scheme which e.g. used SHA256 rather than&lt;br/&gt;       HMAC-SHA256.&lt;br/&gt;&lt;br/&gt;   (d) maps from public keys to partial nonce commitments, partial nonces, and&lt;br/&gt;       partial signatures, for MuSig [4] support.&lt;br/&gt;&lt;br/&gt;   (e) a map from signatures (or signature nonces?) to sign-to-contract tweaks.&lt;br/&gt;       Same semantics as (c) above.&lt;br/&gt;&lt;br/&gt;   The last two suggestions are probably premature and need further development&lt;br/&gt;   and standardization of the related protocols. But I&amp;#39;m throwing them in to see&lt;br/&gt;   if other people have strong feelings about this.&lt;br/&gt;&lt;br/&gt;4. Add fields to the per-output tables for pay-to-contract, like in (c) above.&lt;br/&gt;&lt;br/&gt;5. Add a field (or rather, family of fields) to every table which is &amp;#34;proprietary&lt;br/&gt;   use&amp;#34; and guaranteed not to be defined by any future PSBT extension. Specifically&lt;br/&gt;   every field with key-type 0xFF could be considered &amp;#34;proprietary&amp;#34;.&lt;br/&gt;&lt;br/&gt;5a. The special field in the global table whose key is only 0xFF should be a&lt;br/&gt;    &amp;#34;proprietary version field&amp;#34; with unspecified semantics but an understanding&lt;br/&gt;    that specific users might stick a GUID or something in there as a way to&lt;br/&gt;    recognize their own PSBTs.&lt;br/&gt;&lt;br/&gt;[1] &lt;a href=&#34;https://github.com/bitcoin/bips/blob/master/bip-0174.mediawiki#Encoding&#34;&gt;https://github.com/bitcoin/bips/blob/master/bip-0174.mediawiki#Encoding&lt;/a&gt;&lt;br/&gt;[2] &lt;a href=&#34;http://bitcoin.sipa.be/miniscript/miniscript.html&#34;&gt;http://bitcoin.sipa.be/miniscript/miniscript.html&lt;/a&gt;&lt;br/&gt;[3] &lt;a href=&#34;https://github.com/ElementsProject/elements/blob/elements-0.14.1/src/validation.cpp&#34;&gt;https://github.com/ElementsProject/elements/blob/elements-0.14.1/src/validation.cpp&lt;/a&gt;&lt;br/&gt;[4] &lt;a href=&#34;https://eprint.iacr.org/2018/068&#34;&gt;https://eprint.iacr.org/2018/068&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Andrew Poelstra&lt;br/&gt;Director of Research, Blockstream&lt;br/&gt;Email: apoelstra at wpsoftware.net&lt;br/&gt;Web:   &lt;a href=&#34;https://www.wpsoftware.net/andrew&#34;&gt;https://www.wpsoftware.net/andrew&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&amp;#34;There are some mornings when the sky looks like a road&lt;br/&gt; There are some dragons who were built to have and hold&lt;br/&gt; And some machines are dropped from great heights lovingly&lt;br/&gt; And some great bellies ache with many bumblebees&lt;br/&gt; And they sting so terribly&amp;#34;&lt;br/&gt;       --Joanna Newsom
    </content>
    <updated>2023-06-07T18:16:42Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsy4kjd836ka7l26p9l50fkz7dmmr5q9qv0mdk2hfkc702kpxwwgqqzyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2k7p5kru</id>
    
      <title type="html">📅 Original date posted:2018-09-13 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsy4kjd836ka7l26p9l50fkz7dmmr5q9qv0mdk2hfkc702kpxwwgqqzyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2k7p5kru" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsyz9q5z4t7lay2g4f0uh0knw2zf5vayc6llsvjk0e5vcv4utse6sqksw9v0&#39;&gt;nevent1q…w9v0&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2018-09-13&lt;br/&gt;📝 Original message:On Tue, Sep 11, 2018 at 01:37:59PM -0400, Erik Aronesty via bitcoin-dev wrote:&lt;br/&gt;&amp;gt; - Musig, by being M of M, is inherently prone to loss.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;It has always been possible to create M-of-N threshold MuSig signatures for any&lt;br/&gt;M, N with 0 &amp;lt; M ≤ N. This is (a) obvious, (b) in our paper, (c) implemented at&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://github.com/apoelstra/secp256k1/blob/2018-04-taproot/src/modules/musig/main_impl.h&#34;&gt;https://github.com/apoelstra/secp256k1/blob/2018-04-taproot/src/modules/musig/main_impl.h&lt;/a&gt; &lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Andrew Poelstra&lt;br/&gt;Research Director, Mathematics Department, Blockstream&lt;br/&gt;Email: apoelstra at wpsoftware.net&lt;br/&gt;Web:   &lt;a href=&#34;https://www.wpsoftware.net/andrew&#34;&gt;https://www.wpsoftware.net/andrew&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&amp;#34;Make it stop, my love; we were wrong to try&lt;br/&gt; Never saw what we could unravel in traveling light&lt;br/&gt; Nor how the trip debrides like a stack of slides&lt;br/&gt; All we saw was that time is taller than space is wide&amp;#34;&lt;br/&gt;       --Joanna Newsom&lt;br/&gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;A non-text attachment was scrubbed...&lt;br/&gt;Name: signature.asc&lt;br/&gt;Type: application/pgp-signature&lt;br/&gt;Size: 455 bytes&lt;br/&gt;Desc: not available&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20180913/ca7797a6/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20180913/ca7797a6/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T18:14:30Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsp3jvr9ezquyxk9x99rdmfrcw9kgzwtak4aurqsnv9ekeam3434wqzyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2kntshyq</id>
    
      <title type="html">📅 Original date posted:2018-09-14 📝 Original message:Hi ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsp3jvr9ezquyxk9x99rdmfrcw9kgzwtak4aurqsnv9ekeam3434wqzyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2kntshyq" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqspxdrnarzvqycx3za9n4wkvry3s35ky3jfezdt3qsmprdn5ytf9ag76xva3&#39;&gt;nevent1q…xva3&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2018-09-14&lt;br/&gt;📝 Original message:Hi Erik,&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Sorry, you&amp;#39;re right - I thought we mentioned m-of-n as a footnote but that was&lt;br/&gt;actually in the earlier pre-MuSig version of our multisig paper.&lt;br/&gt;&lt;br/&gt;Threshold signatures -are- mentioned in the BIP which started this thread, though.&lt;br/&gt;At &lt;a href=&#34;https://github.com/sipa/bips/blob/bip-schnorr/bip-schnorr.mediawiki&#34;&gt;https://github.com/sipa/bips/blob/bip-schnorr/bip-schnorr.mediawiki&lt;/a&gt; we say&lt;br/&gt;&lt;br/&gt;    &amp;#34;Further, by combining Schnorr signatures with Pedersen Secret Sharing,&lt;br/&gt;     it is possible to obtain an interactive threshold signature scheme that&lt;br/&gt;     ensures that signatures can only be produced by arbitrary but predetermined&lt;br/&gt;     sets of signers. For example, k-of-n threshold signatures can be realized&lt;br/&gt;     this way. Furthermore, it is possible to replace the combination of&lt;br/&gt;     participant keys in this scheme with MuSig, though the security of that&lt;br/&gt;     combination still needs analysis. &lt;br/&gt;&lt;br/&gt;and this combination of MuSig and VSS is exactly what is implemented in my code.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Cheers&lt;br/&gt;Andrew&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;On Thu, Sep 13, 2018 at 04:20:36PM -0400, Erik Aronesty wrote:&lt;br/&gt;&amp;gt; The paper refers to either:&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt;   a) building up threshold signatures via concatenation, or. implicitly -&lt;br/&gt;&amp;gt; in Bitcoin -&lt;br/&gt;&amp;gt;   b) by indicating that of M of N are valid, and requiring a validator to&lt;br/&gt;&amp;gt; validate one of the permutations of M that signed - as opposed to a scheme,&lt;br/&gt;&amp;gt; like a polynomial function, where the threshold is built in to the system.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Maybe there&amp;#39;s another mechanism in there that I&amp;#39;m not aware of - because&lt;br/&gt;&amp;gt; it&amp;#39;s just too simple to mention?&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; - Erik&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; On Thu, Sep 13, 2018 at 2:46 PM Andrew Poelstra &amp;lt;apoelstra at wpsoftware.net&amp;gt;&lt;br/&gt;&amp;gt; wrote:&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; &amp;gt; On Tue, Sep 11, 2018 at 01:37:59PM -0400, Erik Aronesty via bitcoin-dev&lt;br/&gt;&amp;gt; &amp;gt; wrote:&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; - Musig, by being M of M, is inherently prone to loss.&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; It has always been possible to create M-of-N threshold MuSig signatures&lt;br/&gt;&amp;gt; &amp;gt; for any&lt;br/&gt;&amp;gt; &amp;gt; M, N with 0 &amp;lt; M ≤ N. This is (a) obvious, (b) in our paper, (c)&lt;br/&gt;&amp;gt; &amp;gt; implemented at&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; &lt;a href=&#34;https://github.com/apoelstra/secp256k1/blob/2018-04-taproot/src/modules/musig/main_impl.h&#34;&gt;https://github.com/apoelstra/secp256k1/blob/2018-04-taproot/src/modules/musig/main_impl.h&lt;/a&gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; --&lt;br/&gt;&amp;gt; &amp;gt; Andrew Poelstra&lt;br/&gt;&amp;gt; &amp;gt; Research Director, Mathematics Department, Blockstream&lt;br/&gt;&amp;gt; &amp;gt; Email: apoelstra at wpsoftware.net&lt;br/&gt;&amp;gt; &amp;gt; Web:   &lt;a href=&#34;https://www.wpsoftware.net/andrew&#34;&gt;https://www.wpsoftware.net/andrew&lt;/a&gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; &amp;#34;Make it stop, my love; we were wrong to try&lt;br/&gt;&amp;gt; &amp;gt;  Never saw what we could unravel in traveling light&lt;br/&gt;&amp;gt; &amp;gt;  Nor how the trip debrides like a stack of slides&lt;br/&gt;&amp;gt; &amp;gt;  All we saw was that time is taller than space is wide&amp;#34;&lt;br/&gt;&amp;gt; &amp;gt;        --Joanna Newsom&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Andrew Poelstra&lt;br/&gt;Research Director, Mathematics Department, Blockstream&lt;br/&gt;Email: apoelstra at wpsoftware.net&lt;br/&gt;Web:   &lt;a href=&#34;https://www.wpsoftware.net/andrew&#34;&gt;https://www.wpsoftware.net/andrew&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&amp;#34;Make it stop, my love; we were wrong to try&lt;br/&gt; Never saw what we could unravel in traveling light&lt;br/&gt; Nor how the trip debrides like a stack of slides&lt;br/&gt; All we saw was that time is taller than space is wide&amp;#34;&lt;br/&gt;       --Joanna Newsom&lt;br/&gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;A non-text attachment was scrubbed...&lt;br/&gt;Name: signature.asc&lt;br/&gt;Type: application/pgp-signature&lt;br/&gt;Size: 455 bytes&lt;br/&gt;Desc: not available&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20180914/498c9bc5/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20180914/498c9bc5/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T18:14:30Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsp5lr22hh7yllqylxkn88m0v4q6alsd0tk0590s0jawfrhhcfpjmszyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2ky8ttnp</id>
    
      <title type="html">📅 Original date posted:2018-09-05 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsp5lr22hh7yllqylxkn88m0v4q6alsd0tk0590s0jawfrhhcfpjmszyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2ky8ttnp" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsfcjjqvfdzq8uhpmqzy4vj2wk2myurx3ax70mespef3pwuynpayzcr0f6lh&#39;&gt;nevent1q…f6lh&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2018-09-05&lt;br/&gt;📝 Original message:On Wed, Sep 05, 2018 at 08:26:14AM -0400, Erik Aronesty wrote:&lt;br/&gt;&amp;gt; Why would you call it FUD?   All the weird hemming and hawing about it is&lt;br/&gt;&amp;gt; really strange to me.  The more I look into it and speak to professors&lt;br/&gt;&amp;gt; about i, the more it seems &amp;#34;so trivial nobody really talks about it&amp;#34;.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; 1. Generate an M of N shared public key (done in advance of signing ....&lt;br/&gt;&amp;gt; this gets you the bitcoin address)&lt;br/&gt;&amp;gt; 2. Generate signature fragments (this can be done offline, with no&lt;br/&gt;&amp;gt; communication between participants)&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Detailed explanation with code snippets:&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; &lt;a href=&#34;https://medium.com/@simulx/an-m-of-n-bitcoin-multisig-scheme-e7860ab34e7f&#34;&gt;https://medium.com/@simulx/an-m-of-n-bitcoin-multisig-scheme-e7860ab34e7f&lt;/a&gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;The hemming and hawing is because you&amp;#39;ve been repeatedly told that your&lt;br/&gt;scheme doesn&amp;#39;t work, and to please implement it in some computer algebra&lt;br/&gt;system so that you can see that (or so we can see where your mistake is),&lt;br/&gt;and you instead continue to post incomplete/incoherent copies of the same&lt;br/&gt;thing across multiple mediums - Reddit, this list, Bitcointalk, Medium,&lt;br/&gt;etc ad nauseum.&lt;br/&gt;&lt;br/&gt;It&amp;#39;s distracting and offensive to people who have spent a lot of time and&lt;br/&gt;energy thinking about this stuff, and more importantly it causes confusion&lt;br/&gt;in the public eye. Phrasings like &amp;#34;weird hemming and hawing&amp;#34; suggest that&lt;br/&gt;we don&amp;#39;t know/don&amp;#39;t care about some insight you have, which is not true.&lt;br/&gt;This is why your posts are FUD.&lt;br/&gt;&lt;br/&gt;For example, in your linked post I looked at every single instance of the&lt;br/&gt;character &amp;#39;k&amp;#39; and *not one of them* defined the value &amp;#39;k&amp;#39; from which &amp;#39;R&amp;#39;&lt;br/&gt;is derived in the signing procedure.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Of course there is no possible value, individual signers cannot learn &amp;#39;R&amp;#39;&lt;br/&gt;at signing time without interaction, and your whole scheme is broken. Given&lt;br/&gt;the number of times you&amp;#39;ve been told this, I find it hard to believe that&lt;br/&gt;this was an honest mistake.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Andrew&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Andrew Poelstra&lt;br/&gt;Research Director, Mathematics Department, Blockstream&lt;br/&gt;Email: apoelstra at wpsoftware.net&lt;br/&gt;Web:   &lt;a href=&#34;https://www.wpsoftware.net/andrew&#34;&gt;https://www.wpsoftware.net/andrew&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&amp;#34;Make it stop, my love; we were wrong to try&lt;br/&gt; Never saw what we could unravel in traveling light&lt;br/&gt; Nor how the trip debrides like a stack of slides&lt;br/&gt; All we saw was that time is taller than space is wide&amp;#34;&lt;br/&gt;       --Joanna Newsom&lt;br/&gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;A non-text attachment was scrubbed...&lt;br/&gt;Name: signature.asc&lt;br/&gt;Type: application/pgp-signature&lt;br/&gt;Size: 455 bytes&lt;br/&gt;Desc: not available&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20180905/8174ffbf/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20180905/8174ffbf/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T18:14:28Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqs98ksr7ed02sy08tpc4j33lc9l4vp29d6n3csl92whrz7lzyl3q2gzyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2kjxaxfl</id>
    
      <title type="html">📅 Original date posted:2018-09-02 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqs98ksr7ed02sy08tpc4j33lc9l4vp29d6n3csl92whrz7lzyl3q2gzyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2kjxaxfl" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs2y5024e7wn27mpqqtvjug6nzd0hvtjx30qxlayfkk24d4lfm4jlqx3f5zh&#39;&gt;nevent1q…f5zh&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2018-09-02&lt;br/&gt;📝 Original message:On Wed, Aug 29, 2018 at 08:09:36AM -0400, Erik Aronesty wrote:&lt;br/&gt;&amp;gt; Note:&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; This spec cannot be used directly with a shamir scheme to produce&lt;br/&gt;&amp;gt; single-round threshold multisigs, because shares of point R would need to&lt;br/&gt;&amp;gt; be broadcast to share participants in order to produce valid single&lt;br/&gt;&amp;gt; signatures.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; (R, s) schemes can still be used &amp;#34;online&amp;#34;, if share participants publish&lt;br/&gt;&amp;gt; the R(share).... but, not sure if it matter much, this choice eliminates&lt;br/&gt;&amp;gt; offline multiparty signing in exchange for batch validation.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;Please stop with this FUD. No tradeoff was made. There are no non-interactive&lt;br/&gt;Schnorr signatures.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Andrew&lt;br/&gt; &lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Andrew Poelstra&lt;br/&gt;Mathematics Department, Blockstream&lt;br/&gt;Email: apoelstra at wpsoftware.net&lt;br/&gt;Web:   &lt;a href=&#34;https://www.wpsoftware.net/andrew&#34;&gt;https://www.wpsoftware.net/andrew&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&amp;#34;A goose alone, I suppose, can know the loneliness of geese&lt;br/&gt; who can never find their peace,&lt;br/&gt; whether north or south or west or east&amp;#34;&lt;br/&gt;       --Joanna Newsom&lt;br/&gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;A non-text attachment was scrubbed...&lt;br/&gt;Name: signature.asc&lt;br/&gt;Type: application/pgp-signature&lt;br/&gt;Size: 455 bytes&lt;br/&gt;Desc: not available&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20180903/cec88ce8/attachment-0001.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20180903/cec88ce8/attachment-0001.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T18:14:27Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsp3f9lvjsucvh2e5rnx5qjy9dfjgke85pxk2elj6x6ps7j2qu58gszyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2kfutn2g</id>
    
      <title type="html">📅 Original date posted:2018-08-12 📝 Original message:I ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsp3f9lvjsucvh2e5rnx5qjy9dfjgke85pxk2elj6x6ps7j2qu58gszyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2kfutn2g" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsq4dyuphn0tuucke7jjuaug4mzr6axtjdtsyhh20kgckxm960n6xsvssq6h&#39;&gt;nevent1q…sq6h&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2018-08-12&lt;br/&gt;📝 Original message:I think it&amp;#39;s just an oversight. We should specify that we use the standard&lt;br/&gt;encoding from section 2.3 of &lt;a href=&#34;http://www.secg.org/sec1-v2.pdf&#34;&gt;http://www.secg.org/sec1-v2.pdf&lt;/a&gt; except that&lt;br/&gt;we allow only compressed public keys.&lt;br/&gt;&lt;br/&gt;Andrew&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;On Mon, Aug 06, 2018 at 11:12:48PM &#43;0200, Tim Ruffing via bitcoin-dev wrote:&lt;br/&gt;&amp;gt; Is it intentional that the encoding of public (and private) keys is&lt;br/&gt;&amp;gt; unspecified? I&amp;#39;d consider at least the encoding of the public key to be&lt;br/&gt;&amp;gt; part of the signature scheme, so ideally it should be specified already&lt;br/&gt;&amp;gt; in this BIP. On the other hand, there may be good arguments against it,&lt;br/&gt;&amp;gt; but I&amp;#39;m not aware of any.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; This issue leads to a discrepancy between the specification and the&lt;br/&gt;&amp;gt; test vectors because the data fields of test vectors &amp;#34;are given as byte&lt;br/&gt;&amp;gt; arrays&amp;#34;, including public and secret key. As a consequence, even the&lt;br/&gt;&amp;gt; Python reference implementation in the BIP draft doesn&amp;#39;t work on test&lt;br/&gt;&amp;gt; vectors (in a strict sense).&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Best,&lt;br/&gt;&amp;gt; Tim&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; On Fri, 2018-07-06 at 11:08 -0700, Pieter Wuille via bitcoin-dev wrote:&lt;br/&gt;&amp;gt; &amp;gt; Hello everyone,&lt;br/&gt;&amp;gt; &amp;gt; &lt;br/&gt;&amp;gt; &amp;gt; Here is a proposed BIP for 64-byte elliptic curve Schnorr signatures,&lt;br/&gt;&amp;gt; &amp;gt; over the same curve as is currently used in ECDSA:&lt;br/&gt;&amp;gt; &amp;gt; &lt;a href=&#34;https://github.com/sipa/bips/blob/bip-schnorr/bip-schnorr.mediawiki&#34;&gt;https://github.com/sipa/bips/blob/bip-schnorr/bip-schnorr.mediawiki&lt;/a&gt;&lt;br/&gt;&amp;gt; &amp;gt; &lt;br/&gt;&amp;gt; &amp;gt; It is simply a draft specification of the signature scheme itself. It&lt;br/&gt;&amp;gt; &amp;gt; does not concern consensus rules, aggregation, or any other&lt;br/&gt;&amp;gt; &amp;gt; integration into Bitcoin - those things are left for other proposals,&lt;br/&gt;&amp;gt; &amp;gt; which can refer to this scheme if desirable. Standardizing the&lt;br/&gt;&amp;gt; &amp;gt; signature scheme is a first step towards that, and as it may be&lt;br/&gt;&amp;gt; &amp;gt; useful&lt;br/&gt;&amp;gt; &amp;gt; in other contexts to have a common Schnorr scheme available, it is&lt;br/&gt;&amp;gt; &amp;gt; its&lt;br/&gt;&amp;gt; &amp;gt; own informational BIP.&lt;br/&gt;&amp;gt; &amp;gt; &lt;br/&gt;&amp;gt; &amp;gt; If accepted, we&amp;#39;ll work on more production-ready reference&lt;br/&gt;&amp;gt; &amp;gt; implementations and tests.&lt;br/&gt;&amp;gt; &amp;gt; &lt;br/&gt;&amp;gt; &amp;gt; This is joint work with several people listed in the document.&lt;br/&gt;&amp;gt; &amp;gt; &lt;br/&gt;&amp;gt; &amp;gt; Cheers,&lt;br/&gt;&amp;gt; &amp;gt; &lt;br/&gt;&amp;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;&amp;gt; &lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Andrew Poelstra&lt;br/&gt;Mathematics Department, Blockstream&lt;br/&gt;Email: apoelstra at wpsoftware.net&lt;br/&gt;Web:   &lt;a href=&#34;https://www.wpsoftware.net/andrew&#34;&gt;https://www.wpsoftware.net/andrew&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&amp;#34;A goose alone, I suppose, can know the loneliness of geese&lt;br/&gt; who can never find their peace,&lt;br/&gt; whether north or south or west or east&amp;#34;&lt;br/&gt;       --Joanna Newsom&lt;br/&gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;A non-text attachment was scrubbed...&lt;br/&gt;Name: signature.asc&lt;br/&gt;Type: application/pgp-signature&lt;br/&gt;Size: 455 bytes&lt;br/&gt;Desc: not available&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20180812/1a5026a0/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20180812/1a5026a0/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T18:13:57Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqs2t9f90xqs27qup52wkzprzdlapuy0f4ws84kpv6rjxwstsne0p4czyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2knyjsm3</id>
    
      <title type="html">📅 Original date posted:2018-05-24 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqs2t9f90xqs27qup52wkzprzdlapuy0f4ws84kpv6rjxwstsne0p4czyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2knyjsm3" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs8mr8ea7jarrsl70t5j42nfaes0z20xp64vra9qh47zkv3xyf7y5clfea93&#39;&gt;nevent1q…ea93&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2018-05-24&lt;br/&gt;📝 Original message:On Thu, May 24, 2018 at 11:44:16AM &#43;0200, Natanael via bitcoin-dev wrote:&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; As stated above by Wuille this seems to not be a concern for typical P2SH&lt;br/&gt;&amp;gt; uses, but my argument here is simply that in many cases, not all&lt;br/&gt;&amp;gt; stakeholders in a transaction will hold one of the private keys required to&lt;br/&gt;&amp;gt; sign. And such stakeholders would want a guarantee that the original script&lt;br/&gt;&amp;gt; is followed as promised.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;In this case, even mandatory graftroot would not allow the signing stakeholders&lt;br/&gt;to take the coins. The reason is that if there are _any_ non-signing script&lt;br/&gt;conditions that must be followed, then to use Taproot the top-level public key&lt;br/&gt;needs to be unusable, e.g. by being a NUMS point. In that case the public key&lt;br/&gt;would also be unusable for Graftroot.&lt;br/&gt;&lt;br/&gt;Another way to see this is -- in any context where Graftroot seems dangerous,&lt;br/&gt;there needs to be a reason why the ability to just create transactions is not&lt;br/&gt;dangerous. In your example it seems that the signing parties can just take&lt;br/&gt;the coins with or without Graftroot, so the problem is not in Graftroot but&lt;br/&gt;in the way that the example is set up.&lt;br/&gt; &lt;br/&gt;&amp;gt; I&amp;#39;m not concerned by the ability to move funds to an address with the new&lt;br/&gt;&amp;gt; rules that you&amp;#39;d otherwise graftroot in, only that you can provide a&lt;br/&gt;&amp;gt; transparent guarantee that you ALSO follow the original script as promised.&lt;br/&gt;&amp;gt; What happens *after* you have followed the original script is unrelated,&lt;br/&gt;&amp;gt; IMHO.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;To do this in Taproot you need to disable the top-level key, which will also&lt;br/&gt;disable Graftroot. &lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Andrew Poelstra&lt;br/&gt;Mathematics Department, Blockstream&lt;br/&gt;Email: apoelstra at wpsoftware.net&lt;br/&gt;Web:   &lt;a href=&#34;https://www.wpsoftware.net/andrew&#34;&gt;https://www.wpsoftware.net/andrew&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&amp;#34;A goose alone, I suppose, can know the loneliness of geese&lt;br/&gt; who can never find their peace,&lt;br/&gt; whether north or south or west or east&amp;#34;&lt;br/&gt;       --Joanna Newsom&lt;br/&gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;A non-text attachment was scrubbed...&lt;br/&gt;Name: signature.asc&lt;br/&gt;Type: application/pgp-signature&lt;br/&gt;Size: 455 bytes&lt;br/&gt;Desc: not available&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20180524/eb8ee543/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20180524/eb8ee543/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T18:12:26Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsdnrc7vjjcwtcmjvz2tlp5ujz9md9hv8zwcfqawu342lksx9wvg6czyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2kklqr5p</id>
    
      <title type="html">📅 Original date posted:2018-05-23 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsdnrc7vjjcwtcmjvz2tlp5ujz9md9hv8zwcfqawu342lksx9wvg6czyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2kklqr5p" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsrkrern75crm7sppzd9nj4mvqwdy7rgzv5vt4q60pawlrfgmglxqsruqu20&#39;&gt;nevent1q…qu20&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2018-05-23&lt;br/&gt;📝 Original message:On Wed, May 23, 2018 at 01:50:13PM &#43;0000, Andrew Poelstra via bitcoin-dev wrote:&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Graftroot also break blind signature schemes. Consider a protocol such as [1]&lt;br/&gt;&amp;gt; where some party has a bunch of UTXOs all controlled (in part) by the same&lt;br/&gt;&amp;gt; key X. This party produces blind signatures on receipt of new funds, and can&lt;br/&gt;&amp;gt; only verify the number of signatures he produces, not anything about what he&lt;br/&gt;&amp;gt; is signing.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; BTW, the same concern holds for SIGHASH_NOINPUT, which I&amp;#39;d also like to be&lt;br/&gt;&amp;gt; disable-able. Maybe we should extend one of ZmnSCPxj&amp;#39;s suggestions to include&lt;br/&gt;&amp;gt; a free &amp;#34;flags&amp;#34; byte or two in the witness?&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; (I also had the same concern about signature aggregation. It seems like it&amp;#39;s&lt;br/&gt;&amp;gt; pretty hard to preserve the &amp;#34;one signature = at most one input&amp;#34; invariant of&lt;br/&gt;&amp;gt; Bitcoin, but I think it&amp;#39;s important that it is preserved, at least for&lt;br/&gt;&amp;gt; outputs that need it.)&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Or maybe, since it appears it will require a space hit to support optional&lt;br/&gt;&amp;gt; graftroot anyway, we should simply not include it in a proposal for Taproot,&lt;br/&gt;&amp;gt; since there would be no opportunity cost (in blockchain efficiency) to doing&lt;br/&gt;&amp;gt; it later.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; [1] &lt;a href=&#34;https://github.com/apoelstra/scriptless-scripts/pull/1&#34;&gt;https://github.com/apoelstra/scriptless-scripts/pull/1&lt;/a&gt; &lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;On further thought, I rescind this concern (ditto for SIGHASH_NOINPUT) (but&lt;br/&gt;not for aggregate sigs, they still interact badly with blind signatures).&lt;br/&gt;&lt;br/&gt;As long as graftroot (and NOINPUT) sigs commit to the public key, it is&lt;br/&gt;possible for a server to have unique keys for every output, even while&lt;br/&gt;retaining the same private key, and thereby ensure that &amp;#34;one sig can spend&lt;br/&gt;only one output&amp;#34; holds. To do this, suppose the server has a BIP32 xpubkey&lt;br/&gt;(xG, cc). A blind signer using the private key x can be made to sign not&lt;br/&gt;only for xG, but also for any publicly-derived child keys of (xG, cc).&lt;br/&gt;&lt;br/&gt;Here is a simple scheme that does this:&lt;br/&gt;&lt;br/&gt;  1. Signer provides a nonce R = kG&lt;br/&gt;&lt;br/&gt;  2. Challenger computes bip32 tweak h, chooses blinders alpha and beta,&lt;br/&gt;     and computes:&lt;br/&gt;         R&amp;#39; = R &#43; alpha*G &#43; beta*P&lt;br/&gt;         e  = H(P &#43; hG || R&amp;#39; || tx)&lt;br/&gt;         e&amp;#39; = e &#43; beta&lt;br/&gt;     and sends e&amp;#39; to the signer.&lt;br/&gt;&lt;br/&gt;  3. Signer replies with s = k &#43; xe&amp;#39; (= k &#43; beta*x &#43; (x &#43; h)e - he)&lt;br/&gt;&lt;br/&gt;  4. Challenger unblinds this as s&amp;#39; = s &#43; alpha &#43; he&lt;br/&gt;&lt;br/&gt;(This blind signature scheme is vulnerable to Wagner&amp;#39;s attack, though see&lt;br/&gt;Schnorr 2004 [1] for mitigations that are perfectly compatible with this&lt;br/&gt;modified BIP32ish scheme.)&lt;br/&gt;&lt;br/&gt;I&amp;#39;m unsure whether key-prefixing is _actually_ necessary for this, but it&lt;br/&gt;makes the security argument much clearer since the messagehash contains&lt;br/&gt;some data which can be made unique per-utxo and is committed in the chain.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Andrew&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;[1] &lt;a href=&#34;http://citeseerx.ist.psu.edu/viewdoc/download;jsessionid=8ECEF929559865FD68D1D873555D18FE?doi=10.1.1.68.9836&amp;amp;rep=rep1&amp;amp;type=pdf&#34;&gt;http://citeseerx.ist.psu.edu/viewdoc/download;jsessionid=8ECEF929559865FD68D1D873555D18FE?doi=10.1.1.68.9836&amp;amp;rep=rep1&amp;amp;type=pdf&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Andrew Poelstra&lt;br/&gt;Mathematics Department, Blockstream&lt;br/&gt;Email: apoelstra at wpsoftware.net&lt;br/&gt;Web:   &lt;a href=&#34;https://www.wpsoftware.net/andrew&#34;&gt;https://www.wpsoftware.net/andrew&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&amp;#34;A goose alone, I suppose, can know the loneliness of geese&lt;br/&gt; who can never find their peace,&lt;br/&gt; whether north or south or west or east&amp;#34;&lt;br/&gt;       --Joanna Newsom&lt;br/&gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;A non-text attachment was scrubbed...&lt;br/&gt;Name: signature.asc&lt;br/&gt;Type: application/pgp-signature&lt;br/&gt;Size: 455 bytes&lt;br/&gt;Desc: not available&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20180523/5debf87f/attachment-0001.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20180523/5debf87f/attachment-0001.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T18:12:24Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsrkrern75crm7sppzd9nj4mvqwdy7rgzv5vt4q60pawlrfgmglxqszyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2k0gsh3u</id>
    
      <title type="html">📅 Original date posted:2018-05-23 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsrkrern75crm7sppzd9nj4mvqwdy7rgzv5vt4q60pawlrfgmglxqszyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2k0gsh3u" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsgkxf3x3k2ac0espwxynfj70ucyvvrz7u09fx04zttq8wqgmfasssuufw6g&#39;&gt;nevent1q…fw6g&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2018-05-23&lt;br/&gt;📝 Original message:On Tue, May 22, 2018 at 11:17:42AM -0700, Pieter Wuille via bitcoin-dev wrote:&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Given the recent discussions about Taproot [1] and Graftroot [2], I&lt;br/&gt;&amp;gt; was wondering if a practical deployment needs a way to explicitly&lt;br/&gt;&amp;gt; enable or disable the Graftroot spending path. I have no strong&lt;br/&gt;&amp;gt; reasons why this would be necessary, but I&amp;#39;d like to hear other&lt;br/&gt;&amp;gt; people&amp;#39;s thoughts.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;Graftroot also break blind signature schemes. Consider a protocol such as [1]&lt;br/&gt;where some party has a bunch of UTXOs all controlled (in part) by the same&lt;br/&gt;key X. This party produces blind signatures on receipt of new funds, and can&lt;br/&gt;only verify the number of signatures he produces, not anything about what he&lt;br/&gt;is signing.&lt;br/&gt;&lt;br/&gt;BTW, the same concern holds for SIGHASH_NOINPUT, which I&amp;#39;d also like to be&lt;br/&gt;disable-able. Maybe we should extend one of ZmnSCPxj&amp;#39;s suggestions to include&lt;br/&gt;a free &amp;#34;flags&amp;#34; byte or two in the witness?&lt;br/&gt;&lt;br/&gt;(I also had the same concern about signature aggregation. It seems like it&amp;#39;s&lt;br/&gt;pretty hard to preserve the &amp;#34;one signature = at most one input&amp;#34; invariant of&lt;br/&gt;Bitcoin, but I think it&amp;#39;s important that it is preserved, at least for&lt;br/&gt;outputs that need it.)&lt;br/&gt;&lt;br/&gt;Or maybe, since it appears it will require a space hit to support optional&lt;br/&gt;graftroot anyway, we should simply not include it in a proposal for Taproot,&lt;br/&gt;since there would be no opportunity cost (in blockchain efficiency) to doing&lt;br/&gt;it later.&lt;br/&gt;&lt;br/&gt;[1] &lt;a href=&#34;https://github.com/apoelstra/scriptless-scripts/pull/1&#34;&gt;https://github.com/apoelstra/scriptless-scripts/pull/1&lt;/a&gt; &lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Andrew Poelstra&lt;br/&gt;Mathematics Department, Blockstream&lt;br/&gt;Email: apoelstra at wpsoftware.net&lt;br/&gt;Web:   &lt;a href=&#34;https://www.wpsoftware.net/andrew&#34;&gt;https://www.wpsoftware.net/andrew&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&amp;#34;A goose alone, I suppose, can know the loneliness of geese&lt;br/&gt; who can never find their peace,&lt;br/&gt; whether north or south or west or east&amp;#34;&lt;br/&gt;       --Joanna Newsom&lt;br/&gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;A non-text attachment was scrubbed...&lt;br/&gt;Name: signature.asc&lt;br/&gt;Type: application/pgp-signature&lt;br/&gt;Size: 455 bytes&lt;br/&gt;Desc: not available&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20180523/fe3efcc5/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20180523/fe3efcc5/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T18:12:24Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsz5m7nz6z80aeql3y2mdh2xfy30aa0knf6sfzk3fantn957y23kmqzyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2khpsrtn</id>
    
      <title type="html">📅 Original date posted:2018-03-21 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsz5m7nz6z80aeql3y2mdh2xfy30aa0knf6sfzk3fantn957y23kmqzyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2khpsrtn" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs25syhrdfqytguun3czdunxq74l5z005fsxsectfunya3sge8rxnqlv6lz8&#39;&gt;nevent1q…6lz8&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2018-03-21&lt;br/&gt;📝 Original message:On Wed, Mar 21, 2018 at 02:06:18PM &#43;1000, Anthony Towns via bitcoin-dev wrote:&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; That leads me to think that interactive signature aggregation is going to&lt;br/&gt;&amp;gt; take a lot of time and work, and it would make sense to do a v1-upgrade&lt;br/&gt;&amp;gt; that&amp;#39;s &amp;#34;just&amp;#34; Schnorr (and taproot and MAST and re-enabling opcodes and&lt;br/&gt;&amp;gt; ...) in the meantime. YMMV.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;Unfortunately I agree. Another complication with aggregate signatures is&lt;br/&gt;that they complicate blind signature protocols such as [1]. In particular&lt;br/&gt;they break the assumption &amp;#34;one signature can spend at most one UTXO&amp;#34;&lt;br/&gt;meaning that a blind signer cannot tell how many coins they&amp;#39;re authorizing&lt;br/&gt;with a given signature, even if they&amp;#39;ve ensured that the key they&amp;#39;re using&lt;br/&gt;only controls UTXOs of a fixed value.&lt;br/&gt;&lt;br/&gt;This seems solvable with creative use of ZKPs, but the fact that it&amp;#39;s even&lt;br/&gt;a problem caught me off guard, and makes me think that signature aggregation&lt;br/&gt;is much harder to think about than e.g. Taproot which does not change&lt;br/&gt;signature semantics at all.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Andrew&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;[1] &lt;a href=&#34;https://github.com/jonasnick/scriptless-scripts/blob/blind-swaps/md/partially-blind-swap.md&#34;&gt;https://github.com/jonasnick/scriptless-scripts/blob/blind-swaps/md/partially-blind-swap.md&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Andrew Poelstra&lt;br/&gt;Mathematics Department, Blockstream&lt;br/&gt;Email: apoelstra at wpsoftware.net&lt;br/&gt;Web:   &lt;a href=&#34;https://www.wpsoftware.net/andrew&#34;&gt;https://www.wpsoftware.net/andrew&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&amp;#34;A goose alone, I suppose, can know the loneliness of geese&lt;br/&gt; who can never find their peace,&lt;br/&gt; whether north or south or west or east&amp;#34;&lt;br/&gt;       --Joanna Newsom&lt;br/&gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;A non-text attachment was scrubbed...&lt;br/&gt;Name: signature.asc&lt;br/&gt;Type: application/pgp-signature&lt;br/&gt;Size: 455 bytes&lt;br/&gt;Desc: not available&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20180321/535daaca/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20180321/535daaca/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T18:11:19Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsru9kegkhhdexfrudjs4yjt0n8yu5n084s20vf0crxnq8plklr20szyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2kaf4472</id>
    
      <title type="html">📅 Original date posted:2018-01-23 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsru9kegkhhdexfrudjs4yjt0n8yu5n084s20vf0crxnq8plklr20szyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2kaf4472" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsqss2fu77rvklwp6t9dznqfs0c9rq6vdpstv3uwyyfkza5dk7k7fgp85f4w&#39;&gt;nevent1q…5f4w&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2018-01-23&lt;br/&gt;📝 Original message:On Tue, Jan 23, 2018 at 10:45:06PM &#43;0000, Gregory Maxwell via bitcoin-dev wrote:&lt;br/&gt;&amp;gt; On Tue, Jan 23, 2018 at 10:22 PM, Anthony Towns &amp;lt;aj at erisian.com.au&amp;gt; wrote:&lt;br/&gt;&amp;gt; &amp;gt; Hmm, at least people can choose not to reuse addresses currently --&lt;br/&gt;&amp;gt; &amp;gt; if everyone were using taproot and that didn&amp;#39;t involve hashing the key,&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Can you show me a model of quantum computation that is conjectured to&lt;br/&gt;&amp;gt; be able to solve the discrete log problem but which would take longer&lt;br/&gt;&amp;gt; than fractions of a second to do so? Quantum computation has to occur&lt;br/&gt;&amp;gt; within the coherence lifetime of the system.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; &amp;gt; way for individuals to hedge against quantum attacks in case they&amp;#39;re ever feasible, at least that I can see (well, without moving their funds out of bitcoin anyway)?&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; By using scriptpubkeys with actual security against quantum computers&lt;br/&gt;&amp;gt; instead of snake-oil.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; &amp;gt; (It seems like using the point at infinity wouldn&amp;#39;t work because&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Indeed, that doesn&amp;#39;t work.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; &amp;gt; that when quantum attacks start approaching feasibility. If funds are&lt;br/&gt;&amp;gt; &amp;gt; being held in reused addresses over the long term, that would be more&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; They are. But I don&amp;#39;t believe that is relevant; the attacker would&lt;br/&gt;&amp;gt; simply steal the coins on spend.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Then the system would need to be hardforked to allow spending through a&lt;br/&gt;quantum-resistant ZKP of knowledge of the hashed public key. I expect&lt;br/&gt;that in a post-quantum world there will be demand for such a fork,&lt;br/&gt;especially if we came into such a world through surprise evidence of&lt;br/&gt;a discrete log break.&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Andrew Poelstra&lt;br/&gt;Mathematics Department, Blockstream&lt;br/&gt;Email: apoelstra at wpsoftware.net&lt;br/&gt;Web:   &lt;a href=&#34;https://www.wpsoftware.net/andrew&#34;&gt;https://www.wpsoftware.net/andrew&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&amp;#34;A goose alone, I suppose, can know the loneliness of geese&lt;br/&gt; who can never find their peace,&lt;br/&gt; whether north or south or west or east&amp;#34;&lt;br/&gt;       --Joanna Newsom&lt;br/&gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;A non-text attachment was scrubbed...&lt;br/&gt;Name: signature.asc&lt;br/&gt;Type: application/pgp-signature&lt;br/&gt;Size: 455 bytes&lt;br/&gt;Desc: not available&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20180124/73e08261/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20180124/73e08261/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T18:10:09Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsx5ncm6t9tl2qhejla06hkhkxcgksdcdgj70ylxu4n860lk4m3t7gzyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2ky57c39</id>
    
      <title type="html">📅 Original date posted:2017-12-04 📝 Original message:To ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsx5ncm6t9tl2qhejla06hkhkxcgksdcdgj70ylxu4n860lk4m3t7gzyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2ky57c39" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsyjc5esx75f8r02r0tdt0v4suzrjuv0kv0phsfs02f0pq4g62tm2ca5jth2&#39;&gt;nevent1q…jth2&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2017-12-04&lt;br/&gt;📝 Original message:To follow up on the remarkable work Greg announced from Benedikt Bünz (Stanford)&lt;br/&gt;and Jonathan Bootle (UCL) on Bulletproofs: &lt;a href=&#34;https://eprint.iacr.org/2017/1066&#34;&gt;https://eprint.iacr.org/2017/1066&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Summary&lt;br/&gt;=========&lt;br/&gt;&lt;br/&gt;Over the last couple weeks, along with Jonas Nick, Pieter Wuille, Greg Maxwell&lt;br/&gt;and Peter Dettmann, I&amp;#39;ve implemented the single-output version of Bulletproofs&lt;br/&gt;at &lt;a href=&#34;https://github.com/ElementsProject/secp256k1-zkp/pull/16&#34;&gt;https://github.com/ElementsProject/secp256k1-zkp/pull/16&lt;/a&gt; and have some&lt;br/&gt;performance numbers.&lt;br/&gt;&lt;br/&gt;All of these benchmarks were performed on one core of an Intel i7-6820MQ&lt;br/&gt;throttled to 2.00Ghz, and reflect verification of a single 64-bit rangeproof.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Old Rangeproof    14.592 ms&lt;br/&gt;     with endo    10.304 ms&lt;br/&gt;Bulletproof        4.208 ms&lt;br/&gt;     with endo     4.031 ms&lt;br/&gt;ECDSA verify       0.117 ms&lt;br/&gt;     with endo     0.084 ms&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Here &amp;#34;with endo&amp;#34; refers to use of the GLV endomorphism supported by the curve&lt;br/&gt;secp256k1, which libsecp256k1 (and therefore Bitcoin) supports but does not&lt;br/&gt;enable by default, out of an abundance of caution regarding potential patents.&lt;br/&gt;&lt;br/&gt;As we can see, without the endomorphism this reflects a 3.47x speedup over&lt;br/&gt;the verification speed of the old rangeproofs. Because Bulletproof verification&lt;br/&gt;scales with O(N/log(N)) while the old rangeproof scales with O(N), we can&lt;br/&gt;extrapolate forward to say that a 2-output aggregate would verify with 4.10x&lt;br/&gt;the speed of the old rangeproofs.&lt;br/&gt;&lt;br/&gt;By the way, even without aggregation, we can verify two rangeproofs nearly 15%&lt;br/&gt;faster than verifying one twice (so a 3.95x speedup) because the nature of the&lt;br/&gt;verification equation makes it amenable to batch verification. This number&lt;br/&gt;improves with the more proofs that you&amp;#39;re verifying simultaneously (assuming&lt;br/&gt;you have enough RAM), such that for example you can batch-verify 10000&lt;br/&gt;bulletproofs 9.9 times as fast as you could verify 10000 of the old proofs.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;While this is a remarkable speedup which greatly improves the feasibility of&lt;br/&gt;CT for Bitcoin (though still not to the point where I&amp;#39;d expect a serious&lt;br/&gt;proposal to get anywhere, IMHO), the concerns highlighted by Greg regarding&lt;br/&gt;unconditional versus computational soundness remain. I won&amp;#39;t expand on that&lt;br/&gt;more than it has already been discussed in this thread, I just want to tamp&lt;br/&gt;down any irrational exhuberance about these result.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;People who only care about numbers can stop reading here. What follows is a&lt;br/&gt;discussion about how this speedup is possible and why we weren&amp;#39;t initially&lt;br/&gt;sure that we&amp;#39;d get any speedup at all.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Details&lt;br/&gt;=========&lt;br/&gt;&lt;br/&gt;Section 6 of the linked preprint discusses performance vs our old rangeproofs. As&lt;br/&gt;Greg mentioned, it is possible to fit two 64-bit bulletproofs into 738 bytes,&lt;br/&gt;with logarithmic scaling. (So one proof would take 674 bytes, but eight proofs&lt;br/&gt;only 866 bytes.)&lt;br/&gt;&lt;br/&gt;However, this section does not give performance numbers, because at the time&lt;br/&gt;the preprint was written, there was no optimized implementation on which to&lt;br/&gt;benchmark. It was known that verification time would be roughly linear in the&lt;br/&gt;size of the proof: 141 scalar-multiplies for a 64-bit proof, 270 for an&lt;br/&gt;aggregate of two proofs, and so on [*]. Our old rangeproofs required only 128&lt;br/&gt;multiplies for a 64-bit proof, then 256 for two, and so on. So naively we were&lt;br/&gt;concerned that the new Bulletproofs, despite being fantastically smaller than&lt;br/&gt;the original rangeproofs, might wind up taking a bit longer to verify.&lt;br/&gt;&lt;br/&gt;For reference, an ordinary ECDSA signature verification involves 2 multiplies.&lt;br/&gt;So roughly speaking, the naive expectation was that a N-bit rangeproof would&lt;br/&gt;require N-many signature verifications&amp;#39; worth of CPU time, even with this new&lt;br/&gt;research. Worse, we initially expected bulletproofs to require 1.5x this much,&lt;br/&gt;which we avoided with a trick that I&amp;#39;ll describe at the end of this mail.&lt;br/&gt;&lt;br/&gt;As you can see in the above numbers, the old rangeproofs actually perform worse&lt;br/&gt;than this expectation, while the new Bulletproofs perform significantly **better**.&lt;br/&gt;These are for the same reason: when performing a series of scalar multiplications&lt;br/&gt;of the form&lt;br/&gt;&lt;br/&gt;  a*G &#43; b*H &#43; c*I &#43; ...&lt;br/&gt;&lt;br/&gt;where G, H, I are curvepoints and a, b, c are scalars, it is possible to compute&lt;br/&gt;this sum much more quickly than simply computing a*G, b*H, c*I separately and&lt;br/&gt;then adding the results. Signature validation takes advantage of this speedup,&lt;br/&gt;using a technique called Strauss&amp;#39; algorithm, to compute the sum of two multiplies&lt;br/&gt;much faster than twice the multiple-speed. Similarly, as we have learned, the&lt;br/&gt;141 scalar-multiplies in a single-output Bulletproof can also be done in a single&lt;br/&gt;sum. To contrast, the old rangeproofs required we do each multiplication separately,&lt;br/&gt;as the result of one would be hashed to determine the multiplier for the next.&lt;br/&gt;&lt;br/&gt;libsecp256k1 has supported Strauss&amp;#39; algorithm for two points since its inception&lt;br/&gt;in 2013, since this was needed for ECDSA verification. Extending it to many points&lt;br/&gt;was a nontrivial task which Pieter, Greg and Jonas Nick took on this year as part&lt;br/&gt;of our aggregate signatures project. Of the algorithms that we tested, we found&lt;br/&gt;that Strauss was fastest up to about 100 points, at which point Pippenger&amp;#39;s was&lt;br/&gt;fastest. You can see our initial benchmarks here&lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://user-images.githubusercontent.com/2582071/32731185-12c0f108-c881-11e7-83c7-c2432b5fadf5.png&#34;&gt; &lt;br/&gt;&lt;br/&gt;though this does not reflect some optimizations from Peter Dettmann in the last&lt;br/&gt;week.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;It was a happy coincidence that the Bulletproofs paper was published at nearly&lt;br/&gt;the same time that we had working multi-point code to test with.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Finally, the Bulletproof verification process, as written in the paper, is a&lt;br/&gt;recursive process which does not appear to be expressible as a single multiproduct,&lt;br/&gt;and in fact it appears to require nearly twice as many multiplications as I claim&lt;br/&gt;above. I want to draw attention to two optimizations in particular which made this&lt;br/&gt;possible.&lt;br/&gt;&lt;br/&gt;1. By expanding out the recursive process, one can see that the inner-product argument&lt;br/&gt;   (Protocol 1 in the paper) is actually one multiproduct: you hash each (L_i, R_i)&lt;br/&gt;   pair to obtain logarithmically many scalars, invert these, and then each scalar in&lt;br/&gt;   the final multiproduct is a product containing either the inverse or original of&lt;br/&gt;   each scalar.&lt;br/&gt;&lt;br/&gt;   Peter Dettmann found a way to reduce this to one scalar inversion, from which&lt;br/&gt;   every single scalar was obtainable from a single multiplication or squaring of a&lt;br/&gt;   previous result. I was able to implement this in a way that cached only log-many&lt;br/&gt;   previous results.&lt;br/&gt;&lt;br/&gt;2. Next, line (62) of the Bulletproofs paper appears to require N multiplications&lt;br/&gt;   beyond the 2N multiplications already done in the recursive step. But since&lt;br/&gt;   these multiplications used the same basepoints that were used in the recursive&lt;br/&gt;   step, we could use the distributive property to combine them. This sounds&lt;br/&gt;   trivial but took a fair bit of care to ensure that all the right data was still&lt;br/&gt;   committed to at the right stage of proof verification.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Further Work&lt;br/&gt;=========&lt;br/&gt;&lt;br/&gt;There are still a few open issues I plan to help resolve in the coming month:&lt;br/&gt;&lt;br/&gt;  - Bulletproof aggregation is not compatible with Confidential Assets, where each&lt;br/&gt;    output has a unique asset tag associated with it. There are a couple possible&lt;br/&gt;    solutions to this but nothing public-ready.&lt;br/&gt;&lt;br/&gt;  - Bulletproofs, as described in the paper, work only when proving 2^n-many bits.&lt;br/&gt;    I believe there is a straightforward and verifier-efficient way to extend it&lt;br/&gt;    to support non-powers-of-2, but this requires some work to modify the proof in&lt;br/&gt;    the paper.&lt;br/&gt;&lt;br/&gt;  - Bulletproofs are actually much more general than rangeproofs. They can be used&lt;br/&gt;    to prove results of arbitrary arithmetic circuits, which is something we are&lt;br/&gt;    very interested in implementing.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;[*] By &amp;#34;and so on&amp;#34;, I mean that N bits require 2N &#43; 2log_2(N) &#43; 6 scalar multiplies.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Cheers&lt;br/&gt;Andrew&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Andrew Poelstra&lt;br/&gt;Mathematics Department, Blockstream&lt;br/&gt;Email: apoelstra at wpsoftware.net&lt;br/&gt;Web:   &lt;a href=&#34;https://www.wpsoftware.net/andrew&#34;&gt;https://www.wpsoftware.net/andrew&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&amp;#34;A goose alone, I suppose, can know the loneliness of geese&lt;br/&gt; who can never find their peace,&lt;br/&gt; whether north or south or west or east&amp;#34;&lt;br/&gt;       --Joanna Newsom&lt;br/&gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;A non-text attachment was scrubbed...&lt;br/&gt;Name: signature.asc&lt;br/&gt;Type: application/pgp-signature&lt;br/&gt;Size: 455 bytes&lt;br/&gt;Desc: not available&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20171204/42dfe0d1/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20171204/42dfe0d1/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T18:08:17Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqswxp6jj44sr6pk6rk23vcmchy0qqhnz9hx2shlqesdqe4aa42rxvczyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2km3q2hs</id>
    
      <title type="html">📅 Original date posted:2017-09-15 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqswxp6jj44sr6pk6rk23vcmchy0qqhnz9hx2shlqesdqe4aa42rxvczyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2km3q2hs" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsd5p8t6n4uuwyj5zpklgy52uvpev9h8h4p56t52g70cq6ankvcltszvqd8f&#39;&gt;nevent1q…qd8f&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2017-09-15&lt;br/&gt;📝 Original message:On Fri, Sep 15, 2017 at 10:40:12PM &#43;0200, Simone Bronzini via bitcoin-dev wrote:&lt;br/&gt;&amp;gt; Since a soft-fork is a restriction of the consensus rules, I think the&lt;br/&gt;&amp;gt; only way to have an un-soft-forkable cryptocurrency is creating a&lt;br/&gt;&amp;gt; cryptocurrency where no transaction is valid.&lt;br/&gt;&amp;gt; &lt;br/&gt;&lt;br/&gt;Even this can be soft-forked to add an extension block that contains transactions :)&lt;br/&gt;&lt;br/&gt;Ultimately I think the best you can do in this direction is to design for&lt;br/&gt;maximal fungibility and/or transaction structures that minimize interaction&lt;br/&gt;with the blockchain. This minimizes the surface for transaction censorship,&lt;br/&gt;which is somewhat in the spirit of your goal.&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Andrew Poelstra&lt;br/&gt;Mathematics Department, Blockstream&lt;br/&gt;Email: apoelstra at wpsoftware.net&lt;br/&gt;Web:   &lt;a href=&#34;https://www.wpsoftware.net/andrew&#34;&gt;https://www.wpsoftware.net/andrew&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&amp;#34;A goose alone, I suppose, can know the loneliness of geese&lt;br/&gt; who can never find their peace,&lt;br/&gt; whether north or south or west or east&amp;#34;&lt;br/&gt;       --Joanna Newsom&lt;br/&gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;A non-text attachment was scrubbed...&lt;br/&gt;Name: signature.asc&lt;br/&gt;Type: application/pgp-signature&lt;br/&gt;Size: 455 bytes&lt;br/&gt;Desc: not available&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20170916/3fa2bec8/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20170916/3fa2bec8/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T18:06:02Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqs94nhr5s66wksrptq2uqgvemdc2npeeafe63lz54reffnwymwysfszyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2k6d45cj</id>
    
      <title type="html">📅 Original date posted:2017-05-10 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqs94nhr5s66wksrptq2uqgvemdc2npeeafe63lz54reffnwymwysfszyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2k6d45cj" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs24w96u70z46c2a8afzjpq70ef5gpp74yv40g6g60eqackpdhk35gr5kzex&#39;&gt;nevent1q…kzex&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2017-05-10&lt;br/&gt;📝 Original message:On Tue, May 09, 2017 at 09:59:06PM -0400, Russell O&amp;#39;Connor via bitcoin-dev wrote:&lt;br/&gt;&amp;gt; I&amp;#39;m a bit amateur at this sort of thing, but let me try to argue that this&lt;br/&gt;&amp;gt; proposal is in fact horribly broken ;)&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Suppose Alice has some UTXO with some money Bob wants to steal.  Grant me&lt;br/&gt;&amp;gt; that the public key P0 protecting Alice&amp;#39;s UTXO is public (say because the&lt;br/&gt;&amp;gt; public key has been reused elsewhere).&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Bob going to spend Alice&amp;#39;s UTXO by generating random values s0, k0 and R0&lt;br/&gt;&amp;gt; := k0*G and thus creating a random signature for it, [R0, s0].  Now clearly&lt;br/&gt;&amp;gt; this signature isn&amp;#39;t going to be valid by itself because it is just random.&lt;br/&gt;&amp;gt; Bob&amp;#39;s goal will be to make a transaction with other inputs such that, while&lt;br/&gt;&amp;gt; the individual signatures are not valid, the aggregated signature will be&lt;br/&gt;&amp;gt; valid.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;If you seed the randomization with every R value (which would come for free&lt;br/&gt;if you used, say, the witness root) then Wagner&amp;#39;s attack no longer applies.&lt;br/&gt;&lt;br/&gt;The idea is that no aggregation occurs until a miner produces a block. You&lt;br/&gt;have a bunch of independent Schnorr sigs (s_i, R_i). Then the _miner_ multiples&lt;br/&gt;each s_i by H(witness root || index) or whatever, sums up the s_i&amp;#39;s, and commits&lt;br/&gt;the sum somewhere where it doesn&amp;#39;t affect the root.&lt;br/&gt;&lt;br/&gt;Verifiers then multiply each R_i by the same multiplying factors and are able&lt;br/&gt;to do a batch verification of them.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Verifiers who have seen a signature before and cached it as valid can save&lt;br/&gt;themselves a bit of time by subtracting H(witness root || index)*s_i from&lt;br/&gt;the summed s-value and then skipping R_i in the above step. These are scalar&lt;br/&gt;operations and are extremely cheap.&lt;br/&gt;&lt;br/&gt;They can recognize the signature given only the transaction it signs and R_i,&lt;br/&gt;which uniquely determine a valid signature.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;I believe this is what Tadge was referring to when he mentioned a talk of mine.&lt;br/&gt;It&amp;#39;s roughly what I&amp;#39;ve had in mind whenever I talk about non-interactive Schnorr&lt;br/&gt;aggregation.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Cheers&lt;br/&gt;Andrew&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Andrew Poelstra&lt;br/&gt;Mathematics Department, Blockstream&lt;br/&gt;Email: apoelstra at wpsoftware.net&lt;br/&gt;Web:   &lt;a href=&#34;https://www.wpsoftware.net/andrew&#34;&gt;https://www.wpsoftware.net/andrew&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&amp;#34;A goose alone, I suppose, can know the loneliness of geese&lt;br/&gt; who can never find their peace,&lt;br/&gt; whether north or south or west or east&amp;#34;&lt;br/&gt;       --Joanna Newsom&lt;br/&gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;A non-text attachment was scrubbed...&lt;br/&gt;Name: signature.asc&lt;br/&gt;Type: application/pgp-signature&lt;br/&gt;Size: 455 bytes&lt;br/&gt;Desc: not available&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20170510/ab8b75e7/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20170510/ab8b75e7/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T18:00:52Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsglgv9eyt38ct8kgmt3uf3cyw7rxu0h6z7ydzq0h3hk4ugclstqfgzyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2krfqdl5</id>
    
      <title type="html">📅 Original date posted:2017-04-20 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsglgv9eyt38ct8kgmt3uf3cyw7rxu0h6z7ydzq0h3hk4ugclstqfgzyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2krfqdl5" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs29drerqfsg8j992djzhqtmfnxzc2824k055gux944y0ffqwdt0gqpnlngw&#39;&gt;nevent1q…lngw&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2017-04-20&lt;br/&gt;📝 Original message:On Thu, Apr 20, 2017 at 11:46:33AM &#43;0200, Tom Zander via bitcoin-dev wrote:&lt;br/&gt;&amp;gt; On Wednesday, 19 April 2017 19:30:30 CEST David Vorick via bitcoin-dev &lt;br/&gt;&amp;gt; wrote:&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; I suggested something similar which is a much simpler version;&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; &lt;a href=&#34;https://zander.github.io/scaling/Pruning/&#34;&gt;https://zander.github.io/scaling/Pruning/&lt;/a&gt;&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; &amp;gt; Your proposal has a significant disadvantage: If every peer is dropping&lt;br/&gt;&amp;gt; &amp;gt; 75% of all blocks randomly, then you need to connect to a large number of&lt;br/&gt;&amp;gt; &amp;gt; peers to download the whole blockchain.&lt;br/&gt;&amp;gt; ...&lt;br/&gt;&amp;gt; &amp;gt; If you are downloading 450,000 blocks, you will need to&lt;br/&gt;&amp;gt; &amp;gt; connect to an expected 46 peers to download the whole blockchain.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; I don’t really see the problem here, even if your math is a off. (Statistics &lt;br/&gt;&amp;gt; is difficult, I know). Connecting to many nodes to download faster is really &lt;br/&gt;&amp;gt; not an issue and already happens.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;I think the expected number of peers is actually ~47.75, which is pretty&lt;br/&gt;close to David&amp;#39;s estimate, which was wrong in a way that was actually&lt;br/&gt;more favorable to the &amp;#34;everyone stores random blocks&amp;#34; scheme than the&lt;br/&gt;truth.&lt;br/&gt;&lt;br/&gt;Even assuming no archival nodes, and all nodes storing only one random&lt;br/&gt;index between 5 and 255 inclusive, the chance of five arbitrary nodes&lt;br/&gt;giving unique indices by chance is about 98.4%. To get the same probability&lt;br/&gt;from a scheme where each peer has only 25% of the blocks, you need to&lt;br/&gt;connect to 59.59 nodes.&lt;br/&gt;&lt;br/&gt;This is over a ten-times increase in the number of nodes required to&lt;br/&gt;download the entire chain, and requires participating nodes to use 25%&lt;br/&gt;more space than David&amp;#39;s proposal.&lt;br/&gt;&lt;br/&gt;&amp;gt; &amp;gt; Your proposal is also a lot less able to handle active adversaries: if&lt;br/&gt;&amp;gt; &amp;gt; nodes are randomly dropping blocks, the probability that one block in&lt;br/&gt;&amp;gt; &amp;gt; particular is dropped by everyone goes up significantly. &lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; You make the assumption that this new mode of pruning will be used by 100% &lt;br/&gt;&amp;gt; of the network, this is not how distributed systems work.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;Storing random but complete blocks requires the assumption this is _not_ the&lt;br/&gt;case; David&amp;#39;s does not make any assumptions. So on top of the performance&lt;br/&gt;considerations there is this potential DoS vector.&lt;br/&gt; &lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Andrew Poelstra&lt;br/&gt;Mathematics Department, Blockstream&lt;br/&gt;Email: apoelstra at wpsoftware.net&lt;br/&gt;Web:   &lt;a href=&#34;https://www.wpsoftware.net/andrew&#34;&gt;https://www.wpsoftware.net/andrew&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&amp;#34;A goose alone, I suppose, can know the loneliness of geese&lt;br/&gt; who can never find their peace,&lt;br/&gt; whether north or south or west or east&amp;#34;&lt;br/&gt;       --Joanna Newsom&lt;br/&gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;A non-text attachment was scrubbed...&lt;br/&gt;Name: signature.asc&lt;br/&gt;Type: application/pgp-signature&lt;br/&gt;Size: 455 bytes&lt;br/&gt;Desc: not available&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20170420/2fc51438/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20170420/2fc51438/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T18:00:22Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqspkygvcv5has9vc4chau9tr9rrqntw7za95am4q46yr6gzthtzq3qzyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2k2trjsu</id>
    
      <title type="html">📅 Original date posted:2015-01-21 📝 Original ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqspkygvcv5has9vc4chau9tr9rrqntw7za95am4q46yr6gzthtzq3qzyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2k2trjsu" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsfdr2kzthulzsxjrrzauw2vcnjlf3lucryerlts5q9rdsk2s6n9xqns6w70&#39;&gt;nevent1q…6w70&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2015-01-21&lt;br/&gt;📝 Original message:I&amp;#39;ve read this and it looks A-OK to me.&lt;br/&gt;&lt;br/&gt;Andrew&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;On Tue, Jan 20, 2015 at 07:35:49PM -0500, Pieter Wuille wrote:&lt;br/&gt;&amp;gt; Hello everyone,&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; We&amp;#39;ve been aware of the risk of depending on OpenSSL for consensus&lt;br/&gt;&amp;gt; rules for a while, and were trying to get rid of this as part of BIP&lt;br/&gt;&amp;gt; 62 (malleability protection), which was however postponed due to&lt;br/&gt;&amp;gt; unforeseen complexities. The recent evens (see the thread titled&lt;br/&gt;&amp;gt; &amp;#34;OpenSSL 1.0.0p / 1.0.1k incompatible, causes blockchain rejection.&amp;#34;&lt;br/&gt;&amp;gt; on this mailing list) have made it clear that the problem is very&lt;br/&gt;&amp;gt; real, however, and I would prefer to have a fundamental solution for&lt;br/&gt;&amp;gt; it sooner rather than later.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; I therefore propose a softfork to make non-DER signatures illegal&lt;br/&gt;&amp;gt; (they&amp;#39;ve been non-standard since v0.8.0). A draft BIP text can be&lt;br/&gt;&amp;gt; found on:&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt;     &lt;a href=&#34;https://gist.github.com/sipa/5d12c343746dad376c80&#34;&gt;https://gist.github.com/sipa/5d12c343746dad376c80&lt;/a&gt;&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; The document includes motivation and specification. In addition, an&lt;br/&gt;&amp;gt; implementation (including unit tests derived from the BIP text) can be&lt;br/&gt;&amp;gt; found on:&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt;     &lt;a href=&#34;https://github.com/sipa/bitcoin/commit/bipstrictder&#34;&gt;https://github.com/sipa/bitcoin/commit/bipstrictder&lt;/a&gt;&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Comments/criticisms are very welcome, but I&amp;#39;d prefer keeping the&lt;br/&gt;&amp;gt; discussion here on the mailinglist (which is more accessible than on&lt;br/&gt;&amp;gt; the gist).&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;&amp;gt; New Year. New Location. New Benefits. New Data Center in Ashburn, VA.&lt;br/&gt;&amp;gt; GigeNET is offering a free month of service with a new server in Ashburn.&lt;br/&gt;&amp;gt; Choose from 2 high performing configs, both with 100TB of bandwidth.&lt;br/&gt;&amp;gt; Higher redundancy.Lower latency.Increased capacity.Completely compliant.&lt;br/&gt;&amp;gt; &lt;a href=&#34;http://p.sf.net/sfu/gigenet&#34;&gt;http://p.sf.net/sfu/gigenet&lt;/a&gt;&lt;br/&gt;&amp;gt; _______________________________________________&lt;br/&gt;&amp;gt; Bitcoin-development mailing list&lt;br/&gt;&amp;gt; Bitcoin-development at lists.sourceforge.net&lt;br/&gt;&amp;gt; &lt;a href=&#34;https://lists.sourceforge.net/lists/listinfo/bitcoin-development&#34;&gt;https://lists.sourceforge.net/lists/listinfo/bitcoin-development&lt;/a&gt;&lt;br/&gt;&amp;gt; &lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Andrew Poelstra&lt;br/&gt;Mathematics Department, University of Texas at Austin&lt;br/&gt;Email: apoelstra at wpsoftware.net&lt;br/&gt;Web:   &lt;a href=&#34;http://www.wpsoftware.net/andrew&#34;&gt;http://www.wpsoftware.net/andrew&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&amp;#34;If they had taught a class on how to be the kind of citizen Dick Cheney&lt;br/&gt; worries about, I would have finished high school.&amp;#34;   --Edward Snowden&lt;br/&gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;A non-text attachment was scrubbed...&lt;br/&gt;Name: not available&lt;br/&gt;Type: application/pgp-signature&lt;br/&gt;Size: 490 bytes&lt;br/&gt;Desc: not available&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20150121/c2345e35/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20150121/c2345e35/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T15:28:53Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqs0rpz77fkfwlz5fcj6d29tr90ds9ws9lmrldqz44t5euuznetfvggzyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2kvg2apd</id>
    
      <title type="html">📅 Original date posted:2014-11-03 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqs0rpz77fkfwlz5fcj6d29tr90ds9ws9lmrldqz44t5euuznetfvggzyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2kvg2apd" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsgqmdt23jhn4fl2fhusa3kla0nkmx8csw2s34d7lax8qzdgduv0asl9kwya&#39;&gt;nevent1q…kwya&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2014-11-03&lt;br/&gt;📝 Original message:On Mon, Nov 03, 2014 at 06:01:46PM &#43;0200, Alex Mizrahi wrote:&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Yes, but &amp;#34;harder&amp;#34; isn&amp;#39;t same as &amp;#34;unlikely&amp;#34;.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;We are aware of the distintion between hardness (expected work) and&lt;br/&gt;likelihood of successful attack -- much of Appendix B talks about this,&lt;br/&gt;in the context of producing compact SPV proofs which are (a) hard to&lt;br/&gt;forge, and (b) very unlikely to be forgeries.&lt;br/&gt;&lt;br/&gt;We did spend some time formalizing this but due to space constraints&lt;br/&gt;(and it being somewhat beside the point of the whitepaper beyond &amp;#34;we&lt;br/&gt;believe it is possible to do&amp;#34;), we did not explore this in as great&lt;br/&gt;depth as we&amp;#39;d have liked.&lt;br/&gt; &lt;br/&gt;&amp;gt; Another problem with this section is that it only mentions reorganizations.&lt;br/&gt;&amp;gt; But a fraudulent transfer can happen without a reorganization, as an&lt;br/&gt;&amp;gt; attacker can produce an SPV proof which is totally fake. So this is not&lt;br/&gt;&amp;gt; similar to double-spending, attacker doesn&amp;#39;t need to own coins to perform&lt;br/&gt;&amp;gt; an attack.&lt;br/&gt;&amp;gt; &lt;br/&gt;&lt;br/&gt;Well, even in the absense of a reorganization, the attacker&amp;#39;s false proof&lt;br/&gt;will just be invalidated by a proof of longer work on the real chain.&lt;br/&gt;And there is still a real cost to producing the false proof.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Andrew Poelstra&lt;br/&gt;Mathematics Department, University of Texas at Austin&lt;br/&gt;Email: apoelstra at wpsoftware.net&lt;br/&gt;Web:   &lt;a href=&#34;http://www.wpsoftware.net/andrew&#34;&gt;http://www.wpsoftware.net/andrew&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;A non-text attachment was scrubbed...&lt;br/&gt;Name: not available&lt;br/&gt;Type: application/pgp-signature&lt;br/&gt;Size: 490 bytes&lt;br/&gt;Desc: not available&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20141103/90bfc291/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20141103/90bfc291/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T15:27:06Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqs8mwuetm33ju70drzj3s0egjtxlz3neulnytw5dwvjg3qesnrajegzyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2km9kwu7</id>
    
      <title type="html">📅 Original date posted:2014-06-06 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqs8mwuetm33ju70drzj3s0egjtxlz3neulnytw5dwvjg3qesnrajegzyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2km9kwu7" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs05hyuqcfr7nc62d4wdemp8vchdnru9hudt32fqy8xp9rqwacj8uc0amf09&#39;&gt;nevent1q…mf09&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2014-06-06&lt;br/&gt;📝 Original message:On Sat, Jun 07, 2014 at 12:02:36AM &#43;0200, Raúl Martínez wrote:&lt;br/&gt;&amp;gt; I dont know if this attack is even possible, it came to my mind and I will&lt;br/&gt;&amp;gt; try to explain it as good as possible.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Some transacions keep unconfirmed forever and finally they are purged by&lt;br/&gt;&amp;gt; Bitcoin nodes, mostly due to the lack of fees.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;It&amp;#39;s definitely possible. As Pieter says it is important to always reuse&lt;br/&gt;inputs if you are &amp;#34;resending&amp;#34; a transaction. If you don&amp;#39;t reuse inputs,&lt;br/&gt;you are creating a new transaction and you should think of it as&lt;br/&gt;spending twice as much money.&lt;br/&gt;&lt;br/&gt;Like any information on the Internet, once a signed transaction leaves&lt;br/&gt;your system there is no way to undo this. (Though of course, you can&lt;br/&gt;respend the inputs to ensure that if ever your transaction resurfaces it&lt;br/&gt;will not confirm.) This is true even if the transaction has low fees, is&lt;br/&gt;nonstandard, or is otherwise inhibited from relaying.&lt;br/&gt;&lt;br/&gt;I would go so far as to say that any UI which suggests otherwise (e.g.&lt;br/&gt;offering a &amp;#34;cancel&amp;#34; feature which does not involve respending inputs or&lt;br/&gt;that makes any guarantees about being effective) is dangerously broken.&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Andrew Poelstra&lt;br/&gt;Mathematics Department, University of Texas at Austin&lt;br/&gt;Email: apoelstra at wpsoftware.net&lt;br/&gt;Web:   &lt;a href=&#34;http://www.wpsoftware.net/andrew&#34;&gt;http://www.wpsoftware.net/andrew&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;A non-text attachment was scrubbed...&lt;br/&gt;Name: not available&lt;br/&gt;Type: application/pgp-signature&lt;br/&gt;Size: 490 bytes&lt;br/&gt;Desc: not available&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20140606/20d1c22a/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20140606/20d1c22a/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T15:22:32Z</updated>
  </entry>

</feed>