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

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




  <entry>
    <id>https://yabu.me/nevent1qqsf66fjfkvl730vf5lsd2gw9fkpsdh98a9sdkn3ge6rasq2ahdlv7szypfeum2rn8ras3flvp2p9kzftnngnfxx76p73juafeyayscztcs5q6f8v35</id>
    
      <title type="html">📅 Original date posted:2021-01-14 📝 Original message:Hello ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsf66fjfkvl730vf5lsd2gw9fkpsdh98a9sdkn3ge6rasq2ahdlv7szypfeum2rn8ras3flvp2p9kzftnngnfxx76p73juafeyayscztcs5q6f8v35" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsrnw5ysm44czje8xl5zlulwu0m8h4cz2vsys37dpmh7kh7z8fj8zc5fcutd&#39;&gt;nevent1q…cutd&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2021-01-14&lt;br/&gt;📝 Original message:Hello everyone,&lt;br/&gt;&lt;br/&gt;I would like to start a discussion on improving Hardware Wallets.&lt;br/&gt;&lt;br/&gt;My approach to this right now is from a vault protocol we are developing (Revault, [1]), and its Hardware Wallet&lt;br/&gt;requirements. I started working on a Github Issue in our repo [2], other people recommended us to do a more general&lt;br/&gt;discussion on the mailing list instead as it could benefit many other protocols and users.&lt;br/&gt;This email discusses improvements that would benefit everyone, and some that are more suitable for &amp;#34;layer 2&amp;#34; or pre-&lt;br/&gt;signed transactions protocols.&lt;br/&gt;The goal is to spark discussions and hopefully iterate to a more secure and more usable hardware ecosystem for all&lt;br/&gt;bitcoiners.&lt;br/&gt;While I mainly foresee issues/improvements that may affect Revault, I would be really happy to see people joining this&lt;br/&gt;thread with any other ideas and remarks that would benefit some parts of Bitcoin that I overlooked.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Prior work on similar problematics:&lt;br/&gt;===================================&lt;br/&gt;- ZmnSCPx&lt;br/&gt;j: [Lightning-dev] Speculations on hardware wallet support for Lightning [3]&lt;br/&gt;- mflaxman: Known Issues: Verifying a Receive Address [4]&lt;br/&gt;- ksedgwic and devrandom01: Lightning-signer [5]&lt;br/&gt;- benma: How nearly all personal hardware wallet multisig setups are insecure [6]&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;The postulate we start from is that Hardware Wallets (HW) are useful to mitigate the compromission of the day-to-day&lt;br/&gt;device of a user. They mainly prevent private-key extraction today, and aren&amp;#39;t very suitable against an attack on the&lt;br/&gt;transaction being signed, as explained further.&lt;br/&gt;To make this discussion security-focused, let&amp;#39;s assume the general purpose device (laptop, for example) is compromised&lt;br/&gt;with a malware implanted by an attacker, capable of modifying PSBTs, displayed addresses, etc.&lt;br/&gt;&lt;br/&gt;Our study so far:&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Output Script Parsing:&lt;br/&gt;======================&lt;br/&gt;Problem: A typical HW today would display the &amp;#34;destination&amp;#34; of a transaction in the form of a bitcoin address. A user&lt;br/&gt;would generally compare this wit&lt;br/&gt;h the address displayed on his laptop screen... which might have been compromised&lt;br/&gt;already. The correct usage would be for a user to verify this address on a third device (mobile phone, for example).&lt;br/&gt;This is weak security and bad user experience.&lt;br/&gt;Proposed improvement: The HW should display the Bitcoin Script itself when possible (including the unlock conditions).&lt;br/&gt;The best way to do so would be to lift this Script to a more user-friendly format such as a MiniScript Policy display,&lt;br/&gt;but anything would be better than an &amp;#34;address&amp;#34;.&lt;br/&gt;This applies to pre-signed transaction protocols especially well as the template of these transactions could be known&lt;br/&gt;and recognized by the HW. Typically for Revault, the HW could display: &amp;#34;Unvault Transaction, all expected pubkeys&lt;br/&gt;present in the script&amp;#34;.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Pubkey Interpretation:&lt;br/&gt;======================&lt;br/&gt;Problem: currently HW cannot &amp;#34;identify&amp;#34; addresses or keys.&lt;br/&gt;Proposed improvement: The HW could know pubkeys or xpubs it does not hold the private keys &lt;br/&gt;for, and display a label (or&lt;br/&gt;understand it for logic reasons, such as &amp;#34;expected pubkeys&amp;#34; as the previous example). Going further, the xpubs could be&lt;br/&gt;aliased the first time they are entered/verified (as part of, say, an initial setup ceremony) for instance with the&lt;br/&gt;previously mentioned Miniscript policy: or(pk(Alice), and(pk(Bob), after(42))).&lt;br/&gt;This should be done in the Secure Element if possible to avoid physical compromission, but would be a strong improvement&lt;br/&gt;versus a day-to-day laptop in any case.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Better Bitcoin Compatibility:&lt;br/&gt;=============================&lt;br/&gt;Problem: most HW cannot interpret some Script OPs such as OP_CSV, or any conditional outputs. This is a major issue for&lt;br/&gt;anyone using Bitcoin &amp;#34;advanced&amp;#34; features. Related to this are the Sighash flags: most HW do not support most Sighash&lt;br/&gt;flags. Kind of annoying for a signing device. Then there is PSBT support and the maximum transaction size limit for&lt;br/&gt;these: we need more transparency from HW manufacturers on their li&lt;br/&gt;mitations.&lt;br/&gt;Solution: Make Bitcoin HW actually compatible with Bitcoin :D&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Inputs (mainly for pre-signed Tx):&lt;br/&gt;==================================&lt;br/&gt;Problem: Poisoned inputs are a major risk for HW as they don&amp;#39;t know the UTXO set. While this can be exploited for fee&lt;br/&gt;attacks, it is a bigger threat to pre-signed transactions protocols. Once any input of a (pre-signed)transaction is&lt;br/&gt;spent, this transaction isn&amp;#39;t valid anymore. Most pre-signed transactions protocols are used today as a form of defense&lt;br/&gt;mechanism, spending any input would mean incapacitating the entire defense mechanism.&lt;br/&gt;Proposed improvement: for protocols that requires it, keeping track of inputs already signed once would be extremely&lt;br/&gt;helpful. Going further, most of these protocols require to follow a specific signing order (typically the &amp;#34;clawback&amp;#34;&lt;br/&gt;first, then the regular spend path) so adding a way to check that a &amp;#34;clawback&amp;#34; has been signed first, with the same&lt;br/&gt;input, would be very helpful. All of this on the dev&lt;br/&gt;ice itself.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;I understand some of these changes may be very difficult, especially given the low memory and computational power of&lt;br/&gt;secure elements. However I truly believe most of these points are a MUST have for any decent security. If you don&amp;#39;t&lt;br/&gt;assume the computer on which the transaction is crafted is compromised, then you don&amp;#39;t need a hardware wallet. If you&lt;br/&gt;assume it may be compromised, then the HW needs to be able to defend against those.&lt;br/&gt;&lt;br/&gt;Revault does not plan on building hardware wallets, we hope existing and upcoming manufacturers will implement a strong&lt;br/&gt;security that we could use for the Revault protocol users. Vault users will likely hold very large sums and would be&lt;br/&gt;happy to pay a high premium for more secure HW. This will hopefully encourage existing players to keep on improving&lt;br/&gt;their devices and that will ultimately benefit us all.&lt;br/&gt;&lt;br/&gt;Feel free to reply with your comments or adding suggestions, I am not a hardware wallet expert and would take criticism&lt;br/&gt;wit&lt;br/&gt;hout being offended.&lt;br/&gt;&lt;br/&gt;Kind Regards,&lt;br/&gt;Kevin Loaec&lt;br/&gt;&lt;br/&gt;[1]: &lt;a href=&#34;https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2020-May/017835.html&#34;&gt;https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2020-May/017835.html&lt;/a&gt;&lt;br/&gt;[2]: &lt;a href=&#34;https://github.com/re-vault/practical-revault/issues/59&#34;&gt;https://github.com/re-vault/practical-revault/issues/59&lt;/a&gt;&lt;br/&gt;[3]: &lt;a href=&#34;https://lists.linuxfoundation.org/pipermail/lightning-dev/2020-January/002425.html&#34;&gt;https://lists.linuxfoundation.org/pipermail/lightning-dev/2020-January/002425.html&lt;/a&gt;&lt;br/&gt;[4]: &lt;a href=&#34;https://btcguide.github.io/known-issues/verify-receive-address&#34;&gt;https://btcguide.github.io/known-issues/verify-receive-address&lt;/a&gt;&lt;br/&gt;[5]: &lt;a href=&#34;https://gitlab.com/lightning-signer/docs&#34;&gt;https://gitlab.com/lightning-signer/docs&lt;/a&gt;&lt;br/&gt;[6]: &lt;a href=&#34;https://shiftcrypto.ch/blog/how-nearly-all-personal-hardware-wallet-multisig-setups-are-insecure/&#34;&gt;https://shiftcrypto.ch/blog/how-nearly-all-personal-hardware-wallet-multisig-setups-are-insecure/&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;A non-text attachment was scrubbed...&lt;br/&gt;Name: publickey - kevin at revault.dev - 7c1d686c.asc&lt;br/&gt;Type: application/pgp-keys&lt;br/&gt;Size: 643 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/20210114/7adc4c33/attachment.bin&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20210114/7adc4c33/attachment.bin&amp;gt&lt;/a&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: 233 bytes&lt;br/&gt;Desc: OpenPGP digital signature&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20210114/7adc4c33/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20210114/7adc4c33/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T18:28:12Z</updated>
  </entry>

</feed>