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

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




  <entry>
    <id>https://nostr.ae/nevent1qqs0dl03fke2gdc99nswkykp7xt2dz8dalysykeampr48tp4cymp24szyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2kglt2v9</id>
    
      <title type="html">📅 Original date posted:2023-08-31 🗒️ Summary of this ...</title>
    
    <link rel="alternate" href="https://nostr.ae/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-07T13:52:34&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsqvva6e57xu3t6y8dujn2fxv5a8fzf54n37cw7ezhcekfqmhtxfnszyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2kgk3feu</id>
    
      <title type="html">📅 Original date posted:2023-07-26 🗒️ Summary of this ...</title>
    
    <link rel="alternate" href="https://nostr.ae/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-27T02:26:33&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsxscpr3wadeg0zhpt3fmpjmk64kq6ssahz6wevhcme4evx63jh2hqzyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2kycgws2</id>
    
      <title type="html">📅 Original date posted:2018-03-19 📝 Original message: Hi ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsxscpr3wadeg0zhpt3fmpjmk64kq6ssahz6wevhcme4evx63jh2hqzyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2kycgws2" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsdcrrvphx3a2qs49lr0u0kd2r88z3aqthkwcnva7zcck584cpvv0gl5a5qw&#39;&gt;nevent1q…a5qw&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2018-03-19&lt;br/&gt;📝 Original message:&lt;br/&gt;Hi ZmnSCPxj,&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Yep, I&amp;#39;m pretty sure this works the way you describe -- essentially replace&lt;br/&gt;the hash challenges with adaptor signatures which are reblinded at each layer.&lt;br/&gt;Because adaptor signatures can make arbitrary sets of signatures atomic (and&lt;br/&gt;don&amp;#39;t require any precommitments in the blockchain) it&amp;#39;s easy to do multipath&lt;br/&gt;stuff this way. And using discrete logs as challenges makes reblinding and&lt;br/&gt;transferrable proof-of-payment easy.&lt;br/&gt;&lt;br/&gt;It&amp;#39;s also true that you can use BIP32 hardened keys for the challenges. You&lt;br/&gt;might as well use HMAC rather than a hash for the sake of standardness, but&lt;br/&gt;I don&amp;#39;t think there&amp;#39;s any particular reason to do this for key derivation.&lt;br/&gt;&lt;br/&gt;Then Taproot can hide the non-cooperative cases as you mention.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;I&amp;#39;ve been working on understanding Lightning and figuring out best way to&lt;br/&gt;use the full power of scriptless scripts. I think we can do better than just&lt;br/&gt;dropping TR&#43;SS into the existing architecture. (Some of AJ&amp;#39;s recent emails&lt;br/&gt;to the list have been one-sided commentary on ideas I floated to him in&lt;br/&gt;person recently, but I haven&amp;#39;t had time to get everything straight enough&lt;br/&gt;in my mind to reply.)&lt;br/&gt;&lt;br/&gt;For example, with adaptor signatures &#43; Graftroot [1], one party can make their&lt;br/&gt;commit-tx signature atomic with a delegation to a timelock script; the other&lt;br/&gt;party does the same but for a different timelock script. Then maybe both parties&lt;br/&gt;can share the same commit tx rather than doing the symmetric thing, which would&lt;br/&gt;save space and simplify the protocol a bit. And more generally, this &amp;#34;output&lt;br/&gt;has different spend conditions depending on who publishes to the chain&amp;#34; primitive&lt;br/&gt;seems like a really powerful thing, and AFAIK nobody has noticed this feature of&lt;br/&gt;Graftroot until very recently.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Cheers&lt;br/&gt;&lt;br/&gt;Andrew&lt;br/&gt;&lt;br/&gt;[1] &lt;a href=&#34;https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2018-February/015700.html&#34;&gt;https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2018-February/015700.html&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;On Sun, Mar 18, 2018 at 08:25:13PM -0400, ZmnSCPxj via Lightning-dev wrote:&lt;br/&gt;&amp;gt; Good morning list,&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; I sketch here the idea, of making atomic multipath payment (AMP), with the properties:&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; 1.  Has a proof-of-payment.&lt;br/&gt;&amp;gt; 2.  Multipath decorrelation.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Note: I am not a mathematician.  Thus, it is likely, that there is a mistake here, and we cannot make this work.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; First, we look at BIP32 hierarchically derived (HD) keys by Wuille.  Roughly, given a parent private key k_par, we can do derive k_i child keys for integer i by:&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; k_i = H(i || k_par * G) &#43; k_par&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; where H(x) is a hash function and G is the generator point. (this it not quite how BIP32 does it, it uses HMAC, maybe that is safer for some reason that my non-mathematician self is unaware of...)&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; The parent public key K_par = k_par * G.  We can derive K_i public child keys for integer i by:&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; K_i = H(i || K_par) * G &#43; K_par&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; (I think)&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Note that K_i = k_i * G still, as is usual for elliptic curve asymmetric cryptography:&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; K_i = k_i * G = (H(i || k_par * G) &#43; k_par) * G = H(i || k_par * G) * G &#43; k_par * G = H(i || K_par) * G &#43; K_par&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Of note is that if we know an i, a private child key k_i corresponding to that i, and the public parent key K_par, we can derive the private parent key k_par:&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; k_i = H(i || K_par) &#43; k_par&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; k_par = k_i - H(i || K_par)&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Now all we need is to have a conditional payment, which can only be performed if the payee provides a private key which matches a public key, i.e. given x * G, the payee must provide x.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Fortunately Poelstra has done this work beforehand in the Scriptless Script (SS) concept, where the payee provides a T = t * G, and the Scriptless Script construction requires that the payee reveal the t in order to claim the payment.  I will not go into the math since there is a good chance I shall make a mistake; look up discussions by better mathematicians by me.  Scriptless Script requires Bellare-Neven (BN) signatures to work.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Note that Scriptless Script handles only the equivalent of hashlocking.  We still need a timelock in case the payee refuses to reveal the proof-of-payment t.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Fortunately, Maxwell has provided a construction, taproot (TR).  This construction has two top-level branches: a Bellare-Neven n-of-n, or a Bitcoin Script.  We know that Scriptless Script can make an equivalent to a hashlock from a Bellare-Neven n-of-n.  The other branch of a taproot construction can now be a simple OP_CLTV&#43;OP_CHECKSIG script, forming the timelock half of an HTLC.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; How would a multipath payment work?  The invoice would contain the parent public key K_par.  From this, the payer derives as many K_i, as it needs to split the payment to.  It sets up conditional payments that require revelation of the private child key k_i for each K_i it derives.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; When the payee receives a partial payment, it is not incentivized to claim it immediately yet.  This is because revelation of even one child key k_i will, in combination with the parent public key K_par, reveal the parent private key k_par, which serves as proof-of-payment.  The payee will wait for the entire payment to reach it, and then claim all of them.  This reveals all the private child keys k_i, any one of which will let the payer extract the parent private key k_par that serves as proof-of-payment.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Each path has a different k_i, thus providing multipath decorrelation.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; (Please check my math --- I am not a mathematician and it is possible I have made a mistake somewhere)&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Regards,&lt;br/&gt;&amp;gt; ZmnSCPXj&lt;br/&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;-- &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/20180319/b2f89db2/attachment-0001.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/lightning-dev/attachments/20180319/b2f89db2/attachment-0001.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-09T14:49:37&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqszld3sarxqfc94rt30zvn70k2mskzrk4lgd835rsfj28gau3rn92qzyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2kk6j5yl</id>
    
      <title type="html">📅 Original date posted:2023-02-16 🗒️ Summary of this ...</title>
    
    <link rel="alternate" href="https://nostr.ae/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-08T01:19:41&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsdxmr3g42jj6a5xq02nt9yy3vrjk5cjdnkf5ylevr7dyz68w75agqzyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2kc9099d</id>
    
      <title type="html">📅 Original date posted:2023-02-08 🗒️ Summary of this ...</title>
    
    <link rel="alternate" href="https://nostr.ae/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-08T01:19:28&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs8pwp76jw4g6gfshrk2nwrhjysh5dkwqn0qw0rz2s2n8z0mjxmt8czyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2ka6dxpw</id>
    
      <title type="html">📅 Original date posted:2023-02-07 🗒️ Summary of this ...</title>
    
    <link rel="alternate" href="https://nostr.ae/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-08T01:19:26&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs9jgkay96cs67y59dpfzlsj77dn89pvzs55uszqk69cfwpgga98wqzyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2kg9cslg</id>
    
      <title type="html">📅 Original date posted:2023-02-07 🗒️ Summary of this ...</title>
    
    <link rel="alternate" href="https://nostr.ae/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-08T01:19:26&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs2wh7z232c8hw6kdk6qfvw43zzcy4ud79t7pg2pykjrn5q97y9slqzyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2khxwkmc</id>
    
      <title type="html">📅 Original date posted:2023-02-01 🗒️ Summary of this ...</title>
    
    <link rel="alternate" href="https://nostr.ae/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-08T01:18:55&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsw2ezxc9jegy04mr4ztf6h6ha8mz5mdp3dcxuyvrd8fnuges7av9szyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2k775tff</id>
    
      <title type="html">📅 Original date posted:2023-01-27 🗒️ Summary of this ...</title>
    
    <link rel="alternate" href="https://nostr.ae/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-08T01:18:48&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsy4kjd836ka7l26p9l50fkz7dmmr5q9qv0mdk2hfkc702kpxwwgqqzyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2k7p5kru</id>
    
      <title type="html">📅 Original date posted:2018-09-13 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/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-07T20:14:30&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsp5lr22hh7yllqylxkn88m0v4q6alsd0tk0590s0jawfrhhcfpjmszyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2ky8ttnp</id>
    
      <title type="html">📅 Original date posted:2018-09-05 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/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-07T20:14:28&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs98ksr7ed02sy08tpc4j33lc9l4vp29d6n3csl92whrz7lzyl3q2gzyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2kjxaxfl</id>
    
      <title type="html">📅 Original date posted:2018-09-02 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/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-07T20:14:27&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsrkrern75crm7sppzd9nj4mvqwdy7rgzv5vt4q60pawlrfgmglxqszyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2k0gsh3u</id>
    
      <title type="html">📅 Original date posted:2018-05-23 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/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-07T20:12:24&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsx5ncm6t9tl2qhejla06hkhkxcgksdcdgj70ylxu4n860lk4m3t7gzyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2ky57c39</id>
    
      <title type="html">📅 Original date posted:2017-12-04 📝 Original message:To ...</title>
    
    <link rel="alternate" href="https://nostr.ae/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-07T20:08:17&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs94nhr5s66wksrptq2uqgvemdc2npeeafe63lz54reffnwymwysfszyrh9t6crggaafkcp6hyj44p565kxqtva580r0mfhe3dl054p8fx2k6d45cj</id>
    
      <title type="html">📅 Original date posted:2017-05-10 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/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-07T20:00:52&#43;02:00</updated>
  </entry>

</feed>