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

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




  <entry>
    <id>https://nostr.ae/nevent1qqs94h6d37j5083jshs504dk324cqjp6c9wjx05kld3ry6e9kg4nfjgzyr5enmw35ssw040pn0ncwr9ulfuchwvvksywty569gvps8yvduw7uu7zm2d</id>
    
      <title type="html">📅 Original date posted:2019-07-09 📝 Original message:Hi ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs94h6d37j5083jshs504dk324cqjp6c9wjx05kld3ry6e9kg4nfjgzyr5enmw35ssw040pn0ncwr9ulfuchwvvksywty569gvps8yvduw7uu7zm2d" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsxmh6n9nq8gu4ze6ztqfytwqnxneehzerv5n0xl0zuyeaa87vxg9q5fnvyx&#39;&gt;nevent1q…nvyx&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2019-07-09&lt;br/&gt;📝 Original message:Hi all,&lt;br/&gt;&lt;br/&gt;Just to be brief, I&amp;#39;ll kick off with an attack scenario.&lt;br/&gt;&lt;br/&gt;1. I am a signer, I get a PSBT that is ready to sign. I parse. I sign&lt;br/&gt;according to the PSBT as-is.&lt;br/&gt;2. I notice my UTXO was stolen by a hacker because they changed my PSBT&lt;br/&gt;input&amp;#39;s sighashtype to SIGHASH_ANYONECANPAY | SIGHASH_NONE and after the&lt;br/&gt;fact they changed the outputs to send to themselves, and added an input&lt;br/&gt;they signed with SIGHASH_ALL.&lt;br/&gt;3. I lose the BTC in my UTXO.&lt;br/&gt;&lt;br/&gt;So we should definitely add to the signer checks &amp;#34;ensure the sighash type&lt;br/&gt;given is the type of sighash you want to sign.&amp;#34; etc.&lt;br/&gt;&lt;br/&gt;My proposal for a wording change would be addition to the bullet list:&lt;br/&gt;&lt;br/&gt;- If a sighash type is provided, the signer MUST check that the sighash&lt;br/&gt;type is acceptable to them, and fail signing if unacceptable.&lt;br/&gt;- If a sighash type is not provided, the signer SHOULD sign using&lt;br/&gt;SIGHASH_ALL, but may sign with any sighash type they wish.&lt;br/&gt;&lt;br/&gt;Any thoughts?&lt;br/&gt;&lt;br/&gt;Thanks,&lt;br/&gt;Jon&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;-----------------&lt;br/&gt;Jonathan Underwood&lt;br/&gt;ビットバンク社 チーフビットコインオフィサー&lt;br/&gt;-----------------&lt;br/&gt;&lt;br/&gt;暗号化したメッセージをお送りの方は下記の公開鍵をご利用下さい。&lt;br/&gt;&lt;br/&gt;指紋: 0xCE5EA9476DE7D3E45EBC3FDAD998682F3590FEA3&lt;br/&gt;-------------- next part --------------&lt;br/&gt;An HTML attachment was scrubbed...&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20190710/60601766/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20190710/60601766/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T20:19:17&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsgg8sl7sfxrlcwsch30c0x9s5xnkdekyvvhd2hfvjemzgtk4ytj4gzyr5enmw35ssw040pn0ncwr9ulfuchwvvksywty569gvps8yvduw7u2ftrhk</id>
    
      <title type="html">📅 Original date posted:2019-06-28 📝 Original message:Thanks ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsgg8sl7sfxrlcwsch30c0x9s5xnkdekyvvhd2hfvjemzgtk4ytj4gzyr5enmw35ssw040pn0ncwr9ulfuchwvvksywty569gvps8yvduw7u2ftrhk" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs2edhrwpemfs6gp4tj27tppgsksvumlh8q6yc4h3wzzgt56p2gtkqhhhc9t&#39;&gt;nevent1q…hc9t&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2019-06-28&lt;br/&gt;📝 Original message:Thanks for the reply Peter. Comments inline:&lt;br/&gt;&lt;br/&gt;2019年6月28日(金) 23:37 Peter D. Gray &amp;lt;peter at coinkite.com&amp;gt;:&lt;br/&gt;&lt;br/&gt;&amp;gt; Thanks I get the idea better now: You want the PSBT creator to be&lt;br/&gt;&amp;gt; able to indicate to the signers that it (the PSBT creator) controls&lt;br/&gt;&amp;gt; specific outputs that don&amp;#39;t otherwise look like change.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Some problems:&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; extended private key of the current signer derived from the&lt;br/&gt;&amp;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;&amp;gt;&lt;br/&gt;&amp;gt; 1) The PSBT creator would need to know that private key, and the Coldcard,&lt;br/&gt;&amp;gt; as a matter&lt;br/&gt;&amp;gt;    of policy, will never export a private subkey.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;I think you have misunderstood. The signature inserted into this 0x02 field&lt;br/&gt;is generated BY the signer (Coldkey) airgapped ahead of time. Then the&lt;br/&gt;signature (and all the xpubs that were signed, since basically the &amp;#34;key&amp;#34;&lt;br/&gt;value contains the &amp;#34;pubkey&amp;#34; and &amp;#34;message&amp;#34; while the &amp;#34;value&amp;#34; part has the&lt;br/&gt;&amp;#34;signature&amp;#34;. so all data items for verification are present.) will be&lt;br/&gt;stored on the unsigned transaction preparing app. (MyTrezor dot com etc.&lt;br/&gt;have an encrypted storage through Dropbox &#43; encrypting with Trezor, so&lt;br/&gt;they, for instance, could store the &amp;#34;whitelist signatures&amp;#34; on that dropbox&lt;br/&gt;feature.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;gt; 2) The &amp;#39;m&amp;#39; in that path depends on who is reading the PSBT file, in the&lt;br/&gt;&amp;gt; multisig&lt;br/&gt;&amp;gt;    case. Each cosigner would need a different version of the PSBT file&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Again, this is the m of the signer&amp;#39;s root. The signer should have an xprv,&lt;br/&gt;or some sort of seed (a la BIP39 or aezeed or Electrum phrase etc.) that&lt;br/&gt;gets turned into a xprv. That xprv is m in this case... in the case that&lt;br/&gt;some offline signer is storing the xprv of some path like &amp;#34;xprv/25&amp;#39;/42&amp;#39;&amp;#34; or&lt;br/&gt;something, then the signer&amp;#39;s &amp;#34;identity&amp;#34; is whatever xprv that signer holds&lt;br/&gt;and not any of the xprvs derived from that first xprv.&lt;br/&gt;&lt;br/&gt;The reason we want only one HD key to sign it is because we want the signer&lt;br/&gt;to be able to generate that path from the root xprv they hold, check that&lt;br/&gt;the pubkey matched the pubkey for verification, then verify. Now the signer&lt;br/&gt;knows &amp;#34;oh, I have signed this xpub / multisig setup before, therefore I&lt;br/&gt;trust it&amp;#34;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;gt; 3) XPUB&amp;#39;s are big and hard to parse, and this addition is using lots of&lt;br/&gt;&amp;gt; them.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;Any app requiring this level of security would gladly add a few millisecond&lt;br/&gt;for parsing some xpubs.&lt;br/&gt;Any HD wallet that can sign using HD derived keys already has the necessary&lt;br/&gt;tools to parse an xpub.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;gt; 4) Coinjoins, and more complex script types, will want to authorize&lt;br/&gt;&amp;gt;    outputs that the PSBT signer may not fully understand. Your proposal&lt;br/&gt;&amp;gt;    would only help P2PKH and M-of-N multisig users.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;Yes. This proposal is not a requirement. It is just a reservation for a&lt;br/&gt;slot in the key-value scheme for a use case that many exchanges and&lt;br/&gt;hardware wallets should implement. We have implemented something similar to&lt;br/&gt;this using JSON format internally, but since HW wallet makers seem to be&lt;br/&gt;moving toward PSBT adoption, I would love for this info to be possible to&lt;br/&gt;be sent into an HW wallet so that Trezor etc. can implement this&lt;br/&gt;&amp;#34;whitelist&amp;#34; type situation in a way that the Trezor can trust. (remember, a&lt;br/&gt;&amp;#34;whitelist&amp;#34; that just lives in my trezor dot com website cache etc. is&lt;br/&gt;prone to modification, whereas with my proposal the worst case is a hacker&lt;br/&gt;deletes a signature, so Trezor doesn&amp;#39;t trust something it should have, and&lt;br/&gt;fails signing. It can not add itself to the &amp;#34;whitelist&amp;#34; without the HW&lt;br/&gt;wallet private key.)&lt;br/&gt;&lt;br/&gt;To fix, may I propose:&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;The following suggestions seems to be predicated on a misunderstanding of&lt;br/&gt;my proposal, so I will hold off for now.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;gt; - the signer and PSBT creator must share a pubkey/private key out of band&lt;br/&gt;&amp;gt; (setup time)&lt;br/&gt;&amp;gt; - the origin of that key is out of scope of this standard (but it could be&lt;br/&gt;&amp;gt; derived via BIP32)&lt;br/&gt;&amp;gt; - the PSBT creator can, optionally, sign any or all output sections by&lt;br/&gt;&amp;gt; number using that key&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; I would prefer the signatures are in the global section, and the&lt;br/&gt;&amp;gt; signature is over all the bytes in the indicated output section,&lt;br/&gt;&amp;gt; as originally serialized when it came into the signer&amp;#39;s possession.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; We should be able to support multiple signers for individual outputs,&lt;br/&gt;&amp;gt; and also multiple signatures for the same output section. That would&lt;br/&gt;&amp;gt; support different derived keys per co-signer, and also quorum&lt;br/&gt;&amp;gt; approval or other policies like that.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Afterthought: Might be good to allow signature over the unsigned&lt;br/&gt;&amp;gt; transaction, or&lt;br/&gt;&amp;gt; maybe it should be part of the signature always.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; ---&lt;br/&gt;&amp;gt; Peter D. Gray  ||  Founder, Coinkite  ||  Twitter: @dochex  ||  GPG:&lt;br/&gt;&amp;gt; A3A31BAD 5A2A5B10&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; On Fri, Jun 28, 2019 at 11:44:15AM &#43;0900, Jonathan Underwood wrote:&lt;br/&gt;&amp;gt; &amp;gt; Hi Peter,&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;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; &amp;gt; HD changing the address every time?&amp;#34;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; As an aside: (This is sort of explaining the current PR for the 0x01&lt;br/&gt;&amp;gt; global&lt;br/&gt;&amp;gt; &amp;gt; field (separate from mine))&lt;br/&gt;&amp;gt; &amp;gt; The problem is more easily understood with change addresses: If someone&lt;br/&gt;&amp;gt; can&lt;br/&gt;&amp;gt; &amp;gt; alter my PSBT before signing, they could replace my change address with&lt;br/&gt;&amp;gt; &amp;gt; their address, and my signer would not know unless the signer just&lt;br/&gt;&amp;gt; guesses&lt;br/&gt;&amp;gt; &amp;gt; all the path sets it knows, then derives thousands of change addresses&lt;br/&gt;&amp;gt; and&lt;br/&gt;&amp;gt; &amp;gt; searches (most likely a signer is offline, so gap limit doesn&amp;#39;t work&lt;br/&gt;&amp;gt; since&lt;br/&gt;&amp;gt; &amp;gt; we can&amp;#39;t tell which change addresses have tx history. So the 0x01 global&lt;br/&gt;&amp;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; &amp;gt; to the xpub used in the change output&amp;#39;s output BIP32_DERIVATION tag...&lt;br/&gt;&amp;gt; you&lt;br/&gt;&amp;gt; &amp;gt; can then derive the same key and check it is yours before signing.&amp;#34;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; Back to my proposal, this problem extends across wallets, since,&lt;br/&gt;&amp;gt; &amp;gt; for example, if I want to send from my cold wallet to my warm wallet, I&lt;br/&gt;&amp;gt; &amp;gt; don&amp;#39;t want to give my cold signer my warm master key just so it can&lt;br/&gt;&amp;gt; derive&lt;br/&gt;&amp;gt; &amp;gt; and check the key. That&amp;#39;s what signatures are for. So this proposal says&lt;br/&gt;&amp;gt; &amp;#34;A&lt;br/&gt;&amp;gt; &amp;gt; signer can be built to only sign if it sees a signature that itself has&lt;br/&gt;&amp;gt; &amp;gt; signed, then from that signed xpub(s) derives the BIP32_DERIVATION in the&lt;br/&gt;&amp;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; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; This creates a sort of &amp;#34;chain of trust&amp;#34; for the wallet.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; Currently the best way to prevent this (hacker swapping the send to&lt;br/&gt;&amp;gt; &amp;gt; address) without using signatures is to reuse the same address every time&lt;br/&gt;&amp;gt; &amp;gt; you want to send to the warm wallet, since after a few times, the signers&lt;br/&gt;&amp;gt; &amp;gt; (people) will be able to remember the address.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; This is a huge HD drawback for high security requirement environments.&lt;br/&gt;&amp;gt; &amp;gt; Having this data in the PSBT standard will allow Trezor etc. to create an&lt;br/&gt;&amp;gt; &amp;gt; enforceable whitelist feature.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; Let me know if you have feedback on the details.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; Thanks,&lt;br/&gt;&amp;gt; &amp;gt; Jon&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; 2019年6月28日(金) 0:07 Peter D. Gray &amp;lt;peter at coinkite.com&amp;gt;:&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; I haven&amp;#39;t studied the new proposal in depth, but my first impression&lt;br/&gt;&amp;gt; is:&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt;&lt;br/&gt;&amp;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; &amp;gt; section of the PSBT?&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; The signature would cover every byte, and therefore would cover any&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; future BIP additions to the outputs area, and also help non-multisig&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; cases today.&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; ---&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; Peter D. Gray  ||  Founder, Coinkite  ||  Twitter: @dochex  ||  GPG:&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; A3A31BAD 5A2A5B10&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; --&lt;br/&gt;&amp;gt; &amp;gt; -----------------&lt;br/&gt;&amp;gt; &amp;gt; Jonathan Underwood&lt;br/&gt;&amp;gt; &amp;gt; ビットバンク社 チーフビットコインオフィサー&lt;br/&gt;&amp;gt; &amp;gt; -----------------&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; 暗号化したメッセージをお送りの方は下記の公開鍵をご利用下さい。&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; 指紋: 0xCE5EA9476DE7D3E45EBC3FDAD998682F3590FEA3&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;-----------------&lt;br/&gt;Jonathan Underwood&lt;br/&gt;ビットバンク社 チーフビットコインオフィサー&lt;br/&gt;-----------------&lt;br/&gt;&lt;br/&gt;暗号化したメッセージをお送りの方は下記の公開鍵をご利用下さい。&lt;br/&gt;&lt;br/&gt;指紋: 0xCE5EA9476DE7D3E45EBC3FDAD998682F3590FEA3&lt;br/&gt;-------------- next part --------------&lt;br/&gt;An HTML attachment was scrubbed...&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20190629/4b55a1c7/attachment-0001.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20190629/4b55a1c7/attachment-0001.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T20:18:49&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsxjeegpkj65sfl3j33hef9vqj7q7k3jgsugvqn28sfp3hvkcfefdqzyr5enmw35ssw040pn0ncwr9ulfuchwvvksywty569gvps8yvduw7uatydeu</id>
    
      <title type="html">📅 Original date posted:2019-06-27 📝 Original message:Hi ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsxjeegpkj65sfl3j33hef9vqj7q7k3jgsugvqn28sfp3hvkcfefdqzyr5enmw35ssw040pn0ncwr9ulfuchwvvksywty569gvps8yvduw7uatydeu" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsdds9pn0ga7t3l7k537j5nq84quhs3fgpn7k528pju92x2r5xexrsk90cr6&#39;&gt;nevent1q…0cr6&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2019-06-27&lt;br/&gt;📝 Original message:Hi Peter,&lt;br/&gt;&lt;br/&gt;tl;dr The problem this solves is &amp;#34;How can a signer verify an address with&lt;br/&gt;HD changing the address every time?&amp;#34;&lt;br/&gt;&lt;br/&gt;As an aside: (This is sort of explaining the current PR for the 0x01 global&lt;br/&gt;field (separate from mine))&lt;br/&gt;The problem is more easily understood with change addresses: If someone can&lt;br/&gt;alter my PSBT before signing, they could replace my change address with&lt;br/&gt;their address, and my signer would not know unless the signer just guesses&lt;br/&gt;all the path sets it knows, then derives thousands of change addresses and&lt;br/&gt;searches (most likely a signer is offline, so gap limit doesn&amp;#39;t work since&lt;br/&gt;we can&amp;#39;t tell which change addresses have tx history. So the 0x01 global&lt;br/&gt;tag will tell the signer &amp;#34;here&amp;#39;s how you get from your master private key&lt;br/&gt;to the xpub used in the change output&amp;#39;s output BIP32_DERIVATION tag... you&lt;br/&gt;can then derive the same key and check it is yours before signing.&amp;#34;&lt;br/&gt;&lt;br/&gt;Back to my proposal, this problem extends across wallets, since,&lt;br/&gt;for example, if I want to send from my cold wallet to my warm wallet, I&lt;br/&gt;don&amp;#39;t want to give my cold signer my warm master key just so it can derive&lt;br/&gt;and check the key. That&amp;#39;s what signatures are for. So this proposal says &amp;#34;A&lt;br/&gt;signer can be built to only sign if it sees a signature that itself has&lt;br/&gt;signed, then from that signed xpub(s) derives the BIP32_DERIVATION in the&lt;br/&gt;outputs, and if the output doesn&amp;#39;t match it will reject and not sign&amp;#34;&lt;br/&gt;&lt;br/&gt;This creates a sort of &amp;#34;chain of trust&amp;#34; for the wallet.&lt;br/&gt;&lt;br/&gt;Currently the best way to prevent this (hacker swapping the send to&lt;br/&gt;address) without using signatures is to reuse the same address every time&lt;br/&gt;you want to send to the warm wallet, since after a few times, the signers&lt;br/&gt;(people) will be able to remember the address.&lt;br/&gt;&lt;br/&gt;This is a huge HD drawback for high security requirement environments.&lt;br/&gt;Having this data in the PSBT standard will allow Trezor etc. to create an&lt;br/&gt;enforceable whitelist feature.&lt;br/&gt;&lt;br/&gt;Let me know if you have feedback on the details.&lt;br/&gt;&lt;br/&gt;Thanks,&lt;br/&gt;Jon&lt;br/&gt;&lt;br/&gt;2019年6月28日(金) 0:07 Peter D. Gray &amp;lt;peter at coinkite.com&amp;gt;:&lt;br/&gt;&lt;br/&gt;&amp;gt; I haven&amp;#39;t studied the new proposal in depth, but my first impression is:&lt;br/&gt;&amp;gt;&lt;br/&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; section of the PSBT?&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; The signature would cover every byte, and therefore would cover any&lt;br/&gt;&amp;gt; future BIP additions to the outputs area, and also help non-multisig&lt;br/&gt;&amp;gt; cases today.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; ---&lt;br/&gt;&amp;gt; Peter D. Gray  ||  Founder, Coinkite  ||  Twitter: @dochex  ||  GPG:&lt;br/&gt;&amp;gt; A3A31BAD 5A2A5B10&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;-----------------&lt;br/&gt;Jonathan Underwood&lt;br/&gt;ビットバンク社 チーフビットコインオフィサー&lt;br/&gt;-----------------&lt;br/&gt;&lt;br/&gt;暗号化したメッセージをお送りの方は下記の公開鍵をご利用下さい。&lt;br/&gt;&lt;br/&gt;指紋: 0xCE5EA9476DE7D3E45EBC3FDAD998682F3590FEA3&lt;br/&gt;-------------- next part --------------&lt;br/&gt;An HTML attachment was scrubbed...&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20190628/eee0ccf7/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20190628/eee0ccf7/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T20:18:48&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsxsvlz0dktse0r07v6pkcuvzqv98wfmnsxczen6n3puzhljhg75kqzyr5enmw35ssw040pn0ncwr9ulfuchwvvksywty569gvps8yvduw7uayxapq</id>
    
      <title type="html">📅 Original date posted:2019-06-27 📝 Original message:Thanks ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsxsvlz0dktse0r07v6pkcuvzqv98wfmnsxczen6n3puzhljhg75kqzyr5enmw35ssw040pn0ncwr9ulfuchwvvksywty569gvps8yvduw7uayxapq" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs00r2hdzg2ccltunnmly8e84pkp8tmw9kauq5426psxyf6shpmxwgkd3eld&#39;&gt;nevent1q…3eld&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2019-06-27&lt;br/&gt;📝 Original message:Thanks for the reply.&lt;br/&gt;&lt;br/&gt;The way we would do it is:&lt;br/&gt;&lt;br/&gt;Let&amp;#39;s say we have 3 cold keys for multisig: A B and C&lt;br/&gt;&lt;br/&gt;Whose xpubs are: xA xB and xC&lt;br/&gt;&lt;br/&gt;We all sign each other&amp;#39;s xpubs, whose signatures are:&lt;br/&gt;sAxB&lt;br/&gt;sAxC&lt;br/&gt;sBxA&lt;br/&gt;sBxC&lt;br/&gt;sCxA&lt;br/&gt;sCxB&lt;br/&gt;&lt;br/&gt;We can then create a wallet that says &amp;#34;when verifying change with 0x01&lt;br/&gt;global type proposed by Andrew Chow, if the change is multisig, we MUST&lt;br/&gt;require the other pubkeys to have signatures via my 0x02 proposal&amp;#34;&lt;br/&gt;&lt;br/&gt;This way, all my PSBTs for my cold will have:&lt;br/&gt;1. an 0x01 entry to tell me how to get my change.&lt;br/&gt;2. All 6 of the signatures above.&lt;br/&gt;&lt;br/&gt;And the signer will then look at the change, check my pubkey by deriving&lt;br/&gt;the xpub and checking equality to the BIP_DERIVATION of the output... it&lt;br/&gt;will then check the OTHER pubkeys via BIP32_DERIVATION to master&lt;br/&gt;fingerprint, then link that fingerprint to a 0x02 sig from MY key,&lt;br/&gt;verifying all pubkeys.&lt;br/&gt;&lt;br/&gt;So this proposal of mine would not only fix the &amp;#34;send to address&lt;br/&gt;verification&amp;#34; problem for HD, but also the multisig change problem with&lt;br/&gt;0x01.&lt;br/&gt;&lt;br/&gt;Cool.&lt;br/&gt;&lt;br/&gt;Only thing that is kind of sad is having to include n! (of m-of-n)&lt;br/&gt;signatures in every PSBT... but tbh, the PSBT size is not of much concern.&lt;br/&gt;&lt;br/&gt;Thanks for the reply.&lt;br/&gt;- Jonathan&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;2019年6月27日(木) 13:49 Dmitry Petukhov &amp;lt;dp at simplexum.com&amp;gt;:&lt;br/&gt;&lt;br/&gt;&amp;gt; Hi!&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; I wonder how your scheme handles multisig ?&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; As I understand, you sign individual xpubs with cold keys, so that cold&lt;br/&gt;&amp;gt; keys can check destination addresses are trusted.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; I seems to me that if you sign individual xpubs of a multisig warm&lt;br/&gt;&amp;gt; wallet, and one key from that multisig is compromized, attackers can&lt;br/&gt;&amp;gt; then create a single-sig destination address that they control, and&lt;br/&gt;&amp;gt; move the coins in a chain of two transactions, first to this single-sig&lt;br/&gt;&amp;gt; address, and then to an address that they independently control.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; My idea to prevent this [1] is to sign the whole &amp;#39;xpub package&amp;#39; of the&lt;br/&gt;&amp;gt; multisig wallet, but there is also an issue of &amp;#39;partial compromize&amp;#39;,&lt;br/&gt;&amp;gt; where some of the keys in a multisig warm wallet is compromized, and&lt;br/&gt;&amp;gt; you do not want to regard a particular &amp;#39;xpub package&amp;#39; as trusted. My&lt;br/&gt;&amp;gt; idea was [2] to use an auxiliary message that would be signed along with&lt;br/&gt;&amp;gt; the &amp;#39;xpub package&amp;#39;, and that message can include specific &amp;#39;epoch&amp;#39; word&lt;br/&gt;&amp;gt; that hardware wallet can show prominently before signing, or have&lt;br/&gt;&amp;gt; &amp;#39;serial number&amp;#39; for xpub packages (but that will require to store last&lt;br/&gt;&amp;gt; known serial inside hw wallet, making it stateful).&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; I like the idea to extend PSBT to accomodate these schemes, but given&lt;br/&gt;&amp;gt; that the huge number of possible schemes that each may probably&lt;br/&gt;&amp;gt; require its own PSBT field type, I think that this is better dealt with&lt;br/&gt;&amp;gt; outside of PSBT, as &amp;#39;PSBT metainformation&amp;#39;, or using some form of&lt;br/&gt;&amp;gt; &amp;#39;vendor-specific&amp;#39;, or &amp;#39;metainformation-specific&amp;#39; PSBT field. This way&lt;br/&gt;&amp;gt; each usecase can be independently described in its own documentation,&lt;br/&gt;&amp;gt; that would include the particulars of the format for the&lt;br/&gt;&amp;gt; metainformation. This would also make it easier to implement PSBT for&lt;br/&gt;&amp;gt; simple cases, because the &amp;#39;core specification&amp;#39; would not grow that big.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; [1]&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; &lt;a href=&#34;https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2019-May/016917.html&#34;&gt;https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2019-May/016917.html&lt;/a&gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; [2]&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; &lt;a href=&#34;https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2019-May/016926.html&#34;&gt;https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2019-May/016926.html&lt;/a&gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; В Thu, 27 Jun 2019 11:11:23 &#43;0900 Jonathan Underwood via bitcoin-dev&lt;br/&gt;&amp;gt; &amp;lt;bitcoin-dev at lists.linuxfoundation.org&amp;gt; wrote:&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; Hello all,&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; Just wanted to pick your brains about an idea for PSBT extension.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; One problem we try to solve with cold -&amp;gt; warm and warm -&amp;gt; hot sends&lt;br/&gt;&amp;gt; &amp;gt; for our exchange wallet is &amp;#34;How do I know that the address I am&lt;br/&gt;&amp;gt; &amp;gt; sending to is not a hacker&amp;#39;s address that was swapped in between&lt;br/&gt;&amp;gt; &amp;gt; unsigned tx creation and first signature?&amp;#34;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; We have a proprietary JSON based encoding system which we are looking&lt;br/&gt;&amp;gt; &amp;gt; to move towards PSBT, but PSBT is missing this key functionality.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; BIP32_DERIVATION does allow us to verify the address is from a certain&lt;br/&gt;&amp;gt; &amp;gt; XPUB, but, for example, it can not allow us to verify a signature of&lt;br/&gt;&amp;gt; &amp;gt; that xpub.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; I have made a rough draft of the proposed key value specification.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &lt;a href=&#34;https://github.com/junderw/bips/blob/addXpubSig/bip-0174.mediawiki#specification&#34;&gt;https://github.com/junderw/bips/blob/addXpubSig/bip-0174.mediawiki#specification&lt;/a&gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; The signing key path used in the spec is just randomly chosen 31 x 4&lt;br/&gt;&amp;gt; &amp;gt; bits shown as numbers with hardened paths.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; Since this issue seems similar to the change address issue, I started&lt;br/&gt;&amp;gt; &amp;gt; from that as a base. With the HW wallet case, I can verify the xpub&lt;br/&gt;&amp;gt; &amp;gt; by just deriving it locally and comparing equality, however, in our&lt;br/&gt;&amp;gt; &amp;gt; case, we need to verify an xpub that we do not have access to via&lt;br/&gt;&amp;gt; &amp;gt; derivation from our cold key(s) (since we don&amp;#39;t want to import our&lt;br/&gt;&amp;gt; &amp;gt; warm private key into our cold signer)&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; So the flow would be:&lt;br/&gt;&amp;gt; &amp;gt; 1. Securely verify the xpub of the warm / hot wallet.&lt;br/&gt;&amp;gt; &amp;gt; 2. Using the airgap signing tool, sign the xpub with all cold keys.&lt;br/&gt;&amp;gt; &amp;gt; 3. Upload the signature/xpub pairs to the online unsigned transaction&lt;br/&gt;&amp;gt; &amp;gt; generator.&lt;br/&gt;&amp;gt; &amp;gt; 4. Include one keyval pair per coldkey/xpub pairing.&lt;br/&gt;&amp;gt; &amp;gt; 5. When offline signing, if the wallet detects there is a global&lt;br/&gt;&amp;gt; &amp;gt; keyval XPUB_SIGNATURE with its pubkey in the key, it must verify that&lt;br/&gt;&amp;gt; &amp;gt; all outputs have BIP32_DERIVATION and that it can verify the outputs&lt;br/&gt;&amp;gt; &amp;gt; through the derivation, to the xpub, and to the signature.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; In my attempt to fitting this into PSBT, I am slightly altering our&lt;br/&gt;&amp;gt; &amp;gt; current system, so don&amp;#39;t take this as an indication 100% of how we&lt;br/&gt;&amp;gt; &amp;gt; work in the backend.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; However, I would like to hear any feedback on this proposal.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; Thanks,&lt;br/&gt;&amp;gt; &amp;gt; Jonathan&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;-----------------&lt;br/&gt;Jonathan Underwood&lt;br/&gt;ビットバンク社 チーフビットコインオフィサー&lt;br/&gt;-----------------&lt;br/&gt;&lt;br/&gt;暗号化したメッセージをお送りの方は下記の公開鍵をご利用下さい。&lt;br/&gt;&lt;br/&gt;指紋: 0xCE5EA9476DE7D3E45EBC3FDAD998682F3590FEA3&lt;br/&gt;-------------- next part --------------&lt;br/&gt;An HTML attachment was scrubbed...&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20190627/14367388/attachment-0001.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20190627/14367388/attachment-0001.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T20:18:45&#43;02:00</updated>
  </entry>

</feed>