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

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




  <entry>
    <id>https://njump.me/nevent1qqsglpyl64jpp8qmn9z3sdrf0plh5a2n7ggj2j2mcch6e8fqs85rjugzypasqnsu699la9dwc5umpguy8sn385244yu6hkq854c5c2sf7jzvgltkws4</id>
    
      <title type="html">📅 Original date posted:2021-09-01 📝 Original message:&amp;gt; ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsglpyl64jpp8qmn9z3sdrf0plh5a2n7ggj2j2mcch6e8fqs85rjugzypasqnsu699la9dwc5umpguy8sn385244yu6hkq854c5c2sf7jzvgltkws4" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqswk88ngl5utkjwct2hy5k7fck7a5mttaj9lgh97p92469ryt6a20sj3s0mf&#39;&gt;nevent1q…s0mf&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2021-09-01&lt;br/&gt;📝 Original message:&amp;gt; ... I tried doing this with &amp;#34;application/bitcoin-psbt&amp;#34; back in&lt;br/&gt;&amp;gt; 2019 but it was not accepted...&lt;br/&gt;&lt;br/&gt;Thanks for this background.&lt;br/&gt;&lt;br/&gt;Based on your experience, we should probably ignore the IANA then,&lt;br/&gt;and just declare a few useful &amp;#34;mime types&amp;#34; (note the quotes) in a&lt;br/&gt;new BIP. We can then agree inside the Bitcoin community on their&lt;br/&gt;usage and meaning.&lt;br/&gt;&lt;br/&gt;Anyone want to write that BIP and shepherd it? I can support you&lt;br/&gt;but I&amp;#39;d rather write code.&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;@DocHEX  ||  Coinkite  ||  PGP: A3A31BAD 5A2A5B10&lt;br/&gt;&lt;br/&gt;On Tue, Aug 31, 2021 at 07:46:55PM &#43;0000, Andrew Chow wrote:&lt;br/&gt;&amp;gt; Hi Peter,&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; It would be nice to have mime types registered for Bitcoin things, but&lt;br/&gt;&amp;gt; I&amp;#39;m not sure that it will be possible, at least not in the way that we&lt;br/&gt;&amp;gt; would like. I tried doing this with &amp;#34;application/bitcoin-psbt&amp;#34; back in&lt;br/&gt;&amp;gt; 2019 but it was not accepted. From that attempt, here is what I have&lt;br/&gt;&amp;gt; learned:&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; There are only a few accepted top level types, so we would not be able&lt;br/&gt;&amp;gt; to use &amp;#34;bitcoin&amp;#34; as the top level (unless you want to submit an RFC to&lt;br/&gt;&amp;gt; add a &amp;#34;bitcoin&amp;#34; top level). Of the available top level types,&lt;br/&gt;&amp;gt; &amp;#34;application&amp;#34; is the most appropriate for Bitcoin.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Next is the tree that the mime type should be in. The best would be the&lt;br/&gt;&amp;gt; Standards tree, but it has some requirements that Bitcoin doesn&amp;#39;t really&lt;br/&gt;&amp;gt; meet. In order to be in the standards tree, the registration must be&lt;br/&gt;&amp;gt; either associated with an IETF specification (so a RFC) or registered by&lt;br/&gt;&amp;gt; a recognized standards related organization. Unfortunately the closest&lt;br/&gt;&amp;gt; thing to a standards organization that Bitcoin has is the BIPs process,&lt;br/&gt;&amp;gt; and that is not a really a standards organization nor is it recognized&lt;br/&gt;&amp;gt; by IANA. So in order to register the mimetypes as Standards tree types,&lt;br/&gt;&amp;gt; we would need to write an RFC, but this could be an independent&lt;br/&gt;&amp;gt; submission (&lt;a href=&#34;https://www.rfc-editor.org/about/independent/&#34;&gt;https://www.rfc-editor.org/about/independent/&lt;/a&gt;) rather than&lt;br/&gt;&amp;gt; IETF-stream submission. I did not continue to pursue this because I&lt;br/&gt;&amp;gt; didn&amp;#39;t have the time.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Another alternative would be to use the Vendor tree, but that would&lt;br/&gt;&amp;gt; prefix the mimetype with &amp;#34;vnd.&amp;#34; so it would end up being something like&lt;br/&gt;&amp;gt; &amp;#34;application/vnd.bitcoin.psbt&amp;#34;. I did not think this was an reasonable&lt;br/&gt;&amp;gt; so I did not continue to pursue this avenue.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Andrew Chow&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; On 8/31/21 2:27 PM, Peter D. Gray via bitcoin-dev wrote:&lt;br/&gt;&amp;gt; &amp;gt; Hi list!&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; I am proposing to register the following MIME (RFC 2046) media types with the IANA:&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; bitcoin/psbt&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;      - aka. a BIP-174 file, in binary&lt;br/&gt;&amp;gt; &amp;gt;      - does not make any claims about signed/unsigned status; lets leave that to the file&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; bitcoin/txn&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;      - aka. wire-ready fully-signed transaction in binary&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; bitcoin/uri&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;      - aka [BIP-21](&lt;a href=&#34;https://github.com/bitcoin/bips/blob/master/bip-0021.mediawiki&#34;&gt;https://github.com/bitcoin/bips/blob/master/bip-0021.mediawiki&lt;/a&gt;)&lt;br/&gt;&amp;gt; &amp;gt;      - could be just a bare bech32 or base58 payment address&lt;br/&gt;&amp;gt; &amp;gt;      - but can also encode amount, comments in URL args&lt;br/&gt;&amp;gt; &amp;gt;      - potentially interesting as a response to 402 - Payment required&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; Other thoughts&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; - some mime-types are proposed in BIP-71 but those are unrelated to above, and never&lt;br/&gt;&amp;gt; &amp;gt;    seem to have been registered&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; - for those who like to encode their binary as base64 or hex, that can be indicated&lt;br/&gt;&amp;gt; &amp;gt;    as &amp;#34;encoding=hex&amp;#34; or &amp;#34;encoding=base64&amp;#34; in the optional parameters, just like&lt;br/&gt;&amp;gt; &amp;gt;    &amp;#34;text/plain; encoding=utf-8&amp;#34; does. However, the default must be binary.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; - although the above are useful for web servers, they are also useful elsewhere and I&lt;br/&gt;&amp;gt; &amp;gt;    intend to use them in NFC (NDEF records) where a shorter length is critical.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; - I have no idea how easily IANA will accept these proposals.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; - current approved mime types: &lt;a href=&#34;https://www.iana.org/assignments/media-types/media-types.xhtml&#34;&gt;https://www.iana.org/assignments/media-types/media-types.xhtml&lt;/a&gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; Thoughts?&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; ---&lt;br/&gt;&amp;gt; &amp;gt; @DocHEX  ||  Coinkite  ||  PGP: A3A31BAD 5A2A5B10&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; &lt;br/&gt;&amp;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/20210901/c6f95528/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20210901/c6f95528/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T22:58:24Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqstlx420aewcutuec2ugzx7kcn4q5e7q9yzt4frjdfaeu8qmx9zuuszypasqnsu699la9dwc5umpguy8sn385244yu6hkq854c5c2sf7jzvge5altq</id>
    
      <title type="html">📅 Original date posted:2021-08-31 📝 Original message:QR ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqstlx420aewcutuec2ugzx7kcn4q5e7q9yzt4frjdfaeu8qmx9zuuszypasqnsu699la9dwc5umpguy8sn385244yu6hkq854c5c2sf7jzvge5altq" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsye8exeey73wryfmd48z7svhklatyrddukzwz88us2uy8scgnlv9sgnr488&#39;&gt;nevent1q…r488&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2021-08-31&lt;br/&gt;📝 Original message:QR Codes do not use IANA mime-types.&lt;br/&gt;&lt;br/&gt;If anyone wanted to use UR encoding for PSBT data in a web context (http),&lt;br/&gt;NFC, or email, it would probably be best to discourage them.&lt;br/&gt;&lt;br/&gt;While I can understand the need for UR encoding in animated QR&lt;br/&gt;codes, I don&amp;#39;t think any other use-case could justify introducing&lt;br/&gt;a new word list (ByteWords), a unique checksum algo (Xoshiro256),&lt;br/&gt;fountain codes (Luby Transform) and CBOR... just to wrap a few k&lt;br/&gt;of binary.&lt;br/&gt;&lt;br/&gt;I do love CBOR though. It&amp;#39;s the best.&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;@DocHEX  ||  Coinkite  ||  PGP: A3A31BAD 5A2A5B10&lt;br/&gt;&lt;br/&gt;On Tue, Aug 31, 2021 at 12:01:23PM -0700, Christopher Allen wrote:&lt;br/&gt;&amp;gt; Note that a number of wallet companies are now supporting the UR encoded&lt;br/&gt;&amp;gt; version of PSBTs, allowing for better QR &amp;amp; Airgap solutions, and also&lt;br/&gt;&amp;gt; leverage CBOR which is an IETF standard.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; We have a community of Airgap wallet developers at&lt;br/&gt;&amp;gt; &lt;a href=&#34;https://github.com/BlockchainCommons/Airgapped-Wallet-Community&#34;&gt;https://github.com/BlockchainCommons/Airgapped-Wallet-Community&lt;/a&gt;&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; …and libraries at&lt;br/&gt;&amp;gt; &lt;a href=&#34;https://github.com/BlockchainCommons/crypto-commons#urs&#34;&gt;https://github.com/BlockchainCommons/crypto-commons#urs&lt;/a&gt;&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; We’d love for you to register UR as well, maybe as bitcoin/psbt&#43;ur&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Can you bring this up in our community for further discussion?&lt;br/&gt;&amp;gt; &lt;a href=&#34;https://github.com/BlockchainCommons/Airgapped-Wallet-Community/discussions&#34;&gt;https://github.com/BlockchainCommons/Airgapped-Wallet-Community/discussions&lt;/a&gt;&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Thanks!&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; — Christopher Allen [via iPhone]&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; On Tue, Aug 31, 2021 at 11:41 AM Peter D. Gray 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 list!&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; I am proposing to register the following MIME (RFC 2046) media types with&lt;br/&gt;&amp;gt; &amp;gt; the IANA:&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; bitcoin/psbt&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;     - aka. a BIP-174 file, in binary&lt;br/&gt;&amp;gt; &amp;gt;     - does not make any claims about signed/unsigned status; lets leave&lt;br/&gt;&amp;gt; &amp;gt; that to the file&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; bitcoin/txn&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;     - aka. wire-ready fully-signed transaction in binary&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; bitcoin/uri&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;     - aka [BIP-21](&lt;br/&gt;&amp;gt; &amp;gt; &lt;a href=&#34;https://github.com/bitcoin/bips/blob/master/bip-0021.mediawiki&#34;&gt;https://github.com/bitcoin/bips/blob/master/bip-0021.mediawiki&lt;/a&gt;)&lt;br/&gt;&amp;gt; &amp;gt;     - could be just a bare bech32 or base58 payment address&lt;br/&gt;&amp;gt; &amp;gt;     - but can also encode amount, comments in URL args&lt;br/&gt;&amp;gt; &amp;gt;     - potentially interesting as a response to 402 - Payment required&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; Other thoughts&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; - some mime-types are proposed in BIP-71 but those are unrelated to above,&lt;br/&gt;&amp;gt; &amp;gt; and never&lt;br/&gt;&amp;gt; &amp;gt;   seem to have been registered&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; - for those who like to encode their binary as base64 or hex, that can be&lt;br/&gt;&amp;gt; &amp;gt; indicated&lt;br/&gt;&amp;gt; &amp;gt;   as &amp;#34;encoding=hex&amp;#34; or &amp;#34;encoding=base64&amp;#34; in the optional parameters, just&lt;br/&gt;&amp;gt; &amp;gt; like&lt;br/&gt;&amp;gt; &amp;gt;   &amp;#34;text/plain; encoding=utf-8&amp;#34; does. However, the default must be binary.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; - although the above are useful for web servers, they are also useful&lt;br/&gt;&amp;gt; &amp;gt; elsewhere and I&lt;br/&gt;&amp;gt; &amp;gt;   intend to use them in NFC (NDEF records) where a shorter length is&lt;br/&gt;&amp;gt; &amp;gt; critical.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; - I have no idea how easily IANA will accept these proposals.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; - current approved mime types:&lt;br/&gt;&amp;gt; &amp;gt; &lt;a href=&#34;https://www.iana.org/assignments/media-types/media-types.xhtml&#34;&gt;https://www.iana.org/assignments/media-types/media-types.xhtml&lt;/a&gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; Thoughts?&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; ---&lt;br/&gt;&amp;gt; &amp;gt; @DocHEX  ||  Coinkite  ||  PGP: A3A31BAD 5A2A5B10&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;
    </content>
    <updated>2023-06-07T22:58:23Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsravvkjna32w86zn4c47wu63w2q937x3x7dsrq64wst3t77rhp7qszypasqnsu699la9dwc5umpguy8sn385244yu6hkq854c5c2sf7jzvgxfp2ca</id>
    
      <title type="html">📅 Original date posted:2021-08-31 📝 Original message:Hi ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsravvkjna32w86zn4c47wu63w2q937x3x7dsrq64wst3t77rhp7qszypasqnsu699la9dwc5umpguy8sn385244yu6hkq854c5c2sf7jzvgxfp2ca" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsqzqkpn0fk6reh3fxdgz0gg0nu4l0fma4h995c6k3dmqvyzn64duqjzwclq&#39;&gt;nevent1q…wclq&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2021-08-31&lt;br/&gt;📝 Original message:Hi list!&lt;br/&gt;&lt;br/&gt;I am proposing to register the following MIME (RFC 2046) media types with the IANA:&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;bitcoin/psbt&lt;br/&gt;&lt;br/&gt;    - aka. a BIP-174 file, in binary&lt;br/&gt;    - does not make any claims about signed/unsigned status; lets leave that to the file&lt;br/&gt;&lt;br/&gt;bitcoin/txn&lt;br/&gt;&lt;br/&gt;    - aka. wire-ready fully-signed transaction in binary&lt;br/&gt;&lt;br/&gt;bitcoin/uri&lt;br/&gt;&lt;br/&gt;    - aka [BIP-21](&lt;a href=&#34;https://github.com/bitcoin/bips/blob/master/bip-0021.mediawiki&#34;&gt;https://github.com/bitcoin/bips/blob/master/bip-0021.mediawiki&lt;/a&gt;)&lt;br/&gt;    - could be just a bare bech32 or base58 payment address&lt;br/&gt;    - but can also encode amount, comments in URL args&lt;br/&gt;    - potentially interesting as a response to 402 - Payment required&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Other thoughts&lt;br/&gt;&lt;br/&gt;- some mime-types are proposed in BIP-71 but those are unrelated to above, and never&lt;br/&gt;  seem to have been registered&lt;br/&gt;&lt;br/&gt;- for those who like to encode their binary as base64 or hex, that can be indicated&lt;br/&gt;  as &amp;#34;encoding=hex&amp;#34; or &amp;#34;encoding=base64&amp;#34; in the optional parameters, just like&lt;br/&gt;  &amp;#34;text/plain; encoding=utf-8&amp;#34; does. However, the default must be binary.&lt;br/&gt;&lt;br/&gt;- although the above are useful for web servers, they are also useful elsewhere and I&lt;br/&gt;  intend to use them in NFC (NDEF records) where a shorter length is critical.&lt;br/&gt;&lt;br/&gt;- I have no idea how easily IANA will accept these proposals.&lt;br/&gt;&lt;br/&gt;- current approved mime types: &lt;a href=&#34;https://www.iana.org/assignments/media-types/media-types.xhtml&#34;&gt;https://www.iana.org/assignments/media-types/media-types.xhtml&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Thoughts?&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;@DocHEX  ||  Coinkite  ||  PGP: A3A31BAD 5A2A5B10&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/20210831/a4aa0e7d/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20210831/a4aa0e7d/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T22:58:22Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsd94w82frwwx8rur253gwessau78s96etsedwhel8sg5luq2d6zyczypasqnsu699la9dwc5umpguy8sn385244yu6hkq854c5c2sf7jzvgdn5gm3</id>
    
      <title type="html">📅 Original date posted:2021-05-06 📝 Original message:Hi ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsd94w82frwwx8rur253gwessau78s96etsedwhel8sg5luq2d6zyczypasqnsu699la9dwc5umpguy8sn385244yu6hkq854c5c2sf7jzvgdn5gm3" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsxl05k7qxv0uu3zfgw2p7p5hdds3lz4hq8clc5389c3fm0cgdwuggtn6hs7&#39;&gt;nevent1q…6hs7&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2021-05-06&lt;br/&gt;📝 Original message:Hi Tobias.&lt;br/&gt;&lt;br/&gt;The most recent release of Coldcard now offers &amp;#34;Seed XOR&amp;#34; to solve&lt;br/&gt;similar problems. It allows any numbers of standard BIP-39&lt;br/&gt;compatible seed phrases to be bitwise XOR&amp;#39;ed together to make a new seed.&lt;br/&gt;&lt;br/&gt;Coldcard can split an existing seed into 2, 3 or 4 new phrases, or&lt;br/&gt;you can take your existing seed phrase, and XOR-in a new seed phrase&lt;br/&gt;to arrive at a new random seed phrase (and wallet).&lt;br/&gt;&lt;br/&gt;More details about this feature at: &amp;lt;&lt;a href=&#34;https://seedxor.com&amp;gt&#34;&gt;https://seedxor.com&amp;gt&lt;/a&gt;;&lt;br/&gt;&lt;br/&gt;Best part is XOR is simple enough that the split or combine operation can&lt;br/&gt;be worked out by hand on paper. (We even made a worksheet for this.)&lt;br/&gt;The checksums on each of the XOR parts protects the final result, and&lt;br/&gt;each &amp;#34;part&amp;#34; is a fully functional decoy wallet.&lt;br/&gt;&lt;br/&gt;Hope that helps!&lt;br/&gt;&lt;br/&gt;On Wed, May 05, 2021 at 07:32:05PM &#43;0200, Tobias Kaupat wrote:&lt;br/&gt;&amp;gt; Hi all,&lt;br/&gt;&amp;gt; I want to start a discussion about a use case I have and a possible&lt;br/&gt;&amp;gt; solution. I have not found any satisfying solution to this use case yet.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; *Use case:*&lt;br/&gt;&amp;gt; An existing mnemonic (e.g. for a hardware wallet) should be saved on a&lt;br/&gt;&amp;gt; paper backup in a password encrypted form. The encrypted form should be a&lt;br/&gt;&amp;gt; mnemonic itself to keep all backup properties like error correction.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; *Suggested solution:*&lt;br/&gt;&amp;gt; 1) Take the existing mnemonic and extract the related entropy&lt;br/&gt;&amp;gt; 2) Create a SHA526 hash (key) from a user defined password&lt;br/&gt;&amp;gt; 3) Use the key as input for an AES CTR (empty IV) to encrypt the entropy&lt;br/&gt;&amp;gt; 4) Derive a new mnemonic from the encrypted entropy to be stored on a paper&lt;br/&gt;&amp;gt; backup&lt;br/&gt;...&lt;br/&gt;&amp;gt; *Existing solutions*&lt;br/&gt;&amp;gt; One solution I found is &amp;#34;Seedshift&amp;#34; which can be found here:&lt;br/&gt;&amp;gt; &lt;a href=&#34;https://github.com/mifunetoshiro/Seedshift&#34;&gt;https://github.com/mifunetoshiro/Seedshift&lt;/a&gt;&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; But I consider it less secure and I would like to suggest a solution based&lt;br/&gt;&amp;gt; on provably secure algorithms rather than a &amp;#34;rot23 derivation&amp;#34;. Also using&lt;br/&gt;&amp;gt; a date as password seems not very clever to me.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Kind regards&lt;br/&gt;&amp;gt; Tobias&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;@DocHEX  ||  Coinkite  ||  PGP: A3A31BAD 5A2A5B10&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/20210506/a6b3fc68/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20210506/a6b3fc68/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T22:52:28Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqs0f6a77cnvq5slvt8h480y46nr5m3e9vh55ljufzahlwmt6zep4tqzypasqnsu699la9dwc5umpguy8sn385244yu6hkq854c5c2sf7jzvgdd6ch9</id>
    
      <title type="html">📅 Original date posted:2021-02-12 📝 Original message:Hard ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqs0f6a77cnvq5slvt8h480y46nr5m3e9vh55ljufzahlwmt6zep4tqzypasqnsu699la9dwc5umpguy8sn385244yu6hkq854c5c2sf7jzvgdd6ch9" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs2rz3skcc3454jw5lsl020a9vz8q39amwkase80u8hv0seusrl0ksrc90ll&#39;&gt;nevent1q…90ll&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2021-02-12&lt;br/&gt;📝 Original message:Hard no to this idea:&lt;br/&gt;&lt;br/&gt;On Thu, Feb 11, 2021 at 02:29:46PM -0800, Christopher Allen proposed:&lt;br/&gt;...&lt;br/&gt;&amp;gt; /48&amp;#39;/0&amp;#39;/0&amp;#39;/3&amp;#39;/PBKDF(complex string)&amp;#39;&lt;br/&gt;&lt;br/&gt;As someone who has helped people find UTXO at key paths they didn&amp;#39;t&lt;br/&gt;know/want, this is a terrible idea. Key derivation paths should be&lt;br/&gt;small, sequential integers, so they can be searched in reasonable time.&lt;br/&gt;&lt;br/&gt;Of course when things are working it doesn&amp;#39;t matter, but the stakes&lt;br/&gt;can be very high when they stop working.&lt;br/&gt;&lt;br/&gt;This is true for multisig and single signer.&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;Peter D. Gray  ||  Founder, Coinkite  ||  Twitter: @dochex  ||  GPG: A3A31BAD 5A2A5B10&lt;br/&gt;&lt;br/&gt;On Thu, Feb 11, 2021 at 02:29:46PM -0800, Christopher Allen wrote:&lt;br/&gt;&amp;gt; I think the key issue here is avoiding xpub key reuse in multisig. Not only&lt;br/&gt;&amp;gt; in the future with Schnorr, but we need it today!&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Current common practice by hardware wallets is the 48&amp;#39;/0&amp;#39;/0&amp;#39;/2&amp;#39; derivation&lt;br/&gt;&amp;gt; for segwit multsig ( e.g.&lt;br/&gt;&amp;gt; [90081696/48&amp;#39;/0&amp;#39;/0&amp;#39;/2&amp;#39;]xpub6DYLEkDfCdHzh5FHGHDJksQvFqu6kYANa1sfo6fA8n5ZWkSwyCRVVzyq9LY2eNGB6T9BKDeGJp2ZarjRZHd7WB95nSaFEDhFMK6zSV6D49b&lt;br/&gt;&amp;gt; ) is the only one used for ALL multisigs offered by that hardware wallet.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; As Pieter said, leveraging a HD path parameters can help, but we need a&lt;br/&gt;&amp;gt; better, less reusable path for the index.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; I personally suggest a simpler solution, which is to create an index using&lt;br/&gt;&amp;gt; a PBKDF of the Account Policy (a descriptor with all xpubs and keys&lt;br/&gt;&amp;gt; removed), plus optional notes. (BTW, I think double sha256 or HMAC is&lt;br/&gt;&amp;gt; overkill).&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Example: for the reference bit descriptor that might result in:&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; ```&lt;br/&gt;&amp;gt; wsh(sortedmulti(2,xpub661MyMwAqRbcFW31YEwpkMuc5THy2PSt5bDMsktWQcFF8syAmRUapSCGu8ED9W6oDMSgv6Zz8idoc4a6mr8BDzTJY47LJhkJ8UB7WEGuduB/1/0/*,xpub69H7F5d8KSRgmmdJg2KhpAK8SR3DjMwAdkxj3ZuxV27CprR9LgpeyGmXUbC6wb7ERfvrnKZjXoUmmDznezpbZb7ap6r1D3tgFxHmwMkQTPH/0/0/*))&lt;br/&gt;&amp;gt; ```&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; What Blockchain Commons (and the Airgapped Wallet Community) call a policy&lt;br/&gt;&amp;gt; map would be&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; ```&lt;br/&gt;&amp;gt; wsh(sortedmulti(1,,,))&lt;br/&gt;&amp;gt; ```&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; A PBKDF of that as would be unique for all 2 of 3 segwig transactions. With&lt;br/&gt;&amp;gt; the addition of the addition of the Policy Map creators optional note, it&lt;br/&gt;&amp;gt; would be truly unique. The Policy Map and/or PBKDF are small and could&lt;br/&gt;&amp;gt; easily added to existing APIs.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; So for legacy hardware, we can use existing 48&amp;#39; subtree, but 3&amp;#39; as the&lt;br/&gt;&amp;gt; format for this form (2&amp;#39; is segwit), then the desktop can just ask for the&lt;br/&gt;&amp;gt; /48&amp;#39;/0&amp;#39;/0&amp;#39;/3&amp;#39;/PBKDF&amp;#39; when it requests a new xpub from the hardware token.&lt;br/&gt;&amp;gt; More sophisticated Airgapped apps you can send&lt;br/&gt;&amp;gt; &amp;#34;wsh(sortedmulti(1,,,))&amp;#34;&#43;label and let the cosigner app do the PBKDF, and&lt;br/&gt;&amp;gt; optionally allow it return something different in a full keyset (i.e.&lt;br/&gt;&amp;gt; &amp;#34;[90081696/48&amp;#39;/0&amp;#39;/0&amp;#39;/3&amp;#39;/af3948cg…&amp;#39;/]xpub6DYLEk…&amp;#34;, and then the requesting&lt;br/&gt;&amp;gt; app, knowing that it is different from the PBKDF can know what to do if it&lt;br/&gt;&amp;gt; needs to what to ask for in the future.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; The other advantage of this technique is that the cosigner app can know&lt;br/&gt;&amp;gt; what policy it is participating in, before the descriptor is completed. It&lt;br/&gt;&amp;gt; may decide it doesn&amp;#39;t want to participate in some funky 4:9 with a weird&lt;br/&gt;&amp;gt; script, and not return an xpub at all.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Long term I think a commitment scheme should be used, so that you don&amp;#39;t&lt;br/&gt;&amp;gt; reveal what xpub you offered until all the parties xpubs are shared, but as&lt;br/&gt;&amp;gt; Pieter said, we can do that at the same time we do the musig. But we need&lt;br/&gt;&amp;gt; to prevent xpub reuse NOW, and I think my proposal easy and could the job.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; -- Christopher Allen, Blockchain Commons&lt;br/&gt;&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/20210212/cce516d7/attachment-0001.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20210212/cce516d7/attachment-0001.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T18:28:35Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsgz36geqecrcaf6zhnex3jp540n2gllsl2f00dxa9jvgck9v4elyqzypasqnsu699la9dwc5umpguy8sn385244yu6hkq854c5c2sf7jzvgszmkps</id>
    
      <title type="html">📅 Original date posted:2020-03-20 📝 Original message:I like ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsgz36geqecrcaf6zhnex3jp540n2gllsl2f00dxa9jvgck9v4elyqzypasqnsu699la9dwc5umpguy8sn385244yu6hkq854c5c2sf7jzvgszmkps" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqspm482pe3q2g5yfu8fldmu9svxltf9qhp4t6g2txn9nys4gy53vwcgl8g7k&#39;&gt;nevent1q…8g7k&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2020-03-20&lt;br/&gt;📝 Original message:I like this proposal and I see it&amp;#39;s value: &amp;#34;One seed to rule them all.&amp;#34;&lt;br/&gt;&lt;br/&gt;Not hard to implement either.&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;Peter D. Gray  ||  Founder, Coinkite  ||  Twitter: @dochex  ||  GPG: A3A31BAD 5A2A5B10&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;On Fri, Mar 20, 2020 at 03:44:01PM &#43;0000, Ethan Kosakovsky wrote:&lt;br/&gt;&amp;gt; I would like to present a proposal for discussion and peer review. It aims to solve the problem of &amp;#34;too many seeds and too many backups&amp;#34; due to the many reasons stipulated in the proposal text.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; &lt;a href=&#34;https://gist.githubusercontent.com/ethankosakovsky/f7d148f588d14e0bb4f70bb6afc509d0/raw/6da51e837b0e1f1b2b21f3d4cbc2c5a87969ffd5/bip-entropy-from-bip32.mediawiki&#34;&gt;https://gist.githubusercontent.com/ethankosakovsky/f7d148f588d14e0bb4f70bb6afc509d0/raw/6da51e837b0e1f1b2b21f3d4cbc2c5a87969ffd5/bip-entropy-from-bip32.mediawiki&lt;/a&gt;&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; &amp;lt;pre&amp;gt;&lt;br/&gt;&amp;gt;   BIP:&lt;br/&gt;&amp;gt;   Title: Deterministic Entropy From BIP32 Keychains&lt;br/&gt;&amp;gt;   Author: Ethan Kosakovsky &amp;lt;ethankosakovsky at protonmail.com&amp;gt;&lt;br/&gt;&amp;gt;   Comments-Summary: No comments yet.&lt;br/&gt;&amp;gt;   Comments-URI:&lt;br/&gt;&amp;gt;   Status: Proposed&lt;br/&gt;&amp;gt;   Type: Standards Track&lt;br/&gt;&amp;gt;   Created: 2020-03-20&lt;br/&gt;&amp;gt;   License: BSD-2-Clause&lt;br/&gt;&amp;gt;            OPL&lt;br/&gt;&amp;gt; &amp;lt;/pre&amp;gt;&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; ==Abstract==&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; This proposal provides a way to derive entropy from a HD keychain path in order to deterministically derive the initial entropy used to create keychain mnemonics and seeds.&lt;br/&gt;&amp;gt; &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: 529 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/20200320/4e6f725f/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20200320/4e6f725f/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T18:23:23Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqs80044dmw8w7q7ll69gh0num59n97wqwldnkcxelpxy03kq73udqgzypasqnsu699la9dwc5umpguy8sn385244yu6hkq854c5c2sf7jzvgsedwth</id>
    
      <title type="html">📅 Original date posted:2020-01-13 📝 Original message:&amp;gt; ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqs80044dmw8w7q7ll69gh0num59n97wqwldnkcxelpxy03kq73udqgzypasqnsu699la9dwc5umpguy8sn385244yu6hkq854c5c2sf7jzvgsedwth" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsvdln27pdv05f2wlz9krxm76gnapf5l02zle3c4h2qwgpwhvy7lfse6jp48&#39;&gt;nevent1q…jp48&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2020-01-13&lt;br/&gt;📝 Original message:&amp;gt; In your proposal, it is the Signer who adds the signature, so it&lt;br/&gt;&amp;gt; will receive a PSBT without auth sigs and thus that could be mutated to&lt;br/&gt;&amp;gt; trigger those bugs anyways.&lt;br/&gt;&lt;br/&gt;The Signer may be signing a PSBT that was corrupted by the MitM,&lt;br/&gt;but at least later users of the signed PSBT can detect that occured.&lt;br/&gt;At present, they do not know what the input PSBT content was when&lt;br/&gt;it got to the Signer.&lt;br/&gt;&lt;br/&gt;&amp;gt; ... The Combiner still has to deserialize the PSBT to get the signature, then it&lt;br/&gt;&amp;gt; needs to re-serialize the PSBT to check that signature. &lt;br/&gt;&lt;br/&gt;If we use a fixed-width signature, such as just R&#43;S bytes (64 bytes),&lt;br/&gt;and not DER-encoding, then the signature is a fixed distance from&lt;br/&gt;the last byte of the file. A conservative PSBT parser could start&lt;br/&gt;by verifying the signature exists and is valid, before parsing the&lt;br/&gt;rest of the file. (It would need to use the pubkeys from the original&lt;br/&gt;PSBT, which it would ideally have on-hand already to verify the source&lt;br/&gt;PSBT to the Coldcard.)&lt;br/&gt;&lt;br/&gt;&amp;gt; For Finalizers, since its job is to construct the final&lt;br/&gt;&amp;gt; scriptSig/scriptWitness, at worst, all it can do is produce an invalid&lt;br/&gt;&amp;gt; transaction. Finalizers don&amp;#39;t have access to the private keys so there&amp;#39;s&lt;br/&gt;&amp;gt; no bug possible that can result in a Finalizer producing a transaction&lt;br/&gt;&amp;gt; that reveals the private key.&lt;br/&gt;&lt;br/&gt;I agree that Finalizers cannot access the Bitcoin private keys, but&lt;br/&gt;they still have stacks that can overflow, buffers that can be overrun&lt;br/&gt;and so on. Perhaps if sighash is not SIGHASH_ALL, there are dangerous&lt;br/&gt;things they can be tricked into... I don&amp;#39;t know, but at least we&lt;br/&gt;should make it possible to detect these cases. My goal is detection.&lt;br/&gt;&lt;br/&gt;&amp;gt; ISTM the same is true of your proposal. You need to deserialize the PSBT&lt;br/&gt;&amp;gt; and then figure out which fields were &amp;#34;original&amp;#34; and in what order. If&lt;br/&gt;&amp;gt; there is a bug in your deserialization, an attacker can still exploit&lt;br/&gt;&amp;gt; that. And if there is a bug in your reconstruction of &amp;#34;original&amp;#34;, you&amp;#39;ll&lt;br/&gt;&amp;gt; have false positives.&lt;br/&gt;&lt;br/&gt;No, I am not proposing anyone re-construct PSBT&amp;#39;s... My proposal&lt;br/&gt;is really only helpful if you have the full original PSBT on hand&lt;br/&gt;(or its digest). For ultimate safety I would recommend checking the&lt;br/&gt;incoming PSBT&amp;#39;s signature is valid before parsing it.(If the&lt;br/&gt;signature is fixed-length, see above.)&lt;br/&gt;&lt;br/&gt;&amp;gt; My point was that you can achieve your MiTM protection by having the&lt;br/&gt;&amp;gt; signature separate from the PSBT. You can still make your ECDSA&lt;br/&gt;&amp;gt; signature and send it along with the PSBT, and you can do it with fixed&lt;br/&gt;&amp;gt; or exchanged keys, no need for parsing the PSBT itself. It can be part&lt;br/&gt;&amp;gt; of the transport protocol, not part of the data that is being transferred.&lt;br/&gt;&lt;br/&gt;In the USB protocol between Coldcard and desktop, we do end-to-end&lt;br/&gt;encryption with a session key picked via diff-hel so we&amp;#39;re doing&lt;br/&gt;our best there against MitM. However, our customers love the air-gap&lt;br/&gt;feature which involves lots of sneakernet handling of MicroSD cards.&lt;br/&gt;I don&amp;#39;t want to force them into handling paired files, like detacted&lt;br/&gt;signatures, and I was hoping this would be a good way to move the&lt;br/&gt;signatures inside the PSBT files already being moved about.&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;Peter D. Gray  ||  Founder, Coinkite  ||  Twitter: @dochex  ||  GPG: A3A31BAD 5A2A5B10&lt;br/&gt;&lt;br/&gt;On Mon, Jan 13, 2020 at 05:05:10PM &#43;0000, Andrew Chow wrote:&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; On 1/13/20 9:28 AM, Peter D. Gray wrote:&lt;br/&gt;&amp;gt; &amp;gt; I don&amp;#39;t have a specific attack in mind, but these signatures, if&lt;br/&gt;&amp;gt; &amp;gt; adopted by the community at large, will allow detection of-, and&lt;br/&gt;&amp;gt; &amp;gt; could mitigate damage from-, some broad &amp;#34;bug-classes&amp;#34;.&lt;br/&gt;&amp;gt; &amp;gt; &lt;br/&gt;&amp;gt; &amp;gt; Consider if the PSBT Signer (hardware wallet) has bugs. Perhaps if&lt;br/&gt;&amp;gt; &amp;gt; you tweak the PSBT in some unnatural way it produces output that&lt;br/&gt;&amp;gt; &amp;gt; reveals the private key (duplicate k-value perhaps), or corrupts&lt;br/&gt;&amp;gt; &amp;gt; the display of the transaction in helpful (to the attacker) ways&lt;br/&gt;&amp;gt; &amp;gt; (typically case: output hidden as change).&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Since the PSBT is to be signed by one of the Signers for the PSBT, I&lt;br/&gt;&amp;gt; don&amp;#39;t see how this is useful. If it is mutated and the signer has bugs,&lt;br/&gt;&amp;gt; especially parsing bugs, the Signer also adding its signature won&amp;#39;t&lt;br/&gt;&amp;gt; help. In your proposal, it is the Signer who adds the signature, so it&lt;br/&gt;&amp;gt; will receive a PSBT without auth sigs and thus that could be mutated to&lt;br/&gt;&amp;gt; trigger those bugs anyways.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; &amp;gt; There could also be bugs in the Combiner/Finalizer which the MiTM&lt;br/&gt;&amp;gt; &amp;gt; wants to trigger. Legimate files, signed by the PSBT Signer, will not&lt;br/&gt;&amp;gt; &amp;gt; contain those attacks, so are &amp;#34;safer&amp;#34; to process, even if your&lt;br/&gt;&amp;gt; &amp;gt; Combiner&amp;#39;s PSBT parser has bugs or is tragically dumb.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; The job of Combiners is fairly limited and is really just related to&lt;br/&gt;&amp;gt; parsing the PSBT into some internal object then shuffling those fields&lt;br/&gt;&amp;gt; around. In that case, any bugs an attacker would want to exploit have to&lt;br/&gt;&amp;gt; be deserialization bugs, in which case, your auth sigs don&amp;#39;t help. The&lt;br/&gt;&amp;gt; Combiner still has to deserialize the PSBT to get the signature, then it&lt;br/&gt;&amp;gt; needs to re-serialize the PSBT to check that signature. An attacker&lt;br/&gt;&amp;gt; could insert bad bytes into the PSBT which causes problems during&lt;br/&gt;&amp;gt; deserialization, before the Combiner is able to check the signature.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; For Finalizers, since its job is to construct the final&lt;br/&gt;&amp;gt; scriptSig/scriptWitness, at worst, all it can do is produce an invalid&lt;br/&gt;&amp;gt; transaction. Finalizers don&amp;#39;t have access to the private keys so there&amp;#39;s&lt;br/&gt;&amp;gt; no bug possible that can result in a Finalizer producing a transaction&lt;br/&gt;&amp;gt; that reveals the private key.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; &amp;gt; &lt;br/&gt;&amp;gt; &amp;gt; That&amp;#39;s just it, when we receive a signed PSBT, at present we don&amp;#39;t&lt;br/&gt;&amp;gt; &amp;gt; know *what* was signed without a complete understanding of the&lt;br/&gt;&amp;gt; &amp;gt; transaction, the input UTXO (at least syntactially), and PSBT file&lt;br/&gt;&amp;gt; &amp;gt; contents.  If there are bugs in that understanding (ie. checks we&lt;br/&gt;&amp;gt; &amp;gt; all know are needed, but no-one actually implemented) then we might&lt;br/&gt;&amp;gt; &amp;gt; transmit an harmful transaction, or continue to process a file&lt;br/&gt;&amp;gt; &amp;gt; that has been corrupted-with-intent by a MiTM.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; ISTM the same is true of your proposal. You need to deserialize the PSBT&lt;br/&gt;&amp;gt; and then figure out which fields were &amp;#34;original&amp;#34; and in what order. If&lt;br/&gt;&amp;gt; there is a bug in your deserialization, an attacker can still exploit&lt;br/&gt;&amp;gt; that. And if there is a bug in your reconstruction of &amp;#34;original&amp;#34;, you&amp;#39;ll&lt;br/&gt;&amp;gt; have false positives.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; &amp;gt; It&amp;#39;s fine to say that, but in an embedded environment, with very&lt;br/&gt;&amp;gt; &amp;gt; limited memory like the Coldcard, PGP isn&amp;#39;t an option (signing vs.&lt;br/&gt;&amp;gt; &amp;gt; signature verification). I want to leverage the existing crypto and&lt;br/&gt;&amp;gt; &amp;gt; PKI that we already have in play.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; My point was that you can achieve your MiTM protection by having the&lt;br/&gt;&amp;gt; signature separate from the PSBT. You can still make your ECDSA&lt;br/&gt;&amp;gt; signature and send it along with the PSBT, and you can do it with fixed&lt;br/&gt;&amp;gt; or exchanged keys, no need for parsing the PSBT itself. It can be part&lt;br/&gt;&amp;gt; of the transport protocol, not part of the data that is being transferred.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Andrew&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; &amp;gt; &lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; On 1/11/20 3:17 PM, Dmitry Petukhov via bitcoin-dev wrote:&lt;br/&gt;&amp;gt; &amp;gt; ... [many valid points, repeated by Andrew] ...&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; If there is MitM, checking something at Finalizer is likely too&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; late - the party that can intercept PSBTs can finalize before the&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; legitimate Finalizer and broadcast the transaction.&lt;br/&gt;&amp;gt; &amp;gt; &lt;br/&gt;&amp;gt; &amp;gt; Yes, that is a problem which is proposal does not address. If the&lt;br/&gt;&amp;gt; &amp;gt; MitM has control over both directions, in and out, then whatever&lt;br/&gt;&amp;gt; &amp;gt; he or she was trying to do will still happen. Personally, I&amp;#39;m okay&lt;br/&gt;&amp;gt; &amp;gt; with that as a limition, but using the same signatures features,&lt;br/&gt;&amp;gt; &amp;gt; and a pre-shared public key between the PSBT Creator and the Signer,&lt;br/&gt;&amp;gt; &amp;gt; we could block the Signer from looking at MitM&amp;#39;ed files. (The Signer&lt;br/&gt;&amp;gt; &amp;gt; would require and verify incoming unsigned PSBT to contain the&lt;br/&gt;&amp;gt; &amp;gt; last-output-section-signature thing.) I&amp;#39;m not planning on supporting&lt;br/&gt;&amp;gt; &amp;gt; that on the Coldcard (at least not yet), but with the proposed&lt;br/&gt;&amp;gt; &amp;gt; additions, it is possible to do without further changes to the PSBT&lt;br/&gt;&amp;gt; &amp;gt; spec.&lt;br/&gt;&amp;gt; &amp;gt; &lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; Participants can work from the same PSBT ...&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; either pass two files (original and updated), or work out which fields&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; (key-value blobs) to remove to get the &amp;#39;source&amp;#39; PSBT (which might not be&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; trivial with presense of proprietary and unknown fields). Even if you&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; know which key-value pairs to remove, there is no requirement for&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; ordering of the fields, and some signer can serialize them in different&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; order after dserialize/sign/add-signatures/re-serialize operation.&lt;br/&gt;&amp;gt; &amp;gt; ...&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; Introducing additional ordering or other structure requirements over&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; simple key-value structure will add complexity to PSBT processing, and&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; adding complexity on such a basic level should have really serious&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; reasons, because that increases effort required for even basic&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; implementations and increases chance of bugs.&lt;br/&gt;&amp;gt; &amp;gt; &lt;br/&gt;&amp;gt; &amp;gt; I want these signatures to protect against PSBT parsing bugs. That&amp;#39;s&lt;br/&gt;&amp;gt; &amp;gt; why they are byte-level on the whole file contents, and not based&lt;br/&gt;&amp;gt; &amp;gt; on sub-sections of the file or various fields inside the file. Yes,&lt;br/&gt;&amp;gt; &amp;gt; there are non-linear PSBT paths that will be difficult or impossible&lt;br/&gt;&amp;gt; &amp;gt; to support with this approach. I would not expect implementations to&lt;br/&gt;&amp;gt; &amp;gt; do anything fancy to reconstruct PSBT contents, I think they would&lt;br/&gt;&amp;gt; &amp;gt; just track the complete file. In most setups today the Creator,&lt;br/&gt;&amp;gt; &amp;gt; Combiner and Finalizer are the same device, and they are desktop&lt;br/&gt;&amp;gt; &amp;gt; systems with gigs of memory.&lt;br/&gt;&amp;gt; &amp;gt; &lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; If there is some authority on the &amp;#39;correctness&amp;#39; of &amp;#39;original&amp;#39; PSBT&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; (all particpants receive same PSBT at the start), particpants should&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; check the signature by that authority. That authority might use&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; the key used only for authentication, and not in the tx signing.&lt;br/&gt;&amp;gt; &amp;gt; &lt;br/&gt;&amp;gt; &amp;gt; Yes, this can be acheived by pre-sharing a public key with the&lt;br/&gt;&amp;gt; &amp;gt; Signer (described above). Only signed incoming PSBT&amp;#39;s would be&lt;br/&gt;&amp;gt; &amp;gt; accepted. That key doesn&amp;#39;t have anything to do with the blockchain&lt;br/&gt;&amp;gt; &amp;gt; or value transfer.&lt;br/&gt;&amp;gt; &amp;gt; &lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; I think you do not need to wait for officially-assigned key numbers,&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; and can just implement the scheme you envision with proprietary keys,&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; document and promote it. Then if it shows its usefulness, it will&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; either become de-facto standard with your proprietary keys...&lt;br/&gt;&amp;gt; &amp;gt; &lt;br/&gt;&amp;gt; &amp;gt; Yes, 100% ... but I value the list&amp;#39;s feedback, and I would prefer to&lt;br/&gt;&amp;gt; &amp;gt; start with a legitimate key number which I don&amp;#39;t need to change later. It&amp;#39;s&lt;br/&gt;&amp;gt; &amp;gt; a non-breaking change and I wouldn&amp;#39;t propose it otherwise.&lt;br/&gt;&amp;gt; &amp;gt; &lt;br/&gt;&amp;gt; &amp;gt; ---&lt;br/&gt;&amp;gt; &amp;gt; Peter D. Gray  ||  Founder, Coinkite  ||  Twitter: @dochex  ||  GPG: A3A31BAD 5A2A5B10&lt;br/&gt;&amp;gt; &amp;gt; &lt;br/&gt;&amp;gt; &amp;gt; On Mon, Jan 13, 2020 at 06:39:28AM &#43;0000, Andrew Chow wrote:&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; I agree with Dimitry. I don&amp;#39;t see the point of having the MiTM&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; protection within the PSBT structure itself, in addition to the fact&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; that adding new fields is largely unnecessary. In fact, I&amp;#39;m not quite&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; sure what kind of attack you are trying to defend against with this&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; proposal.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; If there is a MiTM who can modify your PSBT, then they can just modify&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; the result the signed PSBT to drop the auth signatures. Furthermore, any&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; modifications to scripts or UTXOs would just result in an invalid&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; signature, so only time is wasted. But you&amp;#39;ll just waste time anyways&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; when you see a failed auth sig.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; Additionally, when a signer processes a PSBT, it will either accept the&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; PSBT and add a signature for its inputs, or reject it and do nothing.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; Given this behavior (and I assume you aren&amp;#39;t going to add auth sigs for&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; rejected PSBTs because that doesn&amp;#39;t make any sense), then you already&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; have a signature there that covers everything your auth signature would&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; cover. So just verify those signatures instead; for any inputs with&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; signatures, everything you need to verify them are already there.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; Lastly, IMO, if you want MiTM protection, then you should do your&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; protection with out of band communication. Just PGP sign the PSBT (or&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; something similar) and send the signature along separately.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; Andrew&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; On 1/11/20 3:17 PM, Dmitry Petukhov via bitcoin-dev wrote:&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; I am not sure that this particular task should be done with data&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; embedded in PSBT itself, and not with some sort of container that&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; includes PSBT and the authentication information.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; The benefit seems to be in reusing PSBT structure for compatibilty, and&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; this might be a valid way, although I do not agree with some of your&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; points. I elaborate below:&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; 1) In the PSBT globals section, a signature over the &amp;#34;source&amp;#34; PSBT&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; file. It would cover all the bytes of the original PSBT file, as&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; it was received by the Signer.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; The problem of authenticating the contents of PSBT is independent of&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; the signing action. PSBT might be altered on the path from Creator to&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; Signer. Therefore you cannot always say that Signer will be an&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; authority over &amp;#39;correctness&amp;#39; of PSBT.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; - At the end of the signing process, the Finalizer should check all&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; the Signers have worked from the same PSBT file (assuming that&amp;#39;s&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; the flow expected)&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; If there is MitM, checking something at Finalizer is likely too&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; late - the party that can intercept PSBTs can finalize before the&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; legitimate Finalizer and broadcast the transaction.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; Participants can work from the same PSBT file if they all receive the&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; same PSBT, and not working in chain where next particpant receives&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; updated PSBT from the previous participant. Otherwise they will need to&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; either pass two files (original and updated), or work out which fields&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; (key-value blobs) to remove to get the &amp;#39;source&amp;#39; PSBT (which might not be&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; trivial with presense of proprietary and unknown fields). Even if you&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; know which key-value pairs to remove, there is no requirement for&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; ordering of the fields, and some signer can serialize them in different&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; order after dserialize/sign/add-signatures/re-serialize operation.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; Introducing additional ordering or other structure requirements over&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; simple key-value structure will add complexity to PSBT processing, and&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; adding complexity on such a basic level should have really serious&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; reasons, because that increases effort required for even basic&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; implementations and increases chance of bugs.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; If there is some authority on the &amp;#39;correctness&amp;#39; of &amp;#39;original&amp;#39; PSBT&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; (all particpants receive same PSBT at the start), particpants should&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; check the signature by that authority. That authority might use&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; the key used only for authentication, and not in the tx signing.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; If particpants send PSBT in chain after adding their signatures, then&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; each participant can add their signature to say &amp;#39;the contents&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; of PSBT after my updates should match this hash&amp;#39;.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; The signatures of previous participants in the chain most likely do not&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; matter because of difficulty of restoring the contents of PSBT as it&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; was before the previous particpant, if you do not pass _all_ the PSBTs&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; (which is excessive).&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; 2) In the output section, specifically, the last key/value pair of&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; the last output of the transaction, I want to add a similar signature,&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; again signed by one of the keys used in the signing process. This&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; signature will cover all the bytes of the resulting (signed) PSBT&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; up to that point. Because it is the last output of the output&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; section, that signature will be the last few bytes of the PSBT file.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; By &amp;#34;appending&amp;#34; the signature in this way, it&amp;#39;s easier to validate&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; and create the signature, without blanking the signature area during&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; digest step.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; This will introduce unnecessary higher-level structure to PSBT for the&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; reasons that I do not find strong enough for the amount of complexity&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; added.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; Also, as I said above, you likely do not need more than one&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; signature - if this is &amp;#39;fan-out&amp;#39; scheme, then participants need do&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; check the sig of authority that created PSBT; if this is piggy-back&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; chain, then only previous particpant&amp;#39;s signature is easily verifiable.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; ## Next Steps&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; I&amp;#39;d like to get two officially-assigned BIP-174 key numbers assigned&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; for these two signatures, and then I will see that it gets added&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; into Coldcard&amp;#39;s firmware immediately. In time, other tools are&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; welcome to take advantage of these checks. I will also write a BIP&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; for this, and/or make an addition to BIP-174.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; I think you do not need to wait for officially-assigned key numbers,&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; and can just implement the scheme you envision with proprietary keys,&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; document and promote it. Then if it shows its usefulness, it will&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; either become de-facto standard with your proprietary keys (and&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; everyone will want to support &amp;#39;Coldard PSBT auth&amp;#39; or whatever the name),&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; or the scheme will have serious grounds to be converted to standard and&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; have non-proprietary keys assigned.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; // Dmitry.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; _______________________________________________&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; bitcoin-dev mailing list&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; bitcoin-dev at lists.linuxfoundation.org&lt;br/&gt;&amp;gt; &amp;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;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;
    </content>
    <updated>2023-06-07T18:22:23Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqswldq84k94wutwuqc8gkgrzvxqmd03at93vatans6kthfd8cjnwnszypasqnsu699la9dwc5umpguy8sn385244yu6hkq854c5c2sf7jzvg7vdac9</id>
    
      <title type="html">📅 Original date posted:2020-01-13 📝 Original message:Thanks ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqswldq84k94wutwuqc8gkgrzvxqmd03at93vatans6kthfd8cjnwnszypasqnsu699la9dwc5umpguy8sn385244yu6hkq854c5c2sf7jzvg7vdac9" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsdakgkc3nr26jvlkwlq2cdjqxahpwrjlvkmgeft762xff2snf0njssqnm5g&#39;&gt;nevent1q…nm5g&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2020-01-13&lt;br/&gt;📝 Original message:Thanks for the useful comments guys. I understand where you are&lt;br/&gt;coming from, but my PoV is from the deep embedded side.&lt;br/&gt;&lt;br/&gt;On Mon, Jan 13, 2020 at 06:39:28AM &#43;0000, Andrew Chow wrote:&lt;br/&gt;&amp;gt; ... In fact, I&amp;#39;m not quite&lt;br/&gt;&amp;gt; sure what kind of attack you are trying to defend against with this&lt;br/&gt;&amp;gt; proposal.&lt;br/&gt;&lt;br/&gt;I don&amp;#39;t have a specific attack in mind, but these signatures, if&lt;br/&gt;adopted by the community at large, will allow detection of-, and&lt;br/&gt;could mitigate damage from-, some broad &amp;#34;bug-classes&amp;#34;.&lt;br/&gt;&lt;br/&gt;Consider if the PSBT Signer (hardware wallet) has bugs. Perhaps if&lt;br/&gt;you tweak the PSBT in some unnatural way it produces output that&lt;br/&gt;reveals the private key (duplicate k-value perhaps), or corrupts&lt;br/&gt;the display of the transaction in helpful (to the attacker) ways&lt;br/&gt;(typically case: output hidden as change).&lt;br/&gt;&lt;br/&gt;Seeing a corrupted file signature would alert you of the attempt&lt;br/&gt;to do this. So maybe you don&amp;#39;t transmit the transaction, maybe you&lt;br/&gt;warn the user and so on. What happens next is up to you, but at&lt;br/&gt;least we know something is happening.&lt;br/&gt;&lt;br/&gt;There could also be bugs in the Combiner/Finalizer which the MiTM&lt;br/&gt;wants to trigger. Legimate files, signed by the PSBT Signer, will not&lt;br/&gt;contain those attacks, so are &amp;#34;safer&amp;#34; to process, even if your&lt;br/&gt;Combiner&amp;#39;s PSBT parser has bugs or is tragically dumb.&lt;br/&gt;&lt;br/&gt;It&amp;#39;s just another layer of security and confidence, on top of the&lt;br/&gt;existing system-level security (which is already excellent).&lt;br/&gt;&lt;br/&gt;&amp;gt; If there is a MiTM who can modify your PSBT, then they can just modify&lt;br/&gt;&amp;gt; the result the signed PSBT to drop the auth signatures.&lt;br/&gt;&lt;br/&gt;Yes, the MiTM can remove the signatures. However, if your tools expect&lt;br/&gt;and require the signatures in place, then the feature is working&lt;br/&gt;as intended, because the user will be alerted to the funny-business.&lt;br/&gt;&lt;br/&gt;More importantly: nothing has been lost by implementing the feature,&lt;br/&gt;and Coldcard (and other PSBT Signers) have to be first to implement it.&lt;br/&gt;&lt;br/&gt;&amp;gt; ... then you already&lt;br/&gt;&amp;gt; have a signature there that covers everything your auth signature would&lt;br/&gt;&amp;gt; cover. So just verify those signatures instead; for any inputs with&lt;br/&gt;&lt;br/&gt;That&amp;#39;s just it, when we receive a signed PSBT, at present we don&amp;#39;t&lt;br/&gt;know *what* was signed without a complete understanding of the&lt;br/&gt;transaction, the input UTXO (at least syntactially), and PSBT file&lt;br/&gt;contents.  If there are bugs in that understanding (ie. checks we&lt;br/&gt;all know are needed, but no-one actually implemented) then we might&lt;br/&gt;transmit an harmful transaction, or continue to process a file&lt;br/&gt;that has been corrupted-with-intent by a MiTM.&lt;br/&gt;&lt;br/&gt;&amp;gt; Lastly, IMO, if you want MiTM protection, then you should do your&lt;br/&gt;&amp;gt; protection with out of band communication. Just PGP sign the PSBT (or&lt;br/&gt;&amp;gt; something similar) and send the signature along separately.&lt;br/&gt;&lt;br/&gt;It&amp;#39;s fine to say that, but in an embedded environment, with very&lt;br/&gt;limited memory like the Coldcard, PGP isn&amp;#39;t an option (signing vs.&lt;br/&gt;signature verification). I want to leverage the existing crypto and&lt;br/&gt;PKI that we already have in play.&lt;br/&gt;&lt;br/&gt;&amp;gt; On 1/11/20 3:17 PM, Dmitry Petukhov via bitcoin-dev wrote:&lt;br/&gt;... [many valid points, repeated by Andrew] ...&lt;br/&gt;&amp;gt; &amp;gt; If there is MitM, checking something at Finalizer is likely too&lt;br/&gt;&amp;gt; &amp;gt; late - the party that can intercept PSBTs can finalize before the&lt;br/&gt;&amp;gt; &amp;gt; legitimate Finalizer and broadcast the transaction.&lt;br/&gt;&lt;br/&gt;Yes, that is a problem which is proposal does not address. If the&lt;br/&gt;MitM has control over both directions, in and out, then whatever&lt;br/&gt;he or she was trying to do will still happen. Personally, I&amp;#39;m okay&lt;br/&gt;with that as a limition, but using the same signatures features,&lt;br/&gt;and a pre-shared public key between the PSBT Creator and the Signer,&lt;br/&gt;we could block the Signer from looking at MitM&amp;#39;ed files. (The Signer&lt;br/&gt;would require and verify incoming unsigned PSBT to contain the&lt;br/&gt;last-output-section-signature thing.) I&amp;#39;m not planning on supporting&lt;br/&gt;that on the Coldcard (at least not yet), but with the proposed&lt;br/&gt;additions, it is possible to do without further changes to the PSBT&lt;br/&gt;spec.&lt;br/&gt;&lt;br/&gt;&amp;gt; &amp;gt; Participants can work from the same PSBT ...&lt;br/&gt;&amp;gt; &amp;gt; either pass two files (original and updated), or work out which fields&lt;br/&gt;&amp;gt; &amp;gt; (key-value blobs) to remove to get the &amp;#39;source&amp;#39; PSBT (which might not be&lt;br/&gt;&amp;gt; &amp;gt; trivial with presense of proprietary and unknown fields). Even if you&lt;br/&gt;&amp;gt; &amp;gt; know which key-value pairs to remove, there is no requirement for&lt;br/&gt;&amp;gt; &amp;gt; ordering of the fields, and some signer can serialize them in different&lt;br/&gt;&amp;gt; &amp;gt; order after dserialize/sign/add-signatures/re-serialize operation.&lt;br/&gt;...&lt;br/&gt;&amp;gt; &amp;gt; Introducing additional ordering or other structure requirements over&lt;br/&gt;&amp;gt; &amp;gt; simple key-value structure will add complexity to PSBT processing, and&lt;br/&gt;&amp;gt; &amp;gt; adding complexity on such a basic level should have really serious&lt;br/&gt;&amp;gt; &amp;gt; reasons, because that increases effort required for even basic&lt;br/&gt;&amp;gt; &amp;gt; implementations and increases chance of bugs.&lt;br/&gt;&lt;br/&gt;I want these signatures to protect against PSBT parsing bugs. That&amp;#39;s&lt;br/&gt;why they are byte-level on the whole file contents, and not based&lt;br/&gt;on sub-sections of the file or various fields inside the file. Yes,&lt;br/&gt;there are non-linear PSBT paths that will be difficult or impossible&lt;br/&gt;to support with this approach. I would not expect implementations to&lt;br/&gt;do anything fancy to reconstruct PSBT contents, I think they would&lt;br/&gt;just track the complete file. In most setups today the Creator,&lt;br/&gt;Combiner and Finalizer are the same device, and they are desktop&lt;br/&gt;systems with gigs of memory.&lt;br/&gt;&lt;br/&gt;&amp;gt; &amp;gt; If there is some authority on the &amp;#39;correctness&amp;#39; of &amp;#39;original&amp;#39; PSBT&lt;br/&gt;&amp;gt; &amp;gt; (all particpants receive same PSBT at the start), particpants should&lt;br/&gt;&amp;gt; &amp;gt; check the signature by that authority. That authority might use&lt;br/&gt;&amp;gt; &amp;gt; the key used only for authentication, and not in the tx signing.&lt;br/&gt;&lt;br/&gt;Yes, this can be acheived by pre-sharing a public key with the&lt;br/&gt;Signer (described above). Only signed incoming PSBT&amp;#39;s would be&lt;br/&gt;accepted. That key doesn&amp;#39;t have anything to do with the blockchain&lt;br/&gt;or value transfer.&lt;br/&gt;&lt;br/&gt;&amp;gt; &amp;gt; I think you do not need to wait for officially-assigned key numbers,&lt;br/&gt;&amp;gt; &amp;gt; and can just implement the scheme you envision with proprietary keys,&lt;br/&gt;&amp;gt; &amp;gt; document and promote it. Then if it shows its usefulness, it will&lt;br/&gt;&amp;gt; &amp;gt; either become de-facto standard with your proprietary keys...&lt;br/&gt;&lt;br/&gt;Yes, 100% ... but I value the list&amp;#39;s feedback, and I would prefer to&lt;br/&gt;start with a legitimate key number which I don&amp;#39;t need to change later. It&amp;#39;s&lt;br/&gt;a non-breaking change and I wouldn&amp;#39;t propose it otherwise.&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;Peter D. Gray  ||  Founder, Coinkite  ||  Twitter: @dochex  ||  GPG: A3A31BAD 5A2A5B10&lt;br/&gt;&lt;br/&gt;On Mon, Jan 13, 2020 at 06:39:28AM &#43;0000, Andrew Chow wrote:&lt;br/&gt;&amp;gt; I agree with Dimitry. I don&amp;#39;t see the point of having the MiTM&lt;br/&gt;&amp;gt; protection within the PSBT structure itself, in addition to the fact&lt;br/&gt;&amp;gt; that adding new fields is largely unnecessary. In fact, I&amp;#39;m not quite&lt;br/&gt;&amp;gt; sure what kind of attack you are trying to defend against with this&lt;br/&gt;&amp;gt; proposal.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; If there is a MiTM who can modify your PSBT, then they can just modify&lt;br/&gt;&amp;gt; the result the signed PSBT to drop the auth signatures. Furthermore, any&lt;br/&gt;&amp;gt; modifications to scripts or UTXOs would just result in an invalid&lt;br/&gt;&amp;gt; signature, so only time is wasted. But you&amp;#39;ll just waste time anyways&lt;br/&gt;&amp;gt; when you see a failed auth sig.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Additionally, when a signer processes a PSBT, it will either accept the&lt;br/&gt;&amp;gt; PSBT and add a signature for its inputs, or reject it and do nothing.&lt;br/&gt;&amp;gt; Given this behavior (and I assume you aren&amp;#39;t going to add auth sigs for&lt;br/&gt;&amp;gt; rejected PSBTs because that doesn&amp;#39;t make any sense), then you already&lt;br/&gt;&amp;gt; have a signature there that covers everything your auth signature would&lt;br/&gt;&amp;gt; cover. So just verify those signatures instead; for any inputs with&lt;br/&gt;&amp;gt; signatures, everything you need to verify them are already there.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Lastly, IMO, if you want MiTM protection, then you should do your&lt;br/&gt;&amp;gt; protection with out of band communication. Just PGP sign the PSBT (or&lt;br/&gt;&amp;gt; something similar) and send the signature along separately.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Andrew&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; On 1/11/20 3:17 PM, Dmitry Petukhov via bitcoin-dev wrote:&lt;br/&gt;&amp;gt; &amp;gt; &lt;br/&gt;&amp;gt; &amp;gt; I am not sure that this particular task should be done with data&lt;br/&gt;&amp;gt; &amp;gt; embedded in PSBT itself, and not with some sort of container that&lt;br/&gt;&amp;gt; &amp;gt; includes PSBT and the authentication information.&lt;br/&gt;&amp;gt; &amp;gt; &lt;br/&gt;&amp;gt; &amp;gt; The benefit seems to be in reusing PSBT structure for compatibilty, and&lt;br/&gt;&amp;gt; &amp;gt; this might be a valid way, although I do not agree with some of your&lt;br/&gt;&amp;gt; &amp;gt; points. I elaborate below:&lt;br/&gt;&amp;gt; &amp;gt; &lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; 1) In the PSBT globals section, a signature over the &amp;#34;source&amp;#34; PSBT&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; file. It would cover all the bytes of the original PSBT file, as&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; it was received by the Signer.&lt;br/&gt;&amp;gt; &amp;gt; &lt;br/&gt;&amp;gt; &amp;gt; The problem of authenticating the contents of PSBT is independent of&lt;br/&gt;&amp;gt; &amp;gt; the signing action. PSBT might be altered on the path from Creator to&lt;br/&gt;&amp;gt; &amp;gt; Signer. Therefore you cannot always say that Signer will be an&lt;br/&gt;&amp;gt; &amp;gt; authority over &amp;#39;correctness&amp;#39; of PSBT.&lt;br/&gt;&amp;gt; &amp;gt; &lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; - At the end of the signing process, the Finalizer should check all&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; the Signers have worked from the same PSBT file (assuming that&amp;#39;s&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; the flow expected)&lt;br/&gt;&amp;gt; &amp;gt; &lt;br/&gt;&amp;gt; &amp;gt; If there is MitM, checking something at Finalizer is likely too&lt;br/&gt;&amp;gt; &amp;gt; late - the party that can intercept PSBTs can finalize before the&lt;br/&gt;&amp;gt; &amp;gt; legitimate Finalizer and broadcast the transaction.&lt;br/&gt;&amp;gt; &amp;gt; &lt;br/&gt;&amp;gt; &amp;gt; Participants can work from the same PSBT file if they all receive the&lt;br/&gt;&amp;gt; &amp;gt; same PSBT, and not working in chain where next particpant receives&lt;br/&gt;&amp;gt; &amp;gt; updated PSBT from the previous participant. Otherwise they will need to&lt;br/&gt;&amp;gt; &amp;gt; either pass two files (original and updated), or work out which fields&lt;br/&gt;&amp;gt; &amp;gt; (key-value blobs) to remove to get the &amp;#39;source&amp;#39; PSBT (which might not be&lt;br/&gt;&amp;gt; &amp;gt; trivial with presense of proprietary and unknown fields). Even if you&lt;br/&gt;&amp;gt; &amp;gt; know which key-value pairs to remove, there is no requirement for&lt;br/&gt;&amp;gt; &amp;gt; ordering of the fields, and some signer can serialize them in different&lt;br/&gt;&amp;gt; &amp;gt; order after dserialize/sign/add-signatures/re-serialize operation.&lt;br/&gt;&amp;gt; &amp;gt; &lt;br/&gt;&amp;gt; &amp;gt; Introducing additional ordering or other structure requirements over&lt;br/&gt;&amp;gt; &amp;gt; simple key-value structure will add complexity to PSBT processing, and&lt;br/&gt;&amp;gt; &amp;gt; adding complexity on such a basic level should have really serious&lt;br/&gt;&amp;gt; &amp;gt; reasons, because that increases effort required for even basic&lt;br/&gt;&amp;gt; &amp;gt; implementations and increases chance of bugs.&lt;br/&gt;&amp;gt; &amp;gt; &lt;br/&gt;&amp;gt; &amp;gt; If there is some authority on the &amp;#39;correctness&amp;#39; of &amp;#39;original&amp;#39; PSBT&lt;br/&gt;&amp;gt; &amp;gt; (all particpants receive same PSBT at the start), particpants should&lt;br/&gt;&amp;gt; &amp;gt; check the signature by that authority. That authority might use&lt;br/&gt;&amp;gt; &amp;gt; the key used only for authentication, and not in the tx signing.&lt;br/&gt;&amp;gt; &amp;gt; &lt;br/&gt;&amp;gt; &amp;gt; If particpants send PSBT in chain after adding their signatures, then&lt;br/&gt;&amp;gt; &amp;gt; each participant can add their signature to say &amp;#39;the contents&lt;br/&gt;&amp;gt; &amp;gt; of PSBT after my updates should match this hash&amp;#39;.&lt;br/&gt;&amp;gt; &amp;gt; &lt;br/&gt;&amp;gt; &amp;gt; The signatures of previous participants in the chain most likely do not&lt;br/&gt;&amp;gt; &amp;gt; matter because of difficulty of restoring the contents of PSBT as it&lt;br/&gt;&amp;gt; &amp;gt; was before the previous particpant, if you do not pass _all_ the PSBTs&lt;br/&gt;&amp;gt; &amp;gt; (which is excessive).&lt;br/&gt;&amp;gt; &amp;gt; &lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; 2) In the output section, specifically, the last key/value pair of&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; the last output of the transaction, I want to add a similar signature,&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; again signed by one of the keys used in the signing process. This&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; signature will cover all the bytes of the resulting (signed) PSBT&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; up to that point. Because it is the last output of the output&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; section, that signature will be the last few bytes of the PSBT file.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; By &amp;#34;appending&amp;#34; the signature in this way, it&amp;#39;s easier to validate&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; and create the signature, without blanking the signature area during&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; digest step.&lt;br/&gt;&amp;gt; &amp;gt; &lt;br/&gt;&amp;gt; &amp;gt; This will introduce unnecessary higher-level structure to PSBT for the&lt;br/&gt;&amp;gt; &amp;gt; reasons that I do not find strong enough for the amount of complexity&lt;br/&gt;&amp;gt; &amp;gt; added.&lt;br/&gt;&amp;gt; &amp;gt; &lt;br/&gt;&amp;gt; &amp;gt; Also, as I said above, you likely do not need more than one&lt;br/&gt;&amp;gt; &amp;gt; signature - if this is &amp;#39;fan-out&amp;#39; scheme, then participants need do&lt;br/&gt;&amp;gt; &amp;gt; check the sig of authority that created PSBT; if this is piggy-back&lt;br/&gt;&amp;gt; &amp;gt; chain, then only previous particpant&amp;#39;s signature is easily verifiable.&lt;br/&gt;&amp;gt; &amp;gt; &lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; ## Next Steps&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; I&amp;#39;d like to get two officially-assigned BIP-174 key numbers assigned&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; for these two signatures, and then I will see that it gets added&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; into Coldcard&amp;#39;s firmware immediately. In time, other tools are&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; welcome to take advantage of these checks. I will also write a BIP&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; for this, and/or make an addition to BIP-174.&lt;br/&gt;&amp;gt; &amp;gt; &lt;br/&gt;&amp;gt; &amp;gt; I think you do not need to wait for officially-assigned key numbers,&lt;br/&gt;&amp;gt; &amp;gt; and can just implement the scheme you envision with proprietary keys,&lt;br/&gt;&amp;gt; &amp;gt; document and promote it. Then if it shows its usefulness, it will&lt;br/&gt;&amp;gt; &amp;gt; either become de-facto standard with your proprietary keys (and&lt;br/&gt;&amp;gt; &amp;gt; everyone will want to support &amp;#39;Coldard PSBT auth&amp;#39; or whatever the name),&lt;br/&gt;&amp;gt; &amp;gt; or the scheme will have serious grounds to be converted to standard and&lt;br/&gt;&amp;gt; &amp;gt; have non-proprietary keys assigned.&lt;br/&gt;&amp;gt; &amp;gt; &lt;br/&gt;&amp;gt; &amp;gt; // Dmitry.&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;&amp;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: 529 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/20200113/2ad4e27c/attachment-0001.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20200113/2ad4e27c/attachment-0001.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T18:22:22Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqs06wch0yeq8cksx0vtgvs7hs82xc3v2vu9f7znsh3uvv2qdxyz7dgzypasqnsu699la9dwc5umpguy8sn385244yu6hkq854c5c2sf7jzvgslfx4a</id>
    
      <title type="html">📅 Original date posted:2020-01-11 📝 Original message:## ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqs06wch0yeq8cksx0vtgvs7hs82xc3v2vu9f7znsh3uvv2qdxyz7dgzypasqnsu699la9dwc5umpguy8sn385244yu6hkq854c5c2sf7jzvgslfx4a" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsv642yx8wgymha0ju9ds6wkm3hxdmqsxrfaex8lvh26568yg28t2q5ceh90&#39;&gt;nevent1q…eh90&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2020-01-11&lt;br/&gt;📝 Original message:## Background&lt;br/&gt;&lt;br/&gt;PSBT files in transit are at risk of MiTM changes. This isn&amp;#39;t&lt;br/&gt;supposed to matter, but as another layer of defence, I would like&lt;br/&gt;to add two signatures to PSBT files when they are processed by the&lt;br/&gt;PSBT Signer. These additional fields would be optional, and should&lt;br/&gt;pass through existing PSBT processors transparently, assuming they&lt;br/&gt;pass unknown key/values as BIP-174 specifies.&lt;br/&gt;&lt;br/&gt;## Additional Key/Values&lt;br/&gt;&lt;br/&gt;1) In the PSBT globals section, a signature over the &amp;#34;source&amp;#34; PSBT&lt;br/&gt;file. It would cover all the bytes of the original PSBT file, as&lt;br/&gt;it was received by the Signer. The key used for the signature may&lt;br/&gt;be any one the keys that the Signer applied during its transaction&lt;br/&gt;signing process. (This is flexible so that the Signer can make the&lt;br/&gt;signature at any point in the signing process. On the Coldcard, we&lt;br/&gt;would probably use the first key that we used for signing, so the&lt;br/&gt;first key involved in the first input.)&lt;br/&gt;&lt;br/&gt;The &amp;#34;key&amp;#34; of the global value will be pubkey value of the key which&lt;br/&gt;was selected by the Signer.  If its BIP32 derivation is needed for&lt;br/&gt;some reason, that is documented in the input section already.&lt;br/&gt;&lt;br/&gt;The &amp;#34;value&amp;#34; will be 65(?) bytes of a standard Bitcoin signature.&lt;br/&gt;The digest (hash) of the source PSBT is not provided, so any tool&lt;br/&gt;that wants to verify this signature will need to have a copy of the&lt;br/&gt;original PSBT. (I see that as a critical feature, not a limitation).&lt;br/&gt;&lt;br/&gt;2) In the output section, specifically, the last key/value pair of&lt;br/&gt;the last output of the transaction, I want to add a similar signature,&lt;br/&gt;again signed by one of the keys used in the signing process. This&lt;br/&gt;signature will cover all the bytes of the resulting (signed) PSBT&lt;br/&gt;up to that point. Because it is the last output of the output&lt;br/&gt;section, that signature will be the last few bytes of the PSBT file.&lt;br/&gt;By &amp;#34;appending&amp;#34; the signature in this way, it&amp;#39;s easier to validate&lt;br/&gt;and create the signature, without blanking the signature area during&lt;br/&gt;digest step.&lt;br/&gt;&lt;br/&gt;## Role-Based View&lt;br/&gt;&lt;br/&gt;The above additions can only be made by a PSBT processor in the Signer&lt;br/&gt;role. No-one else has the keys needed. As for the other PSBT roles:&lt;br/&gt;&lt;br/&gt;- Any tool that reads in a PSBT and finds a signature in the final output&lt;br/&gt;  section can and should verify it:&lt;br/&gt;    - check signature over a digest of the PSBT file up to the last X bytes&lt;br/&gt;    - file must end at that point, with only the signature following it&lt;br/&gt;    - also check the key used for signature is one of the input&amp;#39;s keys&lt;br/&gt;&lt;br/&gt;- PSBT processors in the &amp;#34;combining&amp;#34; role, should preserve the&lt;br/&gt;signatures in the global section, accumulating them into the next&lt;br/&gt;PSBT. (Of course they should validate them, if they have the original&lt;br/&gt;PSBT on hand as well, but that&amp;#39;s optional and could be done later&lt;br/&gt;in the flow.) The Combiner should always check a signed PSBT was&lt;br/&gt;not modified in transit via the signature in the final output&lt;br/&gt;section, and then strip it out of the combined PSBT.&lt;br/&gt;&lt;br/&gt;- At the end of the signing process, the Finalizer should check all&lt;br/&gt;the Signers have worked from the same PSBT file (assuming that&amp;#39;s&lt;br/&gt;the flow expected), or the appropriate PSBT if it&amp;#39;s a more complex&lt;br/&gt;case. If the Finalizer is working on a file directly from a Signer,&lt;br/&gt;then it can verify the signature in the output section as well.&lt;br/&gt;&lt;br/&gt;## Open Questions&lt;br/&gt;&lt;br/&gt;For the message digest, I propose simple SHA256(SHA256(bytes of PSBT)).&lt;br/&gt;I&amp;#39;m not sure of the best way to serialize the signature, but to be&lt;br/&gt;consistent with the rest of the file, it should probably be DER-encoded&lt;br/&gt;and variable length.&lt;br/&gt;&lt;br/&gt;## Next Steps&lt;br/&gt;&lt;br/&gt;I&amp;#39;d like to get two officially-assigned BIP-174 key numbers assigned&lt;br/&gt;for these two signatures, and then I will see that it gets added&lt;br/&gt;into Coldcard&amp;#39;s firmware immediately. In time, other tools are&lt;br/&gt;welcome to take advantage of these checks. I will also write a BIP&lt;br/&gt;for this, and/or make an addition to BIP-174.&lt;br/&gt;&lt;br/&gt;I think with these changes, and assuming all the tools are verifying&lt;br/&gt;properly, we can shutdown undetectable MiTM changes to PSBT contents.&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;Peter D. Gray  ||  Founder, Coinkite  ||  Twitter: @dochex  ||  GPG: A3A31BAD 5A2A5B10&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: 529 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/20200111/51fab912/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20200111/51fab912/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T18:22:20Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsdds9pn0ga7t3l7k537j5nq84quhs3fgpn7k528pju92x2r5xexrszypasqnsu699la9dwc5umpguy8sn385244yu6hkq854c5c2sf7jzvg8gc89n</id>
    
      <title type="html">📅 Original date posted:2019-06-27 📝 Original message:I ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsdds9pn0ga7t3l7k537j5nq84quhs3fgpn7k528pju92x2r5xexrszypasqnsu699la9dwc5umpguy8sn385244yu6hkq854c5c2sf7jzvg8gc89n" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs8347ac3d0a6wlnuawxcqxsgczh7sewrpt92qjwm3xxpzhzn9racs7j5mpr&#39;&gt;nevent1q…5mpr&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2019-06-27&lt;br/&gt;📝 Original message:I haven&amp;#39;t studied the new proposal in depth, but my first impression is:&lt;br/&gt;&lt;br/&gt;Wouldn&amp;#39;t it just be easier and better to just sign the entire &amp;#34;outputs&amp;#34; section of the PSBT?&lt;br/&gt;&lt;br/&gt;The signature would cover every byte, and therefore would cover any&lt;br/&gt;future BIP additions to the outputs area, and also help non-multisig&lt;br/&gt;cases today.&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;Peter D. Gray  ||  Founder, Coinkite  ||  Twitter: @dochex  ||  GPG: A3A31BAD 5A2A5B10
    </content>
    <updated>2023-06-07T18:18:48Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqs2edhrwpemfs6gp4tj27tppgsksvumlh8q6yc4h3wzzgt56p2gtkqzypasqnsu699la9dwc5umpguy8sn385244yu6hkq854c5c2sf7jzvgefw6g8</id>
    
      <title type="html">📅 Original date posted:2019-06-28 📝 Original message:Thanks ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqs2edhrwpemfs6gp4tj27tppgsksvumlh8q6yc4h3wzzgt56p2gtkqzypasqnsu699la9dwc5umpguy8sn385244yu6hkq854c5c2sf7jzvgefw6g8" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsxjeegpkj65sfl3j33hef9vqj7q7k3jgsugvqn28sfp3hvkcfefdqe09cn9&#39;&gt;nevent1q…9cn9&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2019-06-28&lt;br/&gt;📝 Original message:Thanks I get the idea better now: You want the PSBT creator to be&lt;br/&gt;able to indicate to the signers that it (the PSBT creator) controls&lt;br/&gt;specific outputs that don&amp;#39;t otherwise look like change.&lt;br/&gt;&lt;br/&gt;Some problems:&lt;br/&gt;&lt;br/&gt;&amp;gt; extended private key of the current signer derived from the&lt;br/&gt;&amp;gt; signer&amp;#39;s root to m/2042083607&amp;#39;/959190427&amp;#39;/1400854130&amp;#39;/990526201&amp;#39;&lt;br/&gt;&lt;br/&gt;1) The PSBT creator would need to know that private key, and the Coldcard, as a matter&lt;br/&gt;   of policy, will never export a private subkey.&lt;br/&gt;&lt;br/&gt;2) The &amp;#39;m&amp;#39; in that path depends on who is reading the PSBT file, in the multisig&lt;br/&gt;   case. Each cosigner would need a different version of the PSBT file.&lt;br/&gt;&lt;br/&gt;3) XPUB&amp;#39;s are big and hard to parse, and this addition is using lots of them.&lt;br/&gt;&lt;br/&gt;4) Coinjoins, and more complex script types, will want to authorize&lt;br/&gt;   outputs that the PSBT signer may not fully understand. Your proposal&lt;br/&gt;   would only help P2PKH and M-of-N multisig users.&lt;br/&gt;&lt;br/&gt;To fix, may I propose:&lt;br/&gt;&lt;br/&gt;- the signer and PSBT creator must share a pubkey/private key out of band (setup time)&lt;br/&gt;- the origin of that key is out of scope of this standard (but it could be derived via BIP32)&lt;br/&gt;- the PSBT creator can, optionally, sign any or all output sections by number using that key&lt;br/&gt;&lt;br/&gt;I would prefer the signatures are in the global section, and the&lt;br/&gt;signature is over all the bytes in the indicated output section,&lt;br/&gt;as originally serialized when it came into the signer&amp;#39;s possession.&lt;br/&gt;&lt;br/&gt;We should be able to support multiple signers for individual outputs,&lt;br/&gt;and also multiple signatures for the same output section. That would&lt;br/&gt;support different derived keys per co-signer, and also quorum&lt;br/&gt;approval or other policies like that.&lt;br/&gt;&lt;br/&gt;Afterthought: Might be good to allow signature over the unsigned transaction, or&lt;br/&gt;maybe it should be part of the signature always.&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;Peter D. Gray  ||  Founder, Coinkite  ||  Twitter: @dochex  ||  GPG: A3A31BAD 5A2A5B10&lt;br/&gt;&lt;br/&gt;On Fri, Jun 28, 2019 at 11:44:15AM &#43;0900, Jonathan Underwood wrote:&lt;br/&gt;&amp;gt; Hi Peter,&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; tl;dr The problem this solves is &amp;#34;How can a signer verify an address with&lt;br/&gt;&amp;gt; HD changing the address every time?&amp;#34;&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; As an aside: (This is sort of explaining the current PR for the 0x01 global&lt;br/&gt;&amp;gt; field (separate from mine))&lt;br/&gt;&amp;gt; The problem is more easily understood with change addresses: If someone can&lt;br/&gt;&amp;gt; alter my PSBT before signing, they could replace my change address with&lt;br/&gt;&amp;gt; their address, and my signer would not know unless the signer just guesses&lt;br/&gt;&amp;gt; all the path sets it knows, then derives thousands of change addresses and&lt;br/&gt;&amp;gt; searches (most likely a signer is offline, so gap limit doesn&amp;#39;t work since&lt;br/&gt;&amp;gt; we can&amp;#39;t tell which change addresses have tx history. So the 0x01 global&lt;br/&gt;&amp;gt; tag will tell the signer &amp;#34;here&amp;#39;s how you get from your master private key&lt;br/&gt;&amp;gt; to the xpub used in the change output&amp;#39;s output BIP32_DERIVATION tag... you&lt;br/&gt;&amp;gt; can then derive the same key and check it is yours before signing.&amp;#34;&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Back to my proposal, this problem extends across wallets, since,&lt;br/&gt;&amp;gt; for example, if I want to send from my cold wallet to my warm wallet, I&lt;br/&gt;&amp;gt; don&amp;#39;t want to give my cold signer my warm master key just so it can derive&lt;br/&gt;&amp;gt; and check the key. That&amp;#39;s what signatures are for. So this proposal says &amp;#34;A&lt;br/&gt;&amp;gt; signer can be built to only sign if it sees a signature that itself has&lt;br/&gt;&amp;gt; signed, then from that signed xpub(s) derives the BIP32_DERIVATION in the&lt;br/&gt;&amp;gt; outputs, and if the output doesn&amp;#39;t match it will reject and not sign&amp;#34;&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; This creates a sort of &amp;#34;chain of trust&amp;#34; for the wallet.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Currently the best way to prevent this (hacker swapping the send to&lt;br/&gt;&amp;gt; address) without using signatures is to reuse the same address every time&lt;br/&gt;&amp;gt; you want to send to the warm wallet, since after a few times, the signers&lt;br/&gt;&amp;gt; (people) will be able to remember the address.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; This is a huge HD drawback for high security requirement environments.&lt;br/&gt;&amp;gt; Having this data in the PSBT standard will allow Trezor etc. to create an&lt;br/&gt;&amp;gt; enforceable whitelist feature.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Let me know if you have feedback on the details.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Thanks,&lt;br/&gt;&amp;gt; Jon&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; 2019年6月28日(金) 0:07 Peter D. Gray &amp;lt;peter at coinkite.com&amp;gt;:&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; &amp;gt; I haven&amp;#39;t studied the new proposal in depth, but my first impression is:&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; Wouldn&amp;#39;t it just be easier and better to just sign the entire &amp;#34;outputs&amp;#34;&lt;br/&gt;&amp;gt; &amp;gt; section of the PSBT?&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; The signature would cover every byte, and therefore would cover any&lt;br/&gt;&amp;gt; &amp;gt; future BIP additions to the outputs area, and also help non-multisig&lt;br/&gt;&amp;gt; &amp;gt; cases today.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; ---&lt;br/&gt;&amp;gt; &amp;gt; Peter D. Gray  ||  Founder, Coinkite  ||  Twitter: @dochex  ||  GPG:&lt;br/&gt;&amp;gt; &amp;gt; A3A31BAD 5A2A5B10&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; -- &lt;br/&gt;&amp;gt; -----------------&lt;br/&gt;&amp;gt; Jonathan Underwood&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; 指紋: 0xCE5EA9476DE7D3E45EBC3FDAD998682F3590FEA3
    </content>
    <updated>2023-06-07T18:18:48Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqswcyv96v8afvxrtt50kflpgyqne5vel99dce9tnpdtj4qftjrhf7szypasqnsu699la9dwc5umpguy8sn385244yu6hkq854c5c2sf7jzvg6893nd</id>
    
      <title type="html">📅 Original date posted:2019-05-03 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqswcyv96v8afvxrtt50kflpgyqne5vel99dce9tnpdtj4qftjrhf7szypasqnsu699la9dwc5umpguy8sn385244yu6hkq854c5c2sf7jzvg6893nd" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsdz56vyyd6k6wa5sya5zht4wsrs28lr9zj9j5d7dhcllx9zv5es9ctudnq7&#39;&gt;nevent1q…dnq7&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2019-05-03&lt;br/&gt;📝 Original message:On Fri, Apr 26, 2019 at 05:21:06PM &#43;0200, Stepan Snigirev wrote:&lt;br/&gt;...&lt;br/&gt;&amp;gt; Currently in PSBT there is no way to reliably say if the output uses the&lt;br/&gt;&amp;gt; keys derived from the same root keys as the inputs aside from the key owned&lt;br/&gt;&lt;br/&gt;Writing the multisig support for Coldcard, I&amp;#39;ve come to the same conclusion. I&amp;#39;ve&lt;br/&gt;exchanged some helpful mail with Andrew Chow on this subject.&lt;br/&gt;&lt;br/&gt;...&lt;br/&gt;&amp;gt; I suggest to add the following key-value pairs to PSBT:&lt;br/&gt;&amp;gt; Type: BIP 32 public key `PSBT_IN_BIP32_XPUB = 0x10`&lt;br/&gt;...&lt;br/&gt;&amp;gt; Type: BIP 32 public key `PSBT_OUT_BIP32_XPUB = 0x03`&lt;br/&gt;&lt;br/&gt;I&amp;#39;d rather see the xpubs shared in the global section of the file,&lt;br/&gt;with the restriction that they must/should only include the hardened&lt;br/&gt;prefix of the path. The existing bip32 derivation path included in&lt;br/&gt;individual inputs and outputs be merged in as needed.&lt;br/&gt;&lt;br/&gt;After all in a typical PSBT, we would expect the same master keys&lt;br/&gt;to be used on all inputs, and at least one output, and there might&lt;br/&gt;be as many as 20 co-signers. No need to repeat all that information.&lt;br/&gt;&lt;br/&gt;Even with this additions to the PSBT format, I think PSBT-signing&lt;br/&gt;devices still need to store the xpubs of their co-signers. It&amp;#39;s not&lt;br/&gt;possible to safely show an incoming address to the user without a&lt;br/&gt;full understanding of the other keys in a &amp;#34;multisig wallet&amp;#34;. Also,&lt;br/&gt;it represents data that should not change between PSBT instances&lt;br/&gt;(ie. tomorrow&amp;#39;s co-signers should match today&amp;#39;s).&lt;br/&gt;&lt;br/&gt;Having said that, the xpubs in the PSBT would allow a &amp;#34;trust on first&lt;br/&gt;use&amp;#34; which I think can be a good feature.&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;Peter D. Gray  ||  Founder, Coinkite  ||  Twitter: @dochex  ||  GPG: A3A31BAD 5A2A5B10&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;gt; Hi list,&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; I was looking at the bip174 PSBT specs, in particular for multisignature&lt;br/&gt;&amp;gt; setup, and I think with current spec there is a way to steal user funds in&lt;br/&gt;&amp;gt; M of N setup with M ≤ N/2.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; I made a small write-up on this:&lt;br/&gt;&amp;gt; &lt;a href=&#34;https://github.com/stepansnigirev/random_notes/blob/master/psbt_multisig.md&#34;&gt;https://github.com/stepansnigirev/random_notes/blob/master/psbt_multisig.md&lt;/a&gt;&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; To compress:&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Currently in PSBT there is no way to reliably say if the output uses the&lt;br/&gt;&amp;gt; keys derived from the same root keys as the inputs aside from the key owned&lt;br/&gt;&amp;gt; by the signer =&amp;gt; there is no way to verify that the output is a change&lt;br/&gt;&amp;gt; output in multisig setup.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Therefore an attacker can replace half of the keys in the change address by&lt;br/&gt;&amp;gt; his own keys and still get the transaction signed.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; I suggest to add an xpub field to the inputs and outputs metadata, then&lt;br/&gt;&amp;gt; signers can verify that the same xpubs are used for public keys in inputs&lt;br/&gt;&amp;gt; and outputs =&amp;gt; output is indeed a change.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Normally change and receiving addresses are derived from the same xpub with&lt;br/&gt;&amp;gt; non-hardened derivation pathes, so providing xpub after the last hardened&lt;br/&gt;&amp;gt; index should be enough to see that public keys of inputs and change output&lt;br/&gt;&amp;gt; are derived from the same xpub.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; I suggest to add the following key-value pairs to PSBT:&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Type: BIP 32 public key `PSBT_IN_BIP32_XPUB = 0x10`&lt;br/&gt;&amp;gt; - Key: derivation path for xpub&lt;br/&gt;&amp;gt;   `{0x10}|{master key fingerprint}|{32-bit int}|...|{32-bit int}`&lt;br/&gt;&amp;gt; - Value: 78-byte xpub value&lt;br/&gt;&amp;gt;   `{xpub}`&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Type: BIP 32 public key `PSBT_OUT_BIP32_XPUB = 0x03`&lt;br/&gt;&amp;gt; - Key: derivation path for xpub&lt;br/&gt;&amp;gt;   `{0x03}|{master key fingerprint}|{32-bit int}|...|{32-bit int}`&lt;br/&gt;&amp;gt; - Value: 78-byte xpub value&lt;br/&gt;&amp;gt;   `{xpub}`&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Derivation paths are in the key of the key-value pair as they are used for&lt;br/&gt;&amp;gt; lookup, and xpub itself is the actual value being looked up.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; I also want to mention that Trezor for example doesn&amp;#39;t suffer from this&lt;br/&gt;&amp;gt; problem as they use xpubs to verify change outputs. So it may make sense to&lt;br/&gt;&amp;gt; go through the communication protocols of existing hardware /&lt;br/&gt;&amp;gt; multisignature wallets and see if there is something else we are missing.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; If everyone is happy about the proposal I would prepare a pull request to&lt;br/&gt;&amp;gt; the bip.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Best regards,&lt;br/&gt;&amp;gt; Stepan Snigirev.
    </content>
    <updated>2023-06-07T18:17:52Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqs035avndnww664l9a4wsfrwp4kzlfm245sextzk6y6hx6g4yc6f2czypasqnsu699la9dwc5umpguy8sn385244yu6hkq854c5c2sf7jzvgdadfnp</id>
    
      <title type="html">📅 Original date posted:2018-06-29 📝 Original message:... ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqs035avndnww664l9a4wsfrwp4kzlfm245sextzk6y6hx6g4yc6f2czypasqnsu699la9dwc5umpguy8sn385244yu6hkq854c5c2sf7jzvgdadfnp" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsqtzr3grdl3s9sjdfr8u7k2r2cnk94pe0gnqdvve69u5uzafnkgds8lyakf&#39;&gt;nevent1q…yakf&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2018-06-29&lt;br/&gt;📝 Original message:...&lt;br/&gt;&amp;gt; I believe that this discussion has become bikeshedding and is really no longer constructive.&lt;br/&gt;...&lt;br/&gt;&lt;br/&gt;Thanks for saying this Andrew! I agree with your point of view, and personally I&amp;#39;m ready to lock this BIP down ... or at least move it to the next level of approval.&lt;br/&gt;&lt;br/&gt;...&lt;br/&gt;&amp;gt;  I propose to move the BIP from Draft to Proposed status.&lt;br/&gt;&lt;br/&gt;Yes please, all praise the BIP gods!&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;Peter D. Gray  ||  Founder, Coinkite  ||  Twitter: @dochex  ||  GPG: A3A31BAD 5A2A5B10
    </content>
    <updated>2023-06-07T18:13:15Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsy0t5qrg295wavrtdpuvfghex7877vv3k9xy9t4tawu2lmsv43jlszypasqnsu699la9dwc5umpguy8sn385244yu6hkq854c5c2sf7jzvgmth9md</id>
    
      <title type="html">📅 Original date posted:2018-06-23 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsy0t5qrg295wavrtdpuvfghex7877vv3k9xy9t4tawu2lmsv43jlszypasqnsu699la9dwc5umpguy8sn385244yu6hkq854c5c2sf7jzvgmth9md" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqspcyugcnmjm9frynh3xfkagksdk687sn3cytx439mvamedzlnnqhqqjpzyr&#39;&gt;nevent1q…pzyr&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2018-06-23&lt;br/&gt;📝 Original message:On Fri, Jun 22, 2018 at 06:28:33PM -0400, Achow101 wrote:&lt;br/&gt;&amp;gt; After reading the comments here about BIP 174, I would like to propose the following changes:&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; - Moving redeemScripts, witnessScripts, and BIP 32 derivation paths to per-input and per-output data&lt;br/&gt;...&lt;br/&gt;&lt;br/&gt;I like this. I agree it&amp;#39;s making things easier and it&amp;#39;s more flexible.&lt;br/&gt;&lt;br/&gt;&amp;gt; - Finalized scriptSig and scriptWitness fields&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; To determine whether two PSBTs are the same, we can compare the unsigned transaction. To ensure that the&lt;br/&gt;&amp;gt; unsigned transactions are the same for two PSBTs with data for the same tx, we cannot put scriptSigs or&lt;br/&gt;&amp;gt; scriptWitnesses into it. Thus for each input, two new fields have been added to store the finalized scriptSig&lt;br/&gt;&amp;gt; and finalized scriptWitness.&lt;br/&gt;...&lt;br/&gt;&lt;br/&gt;To be honest, I don&amp;#39;t understand the reasons/implications of this change, but it seems harmless.&lt;br/&gt;&lt;br/&gt;&amp;gt; - Mandatory sighash&lt;br/&gt;...&lt;br/&gt;&lt;br/&gt;Good improvement.&lt;br/&gt;&lt;br/&gt;&amp;gt; - Encoding&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; I have decided that PSBTs should either be in binary or encoded as a Base64 string. For the latter, several&lt;br/&gt;&amp;gt; Bitcoin clients already support Base64 encoding of data (for signed messages) so this will not add any extra&lt;br/&gt;&amp;gt; dependencies like Z85 would.&lt;br/&gt;...&lt;br/&gt;&lt;br/&gt;Personally, I don&amp;#39;t think you should spec an encoding. It should be binary only and hex for developers and JSON interfaces. My thinking is that PSBT&amp;#39;s are not user-visible things. They have a short lifetime and are nothing something that is &amp;#34;stored&amp;#34; or referenced much later. Hex is good enough and has no downsides as an excoding except for density.&lt;br/&gt;&lt;br/&gt;On the other hand, suggesting a filename extension (probably .PSBT?) and a mime-type to match, are helpful since wallets and such will want to register with their operating systems to become handlers of those mimetypes. Really that&amp;#39;s a lot more important for interoperability at this point, than an encoding.&lt;br/&gt;&lt;br/&gt;&amp;gt; A draft of the revised BIP can be found here: &lt;a href=&#34;https://github.com/achow101/bips/blob/bip174-rev/bip-0174.mediawiki&#34;&gt;https://github.com/achow101/bips/blob/bip174-rev/bip-0174.mediawiki&lt;/a&gt;&lt;br/&gt;&amp;gt; If these changes are satisfactory, I will open a PR to the BIPs repo to update the BIP tomorrow. I will also&lt;br/&gt;&amp;gt; create test vectors and update the implementation PR&amp;#39;ed to Core.&lt;br/&gt;...&lt;br/&gt;&lt;br/&gt;Looking forward to test vectors, and I might have more to say once my code can handle them (again).&lt;br/&gt;&lt;br/&gt;Feedback on the BIP as it stands now: &lt;br/&gt;&lt;br/&gt;- Appendix A needs an update, and I suggest defining symbols (PK_PARTIAL_SIG == 0x02) for the numeric key values. This helps implementers as we don&amp;#39;t all define our own symbols and/or use numeric constants in our code.&lt;br/&gt;&lt;br/&gt;- Those tables are just not working. Might want to reformat as descriptive lists, point form, or generally anything else... sorry.&lt;br/&gt;&lt;br/&gt;&amp;gt; Andrew&lt;br/&gt;&amp;gt; _______________________________________________&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;Peter D. Gray  ||  Founder, Coinkite  ||  Twitter: @dochex  ||  GPG: A3A31BAD 5A2A5B10&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: 496 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/20180623/9c0b1846/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20180623/9c0b1846/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T18:13:11Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsrjr5c0n8tvlmqng2787sp5qh3trdvd4yr8nnpwlut2vt2g6hleaszypasqnsu699la9dwc5umpguy8sn385244yu6hkq854c5c2sf7jzvggm5tum</id>
    
      <title type="html">📅 Original date posted:2018-06-21 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsrjr5c0n8tvlmqng2787sp5qh3trdvd4yr8nnpwlut2vt2g6hleaszypasqnsu699la9dwc5umpguy8sn385244yu6hkq854c5c2sf7jzvggm5tum" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsgnwyvc6tx2dfe2vwfq2ghhwfwc346rnklxz5tdh42w6pgp8ga4cgwnsmec&#39;&gt;nevent1q…smec&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2018-06-21&lt;br/&gt;📝 Original message:On Thu, Jun 21, 2018 at 04:32:07PM &#43;0200, Tomas Susanka wrote:&lt;br/&gt;...&lt;br/&gt;&amp;gt; First of all, let me thank you for all the hard work you and others have&lt;br/&gt;&amp;gt; put into this.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; On 21.6.2018 02:39, Achow101 via bitcoin-dev wrote:&lt;br/&gt;&amp;gt; &amp;gt; While I agree that the BIP itself should be revised to reflect these suggestions, I fear that it may be too late. I know of a few other developers who have implemented BIP 174 already but have not yet responded to this email.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; We do realize that this discussion should have happened earlier, however&lt;br/&gt;&amp;gt; agreeing on a good standard should be the number one priority for all&lt;br/&gt;&amp;gt; the parties involved.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; The fact that someone already implemented this is indeed unfortunate,&lt;br/&gt;&amp;gt; but I don&amp;#39;t think we should lower our demands on the standard just&lt;br/&gt;&amp;gt; because of a bad timing.&lt;br/&gt;&lt;br/&gt;We all want a &amp;#34;good&amp;#34; standard but we have that already, IMHO.&lt;br/&gt;&lt;br/&gt;What you are really saying is you want a &amp;#34;better&amp;#34; standard, and I&lt;br/&gt;would argue that&amp;#39;s our enemy right now. It&amp;#39;s just too easy to propose a&lt;br/&gt;few tweaks, with &amp;#34;wouldn&amp;#39;t it be better if...&amp;#34; &lt;br/&gt;&lt;br/&gt;I feel strongly we are entering the &amp;#34;design by committee&amp;#34; territory with BIP174.&lt;br/&gt;&lt;br/&gt;I have personally implemented this spec on an embedded micro, as&lt;br/&gt;the signer and finalizer roles, and written multiple parsers for&lt;br/&gt;it as well. There is nothing wrong with it, and it perfectly meets&lt;br/&gt;my needs as a hardware wallet.&lt;br/&gt;&lt;br/&gt;So, there is a good proposal already spec&amp;#39;ed and implemented by&lt;br/&gt;multiple parties. Andrew has been very patiently shepherding the PR&lt;br/&gt;for over six months already.&lt;br/&gt;&lt;br/&gt;PSBT is something we need, and has been missing from the ecosystem&lt;br/&gt;for a long time. Let&amp;#39;s push this out and start talking about future&lt;br/&gt;versions after we learn from this one.&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;Peter D. Gray  ||  Founder, Coinkite  ||  Twitter: @dochex  ||  GPG: A3A31BAD 5A2A5B10&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: 496 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/20180621/8d63430a/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20180621/8d63430a/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T18:13:08Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqspfd36r62ddxh6uzahxjhwgdemmnj54r6hq68mftgds7gqa8dl83gzypasqnsu699la9dwc5umpguy8sn385244yu6hkq854c5c2sf7jzvgwhuept</id>
    
      <title type="html">📅 Original date posted:2018-06-21 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqspfd36r62ddxh6uzahxjhwgdemmnj54r6hq68mftgds7gqa8dl83gzypasqnsu699la9dwc5umpguy8sn385244yu6hkq854c5c2sf7jzvgwhuept" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsrjgysv3ldrp35j3y4zd9pqfaxcq0z6vm2zayvrgsefpht4gy9vegq4xu9c&#39;&gt;nevent1q…xu9c&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2018-06-21&lt;br/&gt;📝 Original message:On Tue, Jun 19, 2018 at 05:20:34PM &#43;0200, Jonas Schnelli wrote:&lt;br/&gt;...&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; I don’t see any reasons why space would be an issue.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; HWWs probably can’t handle PBST natively since it is not optimised for&lt;br/&gt;&amp;gt; presenting various informations in a signing-verification.&lt;br/&gt;&lt;br/&gt;The Coldcard hardware wallet is PSBT native and does work directly from PSBT.&lt;br/&gt;&lt;br/&gt;&amp;gt; A single stream-in of a PSBT through USB (or similar channel) will not work in&lt;br/&gt;&amp;gt; many cases since HWW come often with very restrictive RAM constraints.&lt;br/&gt;&lt;br/&gt;For the Coldcard, we expect a PSBT to be &amp;#39;uploaded&amp;#39; over USB (can&lt;br/&gt;also be provided on MicroSD card) and we work in-place with it,&lt;br/&gt;scanning over it a few different times. If the user approves the&lt;br/&gt;transaction, we produce a signed PSBT or final transaction and that&lt;br/&gt;gets downloaded.&lt;br/&gt;&lt;br/&gt;We support 256k byte PSBT files with hundreds of inputs/outputs&lt;br/&gt;(IIRC, and exact limits still TBD) and are operating in a system&lt;br/&gt;with only 25k free RAM after startup.&lt;br/&gt;&lt;br/&gt;&amp;gt; Furthermore, I forget to mention in my last mail, that registering (or defining)&lt;br/&gt;&amp;gt; a mime-type for PSBT would probably a great usability feature.&lt;br/&gt;&amp;gt; (Send PSBT by email/messanger and with dbl-click to open feature, etc.)&lt;br/&gt;&lt;br/&gt;&#43;1 for mimetype, especially since it&amp;#39;s a binary format.&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;Peter D. Gray  ||  Founder, Coinkite  ||  Twitter: @dochex  ||  GPG: A3A31BAD 5A2A5B10&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: 496 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/20180621/be77e362/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20180621/be77e362/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T18:13:04Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsvqp4lej443h0urwnq6y0xcc2pukhzfehm2xw9sh2na38ppuzmhfgzypasqnsu699la9dwc5umpguy8sn385244yu6hkq854c5c2sf7jzvgpy9nv6</id>
    
      <title type="html">📅 Original date posted:2018-06-16 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsvqp4lej443h0urwnq6y0xcc2pukhzfehm2xw9sh2na38ppuzmhfgzypasqnsu699la9dwc5umpguy8sn385244yu6hkq854c5c2sf7jzvgpy9nv6" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsduzdauwgv5dlnhwra8uqcddq4647za9qtzg5m6vjmr2tkhmexdxcl0n6qv&#39;&gt;nevent1q…n6qv&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2018-06-16&lt;br/&gt;📝 Original message:On Fri, Jun 15, 2018 at 04:34:40PM -0700, Pieter Wuille wrote:&lt;br/&gt;...&lt;br/&gt;&amp;gt; First of all, it&amp;#39;s unclear to me to what extent projects have already&lt;br/&gt;&amp;gt; worked on implementations, and thus to what extent the specification&lt;br/&gt;&amp;gt; is still subject to change. A response of &amp;#34;this is way too late&amp;#34; is&lt;br/&gt;&amp;gt; perfectly fine.&lt;br/&gt;...&lt;br/&gt;&lt;br/&gt;The new Coldcard hardware wallet is based on PSBT (ie. BIP 174 as&lt;br/&gt;published), and we consider it &amp;#34;PSBT Native&amp;#34;. It can add signatures&lt;br/&gt;to PSBT files delivered on MicroSD card and/or over USB, and is&lt;br/&gt;able to finalize PSBT files for lots of simple cases. It already&lt;br/&gt;works well against the existing BIP174 pull request.&lt;br/&gt;&lt;br/&gt;I think the BIP174 spec is reasonable as it is, and should only be&lt;br/&gt;changed in a forwards-compatible way from this point... but obviously&lt;br/&gt;I&amp;#39;m biased.&lt;br/&gt;&lt;br/&gt;As for your specific comments, I don&amp;#39;t have strong feelings really.&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;Peter D. Gray  ||  Founder, Coinkite  ||  Twitter: @dochex  ||  GPG: A3A31BAD 5A2A5B10&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: 496 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/20180616/7ae9d1a2/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20180616/7ae9d1a2/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T18:13:02Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsqp7edpn69vamdhvn3d3g5fv8drwrz2z4dj5c762rhj7ycfxls0pgzypasqnsu699la9dwc5umpguy8sn385244yu6hkq854c5c2sf7jzvgrngcvk</id>
    
      <title type="html">📅 Original date posted:2015-02-06 📝 Original message:I ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsqp7edpn69vamdhvn3d3g5fv8drwrz2z4dj5c762rhj7ycfxls0pgzypasqnsu699la9dwc5umpguy8sn385244yu6hkq854c5c2sf7jzvgrngcvk" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsdrrmzl46e6slehd3gjc5jr0ttm5cvgxlwj2fpexx5hsp3j0gc63cjwqw6g&#39;&gt;nevent1q…qw6g&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2015-02-06&lt;br/&gt;📝 Original message:I think the Bitcoin community needs a good person-to-person payment&lt;br/&gt;protocol for BLE simply because Bluetooth LE is effectively&lt;br/&gt;peer-to-peer. Unlike NFC or conventional Bluetooth, a $5 micro can&lt;br/&gt;be either the master or slave and talk directly to other $5 micros&lt;br/&gt;nearby.&lt;br/&gt;&lt;br/&gt;[ASIDE...  BLE is also the first wireless tech that Apple has allowed us free&lt;br/&gt;access to. They have claimed all NFC/RFID connections for their own&lt;br/&gt;&amp;#34;Pay&amp;#34; junk, and Bluetooth accessories are all locked down into their&lt;br/&gt;&amp;#34;make for iphone&amp;#34; program which literally requires a letter from&lt;br/&gt;your lawyer to enter. Of course Apple is just one vendor.]&lt;br/&gt;&lt;br/&gt;Surely, as a community, we can make a rock-solid P2P protocol that&lt;br/&gt;is resistant to spoofing and vandalism. I&amp;#39;m a big fan of putting&lt;br/&gt;crypto to good use, and doing a slightly more complex protocol&lt;br/&gt;involving EC signing of nonces sounds great.&lt;br/&gt;&lt;br/&gt;My only change to the RedPhone based &amp;#34;commit protocol&amp;#34; proposed&lt;br/&gt;previously, is I&amp;#39;d like the confirmation code to be a 6-digit decimal&lt;br/&gt;number rather than words. Wordlists are good for Red phone&amp;#39;s audio&lt;br/&gt;application, but it&amp;#39;s a lot easier to display a 6-digit code on&lt;br/&gt;vending machines, small mobile screens, and printed receipts.&lt;br/&gt;&lt;br/&gt;Just my two cents.&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;Peter D. Gray  ||  Founder, Coinkite  ||  Twitter: @dochex  ||  GPG: A3A31BAD 5A2A5B10&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: 514 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/20150206/8db62979/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20150206/8db62979/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T15:29:58Z</updated>
  </entry>

</feed>