<?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/npub1nfrrurat393mqymf3s26pujyn5vujlem3pzcukr5p9d4qpklngxq43dtxs.rss" />
  <link href="https://nostr.ae/npub1nfrrurat393mqymf3s26pujyn5vujlem3pzcukr5p9d4qpklngxq43dtxs" />
  <id>https://nostr.ae/npub1nfrrurat393mqymf3s26pujyn5vujlem3pzcukr5p9d4qpklngxq43dtxs</id>
  <icon></icon>
  <logo></logo>




  <entry>
    <id>https://nostr.ae/nevent1qqsp34kl8p4xhh9y8tajnsualfnf2rxxdkk7z4uma0n6jhje2yaa8qszyzdyv0s04wyk8vqndxxptg8jgjw3njtl8wyytrjcwsy4k5qxm7dqc8a6yaq</id>
    
      <title type="html">📅 Original date posted:2019-04-03 📝 Original message:Thanks ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsp34kl8p4xhh9y8tajnsualfnf2rxxdkk7z4uma0n6jhje2yaa8qszyzdyv0s04wyk8vqndxxptg8jgjw3njtl8wyytrjcwsy4k5qxm7dqc8a6yaq" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsrs7wesds3dx2jwghcl5nqqkhsg5tve4d8ha4xlhpxj2hk0uygqpgztk4ha&#39;&gt;nevent1q…k4ha&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2019-04-03&lt;br/&gt;📝 Original message:Thanks James for the post.&lt;br/&gt;&lt;br/&gt;I proposed a similar idea [1] back in 2016 with the difference of signing the UTXO-set hash in a gitian-ish way.&lt;br/&gt;&lt;br/&gt;While the idea of UTXO-set-syncs are attractive, there are probably still significant downsides in usability (compared to models with less security), mainly:&lt;br/&gt;* Assume the UTXO set is 6 weeks old (which seems a reasonable age for providing enough security) a peer using that snapshot would still require to download and verify ~6048 blocks (~7.9GB at 1.3MB blocks,… probably CPU-days on a phone)&lt;br/&gt;* Do we semi-trust the peer that servers the UTXO set (compared to a block or tx which we can validate)? What channel to we use to serve the snapshot?&lt;br/&gt;&lt;br/&gt;If the goal is to run a full node on a consumer device that is also been used for other CPU intense operations (like a phone, etc.), I’m not sure if this proposal will lead to a satisfactory user experience.&lt;br/&gt;&lt;br/&gt;The longer I think around this problem, the more I lean towards accepting the fact that one need to use dedicated hardware in his own environment to perform a painless full validation.&lt;br/&gt;&lt;br/&gt;/jonas&lt;br/&gt;&lt;br/&gt;[1] &lt;a href=&#34;https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2016-February/012478.html&#34;&gt;https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2016-February/012478.html&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&amp;gt; Am 02.04.2019 um 22:43 schrieb James O&amp;#39;Beirne via bitcoin-dev &amp;lt;bitcoin-dev at lists.linuxfoundation.org&amp;gt;:&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Hi,&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; I&amp;#39;d like to discuss assumeutxo, which is an appealing and simple&lt;br/&gt;&amp;gt; optimization in the spirit of assumevalid[0].&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; # Motivation&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; To start a fully validating bitcoin client from scratch, that client currently&lt;br/&gt;&amp;gt; needs to perform an initial block download. To the surprise of no one, IBD&lt;br/&gt;&amp;gt; takes a linear amount time based on the length of the chain&amp;#39;s history. For&lt;br/&gt;&amp;gt; clients running on modest hardware under limited bandwidth constraints,&lt;br/&gt;&amp;gt; say a mobile device, completing IBD takes a considerable amount of time&lt;br/&gt;&amp;gt; and thus poses serious usability challenges.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; As a result, having fully validating clients run on such hardware is rare and&lt;br/&gt;&amp;gt; basically unrealistic. Clients with even moderate resource constraints&lt;br/&gt;&amp;gt; are encouraged to rely on the SPV trust model. Though we have promising&lt;br/&gt;&amp;gt; improvements to existing SPV modes pending deployment[1], it&amp;#39;s worth&lt;br/&gt;&amp;gt; thinking about a mechanism that would allow such clients to use trust&lt;br/&gt;&amp;gt; models closer to full validation.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; The subject of this mail is a proposal for a complementary alternative to SPV&lt;br/&gt;&amp;gt; modes, and which is in the spirit of an existing default, `assumevalid`. It may&lt;br/&gt;&amp;gt; help modest clients transact under a security model that closely resembles&lt;br/&gt;&amp;gt; full validation within minutes instead of hours or days.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; # assumeutxo&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; The basic idea is to allow nodes to initialize using a serialized version of the&lt;br/&gt;&amp;gt; UTXO set rendered by another node at some predetermined height. The&lt;br/&gt;&amp;gt; initializing node syncs the headers chain from the network, then obtains and&lt;br/&gt;&amp;gt; loads one of these UTXO snapshots (i.e. a serialized version of the UTXO set&lt;br/&gt;&amp;gt; bundled with the block header indicating its &amp;#34;base&amp;#34; and some other metadata).&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Based upon the snapshot, the node is able to quickly reconstruct its chainstate,&lt;br/&gt;&amp;gt; and compares a hash of the resulting UTXO set to a preordained hash hard-coded&lt;br/&gt;&amp;gt; in the software a la assumevalid. This all takes ~23 minutes, not accounting for&lt;br/&gt;&amp;gt; download of the 3.2GB snapshot[2].&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; The node then syncs to the network tip and afterwards begins a simultaneous&lt;br/&gt;&amp;gt; background validation (i.e., a conventional IBD) up to the base height of the&lt;br/&gt;&amp;gt; snapshot in order to achieve full validation. Crucially, even while the&lt;br/&gt;&amp;gt; background validation is happening the node can validate incoming blocks and&lt;br/&gt;&amp;gt; transact with the benefit of the full (assumed-valid) UTXO set.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Snapshots could be obtained from multiple separate peers in the same manner as&lt;br/&gt;&amp;gt; block download, but I haven&amp;#39;t put much thought into this. In concept it doesn&amp;#39;t&lt;br/&gt;&amp;gt; matter too much where the snapshots come from since their validity is&lt;br/&gt;&amp;gt; determined via content hash.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; # Security&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Obviously there are some security implications due consideration. While this&lt;br/&gt;&amp;gt; proposal is in the spirit of assumevalid, practical attacks may become easier.&lt;br/&gt;&amp;gt; Under assumevalid, a user can be tricked into transacting under a false history&lt;br/&gt;&amp;gt; if an attacker convinces them to start bitcoind with a malicious `-assumevalid`&lt;br/&gt;&amp;gt; parameter, sybils their node, and then feeds them a bogus chain encompassing&lt;br/&gt;&amp;gt; all of the hard-coded checkpoints[3].&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; The same attack is made easier in assumeutxo because, unlike in assumevalid,&lt;br/&gt;&amp;gt; the attacker need not construct a valid PoW chain to get the victim&amp;#39;s node into&lt;br/&gt;&amp;gt; a false state; they simply need to get the user to accept a bad `-assumeutxo`&lt;br/&gt;&amp;gt; parameter and then supply them an easily made UTXO snapshot containing, say, a&lt;br/&gt;&amp;gt; false coin assignment.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; For this reason, I recommend that if we were to implement assumeutxo, we not&lt;br/&gt;&amp;gt; allow its specification via commandline argument[4].&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Beyond this risk, I can&amp;#39;t think of material differences in security relative to&lt;br/&gt;&amp;gt; assumevalid, though I appeal to the list for help with this.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; # More fully validating clients&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; A particularly exciting use-case for assumeutxo is the possibility of mobile&lt;br/&gt;&amp;gt; devices functioning as fully validating nodes with access to the complete UTXO&lt;br/&gt;&amp;gt; set (as an alternative to SPV models). The total resource burden needed to start a node&lt;br/&gt;&amp;gt; from scratch based on a snapshot is, at time of writing, a ~(3.2GB&lt;br/&gt;&amp;gt; &#43; blocks_to_tip * 4MB) download and a few minutes of processing time, which sounds&lt;br/&gt;&amp;gt; manageable for many mobile devices currently in use.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; A mobile user could initialize an assumed-valid bitcoin node within an hour,&lt;br/&gt;&amp;gt; transact immediately, and complete a pruned full validation of their&lt;br/&gt;&amp;gt; assumed-valid chain over the next few days, perhaps only doing the background&lt;br/&gt;&amp;gt; IBD when their device has access to suitable high-bandwidth connections.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; If we end up implementing an accumulator-based UTXO scaling design[5][6] down&lt;br/&gt;&amp;gt; the road, it&amp;#39;s easy to imagine an analogous process that would allow very fast&lt;br/&gt;&amp;gt; startup using an accumulator of a few kilobytes in lieu of a multi-GB snapshot.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; ---&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; I&amp;#39;ve created a related issue at our Github repository here:&lt;br/&gt;&amp;gt;   &lt;a href=&#34;https://github.com/bitcoin/bitcoin/issues/15605&#34;&gt;https://github.com/bitcoin/bitcoin/issues/15605&lt;/a&gt;&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; and have submitted a draft implementation of snapshot usage via RPC here:&lt;br/&gt;&amp;gt;   &lt;a href=&#34;https://github.com/bitcoin/bitcoin/pull/15606&#34;&gt;https://github.com/bitcoin/bitcoin/pull/15606&lt;/a&gt;&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; I&amp;#39;d like to discuss here whether this is a good fit for Bitcoin conceptually. Concrete&lt;br/&gt;&amp;gt; plans for deployment steps should be discussed in the Github issue, and after all&lt;br/&gt;&amp;gt; that my implementation may be reviewed as a sketch of the specific software&lt;br/&gt;&amp;gt; changes necessary.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Regards,&lt;br/&gt;&amp;gt; James&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; [0]: &lt;a href=&#34;https://bitcoincore.org/en/2017/03/08/release-0.14.0/#assumed-valid-blocks&#34;&gt;https://bitcoincore.org/en/2017/03/08/release-0.14.0/#assumed-valid-blocks&lt;/a&gt;&lt;br/&gt;&amp;gt; [1]: &lt;a href=&#34;https://github.com/bitcoin/bips/blob/master/bip-0157.mediawiki&#34;&gt;https://github.com/bitcoin/bips/blob/master/bip-0157.mediawiki&lt;/a&gt;&lt;br/&gt;&amp;gt; [2]: as tested at height 569895, on a 12 core Intel Xeon Silver 4116 CPU @ 2.10GHz&lt;br/&gt;&amp;gt; [3]: &lt;a href=&#34;https://github.com/bitcoin/bitcoin/blob/84d0fdc/src/chainparams.cpp#L145-L161&#34;&gt;https://github.com/bitcoin/bitcoin/blob/84d0fdc/src/chainparams.cpp#L145-L161&lt;/a&gt;&lt;br/&gt;&amp;gt; [4]: Marco Falke is due credit for this point&lt;br/&gt;&amp;gt; [5]: utreexo: &lt;a href=&#34;https://www.youtube.com/watch?v=edRun-6ubCc&#34;&gt;https://www.youtube.com/watch?v=edRun-6ubCc&lt;/a&gt;&lt;br/&gt;&amp;gt; [6]: Boneh, Bunz, Fisch on accumulators: &lt;a href=&#34;https://eprint.iacr.org/2018/1188&#34;&gt;https://eprint.iacr.org/2018/1188&lt;/a&gt;&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; _______________________________________________&lt;br/&gt;&amp;gt; bitcoin-dev mailing list&lt;br/&gt;&amp;gt; bitcoin-dev at lists.linuxfoundation.org&lt;br/&gt;&amp;gt; &lt;a href=&#34;https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&#34;&gt;https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&lt;/a&gt;&lt;br/&gt;&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: 833 bytes&lt;br/&gt;Desc: Message signed with OpenPGP&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20190403/0005961e/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20190403/0005961e/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T18:17:22Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsvyargedqzlshp8n6zuv6qdp80w8c3wmvsev04zu6er0yxg6vn6vszyzdyv0s04wyk8vqndxxptg8jgjw3njtl8wyytrjcwsy4k5qxm7dqczg30vx</id>
    
      <title type="html">📅 Original date posted:2019-03-22 📝 Original message:Hi The ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsvyargedqzlshp8n6zuv6qdp80w8c3wmvsev04zu6er0yxg6vn6vszyzdyv0s04wyk8vqndxxptg8jgjw3njtl8wyytrjcwsy4k5qxm7dqczg30vx" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsgpjta6t05pxck2v8d9ay7zqam42uyyhnp9nwqv2809axzwy8hvaq5q70rg&#39;&gt;nevent1q…70rg&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2019-03-22&lt;br/&gt;📝 Original message:Hi&lt;br/&gt;&lt;br/&gt;The overhauled version of the former BIP151 has fundamental differences and deserves (requires?) a new BIP.&lt;br/&gt;Calling it „v2 peer-to-peer message transport protocol“ is more accurate since it is no longer only about encryption.&lt;br/&gt;&lt;br/&gt;The formatted draft proposal can be found here: &lt;a href=&#34;https://gist.github.com/jonasschnelli/c530ea8421b8d0e80c51486325587c52&#34;&gt;https://gist.github.com/jonasschnelli/c530ea8421b8d0e80c51486325587c52&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Significant changes compared to the current available BIP151&lt;br/&gt;* A optimised AEAD construct is now proposed (ChaCha20Poly1305 at Bitcoin), reducing the required ChaCha20 rounds (compared to the openSSH version).&lt;br/&gt;* introduce NODE_P2P_V2&lt;br/&gt;* 32bytes-per-side „pseudorandom&amp;#34; key exchange&lt;br/&gt;* the multi message envelope has been removed&lt;br/&gt;* the length of a packet uses now a 3-byte integer with 23 available bits&lt;br/&gt;* introduction of short-command-ID (ex.: uint8_t 13 == INV, etc.) which result in&lt;br/&gt; some v2 messages require less bandwidth then v1&lt;br/&gt;* the key derivation and what communication direction uses what key is now more&lt;br/&gt; specific&lt;br/&gt;&lt;br/&gt;First benchmarks of the used primitives&lt;br/&gt;&lt;a href=&#34;https://github.com/bitcoin/bitcoin/pull/15519#issuecomment-469705289&#34;&gt;https://github.com/bitcoin/bitcoin/pull/15519#issuecomment-469705289&lt;/a&gt; &amp;lt;&lt;a href=&#34;https://github.com/bitcoin/bitcoin/pull/15519#issuecomment-469705289&amp;gt&#34;&gt;https://github.com/bitcoin/bitcoin/pull/15519#issuecomment-469705289&amp;gt&lt;/a&gt;;&lt;br/&gt;&lt;br/&gt;Benchmark of the AEAD compared to the HASH (double SHA256)&lt;br/&gt;(Indicates that v2 messages may be more performant):&lt;br/&gt;&lt;a href=&#34;https://github.com/bitcoin/bitcoin/pull/15649#issuecomment-475782376&#34;&gt;https://github.com/bitcoin/bitcoin/pull/15649#issuecomment-475782376&lt;/a&gt; &amp;lt;&lt;a href=&#34;https://github.com/bitcoin/bitcoin/pull/15649#issuecomment-475782376&amp;gt&#34;&gt;https://github.com/bitcoin/bitcoin/pull/15649#issuecomment-475782376&amp;gt&lt;/a&gt;;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Proposal:&lt;br/&gt;&lt;br/&gt;&amp;lt;pre&amp;gt;&lt;br/&gt;  BIP: ???&lt;br/&gt;  Layer: Peer Services&lt;br/&gt;  Title: Version 2 Peer-to-Peer Message Transport Protocol&lt;br/&gt;  Author: Jonas Schnelli &amp;lt;dev at jonasschnelli.ch&amp;gt;&lt;br/&gt;  Status: Draft&lt;br/&gt;  Type: Standards Track&lt;br/&gt;  Created: 2019-03-08&lt;br/&gt;  License: PD&lt;br/&gt;&amp;lt;/pre&amp;gt;&lt;br/&gt;&lt;br/&gt;== Abstract ==&lt;br/&gt;&lt;br/&gt;This BIP describes a new Bitcoin peer to peer transport protocol with&lt;br/&gt;opportunistic encryption.&lt;br/&gt;&lt;br/&gt;== Motivation ==&lt;br/&gt;&lt;br/&gt;The current peer-to-peer protocol is partially inefficient and in plaintext.&lt;br/&gt;&lt;br/&gt;With the current unencrypted message transport, BGP hijack, block delay attacks&lt;br/&gt;and message tempering are inexpensive and can be executed in a covert way&lt;br/&gt;(undetectable MITM)&amp;lt;ref&amp;gt;[&lt;a href=&#34;https://btc-hijack.ethz.ch/files/btc_hijack.pdf&#34;&gt;https://btc-hijack.ethz.ch/files/btc_hijack.pdf&lt;/a&gt;&lt;br/&gt;Hijacking Bitcoin: Routing Attacks on Cryptocurrencies - M. Apostolaki, A.&lt;br/&gt;Zohar, L.Vanbever]&amp;lt;/ref&amp;gt;.&lt;br/&gt;&lt;br/&gt;Adding opportunistic encryption introduces a high risk for attackers of being&lt;br/&gt;detected. Peer operators can compare encryption session IDs or use other form&lt;br/&gt;of authentication schemes &amp;lt;ref&lt;br/&gt;name=&amp;#34;bip150&amp;#34;&amp;gt;[&lt;a href=&#34;https://github.com/bitcoin/bips/blob/master/bip-0150.mediawiki&#34;&gt;https://github.com/bitcoin/bips/blob/master/bip-0150.mediawiki&lt;/a&gt;&lt;br/&gt;BIP150]&amp;lt;/ref&amp;gt; to identify an attack.&lt;br/&gt;&lt;br/&gt;Each current version 1 Bitcoin peer-to-peer message uses a double-SHA256&lt;br/&gt;checksum truncated to 4 bytes. Roughly the same amount of computation power&lt;br/&gt;would be required for encrypting and authenticating a peer-to-peer message with&lt;br/&gt;ChaCha20 &amp;amp; Poly1305.&lt;br/&gt;&lt;br/&gt;Additionally, this BIP describes a way how data manipulation (blocking or&lt;br/&gt;tempering commands by an intercepting TCP/IP node) would be identifiable by the&lt;br/&gt;communicating peers.&lt;br/&gt;&lt;br/&gt;Encrypting traffic between peers is already possible with VPN, tor, stunnel,&lt;br/&gt;curveCP or any other encryption mechanism on a deeper OSI level, however, most&lt;br/&gt;of those solutions require significant knowhow in how to setup such a secure&lt;br/&gt;channel and are therefore not widely deployed.&lt;br/&gt;&lt;br/&gt;== Specification ==&lt;br/&gt;&lt;br/&gt;&amp;lt;blockquote&amp;gt;&lt;br/&gt;The key words &amp;#34;MUST&amp;#34;, &amp;#34;MUST NOT&amp;#34;, &amp;#34;REQUIRED&amp;#34;, &amp;#34;SHALL&amp;#34;, &amp;#34;SHALL NOT&amp;#34;, &amp;#34;SHOULD&amp;#34;,&lt;br/&gt;&amp;#34;SHOULD NOT&amp;#34;, &amp;#34;RECOMMENDED&amp;#34;,  &amp;#34;MAY&amp;#34;, and &amp;#34;OPTIONAL&amp;#34; in this document are to be&lt;br/&gt;interpreted as described in RFC 2119&amp;lt;ref&amp;gt;[&lt;a href=&#34;https://tools.ietf.org/html/rfc2119&#34;&gt;https://tools.ietf.org/html/rfc2119&lt;/a&gt;&lt;br/&gt;RFC 2119]&amp;lt;/ref&amp;gt;.&lt;br/&gt;&amp;lt;/blockquote&amp;gt;&lt;br/&gt;&lt;br/&gt;A peer that supports the message transport protocol as defined in this proposal&lt;br/&gt;MUST accept encryption requests from all peers.&lt;br/&gt;&lt;br/&gt;Both communication direction share the same shared-secret but have different&lt;br/&gt;symmetric cipher keys.&lt;br/&gt;&lt;br/&gt;The encryption handshake MUST happen before sending any other messages to the&lt;br/&gt;responding peer.&lt;br/&gt;&lt;br/&gt;If the responding peer closes the connection after sending the handshake&lt;br/&gt;request, the initiating peer MAY try to connect again with the v1 peer-to-peer&lt;br/&gt;transport protocol. Such reconnects allow an attacker to &amp;#34;downgrade&amp;#34; the&lt;br/&gt;encryption to plaintext communication and thus, accepting v1 connections MUST&lt;br/&gt;not be done when the Bitcoin peer-to-peer network uses almost only v2&lt;br/&gt;communication.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;=== NODE_P2P_V2 ===&lt;br/&gt;&lt;br/&gt;Peers supporting the transport protocol after this proposal MUST signal&lt;br/&gt;&amp;lt;code&amp;gt;NODE_P2P_V2&amp;lt;/code&amp;gt;&lt;br/&gt;&amp;lt;pre&amp;gt;&lt;br/&gt;NODE_P2P_V2 = (1 &amp;lt;&amp;lt; 11)&lt;br/&gt;&amp;lt;/pre&amp;gt;&lt;br/&gt;&lt;br/&gt;A peer usually learns an address along with the expected service flags which&lt;br/&gt;MAY be used to filter possible outbound peers.&lt;br/&gt;&lt;br/&gt;A peer signaling &amp;lt;code&amp;gt;NODE_P2P_V2&amp;lt;/code&amp;gt; MUST accept encrypted communication&lt;br/&gt;specified in this proposal.&lt;br/&gt;&lt;br/&gt;Peers MAY only make outbound connections to peers supporting&lt;br/&gt;&amp;lt;code&amp;gt;NODE_P2P_V2&amp;lt;/code&amp;gt;.&lt;br/&gt;&lt;br/&gt;=== Handshake ===&lt;br/&gt;&lt;br/&gt;&amp;lt;pre&amp;gt;&lt;br/&gt; ----------------------------------------------------------------------------------------&lt;br/&gt; | Initiator                             Responder                                      |&lt;br/&gt; |                                                                                      |&lt;br/&gt; | x, X         := SECP256k1_KEYGEN()                                                   |&lt;br/&gt; | CLIENT_HDATA := X                                                                    |&lt;br/&gt; |                                                                                      |&lt;br/&gt; |               --- CLIENT_HDATA ---&amp;gt;                                                  |&lt;br/&gt; |                                                                                      |&lt;br/&gt; |                                       y, Y           := SECP256k1_KEYGEN()           |&lt;br/&gt; |                                       ECDH_KEY       := SECP256k1_ECDH(X,y)          |&lt;br/&gt; |                                       SERVER_HDATA   := Y                            |&lt;br/&gt; |                                                                                      |&lt;br/&gt; |               &amp;lt;-- SERVER_HDATA ----                                                  |&lt;br/&gt; |                                                                                      |&lt;br/&gt; | ECDH_KEY     := SECP256k1_ECDH(x,Y)                                                  |&lt;br/&gt; ----------------------------------------------------------------------------------------&lt;br/&gt;&amp;lt;/pre&amp;gt;&lt;br/&gt;&lt;br/&gt;To request encrypted communication (only possible if yet no other messages have&lt;br/&gt;been sent or received), the initiating peer generates an EC secp256k1 ephemeral&lt;br/&gt;key and sends the corresponding 32-byte public key to the responding peer and&lt;br/&gt;waits for the remote 32-byte public key from the counterparty.&lt;br/&gt;&lt;br/&gt;ODD secp256k1 public keys MUST be used (public keys starting with 0x02). If the&lt;br/&gt;public key from the generated ephemeral key is an EVEN public key (starting&lt;br/&gt;with 0x03), negating the key and recalculating its public key SHOULD be done.&lt;br/&gt;Only using ODD public makes it more complex to identify the handshake based on&lt;br/&gt;analyzing the traffic.&lt;br/&gt;&lt;br/&gt;The handshake request and response message are raw 32byte payloads containing&lt;br/&gt;no header, length or checksum (the pure 32byte payload) and MUST be sent before&lt;br/&gt;anything else.&lt;br/&gt;&lt;br/&gt;Public keys starting with the 4-byte network magic are forbidden and MUST lead&lt;br/&gt;to locally re-generate an ephemeral-key.&lt;br/&gt;&lt;br/&gt;Pseudocode for the ephemeral-key generation&lt;br/&gt;&amp;lt;pre&amp;gt;&lt;br/&gt;do {&lt;br/&gt;    ecdh_key.MakeNewKey();&lt;br/&gt;    if (ecdh_key.GetPubKey()[0] == 3) {&lt;br/&gt;        ecdh_key.Negate();&lt;br/&gt;    }&lt;br/&gt;} while (m_ecdh_key.GetPubKey()[0..3] == NETWORK_MAGIC);&lt;br/&gt;&amp;lt;/pre&amp;gt;&lt;br/&gt;&lt;br/&gt;Once a peer has received the public key from its counterparty, the shared&lt;br/&gt;secret MUST be calculated by using secp256k1 ECDH.&lt;br/&gt;&lt;br/&gt;Private keys will never be transmitted. The shared secret can only be&lt;br/&gt;calculated if an attacker knows at least one private key and the counterparties&lt;br/&gt;public key. This key-exchange is based on the discrete log problem and thus not&lt;br/&gt;sufficiently strong against known forms of possible quantum computer&lt;br/&gt;algorithms. Adding an additional quantum resistant key exchange like NewHope is&lt;br/&gt;possible but out of scope for this proposal.&lt;br/&gt;&lt;br/&gt;After a successful handshake, the messages format MUST use the &amp;#34;v2 messages&lt;br/&gt;structure&amp;#34;. Non-encrypted v1 messages from the initiating peer MUST lead to an&lt;br/&gt;immediate connection termination.&lt;br/&gt;&lt;br/&gt;After a successful handshake, both peers MUST cleanse the ephemeral-session-key&lt;br/&gt;from memory and/or persistence storage.&lt;br/&gt;&lt;br/&gt;A peer not supporting this proposal will not perform the described handshake&lt;br/&gt;and thus send a v1 version message.&lt;br/&gt;Peers supporting this BIP MAY optionally allow unencrypted v1 communication by&lt;br/&gt;detecting a v1 version message by the initial 11-byte sequence of &amp;lt;code&amp;gt;4byte&lt;br/&gt;net magic || &amp;#34;version&amp;#34;&amp;lt;/code&amp;gt;.&lt;br/&gt;&lt;br/&gt;=== Symmetric Encryption Cipher Keys ===&lt;br/&gt;&lt;br/&gt;Once the ECDH secret (&amp;lt;code&amp;gt;ECDH_KEY&amp;lt;/code&amp;gt;) is calculated on each side, the&lt;br/&gt;symmetric encryption cipher keys MUST be derived with HKDF&lt;br/&gt;&amp;lt;ref&amp;gt;[&lt;a href=&#34;https://tools.ietf.org/html/rfc5869&#34;&gt;https://tools.ietf.org/html/rfc5869&lt;/a&gt; HKDF (RFC 5869)]&amp;lt;/ref&amp;gt; after the&lt;br/&gt;following specification:&lt;br/&gt;&lt;br/&gt;1. HKDF extraction&lt;br/&gt;&amp;lt;code&amp;gt;PRK = HKDF_EXTRACT(hash=SHA256, salt=&amp;#34;BitcoinSharedSecret||INITIATOR_32BYTES_PUBKEY||RESPONDER_32BYTES_PUBKEY&amp;#34;, ikm=ECDH_KEY)&amp;lt;/code&amp;gt;.&lt;br/&gt;&lt;br/&gt;2. Derive Key_1_A (K_1 communication direction A)&lt;br/&gt;&amp;lt;code&amp;gt;K1A = HKDF_EXPAND(prk=PRK, hash=SHA256, info=&amp;#34;BitcoinK_1_A&amp;#34;, L=32)&amp;lt;/code&amp;gt;&lt;br/&gt;&lt;br/&gt;2. Derive Key_2_A (K_2 communication direction A)&lt;br/&gt;&amp;lt;code&amp;gt;K1B = HKDF_EXPAND(prk=PRK, hash=SHA256, info=&amp;#34;BitcoinK_2_A&amp;#34;, L=32)&amp;lt;/code&amp;gt;&lt;br/&gt;&lt;br/&gt;3. Derive Key_1_B (K_1 communication direction B)&lt;br/&gt;&amp;lt;code&amp;gt;K2 = HKDF_EXPAND(prk=PRK, hash=SHA256, info=&amp;#34;BitcoinK_1_B&amp;#34;, L=32)&amp;lt;/code&amp;gt;&lt;br/&gt;&lt;br/&gt;3. Derive Key_2_B (K_2 communication direction B)&lt;br/&gt;&amp;lt;code&amp;gt;K2 = HKDF_EXPAND(prk=PRK, hash=SHA256, info=&amp;#34;BitcoinK_2_B&amp;#34;, L=32)&amp;lt;/code&amp;gt;&lt;br/&gt;&lt;br/&gt;=== Session ID ===&lt;br/&gt;&lt;br/&gt;Both parties MUST also calculate the 256bit session-id using &amp;lt;code&amp;gt;SID =&lt;br/&gt;HKDF_EXPAND(prk=PRK, hash=SHA256, info=&amp;#34;BitcoinSessionID&amp;#34;, L=32)&amp;lt;/code&amp;gt;. The&lt;br/&gt;session-id can be used for authenticating the encryption-session (identity&lt;br/&gt;check).&lt;br/&gt;&lt;br/&gt;The session-id MUST be presented to the user on request.&lt;br/&gt;&lt;br/&gt;=== ChaCha20-Poly1305 at Bitcoin Cipher Suite ===&lt;br/&gt;&lt;br/&gt;==== Background ====&lt;br/&gt;&lt;br/&gt;ChaCha20 is a stream cipher designed by Daniel Bernstein and described in&lt;br/&gt;&amp;lt;ref&amp;gt;[&lt;a href=&#34;http://cr.yp.to/chacha/chacha-20080128.pdf&#34;&gt;http://cr.yp.to/chacha/chacha-20080128.pdf&lt;/a&gt; ChaCha20]&amp;lt;/ref&amp;gt;. It operates&lt;br/&gt;by permuting 128 fixed bits, 128 or 256 bits of key, a 64 bit nonce and a 64&lt;br/&gt;bit counter into 64 bytes of output. This output is used as a keystream, with&lt;br/&gt;any unused bytes simply discarded.&lt;br/&gt;&lt;br/&gt;Poly1305 &amp;lt;ref&amp;gt;[&lt;a href=&#34;http://cr.yp.to/mac/poly1305-20050329.pdf&#34;&gt;http://cr.yp.to/mac/poly1305-20050329.pdf&lt;/a&gt; Poly1305]&amp;lt;/ref&amp;gt;, also&lt;br/&gt;by Daniel Bernstein, is a one-time Carter-Wegman MAC that computes a 128 bit&lt;br/&gt;integrity tag given a message and a single-use 256 bit secret key.&lt;br/&gt;&lt;br/&gt;The chacha20-poly1305 at bitcoin combines these two primitives into an&lt;br/&gt;authenticated encryption mode. The construction used is based on that proposed&lt;br/&gt;for TLS by Adam Langley in&lt;br/&gt;&amp;lt;ref&amp;gt;[&lt;a href=&#34;http://tools.ietf.org/html/draft-agl-tls-chacha20poly1305-03&#34;&gt;http://tools.ietf.org/html/draft-agl-tls-chacha20poly1305-03&lt;/a&gt; &amp;#34;ChaCha20&lt;br/&gt;and Poly1305 based Cipher Suites for TLS&amp;#34;, Adam Langley]&amp;lt;/ref&amp;gt;, but differs in&lt;br/&gt;the layout of data passed to the MAC and in the addition of encryption of the&lt;br/&gt;packet lengths.&lt;br/&gt;&lt;br/&gt;==== Detailed Construction ====&lt;br/&gt;&lt;br/&gt;The chacha20-poly1305 at bitcoin cipher requires two 256 bits of key material as&lt;br/&gt;output from the key exchange. Each key (K_1 and K_2) are used by two separate&lt;br/&gt;instances of chacha20.&lt;br/&gt;&lt;br/&gt;The instance keyed by K_1 is a stream cipher that is used only to encrypt the 3&lt;br/&gt;byte packet length field and has its own sequence number. The second instance,&lt;br/&gt;keyed by K_2, is used in conjunction with poly1305 to build an AEAD&lt;br/&gt;(Authenticated Encryption with Associated Data) that is used to encrypt and&lt;br/&gt;authenticate the entire packet.&lt;br/&gt;&lt;br/&gt;Two separate cipher instances are used here so as to keep the packet lengths&lt;br/&gt;confidential but not create an oracle for the packet payload cipher by&lt;br/&gt;decrypting and using the packet length prior to checking the MAC. By using an&lt;br/&gt;independently-keyed cipher instance to encrypt the length, an active attacker&lt;br/&gt;seeking to exploit the packet input handling as a decryption oracle can learn&lt;br/&gt;nothing about the payload contents or its MAC (assuming key derivation,&lt;br/&gt;ChaCha20 and Poly1305 are secure).&lt;br/&gt;&lt;br/&gt;The AEAD is constructed as follows: for each packet, generate a Poly1305 key by&lt;br/&gt;taking the first 256 bits of ChaCha20 stream output generated using K_2, an IV&lt;br/&gt;consisting of the packet sequence number encoded as an LE uint64 and a ChaCha20&lt;br/&gt;block counter of zero. The K_2 ChaCha20 block counter is then set to the&lt;br/&gt;little-endian encoding of 1 (i.e. {1, 0, 0, 0, 0, 0, 0, 0}) and this instance&lt;br/&gt;is used for encryption of the packet payload.&lt;br/&gt;&lt;br/&gt;==== Packet Handling ====&lt;br/&gt;&lt;br/&gt;When receiving a packet, the length must be decrypted first. When 3 bytes of&lt;br/&gt;ciphertext length have been received, they may be decrypted.&lt;br/&gt;&lt;br/&gt;A ChaCha20 round always calculates 64bytes which is sufficient to crypt 21&lt;br/&gt;times a 3 bytes length field (21*3 = 63). The length field sequence number can&lt;br/&gt;thus be used 21 times (keystream caching).&lt;br/&gt;&lt;br/&gt;The length field must be enc-/decrypted with the ChaCha20 keystream keyed with&lt;br/&gt;K_1 defined by block counter 0, the length field sequence number in little&lt;br/&gt;endian and a keystream position from 0 to 60.&lt;br/&gt;&lt;br/&gt;Pseudo code example:&lt;br/&gt;&amp;lt;pre&amp;gt;&lt;br/&gt;// init&lt;br/&gt;sequence_nr_payload = 0; //payload sequence number&lt;br/&gt;sequence_nr_length_field = 0; //length field sequence number (will be reused)&lt;br/&gt;aad_length_field_pos = 0; //position in the length field cipher instance keystream chunk&lt;br/&gt;&lt;br/&gt;...&lt;br/&gt;&lt;br/&gt;// actual encryption&lt;br/&gt;if cache_length_field_sequence_number != sequence_nr_length_field {&lt;br/&gt;  cache_keystream_64_bytes = ChaCha20(key=K_1, iv=little_endian(sequence_nr_length_field), counter=0);&lt;br/&gt;  cache_length_field_sequence_number = sequence_nr_length_field&lt;br/&gt;}&lt;br/&gt;packet_length = XOR_TO_LE(cache_length_field_sequence_number[aad_length_field_pos - aad_length_field_pos&#43;3], ciphertext[0-3])&lt;br/&gt;&lt;br/&gt;sequence_nr_payload&#43;&#43;;&lt;br/&gt;aad_length_field_pos &#43;= 3; //skip 3 bytes in keystream&lt;br/&gt;if (aad_length_field_pos &#43; 3 &amp;gt; 64) { //if we are outside of the 64byte keystream...&lt;br/&gt;  aad_length_field_pos = 0; // reset at position 0&lt;br/&gt;  sequence_nr_length_field&#43;&#43;; // increase length field sequence number&lt;br/&gt;}&lt;br/&gt;&amp;lt;/pre&amp;gt;&lt;br/&gt;&lt;br/&gt;Once the entire packet has been received, the MAC MUST be checked before&lt;br/&gt;decryption. A per-packet Poly1305 key is generated as described above and the&lt;br/&gt;MAC tag calculated using Poly1305 with this key over the ciphertext of the&lt;br/&gt;packet length and the payload together. The calculated MAC is then compared in&lt;br/&gt;constant time with the one appended to the packet and the packet decrypted&lt;br/&gt;using ChaCha20 as described above (with K_2, the packet sequence number as&lt;br/&gt;nonce and a starting block counter of 1).&lt;br/&gt;&lt;br/&gt;Detection of an invalid MAC MUST lead to immediate connection termination.&lt;br/&gt;&lt;br/&gt;To send a packet, first encode the 3 byte length and encrypt it using K_1 as&lt;br/&gt;described above. Encrypt the packet payload (using K_2) and append it to the&lt;br/&gt;encrypted length. Finally, calculate a MAC tag and append it.&lt;br/&gt;&lt;br/&gt;The initiating peer MUST use &amp;lt;code&amp;gt;K_1_A, K_2_A&amp;lt;/code&amp;gt; to encrypt messages on&lt;br/&gt;the send channel, &amp;lt;code&amp;gt;K_1_B, K_2_B&amp;lt;/code&amp;gt; MUST be used to decrypt messages on&lt;br/&gt;the receive channel.&lt;br/&gt;&lt;br/&gt;The responding peer MUST use &amp;lt;code&amp;gt;K_1_A, K_2_A&amp;lt;/code&amp;gt; to decrypt messages on&lt;br/&gt;the receive channel, &amp;lt;code&amp;gt;K_1_B, K_2_B&amp;lt;/code&amp;gt; MUST be used to encrypt messages&lt;br/&gt;on the send channel.&lt;br/&gt;&lt;br/&gt;Optimized implementations of ChaCha20-Poly1305 at bitcoin are relatively fast in&lt;br/&gt;general, therefore it is very likely that encrypted messages require not more&lt;br/&gt;CPU cycles per bytes then the current unencrypted p2p message format&lt;br/&gt;(ChaCha20/Poly1305 versus double SHA256).&lt;br/&gt;&lt;br/&gt;The initial packet sequence numbers are 0.&lt;br/&gt;&lt;br/&gt;K_2 ChaCha20 cipher instance (payload) must never reuse a {key, nonce} for&lt;br/&gt;encryption nor may it be used to encrypt more than 2^70 bytes under the same&lt;br/&gt;{key, nonce}.&lt;br/&gt;&lt;br/&gt;K_1 ChaCha20 cipher instance (length field/AAD) must never reuse a {key, nonce,&lt;br/&gt;position-in-keystream} for encryption nor may it be used to encrypt more than&lt;br/&gt;2^70 bytes under the same {key, nonce}.&lt;br/&gt;&lt;br/&gt;We use message sequence numbers for both communication directions.&lt;br/&gt;&lt;br/&gt;&amp;lt;pre&amp;gt;&lt;br/&gt; ------------------------------------------------------------------------------------------&lt;br/&gt; | Initiator                          Responder                                           |&lt;br/&gt; |                                                                                        |&lt;br/&gt; | AEAD() = ChaCha20Poly1305Bitcoin()                                                     |&lt;br/&gt; | MSG_A_CIPH = AEAD(k=K_1_A, K_2_A, payload_nonce=0, aad_nonce=0, aad_pos=0, msg)        |&lt;br/&gt; |                                                                                        |&lt;br/&gt; |                         --- MSG_CIPH ---&amp;gt;                                              |&lt;br/&gt; |                                                                                        |&lt;br/&gt; |                                    msg   := AEAD(k=K_1_A,K_2_A, n=0, ..., MSG_A_CIPH)  |&lt;br/&gt; |                                                                                        |&lt;br/&gt; ------------------------------------------------------------------------------------------&lt;br/&gt;&amp;lt;/pre&amp;gt;&lt;br/&gt;&lt;br/&gt;==== Test Vectors ====&lt;br/&gt;&lt;br/&gt;&amp;lt;pre&amp;gt;&lt;br/&gt;message   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00&lt;br/&gt;k1 (DATA) 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00&lt;br/&gt;k2 (AAD)  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00&lt;br/&gt;&lt;br/&gt;AAD keystream&lt;br/&gt;76 b8 e0 ad a0 f1 3d 90 40 5d 6a e5 53 86 bd 28 bd d2 19 b8 a0 8d ed 1a a8 36 ef cc 8b 77 0d c7 da 41 59 7c 51 57 48 8d 77 24 e0 3f b8 d8 4a 37 6a 43 b8 f4 15 18 a1 1c c3 87 b6 69 b2 ee 65 86&lt;br/&gt;&lt;br/&gt;ciphertext&lt;br/&gt;76 b8 e0 9f 07 e7 be 55 51 38 7a 98 ba 97 7c 73 2d 08 0d cb 0f 29 a0 48 e3 65 69 12 c6 53 3e 32&lt;br/&gt;&lt;br/&gt;MAC&lt;br/&gt;d2 fc 11 82 9c 1b 6c 1d f1 f5 51 cd 61 31 ff 08&lt;br/&gt;&amp;lt;/pre&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;pre&amp;gt;&lt;br/&gt;message   01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00&lt;br/&gt;k1 (DATA) 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00&lt;br/&gt;k2 (AAD)  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00&lt;br/&gt;&lt;br/&gt;AAD keystream&lt;br/&gt;76 b8 e0 ad a0 f1 3d 90 40 5d 6a e5 53 86 bd 28 bd d2 19 b8 a0 8d ed 1a a8 36 ef cc 8b 77 0d c7 da 41 59 7c 51 57 48 8d 77 24 e0 3f b8 d8 4a 37 6a 43 b8 f4 15 18 a1 1c c3 87 b6 69 b2 ee 65 86&lt;br/&gt;&lt;br/&gt;ciphertext&lt;br/&gt;77 b8 e0 9f 07 e7 be 55 51 38 7a 98 ba 97 7c 73 2d 08 0d cb 0f 29 a0 48 e3 65 69 12 c6 53 3e 32&lt;br/&gt;&lt;br/&gt;MAC&lt;br/&gt;ba f0 c8 5b 6d ff 86 02 b0 6c f5 2a 6a ef c6 2e&lt;br/&gt;&amp;lt;/pre&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;pre&amp;gt;&lt;br/&gt;message&lt;br/&gt;ff 00 00 f1 95 e6 69 82 10 5f fb 64 0b b7 75 7f 57 9d a3 16 02 fc 93 ec 01 ac 56 f8 5a c3 c1 34 a4 54 7b 73 3b 46 41 30 42 c9 44 00 49 17 69 05 d3 be 59 ea 1c 53 f1 59 16 15 5c 2b e8 24 1a 38 00 8b 9a 26 bc 35 94 1e 24 44 17 7c 8a de 66 89 de 95 26 49 86 d9 58 89 fb 60 e8 46 29 c9 bd 9a 5a cb 1c c1 18 be 56 3e b9 b3 a4 a4 72 f8 2e 09 a7 e7 78 49 2b 56 2e f7 13 0e 88 df e0 31 c7 9d b9 d4 f7 c7 a8 99 15 1b 9a 47 50 32 b6 3f c3 85 24 5f e0 54 e3 dd 5a 97 a5 f5 76 fe 06 40 25 d3 ce 04 2c 56 6a b2 c5 07 b1 38 db 85 3e 3d 69 59 66 09 96 54 6c c9 c4 a6 ea fd c7 77 c0 40 d7 0e af 46 f7 6d ad 39 79 e5 c5 36 0c 33 17 16 6a 1c 89 4c 94 a3 71 87 6a 94 df 76 28 fe 4e aa f2 cc b2 7d 5a aa e0 ad 7a d0 f9 d4 b6 ad 3b 54 09 87 46 d4 52 4d 38 40 7a 6d eb 3a b7 8f ab 78 c9&lt;br/&gt;&lt;br/&gt;k1 (DATA) 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f&lt;br/&gt;k2 (AAD)  ff 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f&lt;br/&gt;&lt;br/&gt;AAD keystream&lt;br/&gt;c6 40 c1 71 1e 3e e9 04 ac 35 c5 7a b9 79 1c 8a 1c 40 86 03 a9 0b 77 a8 3b 54 f6 c8 44 cb 4b 06 d9 4e 7f c6 c8 00 e1 65 ac d6 61 47 e8 0e c4 5a 56 7f 6c e6 6d 05 ec 0c ae 67 9d ce eb 89 00 17&lt;br/&gt;&lt;br/&gt;ciphertext&lt;br/&gt;39 40 c1 e9 2d a4 58 2f f6 f9 2a 77 6a eb 14 d0 14 d3 84 ee b3 0f 66 0d ac f7 0a 14 a2 3f d3 1e 91 21 27 01 33 4e 2c e1 ac f5 19 9d c8 4f 4d 61 dd be 65 71 bc a5 af 87 4b 4c 92 26 c2 6e 65 09 95 d1 57 64 4e 18 48 b9 6e d6 c2 10 2d 54 89 a0 50 e7 1d 29 a5 a6 6e ce 11 de 5f b5 c9 55 8d 54 da 28 fe 45 b0 bc 4d b4 e5 b8 80 30 bf c4 a3 52 b4 b7 06 8e cc f6 56 ba e7 ad 6a 35 61 53 15 fc 7c 49 d4 20 03 88 d5 ec a6 7c 2e 82 2e 06 93 36 c6 9b 40 db 67 e0 f3 c8 12 09 c5 0f 32 16 a4 b8 9f b3 ae 1b 98 4b 78 51 a2 ec 6f 68 ab 12 b1 01 ab 12 0e 1e a7 31 3b b9 3b 5a 0f 71 18 5c 7f ea 01 7d db 92 76 98 61 c2 9d ba 4f bc 43 22 80 d5 df f2 1b 36 d1 c4 c7 90 12 8b 22 69 99 50 bb 18 bf 74 c4 48 cd fe 54 7d 8e d4 f6 57 d8 00 5f dc 0c d7 a0 50 c2 d4 60 50 a4 4c 43 76 35 58 58&lt;br/&gt;&lt;br/&gt;MAC&lt;br/&gt;98 1f be 8b 18 42 88 27 6e 7a 93 ea bc 89 9c 4a&lt;br/&gt;&amp;lt;/pre&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;=== v2 Messages Structure ===&lt;br/&gt;&lt;br/&gt;{|class=&amp;#34;wikitable&amp;#34;&lt;br/&gt;! Field Size !! Description !! Data type !! Comments&lt;br/&gt;|-&lt;br/&gt;| 3 || length &amp;amp; flag || 23 &#43; 1 bits || Encrypted length of ciphertext payload (not counting the MAC tag) in number of bytes (only 2^23 is usable, most significant bit is the rekey-flag)&lt;br/&gt;|-&lt;br/&gt;| 1-13 || encrypted command || variable || ASCII command (or one byte short command ID)&lt;br/&gt;|-&lt;br/&gt;| ? || encrypted payload || ? || The actual data&lt;br/&gt;|-&lt;br/&gt;| 16 || MAC tag || ? || 128bit MAC-tag&lt;br/&gt;|}&lt;br/&gt;&lt;br/&gt;Encrypted messages do not have the 4byte network magic.&lt;br/&gt;&lt;br/&gt;The maximum message size is 2^23 (8’388’608) bytes. Future communication MAY&lt;br/&gt;exceed this limit and thus MUST be split into different messages.&lt;br/&gt;&lt;br/&gt;Decrypting and processing the message before the authentication succeeds (MAC&lt;br/&gt;verified) MUST not be done.&lt;br/&gt;&lt;br/&gt;The 4byte sha256 checksum is no longer required because the AEAD (MAC).&lt;br/&gt;&lt;br/&gt;Both peers MUST keep track of the message sequence number (uint32) of sent and&lt;br/&gt;received messages for building a 64-bit symmetric cipher IV.&lt;br/&gt;&lt;br/&gt;The command field MUST start with a byte that defines the length of the ASCII&lt;br/&gt;command string up to 12 chars (1 to 12) or a short command ID (see below).&lt;br/&gt;&lt;br/&gt;==== Short Command ID ====&lt;br/&gt;&lt;br/&gt;To save valuable bandwidth, the v2 message format supports message command&lt;br/&gt;short IDs for message types with high frequency. The ID/string mapping is a&lt;br/&gt;peer to peer arrangement and MAY be negotiated between the initiating and&lt;br/&gt;responding peer. A peer conforming to this proposal MUST support short IDs&lt;br/&gt;based on the table below and SHOULD use short command IDs for outgoing messages.&lt;br/&gt;&lt;br/&gt;{|class=&amp;#34;wikitable&amp;#34;&lt;br/&gt;! Number !! Command&lt;br/&gt;|-&lt;br/&gt;| 13 || INV&lt;br/&gt;|-&lt;br/&gt;| 14 || HEADERS&lt;br/&gt;|-&lt;br/&gt;| 15 || PING&lt;br/&gt;|-&lt;br/&gt;| 16 || PONG&lt;br/&gt;|-&lt;br/&gt;|}&lt;br/&gt;&lt;br/&gt;==== Length comparisons between v1 and v2 messages ====&lt;br/&gt;&lt;br/&gt;&amp;lt;pre&amp;gt;&lt;br/&gt;v1 in: 4(Magic)&#43;12(Command)&#43;4(MessageSize)&#43;4(Checksum)&#43;36(Payload) == 60&lt;br/&gt;v2 inv: 3(MessageSize&amp;amp;Flag)&#43;1(Command)&#43;36(Payload)&#43;16(MAC) == 56&lt;br/&gt;(93.33%)&lt;br/&gt;&amp;lt;/pre&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;pre&amp;gt;&lt;br/&gt;v1 ping: 4(Magic)&#43;12(Command)&#43;4(MessageSize)&#43;4(Checksum)&#43;8(Payload) == 32&lt;br/&gt;v2 pong: 3(MessageSize&amp;amp;Flag)&#43;1(Command)&#43;8(Payload)&#43;16(MAC) == 28&lt;br/&gt;(87.5%)&lt;br/&gt;&amp;lt;/pre&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;pre&amp;gt;&lt;br/&gt;v1 block: 4(Magic)&#43;12(Command)&#43;4(MessageSize)&#43;4(Checksum)&#43;1’048’576(Payload) = 1’048’600&lt;br/&gt;v2 block: 3(MessageSize&amp;amp;Flag)&#43;6(CommandStr)&#43;8(Payload)&#43;16(MAC) == 28 = 1’048’601&lt;br/&gt;(100.000095%)&lt;br/&gt;&amp;lt;/pre&amp;gt;&lt;br/&gt;&lt;br/&gt;=== Re-Keying ===&lt;br/&gt;&lt;br/&gt;Re-keying can be signaled by setting the most significant bit in the length&lt;br/&gt;field before encryption. A peer signaling a rekey MUST use the next key for&lt;br/&gt;encryption messages AFTER the message where the signaling has been done.&lt;br/&gt;&lt;br/&gt;A peer identifying a rekey by checking the most significant bit in the envelope&lt;br/&gt;length must use the next key for decrypt messages AFTER the message where the&lt;br/&gt;signaling has been detected.&lt;br/&gt;&lt;br/&gt;The next symmetric cipher key MUST be calculated by &amp;lt;code&amp;gt;SHA256(SHA256(session&lt;br/&gt;ID || old_symmetric_cipher_key))&amp;lt;/code&amp;gt; and the packet sequence number of the&lt;br/&gt;according encryption direction must be set to 0.&lt;br/&gt;&lt;br/&gt;Re-Keying interval is a peer policy with a minimum timespan of 10 seconds.&lt;br/&gt;&lt;br/&gt;The Re-Keying must be done after every 1GB of data sent (recommended by RFC4253&lt;br/&gt;SSH Transport) or if the last rekey was more than an hour ago.&lt;br/&gt;&lt;br/&gt;Peers calculate the counterparty limits and MUST disconnect immediately if a&lt;br/&gt;violation of the limits has been detected.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;=== Risks ===&lt;br/&gt;&lt;br/&gt;The encryption does not include an authentication scheme. This BIP does not&lt;br/&gt;cover a proposal to avoid MITM attacks during the encryption initialization.&lt;br/&gt;However, peers MUST show the session-id to the user on request which allows to&lt;br/&gt;identify a MITM by a manual verification on a secure channel.&lt;br/&gt;&lt;br/&gt;Optional authentication schemes may be covered by other proposals &amp;lt;ref&lt;br/&gt;name=&amp;#34;bip150&amp;#34;&amp;gt;[&lt;a href=&#34;https://github.com/bitcoin/bips/blob/master/bip-0150.mediawiki&#34;&gt;https://github.com/bitcoin/bips/blob/master/bip-0150.mediawiki&lt;/a&gt;&lt;br/&gt;BIP150]&amp;lt;/ref&amp;gt;.&lt;br/&gt;&lt;br/&gt;An attacker could delay or halt v2 protocol enforcement by providing a&lt;br/&gt;reasonable amount of peers not supporting the v2 protocol.&lt;br/&gt;&lt;br/&gt;== Compatibility ==&lt;br/&gt;&lt;br/&gt;This proposal is backward compatible (as long as not enforced). Non-supporting&lt;br/&gt;peers can still use unencrypted communications.&lt;br/&gt;&lt;br/&gt;== Reference implementation ==&lt;br/&gt;* Complete Bitcoin Core implementation: &lt;a href=&#34;https://github.com/bitcoin/bitcoin/pull/14032&#34;&gt;https://github.com/bitcoin/bitcoin/pull/14032&lt;/a&gt;&lt;br/&gt;* Reference implementation of the AEAD in C: &lt;a href=&#34;https://github.com/jonasschnelli/chacha20poly1305&#34;&gt;https://github.com/jonasschnelli/chacha20poly1305&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;== References ==&lt;br/&gt;&lt;br/&gt;&amp;lt;references/&amp;gt;&lt;br/&gt;&lt;br/&gt;== Acknowledgements ==&lt;br/&gt;* Pieter Wuille and Gregory Maxwell for most of the ideas in this BIP.&lt;br/&gt;* Tim Ruffing for the review and the hint for the enhancement of the symmetric&lt;br/&gt;key derivation&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;== Copyright ==&lt;br/&gt;This work is placed in the public domain.&lt;br/&gt;&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/20190322/307267fd/attachment-0001.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20190322/307267fd/attachment-0001.html&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: 833 bytes&lt;br/&gt;Desc: Message signed with OpenPGP&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20190322/307267fd/attachment-0001.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20190322/307267fd/attachment-0001.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T18:17:11Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqswjcyd30lfutt655v7ylugcqylnz2gftz09h2xdsjns46vh7yj5yqzyzdyv0s04wyk8vqndxxptg8jgjw3njtl8wyytrjcwsy4k5qxm7dqcdq76dc</id>
    
      <title type="html">📅 Original date posted:2018-09-07 📝 Original message:Hi Tim ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqswjcyd30lfutt655v7ylugcqylnz2gftz09h2xdsjns46vh7yj5yqzyzdyv0s04wyk8vqndxxptg8jgjw3njtl8wyytrjcwsy4k5qxm7dqcdq76dc" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsd87xp3ydjpmmyq4x0mty32j7fw5jjs27fu984j72v7mhza3kk55gqrk3rx&#39;&gt;nevent1q…k3rx&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2018-09-07&lt;br/&gt;📝 Original message:Hi Tim&lt;br/&gt;&lt;br/&gt;Thanks for the feedback.&lt;br/&gt;&lt;br/&gt;I agree with all of Gregs answers.&lt;br/&gt;&lt;br/&gt;&amp;gt; key. Together with the encrypted packet lengths, the entire data stream looks like random then,&lt;br/&gt;&amp;gt; which is pretty useful against censorship resistance for example. (The only exception is that the&lt;br/&gt;&amp;gt; stream will never start with the magic bytes.)&lt;br/&gt;&lt;br/&gt;All-or-none censorship attacks are out of scope for BIP151.&lt;br/&gt;We won’t achieve DPI robustness in this proposal and I think it should not be part of the p2p protocol.&lt;br/&gt;&lt;br/&gt;I think all-or-one censorship situations require an additional layer like TOR with OBFS4 (where AFAIK Eligator is used).&lt;br/&gt;Eventually Core does directly support non-tor routed pluggable transports (it&amp;#39;s partially already possible via SOCK proxy, but not on a gossip and plugin-launch level).&lt;br/&gt;&lt;br/&gt;This does not exclude that we should obfuscate the key exchange as good as we can without blowing up the implementation too much.&lt;br/&gt;&lt;br/&gt;The proposed encryption adds a robustness to the thread model with very little costs and low risks.&lt;br/&gt;&lt;br/&gt;&amp;gt;   &amp;#34;salt = BitcoinSharedSecret||INITIATOR_PUBKEY||RESPONDER_PUBKEY&amp;#34; should just avoid this issue.&lt;br/&gt;&lt;br/&gt;This is a good point and I’d like to see more concrete examples how this (the non dynamic salt) could be exploited.&lt;br/&gt;&lt;br/&gt;&amp;gt; Re-keying&lt;br/&gt;&amp;gt; =========&lt;br/&gt;&amp;gt; The problem with signalling re-keying in the length field is that the length field is not covered&lt;br/&gt;&amp;gt; by the MAC. So the attacker can flip the signalling bit. The resulting protocol is probably still&lt;br/&gt;&amp;gt; secure but the malleability is certainly not desirable.&lt;br/&gt;&lt;br/&gt;In ChaCha20Poly1305 at openssh, the length field is AAD, encrypted with a different key and part of the MAC.&lt;br/&gt;&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Deterministic rekeying rules may be better. Otherwise there will be implementations that rekey&lt;br/&gt;&amp;gt; every 10 seconds and implementations that just don&amp;#39;t rekey at all (rendering the 10 s rekeying&lt;br/&gt;&amp;gt; interval in the opposite direction useless). Different policies also make it possible to&lt;br/&gt;&amp;gt; fingerprint implementations. Another problem is that people will set their policies arbitrarily.&lt;br/&gt;&amp;gt; What&amp;#39;s better: 5 min or 30 min? I don&amp;#39;t know, but both are reasonable choices. (Thats&amp;#39;s very much&lt;br/&gt;&amp;gt; like discussions about ciphers... What&amp;#39;s better AES-GCM or ChaCha20/Poly1305? I don&amp;#39;t know, but&lt;br/&gt;&amp;gt; again both are reasonable choices.)&lt;br/&gt;&lt;br/&gt;The Rekey cost is two times a double-SHA256,… the costs of a rekey is similar to one or two v1 INV message creations.&lt;br/&gt;&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Symmetric crypto&lt;br/&gt;&amp;gt; ================&lt;br/&gt;&amp;gt; You call it chacha20-poly1305 at bitcoin but what&amp;#39;s the difference to the openssh then? Is the&lt;br/&gt;&amp;gt; idea to save a call to chacha here as you mentioned?&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; I didn&amp;#39;t think about this in detail: maybe there are a few meaningful cases where padding could&lt;br/&gt;&amp;gt; hide the message length without too much overhead. (I&amp;#39;m not convinced, just a random thought.)&lt;br/&gt;&lt;br/&gt;I think a new message type that could contain message &#43; pad would be trivial.&lt;br/&gt;Would this again be to obfuscate traffic patterns? Anti DPI is not the scope of BIP151.&lt;br/&gt;&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Misc&lt;br/&gt;&amp;gt; ====&lt;br/&gt;&amp;gt; &amp;#34;The ID/string mapping is a peer to peer arrangement and MAY be negotiated between the&lt;br/&gt;&amp;gt; requesting and responding peer.&amp;#34; I think that&amp;#39;s overly complicated. I suggest it should just be&lt;br/&gt;&amp;gt; written in stone, again to avoid complexity and to avoid fingerprinting. New implementations are&lt;br/&gt;&amp;gt; necessary anyway, so maybe just use IDs for anything? ASCII is nice if you want to debug your code&lt;br/&gt;&amp;gt; or some random network failure but that&amp;#39;s hard anyway when encryption is used.&lt;br/&gt;&lt;br/&gt;I wanted to avoid too much central planing here and only cover the ones where it&amp;#39;s most efficient (small messages that are used often).&lt;br/&gt;The ASCII commands are in itself somehow pseude-robust against collision.&lt;br/&gt;For a 1MB block message, using a 1-byte short ID (rather then a 6-byte ASCII command) would reduce the bandwidth requirement insignificant (99.99952%).&lt;br/&gt;&lt;br/&gt;If we would always have used short IDs in the past, there could have been a collision between XTIN, compact, sendheaders or so.&lt;br/&gt;&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; In general, the entire thing is a little bit underspecified. (I&amp;#39;m aware it&amp;#39;s just a draft.)&lt;br/&gt;&amp;gt; A few examples:&lt;br/&gt;&amp;gt; - What should a peer do if the MAC verification fails?&lt;br/&gt;&amp;gt; - What should a peer do if it receives an even key?&lt;br/&gt;&amp;gt; - &amp;#34;Processing the message before the authentication succeeds (MAC verified) MUST not be done.&amp;#34;&lt;br/&gt;&amp;gt; That should also apply to the ciphertext. (Or: What is a &amp;#34;message&amp;#34;?). It may be a good idea to&lt;br/&gt;&amp;gt; to refer to the openssh document or steal from it; it does a pretty good job.&lt;br/&gt;&amp;gt; - &amp;#34;Both peers MUST keep track of the message sequence number (uint32) of sent and received&lt;br/&gt;&amp;gt; messages for building a 64-bit symmetric cipher IV.&amp;#34; I think you mean nonce when you say IV?&lt;br/&gt;&amp;gt; - What is the initial value of the sequence number?&lt;br/&gt;&lt;br/&gt;Good points. Will make them more clear in the BIP.&lt;br/&gt;I was under the false impression that it is obvious to disconnect in those cases.&lt;br/&gt;&lt;br/&gt;&amp;gt; - How is a 64-bit nonce formed from one (two?) uint32?&lt;br/&gt;&lt;br/&gt;That’s specified in ChaCha20Poly1305 at openssh (&amp;#34;a nonce consisting of the packet sequence number encoded as a uint64“).&lt;br/&gt;But I’ll specified that more clear.&lt;br/&gt;&lt;br/&gt;&amp;gt; - What if the uint32 overflows?&lt;br/&gt;&lt;br/&gt;The max data before rekey is 1GB, AFAIK it is impossible to overflow.&lt;br/&gt;&lt;br/&gt;&amp;gt; - &amp;#34;Re-Keying interval is a peer policy with a minimum timespan of 10 seconds.&amp;#34; What if I receive&lt;br/&gt;&amp;gt; too many re-keying requests? Nothing or should I raise the DoS score?&lt;br/&gt;&lt;br/&gt;Current implementation proposal does a disconnect. With the risk of fingerprinting options, I think we can leave this open to the implementation?&lt;br/&gt;&lt;br/&gt;&amp;gt; - &amp;#34;The Re-Keying must be done after every 1GB of data sent or received&amp;#34; Hm, every peer updates its&lt;br/&gt;&amp;gt; own sending key, so this should just read &amp;#34;sent&amp;#34; instead of &amp;#34;sent or received“?&lt;br/&gt;&lt;br/&gt;Yes. Should probably be „sent“,… and eventually a paragraph that states that a peer should disconnect if the remote peer did not rekey within that limit.&lt;br/&gt;&lt;br/&gt;&amp;gt; Pseudocode could probably help here.&lt;br/&gt;&lt;br/&gt;Agree. Will try to add.&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: 833 bytes&lt;br/&gt;Desc: Message signed with OpenPGP&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20180907/348e23e8/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20180907/348e23e8/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T18:14:34Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsxhfrsjlqurh0sd5ya2nv76vtj8keve7rc74x2s3ak2g26fr3fzgczyzdyv0s04wyk8vqndxxptg8jgjw3njtl8wyytrjcwsy4k5qxm7dqcm74nv9</id>
    
      <title type="html">📅 Original date posted:2018-09-03 📝 Original message:Hi ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsxhfrsjlqurh0sd5ya2nv76vtj8keve7rc74x2s3ak2g26fr3fzgczyzdyv0s04wyk8vqndxxptg8jgjw3njtl8wyytrjcwsy4k5qxm7dqcm74nv9" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsqnwlmxccye6qtw439vn2wlnz7pkng0cfsl5qp3xrv8rlchx5uepsglj4k7&#39;&gt;nevent1q…j4k7&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2018-09-03&lt;br/&gt;📝 Original message:Hi&lt;br/&gt;&lt;br/&gt;During work on the implementation of BIP151 [1] I figured out that the current&lt;br/&gt;published proposal could be further optimized.&lt;br/&gt;&lt;br/&gt;I wrote an overhauled BIP151 specification with some – partially radical –&lt;br/&gt;changes.&lt;br/&gt;&lt;br/&gt;Now it’s unclear to me if this should be published under a new BIP nr. or if it&lt;br/&gt;is acceptable to change the existing 151 proposal.&lt;br/&gt;If a new BIP number would be required, I think withdrawing BIP151 should be&lt;br/&gt;done (which somehow indicates we should alter 151).&lt;br/&gt;&lt;br/&gt;The only BIP151 implementation I’m aware of is the one from Armory [2].&lt;br/&gt;BCoins implementation has been removed [3].&lt;br/&gt;&lt;br/&gt;The new proposal draft is available here:&lt;br/&gt;&lt;a href=&#34;https://gist.github.com/jonasschnelli/c530ea8421b8d0e80c51486325587c52&#34;&gt;https://gist.github.com/jonasschnelli/c530ea8421b8d0e80c51486325587c52&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Major changes&lt;br/&gt;=============&lt;br/&gt;- the encryption handshake no longer requires the v1 protocol, it’s a pure&lt;br/&gt;  32bytes-per-side „pseudorandom&amp;#34; key exchange that happens before anything else.&lt;br/&gt;- the multi message envelope has been removed.&lt;br/&gt;- a new NODE_ENCRYPTED service bit&lt;br/&gt;- the key derivation and what communication direction uses what key is now more&lt;br/&gt;  specific&lt;br/&gt;- the length of a packet uses now a 3-byte integer with 23 available bits&lt;br/&gt;- introduction of short-command-ID (ex.: uint8_t 13 == INV, etc.) which result in&lt;br/&gt;  some v2 messages require less bandwidth then v1&lt;br/&gt;- rekeying doesn’t require a message and can be signaled in the most&lt;br/&gt;  significant bit in the packet-size field&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Points that are in discussion and may be added to the BIP (or to a new one):&lt;br/&gt;&lt;br/&gt;Hybrid NewHope key exchange&lt;br/&gt;===========================&lt;br/&gt;The current ECDH key exchange is vulnerable to Shor’s algorithm and is thus not&lt;br/&gt;considered quantum-safe.&lt;br/&gt;Following TORs approach [4] by adding a NewHope [5] key-exchange the handshake&lt;br/&gt;protocol would very likely make the encryption PQ safe with little costs.&lt;br/&gt;There is also a straight forward implementation [6] from the NewHope team that&lt;br/&gt;has been submitted to NIST PQC project.&lt;br/&gt;&lt;br/&gt;Inefficiency of ChaCha20Poly1305 at openssh&lt;br/&gt;========================================&lt;br/&gt;The proposed AEAD could eventually be further optimized.&lt;br/&gt;ChaCha20Poly1305 at openssh uses at least three rounds of ChaCha20 which&lt;br/&gt;eventually can be reduced to two (messages below &amp;lt;=64 bytes [inv, ping,&lt;br/&gt;pong,...] only require one round of ChaCha20, but two for the Poly1305 key and&lt;br/&gt;the message length encryption where the Poly1305 key chacha round „throws away“&lt;br/&gt;32 bytes).&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;I would suggest that we don’t rehash discussions about the general&lt;br/&gt;concept of encrypting the traffic. This has already been discussed [7][8].&lt;br/&gt;&lt;br/&gt;I hope we can limit this thread to discuss further ideas for optimisation as well as&lt;br/&gt;technical details of the published proposal or its implementation.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;[1] &lt;a href=&#34;https://github.com/bitcoin/bitcoin/pull/14032&#34;&gt;https://github.com/bitcoin/bitcoin/pull/14032&lt;/a&gt;&lt;br/&gt;[2] &lt;a href=&#34;https://github.com/goatpig/BitcoinArmory/pull/510&#34;&gt;https://github.com/goatpig/BitcoinArmory/pull/510&lt;/a&gt;&lt;br/&gt;[3] &lt;a href=&#34;https://github.com/bcoin-org/bcoin/commit/41af7acfd68b0492a6442865afd439300708e662&#34;&gt;https://github.com/bcoin-org/bcoin/commit/41af7acfd68b0492a6442865afd439300708e662&lt;/a&gt;&lt;br/&gt;[4] &lt;a href=&#34;https://gitweb.torproject.org/user/isis/torspec.git/plain/proposals/XXX-newhope-hybrid-handshake.txt?h=draft/newhope&#34;&gt;https://gitweb.torproject.org/user/isis/torspec.git/plain/proposals/XXX-newhope-hybrid-handshake.txt?h=draft/newhope&lt;/a&gt;&lt;br/&gt;[5] &lt;a href=&#34;https://eprint.iacr.org/2015/1092&#34;&gt;https://eprint.iacr.org/2015/1092&lt;/a&gt;&lt;br/&gt;[6] &lt;a href=&#34;https://github.com/newhopecrypto/newhope&#34;&gt;https://github.com/newhopecrypto/newhope&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;[7] &lt;a href=&#34;https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2017-February/013565.html&#34;&gt;https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2017-February/013565.html&lt;/a&gt;&lt;br/&gt;[8] &lt;a href=&#34;https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2016-June/012826.html&#34;&gt;https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2016-June/012826.html&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Thanks&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: 833 bytes&lt;br/&gt;Desc: Message signed with OpenPGP&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20180903/82a75538/attachment-0001.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20180903/82a75538/attachment-0001.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T18:14:32Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsrjgysv3ldrp35j3y4zd9pqfaxcq0z6vm2zayvrgsefpht4gy9vegzyzdyv0s04wyk8vqndxxptg8jgjw3njtl8wyytrjcwsy4k5qxm7dqcjz8ytq</id>
    
      <title type="html">📅 Original date posted:2018-06-19 📝 Original message:I ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsrjgysv3ldrp35j3y4zd9pqfaxcq0z6vm2zayvrgsefpht4gy9vegzyzdyv0s04wyk8vqndxxptg8jgjw3njtl8wyytrjcwsy4k5qxm7dqcjz8ytq" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs29h5p9lmkuxqymta2aq6uk2l697r729lh9vv5v5229sl56zgwcms5u0f98&#39;&gt;nevent1q…0f98&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2018-06-19&lt;br/&gt;📝 Original message:I agree with matejcik’s point 1 to 3 and especially with point 4.&lt;br/&gt;The mandatory flag (or optional-flag) makes much sense to me.&lt;br/&gt;&lt;br/&gt;&amp;gt; -----------&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; In general, the standard is trying to be very space-conservative,&lt;br/&gt;&amp;gt; however is that really necessary? We would argue for clarity and ease of&lt;br/&gt;&amp;gt; use over space constraints. We think more straightforward approach is&lt;br/&gt;&amp;gt; desired, although more space demanding. What are the arguments to make&lt;br/&gt;&amp;gt; this as small as possible? If we understand correctly, this format is&lt;br/&gt;&amp;gt; not intended for blockchain nor for persistent storage, so size doesn’t&lt;br/&gt;&amp;gt; matter nearly as much.&lt;br/&gt;&lt;br/&gt;I don’t see any reasons why space would be an issue.&lt;br/&gt;&lt;br/&gt;HWWs probably can’t handle PBST natively since it is not optimised for&lt;br/&gt;presenting various informations in a signing-verification.&lt;br/&gt;&lt;br/&gt;A single stream-in of a PSBT through USB (or similar channel) will not work in&lt;br/&gt;many cases since HWW come often with very restrictive RAM constraints.&lt;br/&gt;&lt;br/&gt;Furthermore, I forget to mention in my last mail, that registering (or defining)&lt;br/&gt;a mime-type for PSBT would probably a great usability feature.&lt;br/&gt;(Send PSBT by email/messanger and with dbl-click to open feature, etc.)&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;/jonas&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: 833 bytes&lt;br/&gt;Desc: Message signed with OpenPGP&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20180619/c263f67b/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20180619/c263f67b/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T18:13:04Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsw6z6405uyfn5t7e6v8g94wzltvf0960p25z3hyndtkcxgdqlt6zgzyzdyv0s04wyk8vqndxxptg8jgjw3njtl8wyytrjcwsy4k5qxm7dqcuqwh25</id>
    
      <title type="html">📅 Original date posted:2018-06-19 📝 Original message:&amp;gt; * ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsw6z6405uyfn5t7e6v8g94wzltvf0960p25z3hyndtkcxgdqlt6zgzyzdyv0s04wyk8vqndxxptg8jgjw3njtl8wyytrjcwsy4k5qxm7dqcuqwh25" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsvqp4lej443h0urwnq6y0xcc2pukhzfehm2xw9sh2na38ppuzmhfgvfvy4f&#39;&gt;nevent1q…vy4f&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2018-06-19&lt;br/&gt;📝 Original message:&amp;gt; * Key-value map model or set model.&lt;br/&gt;&amp;gt; * Ability for Combiners to verify two PSBT are for the same transaction&lt;br/&gt;&amp;gt; * Optional signing&lt;br/&gt;&amp;gt; * Derivation from xpub or fingerprint&lt;br/&gt;&amp;gt; * Generic key offset derivation&lt;br/&gt;&amp;gt; * Hex encoding?&lt;br/&gt;&lt;br/&gt;I think all of Pieters points are valid and reasonable thought, though I’m unsure if it would be worth changing the existing-implementation-breaking things like the k/v set model.&lt;br/&gt;AFAIK things like non-hex-encoding or generic key offset derivation are extensions and would not break existing implementations.&lt;br/&gt;&lt;br/&gt;Further thoughts on BIP174 from my side.&lt;br/&gt;&lt;br/&gt;Key derivation in multisig:&lt;br/&gt;From my understanding, the signers and the creator must have agreed – in advance to the PSBT use case – on a key derivation scheme.&lt;br/&gt;BIP32 derivation is assumed, but may not always be the case.&lt;br/&gt;Sharing xpubs (the chaincode) may be a concern in non-trust-relationships between signer(s) and the creator (regarding Pieters xpub/fingerprint concerns).&lt;br/&gt;Providing the type 0x03, the bip32 derivation path is one form of a support to faster (or computational possible) derivation of the required keys for signing a particular input.&lt;br/&gt;From my point of view, it is a support of additional metadata shared between creator and signer and provided from the creator to the signer for faster (or computation possible) key deviation.&lt;br/&gt;&lt;br/&gt;I think it could be more flexible (generic) in BIP174.&lt;br/&gt;It could be just a single child key {32-bit int}, or just a keypath ({32-bit int}]{32-bit int}…) which is very likely sufficient for a HWW to derive the relevant key without the creation of a lookup-window or other „maps&amp;#34;.&lt;br/&gt;It could even be an enciphered payload which was shared during address/redeem-script generation and „loops“ back during a signing request.&lt;br/&gt;&lt;br/&gt;Maybe I’m overcomplicating things, but for practical multisig with HWWs, a simple BIP32-child-key-index or BIP32-keypath derivation support field should be sufficient.&lt;br/&gt;A generic „derivation support field“, provided from the signer to the creator during address-generation that just „loops“ back during the PSBT use-cases is probably a overkill.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Thanks&lt;br/&gt;—&lt;br/&gt;/jonas&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: 833 bytes&lt;br/&gt;Desc: Message signed with OpenPGP&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20180619/e76fa257/attachment-0001.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20180619/e76fa257/attachment-0001.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T18:13:03Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsrpzvjrfq75duzythn6feyrh22y8p5jfc7d6fn25f0dwc7ztwv82czyzdyv0s04wyk8vqndxxptg8jgjw3njtl8wyytrjcwsy4k5qxm7dqc5506h8</id>
    
      <title type="html">📅 Original date posted:2018-06-03 📝 Original message:&amp;gt; I ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsrpzvjrfq75duzythn6feyrh22y8p5jfc7d6fn25f0dwc7ztwv82czyzdyv0s04wyk8vqndxxptg8jgjw3njtl8wyytrjcwsy4k5qxm7dqc5506h8" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsdz0ah22gfkqcztxnsmr699zda2a2a9zfrwemu2d58azy0mavkm2s3gtlta&#39;&gt;nevent1q…tlta&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2018-06-03&lt;br/&gt;📝 Original message:&amp;gt; I have some concerns about the use of Bech32. It is designed for&lt;br/&gt;&amp;gt; detecting 3 errors up to length 1023 (but is then picked specifically&lt;br/&gt;&amp;gt; to support 4 errors up to length 89). However, for error correction&lt;br/&gt;&amp;gt; this translates to just being able to efficiently correct 1 error&lt;br/&gt;&amp;gt; (3/2, rounded down) up to length 1023. You can of course always try&lt;br/&gt;&amp;gt; all combinations of up to N changes to the input (for any N), testing&lt;br/&gt;&amp;gt; the checksum, and comparing the results against the UTXO set or other&lt;br/&gt;&amp;gt; wallet information that may have been recovered. However, the checksum&lt;br/&gt;&amp;gt; at best gives you a small constant speedup here, not a fundamentally&lt;br/&gt;&amp;gt; improved way for recovery.&lt;br/&gt;&lt;br/&gt;Thanks Peter&lt;br/&gt;&lt;br/&gt;I removed the part in the proposals that made false claims about the error&lt;br/&gt;correction or cpu-intense key recovery.&lt;br/&gt;&lt;br/&gt;I wrote some test code and figured out that my Core i7 machine can&lt;br/&gt;do 31’775 operations per seconds of a addr-derivation-comparison&lt;br/&gt;(bech32 decode, bip32 ckd, hash160, Base58check).&lt;br/&gt;This is non-optimized code running non-parallelized.&lt;br/&gt;&lt;br/&gt;Just in case someone wants to do more math here.&lt;br/&gt;&lt;br/&gt;Without knowing to much about BCHs, ideally there would be a code that&lt;br/&gt;includes the fact that computational costs for error correction can be very&lt;br/&gt;high during a disaster recovery and that we can probably assume that the&lt;br/&gt;user can provide a derivation element like a used address or pubkey.&lt;br/&gt;&lt;br/&gt;Deriving one million child keys and comparing them against an address&lt;br/&gt;table will take less than a minute on consumer systems.&lt;br/&gt;&lt;br/&gt;&amp;gt; * correct 7 errors = 26 checksum characters (~ length * 1.25)&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; So it really boils down to a trade-off between length of the code, and&lt;br/&gt;&amp;gt; recovery properties.&lt;br/&gt;&lt;br/&gt;I think 5% error correction (7 errors at 555bits) with a 26 char checksum is&lt;br/&gt;probably an acceptable tradeoff.&lt;br/&gt;&lt;br/&gt;Resulting string with 26 checksum chars (mockup):&lt;br/&gt;xp1qqqqqq8z4rsgv54z9a92yla4m2yrsqdlwdl7gn6qldvwkuh3zrg66z8ad2snf832tgaxcuv3kmwugzl5x8wtnkj2q3a03ky0kg8p7dvv4czpjqgvv4zgnvv4zgnvv4zgnvv4zgngn&lt;br/&gt;(140 chars)&lt;br/&gt;&lt;br/&gt;Versus the bech32 (6 char checksum):&lt;br/&gt;xp1qqqqqq8z4rsgv54z9a92yla4m2yrsqdlwdl7gn6qldvwkuh3zrg66z8ad2snf832tgaxcuv3kmwugzl5x8wtnkj2q3a03ky0kg8p7dvv4czpjqgvv4zgn&lt;br/&gt;(120 chars)&lt;br/&gt;&lt;br/&gt;Versus an xpriv:&lt;br/&gt;xprv9wHokC2KXdTSpEepFcu53hMDUHYfAtTaLEJEMyxBPAMf78hJg17WhL5FyeDUQH5KWmGjGgEb2j74gsZqgupWpPbZgP6uFmP8MYEy5BNbyET&lt;br/&gt;(111 chars)&lt;br/&gt;&lt;br/&gt;Not sure if the additional 20 characters make the UX worse.&lt;br/&gt;Typing in &#43;20 chars in a disaster recovery is probably acceptable.&lt;br/&gt;&lt;br/&gt;&amp;gt; If there is interest, I can construct a code &#43; implementation for any&lt;br/&gt;&amp;gt; of these in a few days probably, once the requirements are clear.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Yes. Please.&lt;br/&gt;Lets first wait for more feedback about the error robustness though.&lt;br/&gt;&lt;br/&gt;Thanks&lt;br/&gt;-&lt;br/&gt;Jonas&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: 833 bytes&lt;br/&gt;Desc: Message signed with OpenPGP&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20180603/2669b658/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20180603/2669b658/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T18:12:47Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsquaseaskata686eqnuguerlux7lufprue9ywps30vndfvnx7xt9qzyzdyv0s04wyk8vqndxxptg8jgjw3njtl8wyytrjcwsy4k5qxm7dqcvrlttr</id>
    
      <title type="html">📅 Original date posted:2018-06-03 📝 Original message:Hi The ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsquaseaskata686eqnuguerlux7lufprue9ywps30vndfvnx7xt9qzyzdyv0s04wyk8vqndxxptg8jgjw3njtl8wyytrjcwsy4k5qxm7dqcvrlttr" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsglds4jjyxtps0yh7kk9unu5ft4d4ut56ux8hmgn5uzxyv3h3n36q7h2r9u&#39;&gt;nevent1q…2r9u&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2018-06-03&lt;br/&gt;📝 Original message:Hi&lt;br/&gt;&lt;br/&gt;The BIP proposal is now available here:&lt;br/&gt;&lt;a href=&#34;https://gist.github.com/jonasschnelli/68a2a5a5a5b796dc9992f432e794d719&#34;&gt;https://gist.github.com/jonasschnelli/68a2a5a5a5b796dc9992f432e794d719&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Reference C code is available here:&lt;br/&gt;&lt;a href=&#34;https://github.com/jonasschnelli/bech32_keys&#34;&gt;https://github.com/jonasschnelli/bech32_keys&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Feedback, criticism, etc. welcome!&lt;br/&gt;&lt;br/&gt;Thanks&lt;br/&gt;—&lt;br/&gt;Jonas&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: 833 bytes&lt;br/&gt;Desc: Message signed with OpenPGP&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20180603/32ff5291/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20180603/32ff5291/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T18:12:47Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsf7e5pa4pnrcu785f2j4sausa0msrtr288fhhqwh02k09n58eeexszyzdyv0s04wyk8vqndxxptg8jgjw3njtl8wyytrjcwsy4k5qxm7dqc4rc4z6</id>
    
      <title type="html">📅 Original date posted:2018-05-30 📝 Original message:Hi ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsf7e5pa4pnrcu785f2j4sausa0msrtr288fhhqwh02k09n58eeexszyzdyv0s04wyk8vqndxxptg8jgjw3njtl8wyytrjcwsy4k5qxm7dqc4rc4z6" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsykw0pwh70vactygrpcr0r04r3jket67gnah2es09dy68r79syvqcqy7jun&#39;&gt;nevent1q…7jun&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2018-05-30&lt;br/&gt;📝 Original message:Hi&lt;br/&gt;&lt;br/&gt;&amp;gt; - Visually Comparing two keys to find if they are same (Important)&lt;br/&gt;&amp;gt; - Different wallet software could set different birthday/gap limit. creating different xpub/xprv for the same set of mathematically derived individual keys. This removes the decoupling between key and wallet metadata&lt;br/&gt;&lt;br/&gt;What would be the downside of encoding the same key with different metadata (resulting in different &amp;#34;visual strings“)?&lt;br/&gt;If you import it into the same software, it would be trivial to detect it. If you import it into another software, it probably doesn’t matter.&lt;br/&gt;&lt;br/&gt;Visual comparing is eventually a broken concept (agree with Greg) and I doubt that this property is important, and IMHO basic metadata seems more important then this - very likely irrelevant - visual property.&lt;br/&gt;&lt;br/&gt;Also, I think a recovery based on a sole xpriv (or &#43; limited amount of meta-data as described in this proposal) is a disaster recovery (or forensic recovery).&lt;br/&gt;&lt;br/&gt;Long term, I would wish, if wallet-metadata including transaction based user metadata would be backed up - after encrypted with a key that can be derived from the seed - in a way, where you need the seed to recover that backup thus it can be stored in cheap, insecure spaces.&lt;br/&gt;&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; In fact, same could be argued to add birthday to WIF private key format to let wallet discover funds faster.&lt;br/&gt;&amp;gt; &lt;br/&gt;&lt;br/&gt;The proposal I made can be seen as a replacement for WIF (it can replace WIF and xpriv/xpub) since it can encode a single private key into 275bits (still pretty short Bech32 string).&lt;br/&gt;&lt;br/&gt;/jonas&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: 833 bytes&lt;br/&gt;Desc: Message signed with OpenPGP&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20180530/ff430ac7/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20180530/ff430ac7/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T18:12:32Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsp32gv9kxyrxlts3uceddn9sgp9c6jfszuknls2crvqk26s2ph6lgzyzdyv0s04wyk8vqndxxptg8jgjw3njtl8wyytrjcwsy4k5qxm7dqch40fuf</id>
    
      <title type="html">📅 Original date posted:2018-05-29 📝 Original message:Hi ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsp32gv9kxyrxlts3uceddn9sgp9c6jfszuknls2crvqk26s2ph6lgzyzdyv0s04wyk8vqndxxptg8jgjw3njtl8wyytrjcwsy4k5qxm7dqch40fuf" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs8nx0avx0pth4y965x7srlxz5r3z9j2jj4v3xtt5dxuykrxhq7zwsnsplcu&#39;&gt;nevent1q…plcu&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2018-05-29&lt;br/&gt;📝 Original message:Hi&lt;br/&gt;&lt;br/&gt;Extended public and private keys are defined in BIP32 [1].&lt;br/&gt;&lt;br/&gt;Encoded extended private keys should not be confused with a wallet „seed“&lt;br/&gt;(proposals like BIP39) while they can also partially serve the purpose to&lt;br/&gt;„seed“ a wallet (there may be an overlap in the use-case).&lt;br/&gt;&lt;br/&gt;Recovering a wallet by its extended private master key (xpriv; may or may not&lt;br/&gt;be at depth 0) is a complex task with risks of failing to recover all available&lt;br/&gt;funds.&lt;br/&gt;&lt;br/&gt;It may be reasonable to consider that recovering a wallet purely based on the&lt;br/&gt;existence of an extended private master key is a forensic funds recovery&lt;br/&gt;process and should probably be the last resort in case of a backup-recovery&lt;br/&gt;situation. A simple example here is, that it was/is possible to have used an&lt;br/&gt;xpriv (referring to extended private master key) in production that is/was used&lt;br/&gt;to derive BIP45 based P2SH multisig addresses (1of1, used by Bitpays BWS for&lt;br/&gt;while), later used for bare BIP45ish multisig 1of1 as well as for P2PKH after&lt;br/&gt;BIP44 &amp;amp; vanilla BIP32 P2WPKH (m/0’/k’).&lt;br/&gt;I’m not aware of any wallet that would recover 100% of those funds, leading to&lt;br/&gt;the risk that forwarding the unspents and destroying the extended master key&lt;br/&gt;may result in coins forever lost.&lt;br/&gt;&lt;br/&gt;The case above may be an edge case, but I’m generally under the assumption that&lt;br/&gt;recovering funds based on the sole existence of an xpriv (or seed) without further&lt;br/&gt;metadata is a fragile concept.&lt;br/&gt;&lt;br/&gt;Second, the missing birthday-metadata tend to lead to non-optimal blockchain&lt;br/&gt;scans (eventually increased p2p traffic). Recovering funds can take hours.&lt;br/&gt;&lt;br/&gt;Additionally, the BIP44 gap limit seems to be a weak construct. The current gap&lt;br/&gt;limit in BIP44 is set to 20 [2] which basically means, handing out more then 20&lt;br/&gt;incoming payment requests (addresses) results in taking the risks that funds&lt;br/&gt;may be destroyed (or at least not detected) during a recovery.&lt;br/&gt;The Gap limit value may also depend on the use case, but the current proposals&lt;br/&gt;do not allow to set an arbitrary value. High load merchants very likely need a&lt;br/&gt;different gap limit value then individuals create a transaction once a year.&lt;br/&gt;&lt;br/&gt;During creation time of an xpriv/xpub, it is impossible to know if the created&lt;br/&gt;xpriv will be used for an unforeseen derivation scheme. Future proposals may&lt;br/&gt;want to limit an extended key to a single derivation scheme.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;This is an early draft in order to allow discussion that may lead to a possible&lt;br/&gt;proposal.&lt;br/&gt;This proposals could also make BIP 178 obsolete since it can be replace the&lt;br/&gt;WIF[3] standard.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Thanks for feedback&lt;br/&gt;/jonas&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;------------------------------------&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Titel&lt;br/&gt;######&lt;br/&gt;Bech32 encoded key material including metadata&lt;br/&gt;&lt;br/&gt;Abstract&lt;br/&gt;########&lt;br/&gt;An error tolerant encoding format for key material up to 520bits with a minimal&lt;br/&gt;amount of metadata.&lt;br/&gt;&lt;br/&gt;Motivation&lt;br/&gt;##########&lt;br/&gt;(See above; intro text)&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Specification&lt;br/&gt;#############&lt;br/&gt;&lt;br/&gt;## Serialization format&lt;br/&gt;&lt;br/&gt;1 bit version bit&lt;br/&gt;15 bits (bit 1 to 16) key-birthday (0-32767)&lt;br/&gt;(12 bit gap limit)&lt;br/&gt;3 or 5 bits script type&lt;br/&gt;256 or 512 or 520 bits key material&lt;br/&gt;= Total 275, 545, 553 bits&lt;br/&gt;&lt;br/&gt;The initial version bit allows extending the serialization-format in future.&lt;br/&gt;The encoding format must hint the total length and thus allow to calculate the&lt;br/&gt;length of the key material.&lt;br/&gt;&lt;br/&gt;The total length for 256 or 512 bit key material is optimised for Bech32 (power&lt;br/&gt;of 5).&lt;br/&gt;&lt;br/&gt;### Key material&lt;br/&gt;If the key material length is 520 bits, it must contain an extended public key&lt;br/&gt;If the key material length is 512 bits, it must contain an extended private key&lt;br/&gt;Key material length other then 256, 512, 520 bits and invalid.&lt;br/&gt;&lt;br/&gt;If 520 bits are present, first 256 bits are the BIP32 chain code, to second 264&lt;br/&gt;bits (33 bytes) define the public key (according to BIP32)&lt;br/&gt;&lt;br/&gt;If 512 bits are present, first 256 bits are the BIP32 chain code, to second 256&lt;br/&gt;bits define the private key&lt;br/&gt;&lt;br/&gt;If 256 bits are present, those bits represent a pure private key (or seed)&lt;br/&gt;&lt;br/&gt;### Key birthday&lt;br/&gt;A 15 bit timestamp expressed in days since genesis (valid up to ~2098). The&lt;br/&gt;birthday must be set to the first possible derivation of the according extended&lt;br/&gt;key, if unknown, the used seed birthday must be used. If both unknown, 0&lt;br/&gt;(16x0bit) must be used.&lt;br/&gt;&lt;br/&gt;### Gap limit delta&lt;br/&gt;12 bits, results in a possible range from 0 to 4095.&lt;br/&gt;&lt;br/&gt;If the total decoded serialization length is 275 bits (decode) or if the key&lt;br/&gt;material is 256 bits (encode), the gap limit must not be present.&lt;br/&gt;&lt;br/&gt;The base gap limit value is 20 (to disallow insane gap limits). The final gap&lt;br/&gt;limit is the base value &#43; the gap limit delta stored in those 12 bits.&lt;br/&gt;Key derivation gap limit must not be exceeded when deriving child keys and must&lt;br/&gt;be respected during transaction rescans.&lt;br/&gt;Child key derivation must not be possible if gap limit is hit.&lt;br/&gt;&lt;br/&gt;### Script type restriction&lt;br/&gt;3 or 5 bits (range 0-7 / 0-31)&lt;br/&gt;0 no restriction&lt;br/&gt;1 P2PKH compressed&lt;br/&gt;2 P2PKH | P2SH&lt;br/&gt;3 P2WPKH P2WSH nested in P2SH&lt;br/&gt;4 P2WPKH | P2WSH&lt;br/&gt;&lt;br/&gt;If the total decoded serialization length is 275 bits (decode) or if the key&lt;br/&gt;material is 256 bits (encode), 3 bits are used for the script type. 5 bits are&lt;br/&gt;used for key material with the size of 512, 520 bits.&lt;br/&gt;&lt;br/&gt;If the script type restriction is set, the according extended key must only be&lt;br/&gt;used to derive addresses with the selected script type.&lt;br/&gt;This does not stands in contradiction to derivation path proposals ([4]). It&lt;br/&gt;does allow to derive and encode an extended key at a keypath where users assume&lt;br/&gt;restricted script types in derivation due to other supported proposals.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Encoding&lt;br/&gt;########&lt;br/&gt;&lt;br/&gt;Bech32 must be used as encoding format (see the Bech32 rational [5]). Encoding&lt;br/&gt;545 or 553 bits (results in 109 resp. 111 x 5 bits) will exceed the Bech32 property of a&lt;br/&gt;guaranteed detection of 4 errors (only 3 are).&lt;br/&gt;It is possible that there are more efficient BCH codes, especially for encoding&lt;br/&gt;extended private keys. Since a Bech32 implementation needs to be present in&lt;br/&gt;modern Bitcoin software, re-using Bech32 will allow to migrate to this proposal&lt;br/&gt;with a minimal implementation effort.&lt;br/&gt;Forensic, cpu-intense key-recovery (including brute-force techniques) may allow&lt;br/&gt;to recover keys beyond the guaranteed error detection limits.&lt;br/&gt;&lt;br/&gt;Bech32 HRPs&lt;br/&gt;Mainnet Private Extended: xp&lt;br/&gt;Mainnet Public Extended: xpu&lt;br/&gt;Testnet Private Extended: tp&lt;br/&gt;Testnet Public Extended: tpu&lt;br/&gt;Mainnet Key: pk-&lt;br/&gt;Testnet Key: tk-&lt;br/&gt;&lt;br/&gt;Compatibility&lt;br/&gt;###########&lt;br/&gt;Only new software will be able to use these serialization and encoding format.&lt;br/&gt;&lt;br/&gt;References&lt;br/&gt;##########&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;[1] &lt;a href=&#34;https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki&#34;&gt;https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki&lt;/a&gt; &amp;lt;&lt;a href=&#34;https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki&amp;gt&#34;&gt;https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki&amp;gt&lt;/a&gt;;&lt;br/&gt;[2] &lt;a href=&#34;https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki&#34;&gt;https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki&lt;/a&gt;&lt;br/&gt;[3] &lt;a href=&#34;https://github.com/bitcoin/bips/blob/master/bip-0178.mediawiki&#34;&gt;https://github.com/bitcoin/bips/blob/master/bip-0178.mediawiki&lt;/a&gt;&lt;br/&gt;[4] &lt;a href=&#34;https://github.com/bitcoin/bips/blob/master/bip-0049.mediawiki&#34;&gt;https://github.com/bitcoin/bips/blob/master/bip-0049.mediawiki&lt;/a&gt;&lt;br/&gt;[5] &lt;a href=&#34;https://github.com/bitcoin/bips/blob/master/bip-0173.mediawiki#rationale&#34;&gt;https://github.com/bitcoin/bips/blob/master/bip-0173.mediawiki#rationale&lt;/a&gt;&lt;br/&gt;&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/20180529/d2332b98/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20180529/d2332b98/attachment.html&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: 833 bytes&lt;br/&gt;Desc: Message signed with OpenPGP&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20180529/d2332b98/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20180529/d2332b98/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T18:12:30Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsr3k3xclespqtnlvzt73jv3ajk5sfg5fwj37tgfaamgv3u5vfevxgzyzdyv0s04wyk8vqndxxptg8jgjw3njtl8wyytrjcwsy4k5qxm7dqcv57ufc</id>
    
      <title type="html">📅 Original date posted:2017-04-18 📝 Original message:Hi ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsr3k3xclespqtnlvzt73jv3ajk5sfg5fwj37tgfaamgv3u5vfevxgzyzdyv0s04wyk8vqndxxptg8jgjw3njtl8wyytrjcwsy4k5qxm7dqcv57ufc" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqszzw606ydh5nh24ttq8cjawahjnlhrstg0fzcfd8lcczgenqzw7wsv8qhel&#39;&gt;nevent1q…qhel&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2017-04-18&lt;br/&gt;📝 Original message:Hi Dave&lt;br/&gt;&lt;br/&gt;&amp;gt; A node that stores the full blockchain (I will use the term archival node) requires over 100GB of disk space, which I believe is one of the most significant barriers to more people running full nodes. And I believe the ecosystem would benefit substantially if more users were running full nodes.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Thanks for your proposal.&lt;br/&gt;&lt;br/&gt;I agree that 100GB of data may be cumbersome for some systems, especially if you target end user systems (Laptops/Desktops). Though, in my opinion, for those systems, CPU consumption is the biggest UX blocker.&lt;br/&gt;Bootstrapping a full node on a decent consumer system with default parameters takes days, and, during this period, you probably run at full CPU capacity and you will be disturbed by constant fan noise. Standard tasks may be impossible because your system will be slowed down to a point where even word processing may get difficult.&lt;br/&gt;This is because Core (with its default settings) is made to sync as fast as possible.&lt;br/&gt;&lt;br/&gt;Once you have verified the chain and you reach the chain tip, indeed, it will be much better (until you shutdown for a couple of days/hours and have to re-sync/catch-up).&lt;br/&gt;&lt;br/&gt;1. I agree that we need to have a way for pruned nodes to partially serve historical blocks.&lt;br/&gt;My personal measurements told me that around ~80% of historical block serving are between tip and -1’000 blocks.&lt;br/&gt;Currently, Core nodes have only two modes of operations, „server all historical blocks“ or „none“.&lt;br/&gt;This makes little sense especially if you prune to a target size of, lets say, 80GB (~80% of the chain).&lt;br/&gt;Ideally, there would be a mode where your full node can signal a third mode „I keep the last 1000 blocks“ (or make this more dynamic).&lt;br/&gt;&lt;br/&gt;2. Bootstrapping new peers&lt;br/&gt;I’m not sure if full nodes must be the single point of historical data storage. Full nodes provide a valuable service (verification, relay, filtering, etc.). I’m not sure if serving historical blocks is one of them. Historical blocks could be made available on CDN’s or other file storage networks. You are going to verify them anyways,... the serving part is pure data storage.&lt;br/&gt;I’m also pretty sure that some users have stopping running full nodes because their upstream bandwidth consumption (because of serving historical blocks) was getting intolerable.&lt;br/&gt;Especially „consumer“ peers must have been hit by this (little experience in how to reduce traffic, upstream in general is bad for consumers-connections, little resources in general).&lt;br/&gt;&lt;br/&gt;Having a second option built into full nodes (or as an external bootstrap service/app) how to download historical blocks during bootstrapping could probably be a relieve for &amp;#34;small nodes“.&lt;br/&gt;It could be a little daemon that downloads historical blocks from CDN’s, etc. and feeds them into your full node over p2p/8333 and kickstarts your bootstrapping without bothering valuable peers.&lt;br/&gt;Or, the alternative download, could be built into the full nodes main logic.&lt;br/&gt;And, if it wasn’t obvious, this must not bypass the verification!&lt;br/&gt;&lt;br/&gt;I’m also aware of the downsides of this. This can eventually reduce decentralisation of the storage of historical bitcoin blockchain data and – eventually – increase the upstream bandwidth of peers willing to serve historical blocks (especially in a transition phase to a second „download“-option).&lt;br/&gt;Maybe it’s a tradeoff between reducing decentralisation by killing low resource nodes because serving historical blocks is getting too resource-intense _or_ reducing decentralisation by moving some percentage of the historical data storage away from the bitcoin p2p network.&lt;br/&gt;The later seems more promising to me.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;To your proposal:&lt;br/&gt;- Isn’t there a tiny finger-printing element if peers have to pick an segmentation index?&lt;br/&gt;- SPV bloom filter clients can’t use fragmented blocks to filter txns? Right? How could they avoid connecting to those peers?&lt;br/&gt;&lt;br/&gt;&amp;lt;/jonas&amp;gt;&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/20170418/9cf44da5/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20170418/9cf44da5/attachment.html&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: 833 bytes&lt;br/&gt;Desc: Message signed with OpenPGP&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20170418/9cf44da5/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20170418/9cf44da5/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T18:00:23Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs93h60jl5jrs2s3re0uzjyzrhtjvjujtqgehtrcr2mwggktpe4l5szyzdyv0s04wyk8vqndxxptg8jgjw3njtl8wyytrjcwsy4k5qxm7dqc60emaq</id>
    
      <title type="html">📅 Original date posted:2017-03-06 📝 Original message:I like ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs93h60jl5jrs2s3re0uzjyzrhtjvjujtqgehtrcr2mwggktpe4l5szyzdyv0s04wyk8vqndxxptg8jgjw3njtl8wyytrjcwsy4k5qxm7dqc60emaq" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs94lmq5xenudxqtqdh3y7h76uafyf9m45vpcmmlvla2d4pkn93axg3msk7t&#39;&gt;nevent1q…sk7t&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2017-03-06&lt;br/&gt;📝 Original message:I like the BIP. It can reduce workload during implementation on both sides of the API and it allows to show the user more data without implementing tons of proprietary APIs.&lt;br/&gt;It’s not directly Bitcoin specific (example: BIP32 is also not Bitcoin specific), but I think a BIP is the right way for this.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt;&amp;gt; Apart from that, my feeling is that it could be simplified. Is&lt;br/&gt;&amp;gt;&amp;gt; longpolling useful?&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; I would think so, at least for Bitcoin since rates can change significantly in&lt;br/&gt;&amp;gt; a short period of time (or can they anymore? I haven&amp;#39;t really watched lately.)&lt;br/&gt;&lt;br/&gt;Long polling is a simple push concept that works on most type of network configurations (NAT, proxy, etc.).&lt;br/&gt;The only concern I see here is that an public API will quickly fill up the maximum allowed httpd connections.&lt;br/&gt;But it’s solvable.&lt;br/&gt;&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt;&amp;gt; And is the historical rate thing really necessary for typical applications?&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; When displaying historical transactions, it doesn&amp;#39;t really make sense to use&lt;br/&gt;&amp;gt; the current market rate, but rather the market rate at the time the payment&lt;br/&gt;&amp;gt; was made. While wallets might simply cache it with the transaction, it would&lt;br/&gt;&amp;gt; be perhaps nicer if it could be automatically restored for seed-only&lt;br/&gt;&amp;gt; recoveries. In any case, if a service/wallet doesn&amp;#39;t want to provide/use&lt;br/&gt;&amp;gt; historical information, it can simply not implement that part.&lt;br/&gt;&lt;br/&gt;I’m also not sure how useful historical datapoint are. I don’t think the use case where someone wants to restore from a seed and get all exchange rates during the time of the payment is something users are looking for.&lt;br/&gt;However, It’s optional.&lt;br/&gt;&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt;&amp;gt; If yes, the client should be allowed to decide on which time scale the&lt;br/&gt;&amp;gt;&amp;gt; data should be. (tick, min, hour, day, ...) That goes together with&lt;br/&gt;&amp;gt;&amp;gt; clearly defining the type field (something like low, high, open, close,&lt;br/&gt;&amp;gt;&amp;gt; but without flexibility). Think of a candle-stick chart basically.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; How is the current draft insufficient for this?&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt;&amp;gt; Also, pushing may be more appropriate for &amp;#34;current&amp;#34; rates than polling.&lt;br/&gt;&amp;gt;&amp;gt; Then no polling interval is necessary. On the other hand, this adds&lt;br/&gt;&amp;gt;&amp;gt; complexity in other places, e.g., state.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Pushing is what longpolling does.&lt;br/&gt;&lt;br/&gt;Agree with Luke. A „real“ push (though I’d say long-polling is the real push, AFAIK it’s also the technique behind Apple’s iOS push channel) would require a complex server setup that complicates many things like load-balancer, mem-caching, etc.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;/jonas&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: 833 bytes&lt;br/&gt;Desc: Message signed with OpenPGP&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20170306/ec223a69/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20170306/ec223a69/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T17:56:53Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs25jmztknwwxfw0llzxc9rkthkaracek3x8jyjst7edmkrm8j4d4qzyzdyv0s04wyk8vqndxxptg8jgjw3njtl8wyytrjcwsy4k5qxm7dqcpm86ge</id>
    
      <title type="html">📅 Original date posted:2017-01-04 📝 Original message:Hi ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs25jmztknwwxfw0llzxc9rkthkaracek3x8jyjst7edmkrm8j4d4qzyzdyv0s04wyk8vqndxxptg8jgjw3njtl8wyytrjcwsy4k5qxm7dqcpm86ge" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsf6h2qxfrf6k3fskddlq8tq8sgs84vxhvnh7jppk756stkmsfcf9q429jjv&#39;&gt;nevent1q…9jjv&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2017-01-04&lt;br/&gt;📝 Original message:Hi&lt;br/&gt;&lt;br/&gt;&amp;gt; Unconfirmed transactions are incredibly important for real world use.&lt;br/&gt;&amp;gt; Merchants for instance are willing to accept credit card payments of&lt;br/&gt;&amp;gt; thousands of dollars and ship the goods despite the fact that the&lt;br/&gt;&amp;gt; transaction can be reversed up to 60 days later. There is a very large&lt;br/&gt;&amp;gt; cost to losing the ability to have instant transactions in many or&lt;br/&gt;&amp;gt; even most situations. This cost is typically well above the fraud risk. &lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; It&amp;#39;s important to recognize that bitcoin serves a wide variety of use&lt;br/&gt;&amp;gt; cases with different profiles for time sensitivity and fraud risk.&lt;br/&gt;&amp;gt;&lt;br/&gt;I agree that unconfirmed transactions are incredibly important, but not&lt;br/&gt;over SPV against random peers.&lt;br/&gt;&lt;br/&gt;If you offer users/merchants a feature (SPV 0-conf against random&lt;br/&gt;peers), that is fundamentally insecure, it will – sooner or later – lead&lt;br/&gt;to some large scale fiasco, hurting Bitcoins reputation and trust from&lt;br/&gt;merchants.&lt;br/&gt;&lt;br/&gt;Merchants using and trusting 0-conf SPV transactions (retrieved from&lt;br/&gt;random peers) is something we should **really eliminate** through&lt;br/&gt;education and by offering different solution.&lt;br/&gt;&lt;br/&gt;There are plenty, more sane options. If you can&amp;#39;t run your own full-node&lt;br/&gt;as a merchant (trivial), maybe co-use a wallet-service with centralized&lt;br/&gt;verification (maybe use two of them), I guess Copay would be one of&lt;br/&gt;those wallets (as an example). Use them in watch-only mode.&lt;br/&gt;&lt;br/&gt;For end-users SPV software, I think it would be recommended to...&lt;br/&gt;... disable unconfirmed transactions during SPV against random peers&lt;br/&gt;... enable unconfirmed transactions when using SPV against a trusted&lt;br/&gt;peer with preshared keys after BIP150&lt;br/&gt;... if unconfirmed transactions are disabled, show how it can be enabled&lt;br/&gt;(how to run a full-node [in a box, etc.])&lt;br/&gt;... educate, inform users that a transaction with no confirmation can be&lt;br/&gt;&amp;#34;stopped&amp;#34; or &amp;#34;redirected&amp;#34; any time, also inform about the risks during&lt;br/&gt;low-conf phase (1-5).&lt;br/&gt;&lt;br/&gt;I though see the point that it&amp;#39;s nice to make use of the &amp;#34;incoming&lt;br/&gt;funds...&amp;#34; feature in SPV wallets. But – for the sake of stability and&lt;br/&gt;(risk-)scaling – we may want to recommend to scarify this feature and –&lt;br/&gt;in the same turn – to use privacy-preserving BFD&amp;#39;s.&lt;br/&gt;&lt;br/&gt;&amp;lt;/jonas&amp;gt;&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: 833 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/20170104/76132d83/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20170104/76132d83/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T17:55:07Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsy5effv96xj7lj5qfms849a8h4l0a4xjd2um03ncc4r4j5pc7q2jgzyzdyv0s04wyk8vqndxxptg8jgjw3njtl8wyytrjcwsy4k5qxm7dqc5ptw2k</id>
    
      <title type="html">📅 Original date posted:2017-01-01 📝 Original message:Hi ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsy5effv96xj7lj5qfms849a8h4l0a4xjd2um03ncc4r4j5pc7q2jgzyzdyv0s04wyk8vqndxxptg8jgjw3njtl8wyytrjcwsy4k5qxm7dqc5ptw2k" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsp9hsgnglyejlrzy52zdzcdsntt2vyhujjx89gk48qz9k6c5lvk9q5hyhr5&#39;&gt;nevent1q…yhr5&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2017-01-01&lt;br/&gt;📝 Original message:Hi&lt;br/&gt;&amp;gt; We introduce several concepts that rework the lightweight Bitcoin&lt;br/&gt;&amp;gt; client model in a manner which is secure, efficient and privacy&lt;br/&gt;&amp;gt; compatible.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; The BFD can be used verbatim in replacement of BIP37, where the filter&lt;br/&gt;&amp;gt; can be cached between clients without needing to be recomputed. It can&lt;br/&gt;&amp;gt; also be used by normal pruned nodes to do re-scans locally of their&lt;br/&gt;&amp;gt; wallet without needing to have the block data available to scan, or&lt;br/&gt;&amp;gt; without reading the entire block chain from disk.&lt;br/&gt;I started exploring the potential of BFD after this specification.&lt;br/&gt;&lt;br/&gt;What would be the preferred/recommended way to handle 0-conf/mempool&lt;br/&gt;filtering – if &amp;amp; once BDF would have been deployed (any type,&lt;br/&gt;semi-trusted oracles or protocol-level/softfork)?&lt;br/&gt;&lt;br/&gt;From the user-experience perspective, this is probably pretty important&lt;br/&gt;(otherwise the experience will be that incoming funds can take serval&lt;br/&gt;minutes to hours until they appear).&lt;br/&gt;Using BIP37 bloom filters just for mempool filtering would obviously&lt;br/&gt;result in the same unwanted privacy-setup.&lt;br/&gt;&lt;br/&gt;&amp;lt;/jonas&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: 833 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/20170101/91d3f504/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20170101/91d3f504/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T17:55:03Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsxkkjqyxxxqpcemmxn5d3pqdfgmgn8aas6e7f2pn76vehxqlrh8pgzyzdyv0s04wyk8vqndxxptg8jgjw3njtl8wyytrjcwsy4k5qxm7dqcfeypsu</id>
    
      <title type="html">📅 Original date posted:2016-08-25 📝 Original message:Sorry ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsxkkjqyxxxqpcemmxn5d3pqdfgmgn8aas6e7f2pn76vehxqlrh8pgzyzdyv0s04wyk8vqndxxptg8jgjw3njtl8wyytrjcwsy4k5qxm7dqcfeypsu" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsxqke5qrm3hu09z67wlqsjujcktp7xmt25xepp7l9zlas69hyva3g70f50h&#39;&gt;nevent1q…f50h&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2016-08-25&lt;br/&gt;📝 Original message:Sorry for hijacking the thread again&lt;br/&gt;&lt;br/&gt;&amp;gt; As I understand it, you can scan sequentially starting with the genesis&lt;br/&gt;&amp;gt; block (or with a block at around the time when BIP44 was written).  Then&lt;br/&gt;&amp;gt; if you find a new transaction, which requires to generate new addresses,&lt;br/&gt;&amp;gt; you generate them and scan further from that point on.  This way you can&lt;br/&gt;&amp;gt; scan in a single pass if the scanning process calls you back when it&lt;br/&gt;&amp;gt; finds a transaction and allows you to change the set of addresses on the&lt;br/&gt;&amp;gt; fly.&lt;br/&gt;&lt;br/&gt;(I think this case if not completely unrealistic):&lt;br/&gt;&lt;br/&gt;What would happen, if a user gave out 21 addresses, then address0 had&lt;br/&gt;receive funds in &#43;180 days after generation where address21 had receive&lt;br/&gt;funds immediately (all other addresses never received a tx).&lt;br/&gt;&lt;br/&gt;In a scan, address0 would be detected at &amp;lt;address-birthday&amp;gt;&#43;180 days&lt;br/&gt;which would trigger the resize&#43;20 of the address-lookup-window, but, we&lt;br/&gt;would require to go back 180day in order to detect received transaction&lt;br/&gt;of address21 (new lookup-window) in that case.&lt;br/&gt;&lt;br/&gt;Or do I misunderstand something?&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;/jonas&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: 819 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/20160825/b7df9cb6/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20160825/b7df9cb6/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T17:53:04Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsf3jtranp6wlv62nytmqzan8ekwyfns4jzmv0s2ejct4exmz2rm6czyzdyv0s04wyk8vqndxxptg8jgjw3njtl8wyytrjcwsy4k5qxm7dqctjqlne</id>
    
      <title type="html">📅 Original date posted:2016-08-24 📝 Original message:Hi ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsf3jtranp6wlv62nytmqzan8ekwyfns4jzmv0s2ejct4exmz2rm6czyzdyv0s04wyk8vqndxxptg8jgjw3njtl8wyytrjcwsy4k5qxm7dqctjqlne" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqswhs9ju8zt83caq0jx25sr4nnuvxgdpnjflkyyd38yjyccq4edqwcqf96f5&#39;&gt;nevent1q…96f5&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2016-08-24&lt;br/&gt;📝 Original message:Hi&lt;br/&gt;&lt;br/&gt;&amp;gt; 6 - Finally, and most importantly, BIP39 seed phrases do not have a&lt;br/&gt;&amp;gt; version number. Without a version number, how are you going to derive&lt;br/&gt;&amp;gt; addresses from a BIP39 seed phrase, when wallets start to use to new&lt;br/&gt;&amp;gt; derivation methods (such as SegWit, or Schnorr signatures)? Does it mean&lt;br/&gt;&amp;gt; that a BIP39 compatible wallet will have to check addresses from all the&lt;br/&gt;&amp;gt; derivation methods that ever existed in the past, in order to ensure&lt;br/&gt;&amp;gt; that all coins are correctly retrieved? Or will there be users that&lt;br/&gt;&amp;gt; cannot access their coins because their BIP39 seed phrase is too old for&lt;br/&gt;&amp;gt; newer software?&lt;br/&gt;&lt;br/&gt;I totally agree with Thomas.&lt;br/&gt;&lt;br/&gt;Another thing that I think could be a BIP misdesign:&lt;br/&gt;&lt;br/&gt;BIP44 Gap Limits&lt;br/&gt;From the BIP:&lt;br/&gt;&lt;br/&gt;----------&lt;br/&gt;  &amp;#34;Address gap limit is currently set to 20. If the software hits 20&lt;br/&gt;unused addresses in a row, it expects there are no used addresses beyond&lt;br/&gt;this point and stops searching the address chain.&amp;#34;&lt;br/&gt;----------&lt;br/&gt;&lt;br/&gt;* Does that mean, we do a transaction rescan back to the genesis block&lt;br/&gt;for every 20 addresses?&lt;br/&gt;* Or is it a prerequirement to do a wallet recovery after BIP44&amp;#39;s to&lt;br/&gt;have access to a full address-indexed blockchain?&lt;br/&gt;&lt;br/&gt;Or maybe I&amp;#39;m missing something.&lt;br/&gt;&lt;br/&gt;&amp;lt;/jonas&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: 819 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/20160824/c679a7ea/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20160824/c679a7ea/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T17:53:03Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsv2udzqrd8zskqygsmqvgrer2qvc3a62tp6hkpy4xz2qfprmc6y9czyzdyv0s04wyk8vqndxxptg8jgjw3njtl8wyytrjcwsy4k5qxm7dqcwdg5dd</id>
    
      <title type="html">📅 Original date posted:2016-08-24 📝 Original ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsv2udzqrd8zskqygsmqvgrer2qvc3a62tp6hkpy4xz2qfprmc6y9czyzdyv0s04wyk8vqndxxptg8jgjw3njtl8wyytrjcwsy4k5qxm7dqcwdg5dd" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs0824v79pfs7a23383tg0rtw50rxty3njarltaa0ud9s5lsp3gx2s6e63tn&#39;&gt;nevent1q…63tn&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2016-08-24&lt;br/&gt;📝 Original message:&amp;gt;&amp;gt; Additionally, BIP 111 (NODE_BLOOM service bit) has been implemented in Bitcoin&lt;br/&gt;&amp;gt;&amp;gt; Core and derivatives; it is unclear if used by clients yet. Can developers of&lt;br/&gt;&amp;gt;&amp;gt; such clients please comment and let me know: 1) if their software supports&lt;br/&gt;&amp;gt;&amp;gt; this BIP already; 2) if not, do they intend to support it in the future?&lt;br/&gt;&amp;gt;&amp;gt; If and only if there are any clients using this service bit already, I will&lt;br/&gt;&amp;gt;&amp;gt; update BIP 111 to Final Status in 2 weeks also.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Multibit is adding detection of the NODE_BLOOM bit in the next 2-3 weeks.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; SPV is kinda broken if the wallet doesn’t do this detection. If your wallet connects only to nodes that don’t support bloom filtering, the wallet never gets updates. We have had a spike in users reporting that their wallet isn&amp;#39;t getting updated. To compound the problem, they rescan the blockchain and lose all of their transaction history. It has caused much panic among less technical users.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; We believe that failing to detect the NODE_BLOOM bit is the culprit, although it is non-deterministic, so we aren&amp;#39;t certain.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; I imagine that other SPV wallets are having similar issues. BIP 111 really isn’t optional at this point, so it should be marked final.&lt;br/&gt;&lt;br/&gt;SPV Wallets should definitively update to respect NODE_BLOOM. Bloom&lt;br/&gt;filtering is CPU and disk intense and some node operators have disabled&lt;br/&gt;it (or will disabled it) because there is no direct p2p network-health&lt;br/&gt;benefit.&lt;br/&gt;&lt;br/&gt;SPV wallets should probably also make use of the new DNS seeder filter&lt;br/&gt;option.&lt;br/&gt;It is running at least on seed.bitcoin.sipa.be and&lt;br/&gt;seed.bitcoin.jonasschnelli.ch.&lt;br/&gt;&lt;br/&gt;The filter option allows SPV Wallets to only get nodes that signal&lt;br/&gt;support for NODE_BLOOM.&lt;br/&gt;&lt;br/&gt;The syntax is&lt;br/&gt;&lt;br/&gt;   x&amp;lt;networkservice_flags_filter_as_int&amp;gt;.seed.bitcoin....&lt;br/&gt;&lt;br/&gt;Example for NODE_NETWORK together with NODE_BLOOM&lt;br/&gt;dig x5.seed.bitcoin.jonasschnelli.ch&lt;br/&gt;(NETWORK = (1 &amp;lt;&amp;lt; 0), NODE_BLOOM = (1 &amp;lt;&amp;lt; 2)) = (bin00000101 = (int)5)&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;/jonas&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: 819 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/20160824/c7311f2b/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20160824/c7311f2b/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T17:53:01Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqst080zwectcueesqjw7wjwar6acef30jff854ruswh7wvelvcaclczyzdyv0s04wyk8vqndxxptg8jgjw3njtl8wyytrjcwsy4k5qxm7dqca2lcmj</id>
    
      <title type="html">📅 Original date posted:2016-08-18 📝 Original message:Hi ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqst080zwectcueesqjw7wjwar6acef30jff854ruswh7wvelvcaclczyzdyv0s04wyk8vqndxxptg8jgjw3njtl8wyytrjcwsy4k5qxm7dqca2lcmj" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsqfjurvuvhnuqchu9z8xy0gzgkdjfwsp2lpgsn92zrl26q3q79gjqsaa783&#39;&gt;nevent1q…a783&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2016-08-18&lt;br/&gt;📝 Original message:Hi&lt;br/&gt;&lt;br/&gt;&amp;gt; I have some experience with hardware wallet development and its&lt;br/&gt;&amp;gt; integration and I know it&amp;#39;s a mess. But it is too early to define such&lt;br/&gt;&amp;gt; rigid standards yet. Also, TREZOR concept (device as a server and the&lt;br/&gt;&amp;gt; primary source of workflow management) goes directly against your&lt;br/&gt;&amp;gt; proposal of wallet software as an workflow manager. So it is clear NACK&lt;br/&gt;&amp;gt; for me.&lt;br/&gt;&lt;br/&gt;The current question – as already mentioned – is we ACK to work together&lt;br/&gt;on a signing protocol or if we NACK this before we even have started.&lt;br/&gt;&lt;br/&gt;I&amp;#39;m not saying that the draft proposal I made is the way to go, I&amp;#39;m&lt;br/&gt;happy to NACK it myself in favor of a better proposal.&lt;br/&gt;&lt;br/&gt;I strongly recommend to work together on a standard that will have one&lt;br/&gt;central winner: the end user.&lt;br/&gt;&lt;br/&gt;&amp;lt;/jonas&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: 819 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/20160818/343d9d28/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20160818/343d9d28/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T17:52:52Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsr04m642j8xqpm823y3kr6nfkwhn05j6xnactl70dqdvhh9evfqdszyzdyv0s04wyk8vqndxxptg8jgjw3njtl8wyytrjcwsy4k5qxm7dqcrgsgkf</id>
    
      <title type="html">📅 Original date posted:2016-08-18 📝 Original message:Hi ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsr04m642j8xqpm823y3kr6nfkwhn05j6xnactl70dqdvhh9evfqdszyzdyv0s04wyk8vqndxxptg8jgjw3njtl8wyytrjcwsy4k5qxm7dqcrgsgkf" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsdw8np4hj89vmqnr2209fjd5jhas8wet2nuykez4k588credlwp9qhhzydk&#39;&gt;nevent1q…zydk&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2016-08-18&lt;br/&gt;📝 Original message:Hi&lt;br/&gt;&lt;br/&gt;&amp;gt; The main benefit is that you don&amp;#39;t need &amp;#34;standard&amp;#34; to solve problem, but&lt;br/&gt;&amp;gt; use natural tools in given environment and programming stack. Build a&lt;br/&gt;&amp;gt; &amp;#34;standard&amp;#34; on top of URI protocol is a huge limitation, which does not&lt;br/&gt;&amp;gt; give any advantage.&lt;br/&gt;&lt;br/&gt;Standards can help an ecosystem to grow, can help to sustain a good user&lt;br/&gt;experience.&lt;br/&gt;&lt;br/&gt;The hardware wallet vendors have used &amp;#34;natural tools&amp;#34; and look where we&lt;br/&gt;are. We have *native* plugins in Electrum, Copay, etc. for different&lt;br/&gt;hardware wallets. Mostly the plugins are in the code base of the wallet,&lt;br/&gt;which makes it – in theory – impossible to change from the perspective&lt;br/&gt;of the hardware wallet vendor (there is no control of the deployment if&lt;br/&gt;there are bugs in the plugins code).&lt;br/&gt;The plugins functions overlap significant.&lt;br/&gt;&lt;br/&gt;I think this is a bad design for security critical applications.&lt;br/&gt;&lt;br/&gt;What I want as hardware wallet user:&lt;br/&gt;* I&amp;#39;d like to have a trusted application (layer) where I&amp;#39;m sure I&amp;#39;m&lt;br/&gt;using software provided through my hardware wallet vendor.&lt;br/&gt;&lt;br/&gt;What I want as hardware wallet vendor:&lt;br/&gt;* I&amp;#39;d like to be able to provide and update a software layer (app) to my&lt;br/&gt;customer with the ability to provide code signatures and security&lt;br/&gt;updates anytime. I do want to control the user experience.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;gt; We already see issues with dead simple &amp;#34;bitcoin uri&amp;#34; standard, it barely&lt;br/&gt;&amp;gt; works in most of bitcoin apps. Think of vague definitions of parameters&lt;br/&gt;&amp;gt; or ability to send payment requests over it. HW API would be complicated&lt;br/&gt;&amp;gt; by an order of magnitude and I have serious concerns that it will be&lt;br/&gt;&amp;gt; helpful for anything. So why complicate things.&lt;br/&gt;&lt;br/&gt;As far as I know most bitcoin wallets do support the bitcoin:// URI&lt;br/&gt;scheme quite well.&lt;br/&gt;I agree that BIP70 is a mess (including the bitcoin:// additions).&lt;br/&gt;&lt;br/&gt;The proposed URI scheme would be completely different. The only&lt;br/&gt;similarity is using the URI scheme as transport layer (which is the&lt;br/&gt;proposed long term inter-app communication layer by Apple and Google).&lt;br/&gt;&lt;br/&gt;&amp;gt;&amp;gt; How would the library approach work on mobile platforms? Would USB be&lt;br/&gt;&amp;gt; the only supported hardware communication layer?&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Interprocess communication/libraries/dependencies on Android are not&lt;br/&gt;&amp;gt; bound to specific transport anyhow. Such library could be used by any&lt;br/&gt;&amp;gt; android app, and the library would implement proper transports for&lt;br/&gt;&amp;gt; various supported vendors. USB for Trezor, NFC for something different&lt;br/&gt;&amp;gt; etc. If the point is &amp;#34;make life of app developers easier&amp;#34;, let&amp;#39;s do this&lt;br/&gt;&amp;gt; and do not define artifical &amp;#34;standards&amp;#34;.&lt;br/&gt;&lt;br/&gt;So you propose having one library that would support multiple vendors?&lt;br/&gt;What if new vendors add a new transport layer (lets assume NFC or&lt;br/&gt;Bluetooth), wouldn&amp;#39;t that result in every possible consumer of that&lt;br/&gt;library (all wallets) need to update before the new vendors transport&lt;br/&gt;layer could be used, resulting in a huge deployment process probably&lt;br/&gt;require many month until it can be used?&lt;br/&gt;&lt;br/&gt;What if there is a critical security issue in the library? How would the&lt;br/&gt;deployment plan looks like?&lt;br/&gt;&lt;br/&gt;I really think we should remove the &amp;#34;hardware communication layer&amp;#34; from&lt;br/&gt;wallets and move it towards the hardware vendor app.&lt;br/&gt;&lt;br/&gt;What about iOS? Should we just leave that platform unsupported with&lt;br/&gt;hardware wallets?&lt;br/&gt;&lt;br/&gt;&amp;lt;/jonas&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: 819 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/20160818/ca1a24d9/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20160818/ca1a24d9/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T17:52:51Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs0luxcwk5ytpcmcxq7k82dd9546n26j46fq75wueza5q4ugjl0dsqzyzdyv0s04wyk8vqndxxptg8jgjw3njtl8wyytrjcwsy4k5qxm7dqck7kcgu</id>
    
      <title type="html">📅 Original date posted:2016-08-17 📝 Original message:Hi ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs0luxcwk5ytpcmcxq7k82dd9546n26j46fq75wueza5q4ugjl0dsqzyzdyv0s04wyk8vqndxxptg8jgjw3njtl8wyytrjcwsy4k5qxm7dqck7kcgu" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs8csf57tt0su6p7nekzeh8x4yzwxjuhvjf5j75vf8kalz5fdj3unsgyrall&#39;&gt;nevent1q…rall&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2016-08-17&lt;br/&gt;📝 Original message:Hi Dana&lt;br/&gt;&lt;br/&gt;&amp;gt;&amp;gt; The URI scheme does not require any sorts of wallet app level&lt;br/&gt;&amp;gt;&amp;gt; configuration (where the stdio/pipe approach would require to configure&lt;br/&gt;&amp;gt;&amp;gt; some details about the used hardware wallet).&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Hi everybody, just thought I’d throw my opinion in here.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; The URI scheme is a nice idea, but this ignores the fact that hardware wallet vendors do most of the work on talking between the computer/mobile and the wallet on a lower level of communication. In the case of BitLox, the base protocol is Google’s ProtoBuf. The commands and transaction data is in a “schema” which is then encoded in different methods accessible via ProtoBuf (depending on the data being sent). The advantages of this protocol is that it can be implemented on a wide variety of platforms. (but that’s a whole &amp;#39;nother discussion)&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; The URI would be handled waaaaay up in the specific application (such as the mytrezor wallet software or the various standalone wallets) - nowhere near the actual hardware communications layer.&lt;br/&gt;&lt;br/&gt;This is maybe a question of the scope.&lt;br/&gt;The BIP I&amp;#39;m proposing would make a clear interface cut between&lt;br/&gt;wallet-with-unsigned-transaction and a signing-device (and maybe between&lt;br/&gt;wallet-requires-pubkey, signing-device generate some pubkeys [or&lt;br/&gt;non-hardened xpub]).&lt;br/&gt;&lt;br/&gt;The detached-signing proposal does not duplicate work. It just moves the&lt;br/&gt;current plugin design into a separate application. Plugins in security&lt;br/&gt;and privacy critical wallet software is something that should probably&lt;br/&gt;be avoided.&lt;br/&gt;&lt;br/&gt;It&amp;#39;s intentional at a high level to allow maximum flexibility at the&lt;br/&gt;hardware interaction layer.&lt;br/&gt;&lt;br/&gt;Your protobuf example is a good use-case. You could implement your&lt;br/&gt;custom processes behind the URI scheme (which is probably way more&lt;br/&gt;efficient then writing a couple of wallet plugins where you – at the end&lt;br/&gt;– mostly don&amp;#39;t control the deployment and the source-code).&lt;br/&gt;&lt;br/&gt;Defining a standard on the hardware interaction layer is possible, but a&lt;br/&gt;fairly different approach.&lt;br/&gt;&lt;br/&gt;&amp;lt;/jonas&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: 819 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/20160817/3eea9613/attachment-0001.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20160817/3eea9613/attachment-0001.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T17:52:50Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs8nw3v3mu7s56m4m00htcj7svdr0yznfk3t6z6072tyyndkpmy45szyzdyv0s04wyk8vqndxxptg8jgjw3njtl8wyytrjcwsy4k5qxm7dqczr596x</id>
    
      <title type="html">📅 Original date posted:2016-08-18 📝 Original message:Hi ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs8nw3v3mu7s56m4m00htcj7svdr0yznfk3t6z6072tyyndkpmy45szyzdyv0s04wyk8vqndxxptg8jgjw3njtl8wyytrjcwsy4k5qxm7dqczr596x" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqswas25rkntc7g50vtcjtwrsjl6w6up54m0t2a3sepa8suv8pddcrs89vpsv&#39;&gt;nevent1q…vpsv&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2016-08-18&lt;br/&gt;📝 Original message:Hi&lt;br/&gt;&lt;br/&gt;&amp;gt; I fundamentally disagree with the concept of driving signing workflow by&lt;br/&gt;&amp;gt; the wallet software. Wallet software does not know in advance all data&lt;br/&gt;&amp;gt; necessary for the signer to do the job. As Jochen mentioned above,&lt;br/&gt;&amp;gt; Segwit vs Non-segwit use cases are a good example, but there may be many.&lt;br/&gt;&lt;br/&gt;I think this is easily solvable. The required data to verify and sign a&lt;br/&gt;(standard) bitcoin transaction (including P2WSH multi-sig) is manageable.&lt;br/&gt;&lt;br/&gt;IMO what a signing devices requires in order to sign a (standard)&lt;br/&gt;transaction:&lt;br/&gt;-&amp;gt; serialized tx&lt;br/&gt;-&amp;gt; serialized tx of the inputs&lt;br/&gt;-&amp;gt; scriptPubKey of the inputs&lt;br/&gt;-&amp;gt; inputs redeem-Scripts&lt;br/&gt;-&amp;gt; input amounts&lt;br/&gt;-&amp;gt; position of the change output any maybe its keypath&lt;br/&gt;-&amp;gt; cosigners pubkeys for inputs and changeaddress&lt;br/&gt;&lt;br/&gt;This seems to be manageable for a 1 round communication?&lt;br/&gt;Or do I miss something?&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;gt; Currently the TREZOR protocol works like device is a server and wallet&lt;br/&gt;&amp;gt; is a client calling methods on it. It&amp;#39;s like: &amp;#34;Sign this for me,&lt;br/&gt;&amp;gt; please&amp;#34;, &amp;#34;Ok, give me this information&amp;#34;, &amp;#34;Here it is&amp;#34;, &amp;#34;Now I need this&lt;br/&gt;&amp;gt; another piece&amp;#34;.... &amp;#34;There is the signature&amp;#34;. Wallet does not know in&lt;br/&gt;&amp;gt; advance what will go next, and it is for sake of simplicity. I&amp;#39;m quite&lt;br/&gt;&amp;gt; happy with the protocol so far.&lt;br/&gt;&lt;br/&gt;I think multiple rounds would still be possible with a clever design.&lt;br/&gt;Although I could imaging that &amp;gt;95% of the users transaction would&lt;br/&gt;require only a single &amp;#34;shot&amp;#34;.&lt;br/&gt;&lt;br/&gt;Whats the benefits of the multiple rounds communication? Would a single&lt;br/&gt;round result in to many data transported?&lt;br/&gt;&lt;br/&gt;Passing a 300kb chunk (assuming a large transaction) over a URI scheme&lt;br/&gt;requires a couple of milliseconds on standard Smartphones or PCs.&lt;br/&gt;&lt;br/&gt;&amp;gt; Considering the difference in between current hardware, I really don&amp;#39;t&lt;br/&gt;&amp;gt; think it is possible to find any minimal URI-based API good enough for&lt;br/&gt;&amp;gt; communicating with all vendors. What I see more likely is some 3rd party&lt;br/&gt;&amp;gt; libraries (JS, C&#43;&#43;, Python, ...) defining high-level API and&lt;br/&gt;&amp;gt; implementing hardware-specific protocols and transports as plugins. That&lt;br/&gt;&amp;gt; way vendors are not limited by strict standard and application&lt;br/&gt;&amp;gt; developers and services can integrate wide range of hardware wallets&lt;br/&gt;&amp;gt; easily. However, this can be done already and we do not need any&lt;br/&gt;&amp;gt; standardization process (yet).&lt;br/&gt;&lt;br/&gt;The URI-based API allows transmitting data of multiple megabytes while&lt;br/&gt;there is no need for...&lt;br/&gt;* dependencies of any form (library, etc.)&lt;br/&gt;* library support for a particular language&lt;br/&gt;* platform that supports the dependencies of the library (like USBHID,&lt;br/&gt;not supported by iOS)&lt;br/&gt;&lt;br/&gt;Can you elaborate what benefits you would get from the library approach&lt;br/&gt;and how the library API would be different form the proposed URI-scheme?&lt;br/&gt;&lt;br/&gt;How would the library approach work on mobile platforms? Would USB be&lt;br/&gt;the only supported hardware communication layer?&lt;br/&gt;&lt;br/&gt;Thanks&lt;br/&gt;--&lt;br/&gt;&amp;lt;/jonas&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: 819 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/20160818/5ae29972/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20160818/5ae29972/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T17:52:50Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsxxc6ka44z7u3kya4sdpyvvca97z6p25sv5nceru9dwfmd782dcdqzyzdyv0s04wyk8vqndxxptg8jgjw3njtl8wyytrjcwsy4k5qxm7dqcjuelac</id>
    
      <title type="html">📅 Original date posted:2016-08-17 📝 Original message:Hi all ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsxxc6ka44z7u3kya4sdpyvvca97z6p25sv5nceru9dwfmd782dcdqzyzdyv0s04wyk8vqndxxptg8jgjw3njtl8wyytrjcwsy4k5qxm7dqcjuelac" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs2eg3fuastq2clpd6vh9yjmn6vjkvjx8nrf7wfv4wzz7jf05wmzcqjvrrll&#39;&gt;nevent1q…rrll&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2016-08-17&lt;br/&gt;📝 Original message:Hi all&lt;br/&gt;&lt;br/&gt;Thanks for the response.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Jochen&amp;#39;s points:&lt;br/&gt;===============&lt;br/&gt;Indeed. There are some missing points and I&amp;#39;d like to work this into the&lt;br/&gt;BIP. Thanks for bringing this up.&lt;br/&gt;&lt;br/&gt;Along with a support for wallet-creation with a xpub from the signing&lt;br/&gt;device, we might also want to support loading multiple pubkeys into a&lt;br/&gt;keypool from the device (in case someone likes to use hardened&lt;br/&gt;derivation at all levels). I guess this would not be over-complex to&lt;br/&gt;achieve.&lt;br/&gt;&lt;br/&gt;Luke&amp;#39;s points:&lt;br/&gt;=============&lt;br/&gt;&lt;br/&gt;USB / Plugin/Driver problematic&lt;br/&gt;-------------------------------&lt;br/&gt;I don&amp;#39;t think it would be wise to set Trezors USB communication&lt;br/&gt;(hardware interface) as &amp;#34;the standard&amp;#34;. A) A USB stack/interaction in&lt;br/&gt;wallets should be avoided IMO. B) This approach won&amp;#39;t work for some&lt;br/&gt;platforms (like iOS) due to technical and legal restrictions.&lt;br/&gt;&lt;br/&gt;In my opinion, each hardware wallet has to provide custom software in&lt;br/&gt;any case. We don&amp;#39;t want to standardize how a hardware wallet has to do&lt;br/&gt;backups, recovers, firmware upgrade, etc. and if we agree on that, then&lt;br/&gt;hardware wallets must provide an application (mostly Chrome extensions&lt;br/&gt;today) to implement theses processes.&lt;br/&gt;&lt;br/&gt;Also diversity at the hardware interface will reduce centralized risks&lt;br/&gt;for weak security/vulnerabilities.&lt;br/&gt;&lt;br/&gt;The proposed URI scheme approach does not require any sorts of&lt;br/&gt;libraries/dependencies. USB HID can be a problem for cross platform&lt;br/&gt;desktop wallets as well as it won&amp;#39;t work of one of the major mobile&lt;br/&gt;platform (iOS). USB HID interaction can be restricted or disabled in non&lt;br/&gt;superuser setups where I&amp;#39;m not aware of any restriction on URI-Scheme level.&lt;br/&gt;&lt;br/&gt;URI scheme instead of stdio/pipe&lt;br/&gt;--------------------------------&lt;br/&gt;The URI scheme is not ugly. Its a modern way – implemented in almost all&lt;br/&gt;platforms – how applications can interact with each other while not&lt;br/&gt;directly knowing each other. Registering a URI scheme like &amp;#34;bitcoin://&amp;#34;&lt;br/&gt;has some concrete advantages over just piping through stdio.&lt;br/&gt;&lt;br/&gt;Also, the stdio/piping approach does not work for mobile platforms&lt;br/&gt;(where the URI scheme works).&lt;br/&gt;&lt;br/&gt;The URI scheme does not require any sorts of wallet app level&lt;br/&gt;configuration (where the stdio/pipe approach would require to configure&lt;br/&gt;some details about the used hardware wallet).&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Thomase D.&amp;#39;s points:&lt;br/&gt;===================&lt;br/&gt;Standardizing to many layers of the interaction stack (including the&lt;br/&gt;hardware interaction) will very likely result in vendors not sticking to&lt;br/&gt;the standard.&lt;br/&gt;&lt;br/&gt;I agree, the URI scheme has some fragility, but at a level where we can&lt;br/&gt;handle it and with the advantage of abstracting the used brand/device&lt;br/&gt;for privacy and security reasons.&lt;br/&gt;&lt;br/&gt;&amp;gt; The existing URI scheme, while allowing disambiguate by manufacturer,&lt;br/&gt;provides no way to to enumerate available manufacturers or enabled&lt;br/&gt;wallets.&lt;br/&gt;&lt;br/&gt;Most operating systems allow to check if a certain URL-Scheme is&lt;br/&gt;supported (registered), this would allow at least to check for known&lt;br/&gt;major vendors (like trezor, etc.) which should solve most&lt;br/&gt;multi-hardware-wallet use-cases.&lt;br/&gt;&lt;br/&gt;The URI return scheme does work fine and with the correct set timeouts&lt;br/&gt;it should result in a neat user experience.&lt;br/&gt;It&amp;#39;s the proposed way of application intercommunication in Apple iOS [1]&lt;br/&gt;and Google Android [2].&lt;br/&gt;&lt;br/&gt;Conclusion:&lt;br/&gt;===========&lt;br/&gt;* Non of the points convinced me that there is a better alternative to&lt;br/&gt;the proposed URI scheme interaction (please tell me if I&amp;#39;m stubborn).&lt;br/&gt;* Also, we should move the end users UX in the center of the&lt;br/&gt;problems-to-solve (and not overweight the ideal&lt;br/&gt;code-/API-/hardware-interaction-design while ignoring the end user&lt;br/&gt;experience).&lt;br/&gt;* We should try to not over-standardize the interaction with the device&lt;br/&gt;itself to allow flexibility on the hardware wallet vendor side.&lt;br/&gt;&lt;br/&gt;[1]&lt;br/&gt;&lt;a href=&#34;https://developer.apple.com/library/ios/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/Inter-AppCommunication/Inter-AppCommunication.html&#34;&gt;https://developer.apple.com/library/ios/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/Inter-AppCommunication/Inter-AppCommunication.html&lt;/a&gt;&lt;br/&gt;[2] &lt;a href=&#34;https://developer.android.com/training/basics/intents/sending.html&#34;&gt;https://developer.android.com/training/basics/intents/sending.html&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;/jonas&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: 819 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/20160817/63e4d8a4/attachment-0001.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20160817/63e4d8a4/attachment-0001.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T17:52:49Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs8l3qtzpx9yx33s0rt3634rrph4dqes3s555nnq4uqdyfv7rsagfqzyzdyv0s04wyk8vqndxxptg8jgjw3njtl8wyytrjcwsy4k5qxm7dqc7c8j35</id>
    
      <title type="html">📅 Original date posted:2016-08-16 📝 Original message:&amp;gt; I ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs8l3qtzpx9yx33s0rt3634rrph4dqes3s555nnq4uqdyfv7rsagfqzyzdyv0s04wyk8vqndxxptg8jgjw3njtl8wyytrjcwsy4k5qxm7dqc7c8j35" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs2k4qugh7atpxkdul4y8lr5774m58e4q2z23hrmwxrnvfw95u98hgu5mx5k&#39;&gt;nevent1q…mx5k&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2016-08-16&lt;br/&gt;📝 Original message:&amp;gt; I think it does not make sense to try to get this standardized for&lt;br/&gt;&amp;gt; current Bitcoin transactions. They are just too complex.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; What might be interesting is to have something similar for Segwit and&lt;br/&gt;&amp;gt; Lightning transactions.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; * TREZOR performs extended validation of the inputs, when all of&lt;br/&gt;&amp;gt; prev-txs are streamed into the device and validated. Your standard does&lt;br/&gt;&amp;gt; not tackle this at all and I don&amp;#39;t think it&amp;#39;s worthy to make this&lt;br/&gt;&amp;gt; standard unnecessarily complicated.&lt;br/&gt;&lt;br/&gt;I&amp;#39;m aware of this approach but I don&amp;#39;t think this makes sense long term.&lt;br/&gt;We need a better way on the protocol level to validate inputs amounts&lt;br/&gt;(where segwit is a first step towards this).&lt;br/&gt;&lt;br/&gt;IMO, not having a standard for hardware wallet interfaces/communication&lt;br/&gt;will long term result in reducing the end user experience.&lt;br/&gt;&lt;br/&gt;I think we should collaborate together and work out a standard.&lt;br/&gt;&lt;br/&gt;My goal is to add hardware wallet support in Bitcoin-Core where adding&lt;br/&gt;proprietary code (plugin-ish) is something we don&amp;#39;t want to do for the&lt;br/&gt;sake of security and compatibility.&lt;br/&gt;&lt;br/&gt;As said, the &amp;#34;BIP&amp;#34; is very draft and I&amp;#39;m happy to include the input&lt;br/&gt;streaming as part of it (or you could add it if you want because you&lt;br/&gt;have more experience with it).&lt;br/&gt;&lt;br/&gt;&amp;lt;/jonas&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: 819 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/20160816/75ee098a/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20160816/75ee098a/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T17:52:47Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqspd7zcjlvfapky3lzy58jxfayhp9p05m4heu5aqukxtyd2utq7zeczyzdyv0s04wyk8vqndxxptg8jgjw3njtl8wyytrjcwsy4k5qxm7dqczkpvps</id>
    
      <title type="html">📅 Original date posted:2016-08-16 📝 Original message:Hi ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqspd7zcjlvfapky3lzy58jxfayhp9p05m4heu5aqukxtyd2utq7zeczyzdyv0s04wyk8vqndxxptg8jgjw3njtl8wyytrjcwsy4k5qxm7dqczkpvps" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsxulmuktp3zr9h9zdr40txwvz28d8xlxayufvpcjfd0wfuy999agg7dakja&#39;&gt;nevent1q…akja&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2016-08-16&lt;br/&gt;📝 Original message:Hi&lt;br/&gt;&lt;br/&gt;Unfortunately, there is no standard in how desktop- or mobile-wallets&lt;br/&gt;can interact with a hardware device resulting in wallet vendors adding&lt;br/&gt;plugins with proprietary code for non-standardized interfaces.&lt;br/&gt;&lt;br/&gt;I started a BIP (extreme draft, feel free to improve language, grammar&lt;br/&gt;and content) to address this missing part of the ecosystem.&lt;br/&gt;&lt;br/&gt;I think it would be extremely helpful if @ledger, @trezor,&lt;br/&gt;@voisin/@breadwallet, @electrum, @bitpay (and more?!) would help working&lt;br/&gt;on a such standard.&lt;br/&gt;&lt;br/&gt;The BIP describes two approaches how to communicate (pipe and&lt;br/&gt;URI-scheme) with the signing-devices app, although, in my opinion, all&lt;br/&gt;major platform do support the URI approach (maybe we could drop the pipe&lt;br/&gt;approach then).&lt;br/&gt;The URI approach means that there is no need to configure the&lt;br/&gt;application location in order to start a inter-process(-app) communication.&lt;br/&gt;&lt;br/&gt;Mediawiki:&lt;br/&gt;&lt;a href=&#34;https://github.com/jonasschnelli/bips/blob/8abb51f0b21b6664388f6e88f6fd642c90d25dca/bip-undef-0.mediawiki&#34;&gt;https://github.com/jonasschnelli/bips/blob/8abb51f0b21b6664388f6e88f6fd642c90d25dca/bip-undef-0.mediawiki&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;/jonas&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;---- BIP (rough early stage draft)&lt;br/&gt;&lt;br/&gt;&amp;lt;pre&amp;gt;&lt;br/&gt;  BIP: ???&lt;br/&gt;  Title: Detached Signing&lt;br/&gt;  Author: Jonas Schnelli &amp;lt;dev at jonasschnelli.ch&amp;gt;&lt;br/&gt;  Status: Draft (early stage!)&lt;br/&gt;  Type: Standards Track&lt;br/&gt;  Created: 2016-08-02&lt;br/&gt;&amp;lt;/pre&amp;gt;&lt;br/&gt;&lt;br/&gt;== Abstract ==&lt;br/&gt;&lt;br/&gt;This BIP describes a way how wallet applications can decouple sensitive&lt;br/&gt;privatekeys from the internal keychain and interact with a&lt;br/&gt;signing-devices (hardware wallet, &amp;#34;cold&amp;#34; storage) over a generic&lt;br/&gt;interface in order to get signatures.&lt;br/&gt;&lt;br/&gt;== Motivation ==&lt;br/&gt;&lt;br/&gt;It seems like that the current approach for allowing signing-devices to&lt;br/&gt;interact with third party wallets is to build a plugin [1][2][3]. Adding&lt;br/&gt;plugins for each hardware wallet type will increase possible security&lt;br/&gt;issues and result in multiple proprietary-third-party code within the&lt;br/&gt;wallet application with very similar structures.&lt;br/&gt;&lt;br/&gt;A generic interface how wallets can interact with signing-devices would&lt;br/&gt;result in better user experience, less critical code and simpler&lt;br/&gt;adaption for various signing-devices.&lt;br/&gt;&lt;br/&gt;== Specification ==&lt;br/&gt;&lt;br/&gt;In order to support desktop- and smartphone-wallet-applications, this&lt;br/&gt;BIP describes two slightly different approaches (process pipe and URI&lt;br/&gt;call) in how to interact with the signing-devices. If possible, the&lt;br/&gt;modern URI approach should be chosen.&lt;br/&gt;&lt;br/&gt;=== Signing-Device-Controller-Application ===&lt;br/&gt;&lt;br/&gt;To allow a generic interface while still allowing different ways how to&lt;br/&gt;internally communicate with the signing device itself (USB, TCP/IP,&lt;br/&gt;air-gapped Qr-Code scanning, etc.) a controller-application is required.&lt;br/&gt;&lt;br/&gt;=== General signing process ===&lt;br/&gt;&lt;br/&gt;The wallets signing process must be according the following principal:&lt;br/&gt;* Wallet prepares signing-request-object including bitcoin-transaction&lt;br/&gt;or message together with metadata (scriptPubKey, hd-keypath of the inputs)&lt;br/&gt;* Wallet passes signing-request-object to the&lt;br/&gt;signing-device-controller-application&lt;br/&gt;* Signing-device-controller-application processes&lt;br/&gt;signing-request-object, eventually shows UI, user can sign or cancel&lt;br/&gt;* Signing-device-controller-application sends back&lt;br/&gt;signing-response-object with signatures or an error&lt;br/&gt;* Wallet processes signing-response-object and completes data-object&lt;br/&gt;creating process (example: add signatures to transaction and broadcast)&lt;br/&gt;&lt;br/&gt;=== Desktop Process Intercommunication ===&lt;br/&gt;&lt;br/&gt;Desktop wallets can interact with a signing device over process&lt;br/&gt;intercommunication (pipe) together with a&lt;br/&gt;signing-device-controller-application.&lt;br/&gt;As specified below, the signing-request-object is a URI string passed&lt;br/&gt;through the pipe. The desktop wallet needs to wait (with a recommended&lt;br/&gt;timeout between 1 and 5 minutes) until the signing-response-object will&lt;br/&gt;be sent back by the signing-device-controller-application.&lt;br/&gt;&lt;br/&gt;=== Smartphone/URI App Intercommunication ===&lt;br/&gt;&lt;br/&gt;Smartphones and modern operating systems are trying to sandbox&lt;br/&gt;applications and interprocess communication (on pipe level) is mostly&lt;br/&gt;disallowed.&lt;br/&gt;On smartphones, we must use URI-schemes.&lt;br/&gt;The wallet can pass information to the&lt;br/&gt;signing-device-controller-application by using a predefined URI scheme.&lt;br/&gt;&lt;br/&gt;&amp;lt;code&amp;gt;detatchedsigning://&amp;lt;command&amp;gt;?&amp;lt;querystring&amp;gt;&amp;amp;returnurischeme=&amp;lt;returnurischeme://&amp;gt;&amp;lt;/code&amp;gt;&lt;br/&gt;&lt;br/&gt;The &amp;lt;code&amp;gt;querystring&amp;lt;/code&amp;gt; must be URI encoded.&lt;br/&gt;RFC 2616 does not specify a maximum length of URIs (get request). Most&lt;br/&gt;modern smartphone operating system allow URIs up to serval megabytes.&lt;br/&gt;Signing complex data-structure is therefore possible.&lt;br/&gt;&lt;br/&gt;The &amp;lt;code&amp;gt;returnurischeme&amp;lt;/code&amp;gt; must contain a URI schema where the&lt;br/&gt;result of the signing process should be returned to.&lt;br/&gt;The returnurischeme must be populated and &amp;#34;opened&amp;#34; once the signing&lt;br/&gt;process has been completed (or cancled).&lt;br/&gt;&lt;br/&gt;=== Signing Request ===&lt;br/&gt;&lt;br/&gt;The signing request is a flexible URI-Query-String that will be used by&lt;br/&gt;the Signing-device-controller-application for user confirmation as well&lt;br/&gt;as for creating the signature.&lt;br/&gt;&lt;br/&gt;The URI-query-string must conform to the following format:&lt;br/&gt;&lt;br/&gt;&amp;lt;code&amp;gt;detatchedsigning://sign?type=&amp;lt;bitcoin-p2pkh|bitcoin-p2sh|bitcoin-msg&amp;gt;&amp;amp;data=&amp;lt;raw-transaction|message&amp;gt;&amp;amp;inputscripts=&amp;lt;scriptPubKey-input0&amp;gt;,&amp;lt;scriptPubKey-input1&amp;gt;,...&amp;amp;inputhdkeypath=&amp;lt;hdkeypath0&amp;gt;,&amp;lt;hdkeypath1&amp;gt;,...&amp;amp;returnscheme=&amp;lt;returnurischeme&amp;gt;&amp;lt;/code&amp;gt;&lt;br/&gt;&lt;br/&gt;type = type of the data to sign&lt;br/&gt;data = raw unsigned bitcoin transaction or text-message&lt;br/&gt;(optional)inputscripts = scriptPubKey(s) of the inputs in exact order&lt;br/&gt;(optional)inputhdkeypath = hd-keypath of the inputs in exact order&lt;br/&gt;(optional)returnscheme = a URI scheme where the response must be sent to&lt;br/&gt;(smartphone approach)&lt;br/&gt;&lt;br/&gt;* inputhdkeypath or inputscripts must be provided.&lt;br/&gt;&lt;br/&gt;=== Signing Response ===&lt;br/&gt;&lt;br/&gt;The signing response is a flexible URI-Query-String that will be sent&lt;br/&gt;back to the wallet application and must contain the signatures or an&lt;br/&gt;error code.&lt;br/&gt;The URI-query-string can be opened (smartphone approach) or will be sent&lt;br/&gt;back though the interprocess pipe.&lt;br/&gt;&lt;br/&gt;&amp;lt;code&amp;gt;&amp;lt;returnurischeme&amp;gt;://signresponse?errorcode=&amp;lt;errorcode&amp;gt;&amp;amp;signatures=&amp;lt;signature-input0&amp;gt;,&amp;lt;signature-input0&amp;gt;,...&amp;lt;/code&amp;gt;&lt;br/&gt;&lt;br/&gt;In case of ECDSA, the returned signatures must be normalized compact&lt;br/&gt;signatures with the size of 64bytes (128 hex chars).&lt;br/&gt;&lt;br/&gt;==== Possible error code ====&lt;br/&gt;&lt;br/&gt;0 = no error&lt;br/&gt;1 = user canceled&lt;br/&gt;2 = timeout&lt;br/&gt;10 = missing key identifier (missing HD keypath or input scriptpubkey)&lt;br/&gt;11 = unsupported signing type&lt;br/&gt;12 = could not resolve script&lt;br/&gt;50 = unknown internal error&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;==== Examples ====&lt;br/&gt;&lt;br/&gt;===== Simple p2pkh transaction =====&lt;br/&gt;Unsigned raw transaction:&lt;br/&gt;&amp;lt;code&amp;gt;0100000001fd3cd19d0fb7dbb5bff148e6d3e18bc42cc49a76ed2bfd7d760ad1d7907fd9ce0100000000ffffffff0100e1f505000000001976a9149062e542a78d4fe00dcf7cca89c24a8013c381a388ac00000000&amp;lt;/code&amp;gt;&lt;br/&gt;(input ced97f90d7d10a767dfd2bed769ac42cc48be1d3e648f1bfb5dbb70f9dd13cfd&lt;br/&gt;vout:1, output: P2PKH mtgQ54Uf3iRTc9kq18rw9SJznngvF5ryZn 1 BTC)&lt;br/&gt;&lt;br/&gt;signing-request URI must be:&lt;br/&gt;&amp;lt;code&amp;gt;detatchedsigning://sign?type=bitcoin-p2pkh&amp;amp;data=0100000001fd3cd19d0fb7dbb5bff148e6d3e18bc42cc49a76ed2bfd7d760ad1d7907fd9ce0100000000ffffffff0100e1f505000000001976a9149062e542a78d4fe00dcf7cca89c24a8013c381a388ac00000000&amp;amp;inputscripts=76a914531148ad17fdbffd4bac72d43deea6c7cf0387d088ac&amp;amp;inputhdkeypath=m/0&amp;#39;/0&amp;#39;/1&amp;amp;returnscheme=myapp&amp;lt;/code&amp;gt;&lt;br/&gt;The &amp;lt;code&amp;gt;inputhdkeypath&amp;lt;/code&amp;gt; is optional in this case&lt;br/&gt;&lt;br/&gt;signing-response URI must be:&lt;br/&gt;&amp;lt;code&amp;gt;detatchedsigning://signresponse?error=0&amp;amp;signatures=&amp;lt;128hex-chars&amp;gt;&amp;lt;/code&amp;gt;&lt;br/&gt;&lt;br/&gt;===== Simple a bitcoin message =====&lt;br/&gt;Message: &amp;lt;code&amp;gt;Lorem ipsum dolor sit amet&amp;lt;/code&amp;gt;&lt;br/&gt;&lt;br/&gt;signing-request URI must be:&lt;br/&gt;&amp;lt;code&amp;gt;detatchedsigning://sign?type=bitcoinmsg&amp;amp;data=Lorem&#43;ipsum&#43;dolor&#43;sit&#43;amet&amp;amp;inputhdkeypath=m/0&amp;#39;/0&amp;#39;/2&amp;lt;/code&amp;gt;&lt;br/&gt;&lt;br/&gt;signing-response URI must be:&lt;br/&gt;&amp;lt;code&amp;gt;detatchedsigning://signresponse?error=0&amp;amp;signatures=&amp;lt;128hex-chars&amp;gt;&amp;lt;/code&amp;gt;&lt;br/&gt;&lt;br/&gt;=== Support for multiple signing-devices ===&lt;br/&gt;Must operating systems allow only one registered application per&lt;br/&gt;URI-scheme. To support multiple signing-devices, wallets and&lt;br/&gt;signing-devices can optional add support for brand based URI-schemes.&lt;br/&gt;&lt;br/&gt;In addition to the standard URI scheme,&lt;br/&gt;signing-devices-controller-applications can register an additional URI&lt;br/&gt;scheme (with the identical request/response syntax and logic) including&lt;br/&gt;a brand-identifier.&lt;br/&gt;&lt;br/&gt;Registering a brand-identifier based URI scheme without registering the&lt;br/&gt;default URI scheme is not allowed.&lt;br/&gt;&lt;br/&gt;Wallets can detect if a certain brand based URI scheme is supported and&lt;br/&gt;therefore gives user a selection if multiple signing-devices where&lt;br/&gt;detected [4][5].&lt;br/&gt;&lt;br/&gt;&amp;lt;code&amp;gt;detatchedsigning&amp;lt;brandid&amp;gt;://&amp;lt;/code&amp;gt;&lt;br/&gt;&lt;br/&gt;Supported brand-identifiers are:&lt;br/&gt;* trezor&lt;br/&gt;* ledger&lt;br/&gt;* keepkey&lt;br/&gt;* digitalbitbix&lt;br/&gt;&lt;br/&gt;== References ==&lt;br/&gt;[1] &lt;a href=&#34;https://github.com/spesmilo/electrum/pull/1662&#34;&gt;https://github.com/spesmilo/electrum/pull/1662&lt;/a&gt;&lt;br/&gt;[2] &lt;a href=&#34;https://github.com/spesmilo/electrum/pull/1391&#34;&gt;https://github.com/spesmilo/electrum/pull/1391&lt;/a&gt;&lt;br/&gt;[3] &lt;a href=&#34;https://github.com/bitpay/copay/pull/3143&#34;&gt;https://github.com/bitpay/copay/pull/3143&lt;/a&gt;&lt;br/&gt;[4]&lt;br/&gt;&lt;a href=&#34;https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIApplication_Class/&#34;&gt;https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIApplication_Class/&lt;/a&gt;&lt;br/&gt;[5]&lt;br/&gt;&lt;a href=&#34;https://developer.android.com/reference/android/content/pm/PackageManager.html&#34;&gt;https://developer.android.com/reference/android/content/pm/PackageManager.html&lt;/a&gt;&lt;br/&gt;== Acknowledgements ==&lt;br/&gt;&lt;br/&gt;== Copyright ==&lt;br/&gt;This work is placed in the public domain.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&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: 819 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/20160816/fe4471a9/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20160816/fe4471a9/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T17:52:46Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs09lw5lxq46amugscfq9huwug0qf3ye6jwwscd29t2ka4ajfaaphqzyzdyv0s04wyk8vqndxxptg8jgjw3njtl8wyytrjcwsy4k5qxm7dqc3atfpg</id>
    
      <title type="html">📅 Original date posted:2016-08-08 📝 Original message:Hi As ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs09lw5lxq46amugscfq9huwug0qf3ye6jwwscd29t2ka4ajfaaphqzyzdyv0s04wyk8vqndxxptg8jgjw3njtl8wyytrjcwsy4k5qxm7dqc3atfpg" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsfgcxc588twg26zmn53gnggrxu30ng53889w5zszy4fvtc4nandtgvyna2l&#39;&gt;nevent1q…na2l&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2016-08-08&lt;br/&gt;📝 Original message:Hi&lt;br/&gt;&lt;br/&gt;As already mentioned in the recent BIP151 thread&lt;br/&gt;(&lt;a href=&#34;https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2016-June/012826.html&#34;&gt;https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2016-June/012826.html&lt;/a&gt;),&lt;br/&gt;I propose the following authentication scheme to basically allow MITM&lt;br/&gt;detection and rejection in conjunction with BIP151.&lt;br/&gt;&lt;br/&gt;The proposed authentication BIP does require BIP151.&lt;br/&gt;&lt;br/&gt;The propose BIP does assume, node operators want to build trusted&lt;br/&gt;connections for various reasons.&lt;br/&gt;&lt;br/&gt;BIPs mediawiki github page available here:&lt;br/&gt;&lt;a href=&#34;https://github.com/bitcoin/bips/compare/master...jonasschnelli:2016/07/auth_bip?expand=1&#34;&gt;https://github.com/bitcoin/bips/compare/master...jonasschnelli:2016/07/auth_bip?expand=1&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;===================================================&lt;br/&gt;&lt;br/&gt;  BIP: ???&lt;br/&gt;  Title: Peer Authentication&lt;br/&gt;  Author: Jonas Schnelli &amp;lt;dev at jonasschnelli.ch&amp;gt;&lt;br/&gt;  Status: Draft&lt;br/&gt;  Type: Standards Track&lt;br/&gt;  Created: 2016-03-23&lt;br/&gt;&lt;br/&gt;== Abstract ==&lt;br/&gt;&lt;br/&gt;This BIP describes a way how peers can authenticate – without opening&lt;br/&gt;fingerprinting possibilities – to other peers to guarantee ownership&lt;br/&gt;and/or allowing to access additional or limited services.&lt;br/&gt;&lt;br/&gt;== Motivation ==&lt;br/&gt;&lt;br/&gt;We assume peer operators want to limit the access of different services&lt;br/&gt;or increase datastream priorities to a selective subset of peers. Also&lt;br/&gt;we assume peers want to connect to specific peers to broadcast or filter&lt;br/&gt;transactions (or similar action that reveals sensitive informations) and&lt;br/&gt;therefore they want to authenticate the remote peer and make sure that&lt;br/&gt;they have not connected to a MITM.&lt;br/&gt;&lt;br/&gt;Benefits with peer authentication:&lt;br/&gt;* Peers could detect MITM attacks when connecting to known peers&lt;br/&gt;* Peers could allow resource hungry transaction filtering only to&lt;br/&gt;specific peers&lt;br/&gt;* Peers could allow access to sensitive information that can lead to&lt;br/&gt;node fingerprinting (fee estimation)&lt;br/&gt;* Peers could allow custom message types (private extensions) to&lt;br/&gt;authenticated peers&lt;br/&gt;&lt;br/&gt;A simple authentication scheme based on elliptic cryptography will allow&lt;br/&gt;peers to identify each other and selective allow access to restricted&lt;br/&gt;services or reject the connection if the identity could not be verified.&lt;br/&gt;&lt;br/&gt;== Specification ==&lt;br/&gt;&lt;br/&gt;The authentication scheme proposed in this BIP uses ECDSA, ___secrets&lt;br/&gt;will never be transmitted___.&lt;br/&gt;&lt;br/&gt;___Authentication initialization must only happen if encrypted channels&lt;br/&gt;have been established (according to BIP-151 [1]).___&lt;br/&gt;&lt;br/&gt;The ___encryption-session-ID___ is available once channels are encrypted&lt;br/&gt;(according to BIP-151 [1]).&lt;br/&gt;&lt;br/&gt;The identity-public-keys used for the authentication must be pre-shared&lt;br/&gt;over a different channel (Mail/PGP, physical paper exchange, etc.). This&lt;br/&gt;BIP does not cover a &amp;#34;trust on first use&amp;#34; (TOFU) concept.&lt;br/&gt;&lt;br/&gt;The authentication state must be kept until the encryption/connection&lt;br/&gt;terminates.&lt;br/&gt;&lt;br/&gt;Only one authentication process is allowed per connection.&lt;br/&gt;Re-authenticate require re-establishing the connection.&lt;br/&gt;&lt;br/&gt;=== Known-peers and authorized-peers database ===&lt;br/&gt;Each peer that supports p2p authentication must provide two users&lt;br/&gt;editable &amp;#34;databases&amp;#34;&lt;br/&gt;&lt;br/&gt;# ___known-peers___ contains known identity-public-keys together with a&lt;br/&gt;network identifier (IP &amp;amp; port), similar to the &amp;#34;known-host&amp;#34; file&lt;br/&gt;supported by openssh.&lt;br/&gt;# ___authorized-peers___ contains authorized identity-public-keys&lt;br/&gt;&lt;br/&gt;=== Local identity key management ===&lt;br/&gt;Each peer can configure one identity-key (ECC, 32 bytes) per listening&lt;br/&gt;network interface (IPv4, IPv6, tor).&lt;br/&gt;The according identity-public-key can be shared over a different channel&lt;br/&gt;with other node-operators (or non-validating clients) to grant&lt;br/&gt;authorized access.&lt;br/&gt;&lt;br/&gt;=== Authentication procedure ===&lt;br/&gt;Authentication after this BIP will require both sides to authenticate.&lt;br/&gt;Signatures/public-keys will only be revealed if the remote peer could&lt;br/&gt;prove that they already know the remote identity-public-key.&lt;br/&gt;&lt;br/&gt;# -&amp;gt; Requesting peer sends `AUTHCHALLENGE` (hash)&lt;br/&gt;# &amp;lt;- Responding peer sends `AUTHREPLY` (signature)&lt;br/&gt;# -&amp;gt; Requesting peer sends `AUTHPROPOSE` (hash)&lt;br/&gt;# &amp;lt;- Responding peer sends `AUTHCHALLENGE` (hash)&lt;br/&gt;# -&amp;gt; Requesting peer sends `AUTHREPLY` (signature)&lt;br/&gt;&lt;br/&gt;For privacy reasons, dropping the connection or aborting during the&lt;br/&gt;authentication process must not be possible.&lt;br/&gt;&lt;br/&gt;=== `AUTHCHALLENGE` message ===&lt;br/&gt;A peer can send an authentication challenge to see if the responding&lt;br/&gt;peer can produce a valid signature with the expected responding peers&lt;br/&gt;identity-public-key by sending an `AUTHCHALLENGE`-message to the remote&lt;br/&gt;peer.&lt;br/&gt;&lt;br/&gt;The responding peer needs to check if the hash matches the hash&lt;br/&gt;calculated with his own local identity-public-key. Fingerprinting the&lt;br/&gt;requesting peer is not possible.&lt;br/&gt;&lt;br/&gt;32bytes challenge-hash `hash(encryption-session-ID || challenge_type ||&lt;br/&gt;remote-peers-expected-identity-public-key)`&lt;br/&gt;&lt;br/&gt;`challenge_type` is a single character. `i` if the&lt;br/&gt;`AUTHCHALLENGE`-message is the first, requesting challenge or `r` if&lt;br/&gt;it&amp;#39;s the second, remote peers challenge message.&lt;br/&gt;&lt;br/&gt;=== `AUTHREPLY` message ===&lt;br/&gt;A peer must reply an `AUTHCHALLENGE`-message with an `AUTHREPLY`-message.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;| 64bytes || signature || normalized comp.-signature || A signature of&lt;br/&gt;the encryption-session-ID done with the identity-key&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;If the challenge-hash from the `AUTHCHALLENGE`-message did not match the&lt;br/&gt;local authentication public-key, the signature must contain 64bytes of&lt;br/&gt;zeros.&lt;br/&gt;&lt;br/&gt;The requesting peer can check the responding peers identity by checking&lt;br/&gt;the validity of the sent signature against with the pre-shared remote&lt;br/&gt;peers identity-public-key.&lt;br/&gt;&lt;br/&gt;If the signature was invalid, the requesting peer must still proceed&lt;br/&gt;with the authentication by sending an `AUTHPROPOSE`-message with 32&lt;br/&gt;random bytes.&lt;br/&gt;&lt;br/&gt;=== `AUTHPROPOSE` message ===&lt;br/&gt;A peer can propose authentication of the channel by sending an&lt;br/&gt;`AUTHPROPOSE`-message to the remote peer.&lt;br/&gt;&lt;br/&gt;If the signature sent in `AUTHREPLY` was invalid, the peer must still&lt;br/&gt;send an `AUTHPROPOSE`-message containing 32 random bytes.&lt;br/&gt;&lt;br/&gt;The `AUTHPROPOSE` message must be answered with an&lt;br/&gt;`AUTHCHALLENGE`-message – even if the proposed requesting-peers&lt;br/&gt;identity-public-key has not been found in the authorized_peers database.&lt;br/&gt;In case of no match, the responding `AUTHCHALLENGE`-message must&lt;br/&gt;contains 32 bytes of zeros.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;| 32bytes || auth-propose-hash || hash || `hash(encryption-session-ID&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;== Post-Authentication Re-Keying ==&lt;br/&gt;&lt;br/&gt;After the second `AUTHREPLY` message (requesting peers signature -&amp;gt;&lt;br/&gt;responding peer), both clients must re-key the symmetric encryption&lt;br/&gt;according to BIP151 while using ___a slightly  different re-key key&lt;br/&gt;derivation hash___.&lt;br/&gt;&lt;br/&gt;They both re-key with `hash(encryption-session-ID ||&lt;br/&gt;old_symmetric_cipher_key || requesting-peer-identity-public-key ||&lt;br/&gt;responding-peer-identity-public-key)`&lt;br/&gt;&lt;br/&gt;== Identity-Addresses ==&lt;br/&gt;The peers should display/log the identity-public-key as an&lt;br/&gt;identity-address to the users, which is a base58-check encoded&lt;br/&gt;ripemd160(sha256) hash. The purpose of this is for better visual&lt;br/&gt;comparison (logs, accept-dialogs).&lt;br/&gt;The base58check identity byte is `0x0F` followed by an identity-address&lt;br/&gt;version number (=`0xFF01`).&lt;br/&gt;&lt;br/&gt;An identity address would look like&lt;br/&gt;`TfG4ScDgysrSpodWD4Re5UtXmcLbY5CiUHA` and can be interpreted as a remote&lt;br/&gt;peers fingerprint.&lt;br/&gt;&lt;br/&gt;== Compatibility ==&lt;br/&gt;&lt;br/&gt;This proposal is backward compatible. Non-supporting peers will ignore&lt;br/&gt;the new `AUTH*` messages.&lt;br/&gt;&lt;br/&gt;== Example of an auth interaction ==&lt;br/&gt;&lt;br/&gt;Before authentication (once during peer setup or upgrade)&lt;br/&gt;# Requesting peer and responding peer create each an identity-keypair&lt;br/&gt;(standard ECC priv/pubkey)&lt;br/&gt;# Requesting and responding peer share the identity-public-key over a&lt;br/&gt;different channel (PGP mail, physical exchange, etc.)&lt;br/&gt;# Responding peer stores requesting peers identity-public-key in its&lt;br/&gt;authorized-peers database (A)&lt;br/&gt;# Requesting peer stores responding peers identity-public-key in its&lt;br/&gt;known-peers database together with its IP and port (B)&lt;br/&gt;&lt;br/&gt;Encryption&lt;br/&gt;# Encrypted channels must be established (according to BIP-151 [1])&lt;br/&gt;&lt;br/&gt;Authentication&lt;br/&gt;# Requesting peer sends an `AUTHCHALLENGE` message&lt;br/&gt;  AUTHCHALLENGE:&lt;br/&gt;    [32 bytes, hash(encryption-session-ID || &amp;#34;i&amp;#34; ||&lt;br/&gt;&amp;lt;remote-peers-expected-identity-public-key&amp;gt;)]&lt;br/&gt;&lt;br/&gt;# Responding peer does create the same hash `(encryption-session-ID ||&lt;br/&gt;&amp;#34;i&amp;#34; || &amp;lt;remote-peers-expected-identity-public-key&amp;gt;)` with its local&lt;br/&gt;identity-public-key&lt;br/&gt;# If the hash does not match, response with an `AUTHREPLY` message&lt;br/&gt;containing 64bytes of zeros.&lt;br/&gt;# In case of a match, response with an `AUTHREPLY` message&lt;br/&gt;  AUTHREPLY:&lt;br/&gt;    [64 bytes normalized compact ECDSA signature (H)] (sig of the&lt;br/&gt;encryption-session-ID done with the identity-key)&lt;br/&gt;&lt;br/&gt;# Requesting peer does verify the signature with the&lt;br/&gt;`remote-peers-identity-public-key`&lt;br/&gt;# If the signature is invalid, requesting peer answers with an&lt;br/&gt;`AUTHREPLY` message containing 32 random bytes&lt;br/&gt;# In case of a valid signature, requesting peer sends an `AUTHPROPOSE`&lt;br/&gt;message&lt;br/&gt;  AUTHPROPOSE:&lt;br/&gt;    [32 bytes, hash(encryption-session-ID || &amp;#34;p&amp;#34; ||&lt;br/&gt;&amp;lt;client-identity-public-key&amp;gt;)]&lt;br/&gt;&lt;br/&gt;# Responding peer iterates over authorized-peers database (A), hashes&lt;br/&gt;the identical data and looks for a match.&lt;br/&gt;# If the hash does not match, responding peer answer with an&lt;br/&gt;`AUTHCHALLENGE` message containing 32 bytes of zeros.&lt;br/&gt;# In case of a match, responding peer sends an `AUTHCHALLENGE` message&lt;br/&gt;with the hashed client public-key&lt;br/&gt;  AUTHCHALLENGE:&lt;br/&gt;    [32 bytes, hash(encryption-session-ID || &amp;#34;r&amp;#34; ||&lt;br/&gt;&amp;lt;client-identity-public-key&amp;gt;)]&lt;br/&gt;# Requesting peer sends an `AUTHREPLY` message containing 64 bytes of&lt;br/&gt;zeros if server failed to authenticate&lt;br/&gt;# Otherwise, response with signature in the `AUTHREPLY` message&lt;br/&gt;  AUTHREPLY:&lt;br/&gt;    [64 bytes normalized compact ECDSA signature (H)] (sig of the&lt;br/&gt;encryption-session-ID done with the identity-key)&lt;br/&gt;# Responding peer must verify the signature and can grant access to&lt;br/&gt;restricted services.&lt;br/&gt;# Both peers re-key the encryption after BIP151 including the&lt;br/&gt;requesting-peer-identity-public-key and responding-peer-identity-public-key&lt;br/&gt;&lt;br/&gt;== Disadvantages ==&lt;br/&gt;&lt;br/&gt;The protocol may be slow if a peer has a large authorized-peers database&lt;br/&gt;due to the requirement of iterating and hashing over all available&lt;br/&gt;authorized peers identity-public-keys.&lt;br/&gt;&lt;br/&gt;== Reference implementation ==&lt;br/&gt;&lt;br/&gt;== References ==&lt;br/&gt;&lt;br/&gt;* [1] [[bip-0151.mediawiki|BIP 151: Peer-to-Peer Communication Encryption]]&lt;br/&gt;&lt;br/&gt;== Acknowledgements ==&lt;br/&gt;* Gregory Maxwell and Pieter Wuille for most of the ideas in this BIP.&lt;br/&gt;&lt;br/&gt;== Copyright ==&lt;br/&gt;This work is placed in the public domain.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&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: 819 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/20160808/e83bc378/attachment-0001.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20160808/e83bc378/attachment-0001.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T17:52:20Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqspkfqpv0e99gv25lyyd67lp9g2wvduxl07rgdkglj740d3lkjnuqgzyzdyv0s04wyk8vqndxxptg8jgjw3njtl8wyytrjcwsy4k5qxm7dqcjcvyr6</id>
    
      <title type="html">📅 Original date posted:2016-06-30 📝 Original message:&amp;gt; ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqspkfqpv0e99gv25lyyd67lp9g2wvduxl07rgdkglj740d3lkjnuqgzyzdyv0s04wyk8vqndxxptg8jgjw3njtl8wyytrjcwsy4k5qxm7dqcjcvyr6" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsylks4gl0l3xk6fdldqegzr5yjfv6a4mpqgadmen7fwxvys64jwfq9q8v4x&#39;&gt;nevent1q…8v4x&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2016-06-30&lt;br/&gt;📝 Original message:&amp;gt; Yes, this is exactly what I meant. The complexity of the proposed construction is comparable to that of Bitcoin itself. This is not itself prohibitive, but it is clearly worthy of consideration.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; A question we should ask is whether decentralized anonymous credentials is applicable to the authentication problem posed by BIP151. I propose that it is not.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; The core problem posed by BIP151 is a MITM attack. The implied solution (BIP151 &#43; authentication) requires that a peer trusts that another is not an attacker. &lt;br/&gt;&lt;br/&gt;BIP151 would increase the risks for MITM attackers.&lt;br/&gt;What are the benefits for Mallory of he can&amp;#39;t be sure Alice and Bob may&lt;br/&gt;know that he is intercepting the channel?&lt;br/&gt;&lt;br/&gt;MITM is possible today, it would still be possible (though under higher&lt;br/&gt;costs) with BIP151.&lt;br/&gt;&lt;br/&gt;With BIP151 we would have the basic tool-set to effectively reduce the&lt;br/&gt;risks of being MITMled.&lt;br/&gt;&lt;br/&gt;IMO we should focus on the risks and benefits of BIP151 and not drag&lt;br/&gt;this discussion into the realm of authentication. This can and should be&lt;br/&gt;done once we have proposals for authentication (and I&amp;#39;m sure this will&lt;br/&gt;be a heated debate).&lt;br/&gt;&lt;br/&gt;The only valid risk I have on my list from you, Eric, is the false sense&lt;br/&gt;of security.&lt;br/&gt;&lt;br/&gt;My countermeasure for that would be...&lt;br/&gt;- deploy BIP151 together with the simplest form of authentication&lt;br/&gt;(know_hosts / authorized_keys file, no TOFU only editable &amp;#34;by hand&amp;#34;)&lt;br/&gt;- make it more clear (in the BIP151 MOTIVATION text) that it won&amp;#39;t solve&lt;br/&gt;the privacy/MITM problem without additional authentication.&lt;br/&gt;&lt;br/&gt;Or could you elaborate again – without stepping into the realm of&lt;br/&gt;authentication/MITM (which is not part of the BIP or possible already&lt;br/&gt;today) – why BIP151 would make things worse?&lt;br/&gt;&lt;br/&gt;&amp;lt;/jonas&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: 819 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/20160630/ddefb09d/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20160630/ddefb09d/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T17:51:43Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsqlpr5xmwe0v3xwnh0efj3uuyw6l5kjn45zrpnre5yd4mj2r24ezqzyzdyv0s04wyk8vqndxxptg8jgjw3njtl8wyytrjcwsy4k5qxm7dqc0j8qm6</id>
    
      <title type="html">📅 Original date posted:2016-06-30 📝 Original ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsqlpr5xmwe0v3xwnh0efj3uuyw6l5kjn45zrpnre5yd4mj2r24ezqzyzdyv0s04wyk8vqndxxptg8jgjw3njtl8wyytrjcwsy4k5qxm7dqc0j8qm6" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsrcy9l7qzth9xx7n9cdaujk5lnyzh3hevsvuwajyrqraf5vaw7j9glupwev&#39;&gt;nevent1q…pwev&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2016-06-30&lt;br/&gt;📝 Original message:&amp;gt;&amp;gt;&amp;gt; The core problem posed by BIP151 is a MITM attack. The implied solution (BIP151 &#43; authentication) requires that a peer trusts that another is not an attacker.&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; BIP151 would increase the risks for MITM attackers.&lt;br/&gt;&amp;gt;&amp;gt; What are the benefits for Mallory of he can&amp;#39;t be sure Alice and Bob may&lt;br/&gt;&amp;gt;&amp;gt; know that he is intercepting the channel?&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; It is not clear to me why you believe an attack on privacy by an anonymous peer is detectable.&lt;br/&gt;&lt;br/&gt;If Mallory has substituted the ephemeral keys in both directions, at the&lt;br/&gt;point where Alice and Bob will do an authentication, they can be sure&lt;br/&gt;Mallory is listening.&lt;br/&gt;&lt;br/&gt;Simple dummy example:&lt;br/&gt;1.) Encryption setup with ECDH with ephemeral keys after BIP151&lt;br/&gt;2.) Mallory is MITMling the connection. He is substituting both&lt;br/&gt;direction with its own keys&lt;br/&gt;3.) Connection is successfully MITMled&lt;br/&gt;4.) Alice tells Bob &amp;#34;prove me that you are Bob, please sign the&lt;br/&gt;session-ID with your identity key&amp;#34;&lt;br/&gt;5.) Bob signs the sessionID (ECDH secret) with his identity key which&lt;br/&gt;will be unusable for Mallory who has a substituted sessionID in both&lt;br/&gt;directions.&lt;br/&gt;6.) Alice has successfully detected the Mallory&lt;br/&gt;&lt;br/&gt;Disclaimer: 4) and 5) are _not_ authentication proposals :-)&lt;br/&gt;&lt;br/&gt;&amp;lt;/jonas&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: 819 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/20160630/0920253c/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20160630/0920253c/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T17:51:43Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqst8zud2zu9uphlek6mgaw3ta992cva6yjxxn7f4a7tds89j8xvmjqzyzdyv0s04wyk8vqndxxptg8jgjw3njtl8wyytrjcwsy4k5qxm7dqce4qxz2</id>
    
      <title type="html">📅 Original date posted:2016-06-28 📝 Original ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqst8zud2zu9uphlek6mgaw3ta992cva6yjxxn7f4a7tds89j8xvmjqzyzdyv0s04wyk8vqndxxptg8jgjw3njtl8wyytrjcwsy4k5qxm7dqce4qxz2" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs0f8el649zxzj00ng28jwck9hqrjdxpz8rxqwkktwf4zt8y8vge3se5zlj2&#39;&gt;nevent1q…zlj2&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2016-06-28&lt;br/&gt;📝 Original message:&amp;gt;&amp;gt; In my opinion, the question should be &amp;#34;why would you _not_ encrypt&amp;#34;.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; 1) creation of a false sense of security&lt;br/&gt;&lt;br/&gt;False sense of security is mostly a communication issue.&lt;br/&gt;BIP151 does focus on encryption (not trust).&lt;br/&gt;&lt;br/&gt;Are users aware of the fact that ISP/WiFi-Providers can track their&lt;br/&gt;bitcoin spending (if they use SPV&#43;BF) and link it with other internet&lt;br/&gt;traffic or sell the data to anyone who is interested to do correlation?&lt;br/&gt;&lt;br/&gt;Are node operators aware of the possibilities that ISPs/Data-Centers,&lt;br/&gt;etc. can hold back peers, etc.?&lt;br/&gt;&lt;br/&gt;If there is a false sense of security/anonymity, then we are already&lt;br/&gt;deep into this territory.&lt;br/&gt;BIP151 was designed as a puzzle-pice towards better security and better&lt;br/&gt;censorship resistance. You shouldn&amp;#39;t project all sorts of &amp;#34;false sense&lt;br/&gt;of security&amp;#34; into BIP151. Is a stepping stone towards greater security.&lt;br/&gt;&lt;br/&gt;&amp;gt; 2) as a tradeoff against anonymity&lt;br/&gt;&lt;br/&gt;Can you point out the tradeoffs?&lt;br/&gt;BIP151 does not introduce fingerprinting possibilities.&lt;br/&gt;&lt;br/&gt;&amp;gt; 3) benefit does not justify cost&lt;br/&gt;&lt;br/&gt;Can you elaborate the costs?&lt;br/&gt;[Extremely simplified]: we need 300 lines of code from openssh&lt;br/&gt;(ChaCha20-Poly1305 at openssl) and some ECDH magic (already in&lt;br/&gt;Bitcoin-Cores codebase) together with two or three (maybe payed)&lt;br/&gt;cryptoanalysis once the implementation is done.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;gt;&amp;gt; There are plenty of other options to solve this problem. stunnel,&lt;br/&gt;&amp;gt;&amp;gt; Bernsteins CurveCP, VPN, etc. which are available since years.&lt;br/&gt;&amp;gt;&amp;gt; But the reality has shown that most bitcoin traffic is still unencrypted.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; The question arises from concern over the security of the network in the case where encryption (and therefore authentication) is pervasive.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; As you point out, anyone can set up a private network of nodes today. These nodes must also connect to the permissionless network to maintain the chain. These nodes constitute a trust zone within Bitcoin. This zone of exclusion operates as a single logical node from the perspective of the Bitcoin security model (one entity controls the validation rules for all nodes).&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Widespread application of this model is potentially problematic. It is a non-trivial problem to design a distributed system that requires authentication but without identity and without central control. In fact this may be more challenging than Bitcoin itself. Trust on first use (TOFU) does not solve this problem.&lt;br/&gt;&lt;br/&gt;Yes. There is no plan to adopt a TUFO scheme. Bip151 does not use TUFO&lt;br/&gt;it does not cover &amp;#34;trust&amp;#34; (It just encrypt all traffic).&lt;br/&gt;&lt;br/&gt;Imaging Bip151 together with a simple form of preshared EC key&lt;br/&gt;authentication (nonce signing or similar). You could drastically&lt;br/&gt;increase the security/censor-resistance-properties between nodes where&lt;br/&gt;owners have preshared identity keys (with nodes I also mean SPV/wallet&lt;br/&gt;nodes).&lt;br/&gt;&lt;br/&gt;And I guess there are plenty of awesome identity management system ideas&lt;br/&gt;tied or not tied to the Bitcoin blockchain out there.&lt;br/&gt;This is also a reason to not cover trust/authentication/identity in BIP151.&lt;br/&gt;It is  possible to have multiple authentication schemes.&lt;br/&gt;&lt;br/&gt;&amp;gt; In my opinion this question has not received sufficient consideration to warrant proceeding with a network encryption scheme (which concerns me as well, but as I consider it premature I won&amp;#39;t comment).&lt;br/&gt;&lt;br/&gt;Yes. I think nobody have started implementing BIP151. It&amp;#39;s a draft BIP&lt;br/&gt;and I think it&amp;#39;s still okay and great that we have this discussion.&lt;br/&gt;&lt;br/&gt;BIP151 hopefully has started some brainwork in how encryption and&lt;br/&gt;authentication could work in Bitcoin and I&amp;#39;m happy to deprecate BIP151&lt;br/&gt;if we have found a better solution or if we come to a point where we&lt;br/&gt;agree that BIP151 does make the network security worse.&lt;br/&gt;&lt;br/&gt;&amp;gt;&amp;gt; Example: IIRC non of the available SPV wallets can &amp;#34;speak&amp;#34; on of the&lt;br/&gt;&amp;gt;&amp;gt; possible encryption techniques. Encrypting traffic below the application&lt;br/&gt;&amp;gt;&amp;gt; layer is extremely hard to set up for non-experienced users.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Bloom filters can (and IMO should) be isolated from the P2P protocol. Also, if the proposal creates an insecurity its ease of deployment is moot.&lt;br/&gt;&lt;br/&gt;If we assume increasing amount of novice users starting with Bitcoin&lt;br/&gt;every day, how should these users run wallets without increasing&lt;br/&gt;centralization by using webwallets or client/central-server wallets?&lt;br/&gt;(which is OT, but an interesting question)&lt;br/&gt;&lt;br/&gt;&amp;gt;&amp;gt; On top of that, encryption allows us to drop the SHA256 checksum per p2p&lt;br/&gt;&amp;gt;&amp;gt; message which should result in a better performance on the network layer&lt;br/&gt;&amp;gt;&amp;gt; once BIP151 is deployed.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; I would not consider this a performance enhancing proposal. Simply dropping the checksum seems like a better option. But again, it is moot if it creates an insecurity.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt;&amp;gt; I agree that BIP151 _must_ be deployed together with an authentication&lt;br/&gt;&amp;gt;&amp;gt; scheme (I&amp;#39;m working on that) to protect again MITM during encryption&lt;br/&gt;&amp;gt;&amp;gt; initialization.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; At a minimum I would propose that you modify BIP151 to declare a dependency on a future BIP, making BIP151 incomplete without it. I think we can agree that it would be unadvisable to deploy (and therefore to implement) encryption alone.&lt;br/&gt;&lt;br/&gt;I think BIP151 does what it says: encryption and laying groundwork for&lt;br/&gt;authentication.&lt;br/&gt;You wouldn&amp;#39;t probably say BIP32 is incomplete because it does not cover&lt;br/&gt;a scheme how to recover funds (or BIP141 [SW consensus] is incomplete&lt;br/&gt;because it does not cover p2p [BIP144]).&lt;br/&gt;&lt;br/&gt;The missing MITM protection (solvable over auth) is prominent mentioned&lt;br/&gt;in the BIP [1].&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;(from your other mail):&lt;br/&gt;&amp;gt;&amp;gt; I don&amp;#39;t see reasons why BIP151 could weaken the security of the P2P network. Can you point out some specific concerns?&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; TOFU cannot prevent MITM attacks (the goal of the encryption). Authentication requires a secure (trusted) side channel by which to distribute public keys. This presents what I consider a significant problem. If widespread, control over this distribution network would constitute control over who can use Bitcoin.&lt;br/&gt;&amp;gt; The effort to prevent censorship could actually enable it. I don&amp;#39;t think it would get that far. Someone would point this out in the process of vetting the authentication BIP, and the result would be the scrapping of BIP151.&lt;br/&gt;&lt;br/&gt;I agree that the secure trusted 2nd channel key-sharing problem can be&lt;br/&gt;significant for large networks and/or connecting to unknown identities.&lt;br/&gt;&lt;br/&gt;But as said, there could be multiple ways of sharing identity keys.&lt;br/&gt;If you want to connect your node to serval other trusted nodes, you can&lt;br/&gt;simply physically preshare keys or do it over GPG / Signal App, etc..&lt;br/&gt;&lt;br/&gt;And if I have followed the news correctly, there are some clever guys&lt;br/&gt;working on various internet of trust 2.0 proposals...&lt;br/&gt;&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; BIP151 does not rely on identities. BIP151 does not use persisted keys&lt;br/&gt;&amp;gt;&amp;gt; (only ephemeral keys).&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; BIP 151 is incomplete without authentication.&lt;br/&gt;&lt;br/&gt;I would agree if you would say, _trusted encryption_ is incomplete with&lt;br/&gt;authentication. But IMO BIP151 is complete and should be deployed&lt;br/&gt;together with one or multiple authentication schemes.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;[1] &lt;a href=&#34;https://github.com/bitcoin/bips/blob/master/bip-0151.mediawiki#risks&#34;&gt;https://github.com/bitcoin/bips/blob/master/bip-0151.mediawiki#risks&lt;/a&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: 819 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/20160628/3748c989/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20160628/3748c989/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T17:51:40Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsg5pa2t49f3hl3t4j3t054fmpjexzcy630mugf9v22x9cjagmytrqzyzdyv0s04wyk8vqndxxptg8jgjw3njtl8wyytrjcwsy4k5qxm7dqcq8ufer</id>
    
      <title type="html">📅 Original date posted:2016-06-28 📝 Original message:Hi ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsg5pa2t49f3hl3t4j3t054fmpjexzcy630mugf9v22x9cjagmytrqzyzdyv0s04wyk8vqndxxptg8jgjw3njtl8wyytrjcwsy4k5qxm7dqcq8ufer" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs83yh7ke8ztz9g6z7cuwy06necjf97ge34janw0y05fsr8523ns9qja5xq2&#39;&gt;nevent1q…5xq2&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2016-06-28&lt;br/&gt;📝 Original message:Hi Eric&lt;br/&gt;&lt;br/&gt;&amp;gt; I haven&amp;#39;t seen much discussion here on the rationale behind BIP 151. Apologies if I missed it. I&amp;#39;m trying to understand why libbitcoin (or any node) would want to support it.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; I understand the use, when coupled with a yet-to-be-devised identity system, with Bloom filter features. Yet these features are client-server in nature. Libbitcoin (for example) supports client-server features on an independent port (and implements a variant of CurveCP for encryption and identity). My concern arises with application of identity to the P2P protocol (excluding Bloom filter features).&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; It seems to me that the desire to secure against the weaknesses of BF is being casually generalized to the P2P network. That generalization may actually weaken the security of the P2P protocol. One might consider the proper resolution is to move the BF features to a client-server protocol.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; The BIP does not make a case for other scenarios, or contemplate the significant problems associated with key distribution in any identity system. Given that the BIP relies on identity, these considerations should be fully vetted before heading down another blind alley.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;In my opinion, the question should be &amp;#34;why would you _not_ encrypt&amp;#34;.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;1) Transaction censorship&lt;br/&gt;ISPs, WIFI provider or any other MITM, can holdback/censor unconfirmed&lt;br/&gt;transactions. Regardless if you are a miner or a validation/wallet node.&lt;br/&gt;&lt;br/&gt;2) Peer censorship&lt;br/&gt;MITM can remove or add entries from a &amp;#34;addr&amp;#34; message.&lt;br/&gt;&lt;br/&gt;3) Fingerprinting&lt;br/&gt;ISPs or any other MITM can intercept/inject fingerprinting relevant&lt;br/&gt;messages like &amp;#34;mempool&amp;#34; to analyze the bitcoin network.&lt;br/&gt;&lt;br/&gt;4) SPV&lt;br/&gt;For obvious reasons regarding BF (see BIP or above).&lt;br/&gt;&lt;br/&gt;5) Goundwork for a &amp;#34;client-server&amp;#34; model over the P2P channel&lt;br/&gt;Fee estimation, bloom-filters, or any other message type that requires&lt;br/&gt;authentication.&lt;br/&gt;&lt;br/&gt;I would not reduce BIP151 to only solve the BF privacy/censorship problem.&lt;br/&gt;&lt;br/&gt;If we agree that censorship-resistance is one of the main properties of&lt;br/&gt;Bitcoin, then we should definitively use a form of end-to-end encryption&lt;br/&gt;between nodes. Built into the network layer.&lt;br/&gt;&lt;br/&gt;There are plenty of other options to solve this problem. stunnel,&lt;br/&gt;Bernsteins CurveCP, VPN, etc. which are available since years.&lt;br/&gt;But the reality has shown that most bitcoin traffic is still unencrypted.&lt;br/&gt;Example: IIRC non of the available SPV wallets can &amp;#34;speak&amp;#34; on of the&lt;br/&gt;possible encryption techniques. Encrypting traffic below the application&lt;br/&gt;layer is extremely hard to set up for non-experienced users.&lt;br/&gt;&lt;br/&gt;On top of that, encryption allows us to drop the SHA256 checksum per p2p&lt;br/&gt;message which should result in a better performance on the network layer&lt;br/&gt;once BIP151 is deployed.&lt;br/&gt;&lt;br/&gt;I agree that BIP151 _must_ be deployed together with an authentication&lt;br/&gt;scheme (I&amp;#39;m working on that) to protect again MITM during encryption&lt;br/&gt;initialization.&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;&amp;lt;/jonas&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: 819 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/20160628/4b67008b/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20160628/4b67008b/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T17:51:36Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsdxc954qpdycm0d9l49at5etgqvypdhrqc69zz3w6axvyvquz2pxqzyzdyv0s04wyk8vqndxxptg8jgjw3njtl8wyytrjcwsy4k5qxm7dqc4qjwc9</id>
    
      <title type="html">📅 Original date posted:2016-06-28 📝 Original message:&amp;gt; ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsdxc954qpdycm0d9l49at5etgqvypdhrqc69zz3w6axvyvquz2pxqzyzdyv0s04wyk8vqndxxptg8jgjw3njtl8wyytrjcwsy4k5qxm7dqc4qjwc9" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs2lj3p9raz9v35hgyqwyxmljcgwax993umqst6raywmjaxr7jx8hgn0kkyw&#39;&gt;nevent1q…kkyw&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2016-06-28&lt;br/&gt;📝 Original message:&amp;gt; To quote:&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt;&amp;gt; HMAC_SHA512(key=ecdh_secret|cipher-type,msg=&amp;#34;encryption key&amp;#34;).&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;  K_1 must be the left 32bytes of the HMAC_SHA512 hash.&lt;br/&gt;&amp;gt;&amp;gt;  K_2 must be the right 32bytes of the HMAC_SHA512 hash.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; This seems a weak reason to introduce SHA512 to the mix.  Can we just&lt;br/&gt;&amp;gt; make:&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; K_1 = HMAC_SHA256(key=ecdh_secret|cipher-type,msg=&amp;#34;header encryption key&amp;#34;)&lt;br/&gt;&amp;gt; K_2 = HMAC_SHA256(key=ecdh_secret|cipher-type,msg=&amp;#34;body encryption key&amp;#34;)&lt;br/&gt;&lt;br/&gt;SHA512_HMAC is used by BIP32 [1] and I guess most clients will somehow&lt;br/&gt;make use of bip32 features. I though a single SHA512_HMAC operation is&lt;br/&gt;cheaper and simpler then two SHA256_HMAC.&lt;br/&gt;&lt;br/&gt;AFAIK, sha256_hmac is also not used by the current p2p &amp;amp; consensus layer.&lt;br/&gt;Bitcoin-Core uses it for HTTP RPC auth and Tor control.&lt;br/&gt;&lt;br/&gt;I don&amp;#39;t see big pros/cons for SHA512_HMAC over SHA256_HMAC.&lt;br/&gt;&lt;br/&gt;&amp;lt;/jonas&amp;gt;&lt;br/&gt;&lt;br/&gt;[1]&lt;br/&gt;&lt;a href=&#34;https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki#child-key-derivation-ckd-functions&#34;&gt;https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki#child-key-derivation-ckd-functions&lt;/a&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: 819 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/20160628/bbe12795/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20160628/bbe12795/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T17:51:33Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsxy0ggve0rllta40yfg7l6s2gvq70kjwrg42g7t4s3uc02sq7z0ygzyzdyv0s04wyk8vqndxxptg8jgjw3njtl8wyytrjcwsy4k5qxm7dqcrl4se5</id>
    
      <title type="html">📅 Original date posted:2016-05-14 📝 Original message:&amp;gt; ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsxy0ggve0rllta40yfg7l6s2gvq70kjwrg42g7t4s3uc02sq7z0ygzyzdyv0s04wyk8vqndxxptg8jgjw3njtl8wyytrjcwsy4k5qxm7dqcrl4se5" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsf40f8ahu63qajzc8xpuud06468lx6s5t65lc40erma8hmexamfcckm64u0&#39;&gt;nevent1q…64u0&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2016-05-14&lt;br/&gt;📝 Original message:&amp;gt; On 14/05/16 10:16, Jonas Schnelli via bitcoin-dev wrote:&lt;br/&gt;&amp;gt;&amp;gt; Importing a bip32 wallet (bip44 or not) is still an expert job IMO.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; That&amp;#39;s simply not true. All reasonable wallets (reasonable = user&lt;br/&gt;&amp;gt; oriented) now use BIP39 mnemonic for doing exactly this.&lt;br/&gt;&lt;br/&gt;AFAIK: Bip39 import (cross-wallet) is not supported by Schildbachs&lt;br/&gt;android wallet [1] and Electrum [2] and Breadwallet [3].&lt;br/&gt;&lt;br/&gt;But I think forming a BIP39 mnemonic into a extended master private key&lt;br/&gt;is not the problem here.&lt;br/&gt;&lt;br/&gt;The problems I see:&lt;br/&gt;* What if the &amp;#34;old&amp;#34; wallet has used more then 1000 addresses? I guess&lt;br/&gt;some wallets do not even create a lookup window up to 1000 addresses.&lt;br/&gt;There is a high chance of loosing funds when doing sweep (move all funds&lt;br/&gt;to a new wallet) operation.&lt;br/&gt;&lt;br/&gt;* I guess most or maybe all wallets will keep all keys (the&lt;br/&gt;&amp;#34;lookup-window&amp;#34; keys) in the wallet database which could affect&lt;br/&gt;performance [4]&lt;br/&gt;&lt;br/&gt;* I guess most wallets do not offer &amp;#34;moving the funds to a new seed&amp;#34; [5]&lt;br/&gt;which results in not solving the problem of a &amp;#34;lost&amp;#34; or &amp;#34;compromised&amp;#34;&lt;br/&gt;wallet and implies wrong security to the enduser.&lt;br/&gt;&lt;br/&gt;* If I import a bip39 mnemonic into a hardware wallet (assume Trezor or&lt;br/&gt;Keepkey) I have to type in the words into my computer which bypasses&lt;br/&gt;some of the security my hardware wallet provides me (MITM seed attack).&lt;br/&gt;Together with the point above this reduces the security of a wallet (in&lt;br/&gt;particular cold storage significant).&lt;br/&gt;&lt;br/&gt;Please correct me if I&amp;#39;m wrong.&lt;br/&gt;&lt;br/&gt;I just wanted to point out that importing a wallet is a tricky step&lt;br/&gt;especially cross-wallet imports (I think cross wallet imports is an&lt;br/&gt;experts job without further improvements).&lt;br/&gt;&lt;br/&gt;[1] &lt;a href=&#34;https://github.com/bitcoin-wallet/bitcoin-wallet/issues/245&#34;&gt;https://github.com/bitcoin-wallet/bitcoin-wallet/issues/245&lt;/a&gt;&lt;br/&gt;[2] &lt;a href=&#34;http://docs.electrum.org/en/latest/seedphrase.html&#34;&gt;http://docs.electrum.org/en/latest/seedphrase.html&lt;/a&gt;&lt;br/&gt;[3] &lt;a href=&#34;https://github.com/voisine/breadwallet/issues/360&#34;&gt;https://github.com/voisine/breadwallet/issues/360&lt;/a&gt;&lt;br/&gt;[4] &lt;a href=&#34;https://github.com/bitcoin-wallet/bitcoin-wallet/issues/158&#34;&gt;https://github.com/bitcoin-wallet/bitcoin-wallet/issues/158&lt;/a&gt;&lt;br/&gt;[5]&lt;br/&gt;&lt;a href=&#34;https://github.com/voisine/breadwallet/blob/master/BreadWallet/BRRestoreViewController.m#L225&#34;&gt;https://github.com/voisine/breadwallet/blob/master/BreadWallet/BRRestoreViewController.m#L225&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;/jonas&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: 819 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/20160514/22aca5af/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20160514/22aca5af/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T17:50:42Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsp8xxgn2jx6e7axaemjzqgen69298la2aedwq96qm7373dgzd7xaczyzdyv0s04wyk8vqndxxptg8jgjw3njtl8wyytrjcwsy4k5qxm7dqcht7nse</id>
    
      <title type="html">📅 Original date posted:2016-05-14 📝 Original message:Hi ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsp8xxgn2jx6e7axaemjzqgen69298la2aedwq96qm7373dgzd7xaczyzdyv0s04wyk8vqndxxptg8jgjw3njtl8wyytrjcwsy4k5qxm7dqcht7nse" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqszq2suphtml9gjq48yf2w3zlxcmpvp0c9cmzeehkxcadq0yvxyjwczkl8xp&#39;&gt;nevent1q…l8xp&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2016-05-14&lt;br/&gt;📝 Original message:Hi&lt;br/&gt;&lt;br/&gt;&amp;gt; That&amp;#39;s a valid concern, but I don&amp;#39;t see the conflict here. In order to&lt;br/&gt;&amp;gt; recover funds from a wallet conforming to BIPXX, you must have wallet&lt;br/&gt;&amp;gt; software that handles BIPXX. Simply making BIPXX backwards compatible&lt;br/&gt;&amp;gt; with previously created BIP44 or BIP43 purpose 0 wallets doesn&amp;#39;t change&lt;br/&gt;&amp;gt; this at all.&lt;br/&gt;&lt;br/&gt;Maybe I&amp;#39;m going a bit offtopic. Sorry for that.&lt;br/&gt;&lt;br/&gt;Importing a bip32 wallet (bip44 or not) is still an expert job IMO.&lt;br/&gt;Also importing can lead to bad security practice (especially without a&lt;br/&gt;sweep).&lt;br/&gt;&lt;br/&gt;Users will send around xpriv or import an seed over a compromised&lt;br/&gt;computer to a cold storage, etc.&lt;br/&gt;&lt;br/&gt;I don&amp;#39;t think users want to import private keys.&lt;br/&gt;They probably want to import the transaction history and send all funds&lt;br/&gt;covered by that seed to a new wallet.&lt;br/&gt;&lt;br/&gt;I often though that task is better covered by a little GUI tool or&lt;br/&gt;cli-app/script:&lt;br/&gt;-&amp;gt; Accept different bip32 schematics (bip32 native, bip44, etc.)&lt;br/&gt;-&amp;gt; Accept different bip39 (like) implementation&lt;br/&gt;-&amp;gt; Create large lookup windows&lt;br/&gt;-&amp;gt; Create a sweep transaction to a new address/wallet and sign/broadcast it.&lt;br/&gt;-&amp;gt; Export transaction history (CSV)&lt;br/&gt;&lt;br/&gt;But maybe I&amp;#39;m over-complicating things.&lt;br/&gt;&lt;br/&gt;--&lt;br/&gt;&amp;lt;/jonas&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: 819 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/20160514/fb88c8d0/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20160514/fb88c8d0/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T17:50:42Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs2t5jm2lprw84fvj2vrcu63vrgm5n8pl4xppkgfrqx8gj8tgllmhszyzdyv0s04wyk8vqndxxptg8jgjw3njtl8wyytrjcwsy4k5qxm7dqcmd0vth</id>
    
      <title type="html">📅 Original date posted:2016-02-29 📝 Original ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs2t5jm2lprw84fvj2vrcu63vrgm5n8pl4xppkgfrqx8gj8tgllmhszyzdyv0s04wyk8vqndxxptg8jgjw3njtl8wyytrjcwsy4k5qxm7dqcmd0vth" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqspfhp8lm8pr8s7g7cv9my263pe9e88sqlh58q34vd78heufed8ttg0jsahq&#39;&gt;nevent1q…sahq&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2016-02-29&lt;br/&gt;📝 Original message:-----BEGIN PGP SIGNED MESSAGE-----&lt;br/&gt;Hash: SHA256&lt;br/&gt;&lt;br/&gt;Hi&lt;br/&gt;&lt;br/&gt;I’ve been thinking around a solution to reduce nodes bootstrap time&lt;br/&gt;(IBD) as well as a way to reduce the amount of bandwidth/network usage&lt;br/&gt;per node.&lt;br/&gt;Not sure if this idea was/is already discussed, haven’t found anything&lt;br/&gt;in a quick research.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;==Title==&lt;br/&gt;Fast bootstrapping with a pre-generated UTXO-set database.&lt;br/&gt;&lt;br/&gt;==Abstract==&lt;br/&gt;This documents describes a way how bitcoin nodes can bootstrap faster&lt;br/&gt;by loading a pre-generated UTXO-set datafile with moderate reduction&lt;br/&gt;of the security model.&lt;br/&gt;&lt;br/&gt;==Specification==&lt;br/&gt;Bitcoin-core or any other full node client will need to provide a&lt;br/&gt;feature to &amp;#34;freeze&amp;#34; the UTXO-set at a specified height (will require a&lt;br/&gt;reindex). The frozen UTXO-set – at a specific height – will be&lt;br/&gt;deterministic linearized in a currently not specified&lt;br/&gt;data-serializing-format.&lt;br/&gt;Additionally, a serialized form of the current chain-index (chain&lt;br/&gt;containing all block-headers) up to the specified height will be&lt;br/&gt;appended to the pre-generated UTXO-set-datafile.&lt;br/&gt;The datafile will be hashed with a double SHA256.&lt;br/&gt;&lt;br/&gt;The corresponding hash will be produced/reproduced and signed (ECDSA)&lt;br/&gt;by a group of developers, ideally the same group of developers who are&lt;br/&gt;also signing deterministic builds (binary distribution).&lt;br/&gt;&lt;br/&gt;Full node client implementations that supports bootstrapping from a&lt;br/&gt;pre-generated UTXO-set, need to include...&lt;br/&gt;1.) a set of pubkeys from trusted developers&lt;br/&gt;2.) the hash (or hashes) of the pre-generated UTXO-set-datafile(s)&lt;br/&gt;3.) n signatures of the hash(es) from 2) from a subset of developers&lt;br/&gt;defined in 1)&lt;br/&gt;&lt;br/&gt;To guarantee the integrity of developers pubkeys &amp;amp; signatures, methods&lt;br/&gt;like the current gitian build, used in bitcoin-core, must be used.&lt;br/&gt;&lt;br/&gt;New nodes could download a copy of the pre-generated UTXO-set, hash&lt;br/&gt;it, verify the hash against the allowed UTXO-sets, verify the ECDSA&lt;br/&gt;signatures from various developers, and continue bootstrapping from&lt;br/&gt;the specified height if the users accepts the amount of valid signatures&lt;br/&gt;.&lt;br/&gt;&lt;br/&gt;Sharing of the pre-generated UTXO-set can be done over CDNs,&lt;br/&gt;bit-torrent or any other file hosting solution. It would also be&lt;br/&gt;possible to extend the bitcoin p2p layer with features to&lt;br/&gt;distribute/share a such pre-generated UTXO-set, in chunks and with the&lt;br/&gt;according hashes to detect invalidity before downloading the whole&lt;br/&gt;content (but would probably end up in something very similar to&lt;br/&gt;bit-torrent).&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;- ----------------------&lt;br/&gt;&amp;lt;/jonas&amp;gt;&lt;br/&gt;-----BEGIN PGP SIGNATURE-----&lt;br/&gt;Version: GnuPG v2&lt;br/&gt;&lt;br/&gt;iQIcBAEBCAAGBQJW1B1wAAoJECnUvLZBb1PsqzsP/iSdvyhUzy&#43;BZVSZbKXNjk5P&lt;br/&gt;2vrtirI6NvKQd8hHbrcFeLfyswzYc2JWRnX8sATlauIS0pYdr97JriwUGlvxvNrY&lt;br/&gt;iVTDdf8MIVu8zScLQtJbMatpMvsewtqQEidn/yxWIhiCg4G2T5DZmlBU6O4XIKR6&lt;br/&gt;5aPHElGOKZ15EWGHBG7z4owj3MiOaxhD9q5erBbfLPpcm08o6XAv5miqmGnnn3zh&lt;br/&gt;gocg4Gxs6iDygh3b2dCJFwWIVPxF6UVJhyjv2kLZUmEHT2Y2QvdGcLIIewcWHDze&lt;br/&gt;kgoZYmOEowujCbmeJ&#43;LBwgOI0c1N6L/ciomPBne7ILmK4LyUEzyMLJKNYf/sZ8vI&lt;br/&gt;sVlmwZwZZLfILC7mzMAM0pfj99IOW680WHch9v31lWFlxW/bLvLqAO7n3acQuD6s&lt;br/&gt;xCZN2nAhmWC8FnMFxqB3EUz0lX8giV3qRJZjbQMS&#43;ZrngYkAmVv2bAsoLndqf6MO&lt;br/&gt;l9W8B&#43;ICg1KZLGIOF2pUrInpkB6gUALDFnypV4CeIVdeqtk5l4LnCHK6c4&#43;&#43;Hl5n&lt;br/&gt;Bv5HQ/wTgKKNFtHBEJpWyYWvAjfFtgUZUKblR&#43;Bh&#43;D7/Gte1ehiYd02KYD4ds9Y4&lt;br/&gt;3gfO8YbAz/I14Yuh2bIlvVKPWnLQBwL5BBioBfvmhV/r6rEpzWvB7H6Fmi1c759l&lt;br/&gt;VlL0GiUV8ar2LlFhEmWk&lt;br/&gt;=lZSy&lt;br/&gt;-----END PGP SIGNATURE-----
    </content>
    <updated>2023-06-07T17:49:22Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs96tkg6pcz42an4nu4ycewprq83ms990863szjygwmq9ypas0plxszyzdyv0s04wyk8vqndxxptg8jgjw3njtl8wyytrjcwsy4k5qxm7dqcpksgj3</id>
    
      <title type="html">📅 Original date posted:2015-10-23 📝 Original ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs96tkg6pcz42an4nu4ycewprq83ms990863szjygwmq9ypas0plxszyzdyv0s04wyk8vqndxxptg8jgjw3njtl8wyytrjcwsy4k5qxm7dqcpksgj3" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqswwrxrhwuk3u3krj5twlnm37vl87emndsn79q7dtkcpq84k0luazq9g3umd&#39;&gt;nevent1q…3umd&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2015-10-23&lt;br/&gt;📝 Original message:-----BEGIN PGP SIGNED MESSAGE-----&lt;br/&gt;Hash: SHA1&lt;br/&gt;&lt;br/&gt;&amp;gt; Here is the beginnings of an implementation to replace leveldb&lt;br/&gt;&amp;gt; with sqlite: &lt;a href=&#34;https://github.com/jgarzik/bitcoin/tree/2015_sqlite&#34;&gt;https://github.com/jgarzik/bitcoin/tree/2015_sqlite&lt;/a&gt;&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; It builds, but still needs work before passing tests.&lt;br/&gt;&lt;br/&gt;Nice work!&lt;br/&gt;&lt;br/&gt;Although not sure if we should focus directly on sqlite4 (could be&lt;br/&gt;optional with a configure flag and a subtree [until stable], sqlite3&lt;br/&gt;supported over depends).&lt;br/&gt;&lt;br/&gt;Also i personally would recommend to not implement it as a&lt;br/&gt;replacement, instead, support multiple backends (wrapper header /&lt;br/&gt;different wrapper implementations [leveldb / sqlite3 / sqlite4]). But&lt;br/&gt;– agreed – should not be the focus, but a nice additional flexibility&lt;br/&gt;if it not require much more work.&lt;br/&gt;And – in theory – multiple database back-ends would allow migration.&lt;br/&gt;&lt;br/&gt;Before investigating to deep, i think we need a dbwrapper bench tool&lt;br/&gt;that represents our needs and our style how we hit the database.&lt;br/&gt;Gavins recently added bench target / bench environment could be used&lt;br/&gt;for that.&lt;br/&gt;&lt;br/&gt;/jonas&lt;br/&gt;-----BEGIN PGP SIGNATURE-----&lt;br/&gt;Version: GnuPG v1&lt;br/&gt;&lt;br/&gt;iQIcBAEBAgAGBQJWKdlgAAoJECnUvLZBb1Ps7J8P/2L6215fd0rWGv5uvbLSnQvm&lt;br/&gt;hy1T2AaOfH5HXd2m95icaKYk&#43;ugvQAL80Q/67YwZbPLsT4fErgegw8n75Z6nh/Pc&lt;br/&gt;OJ1EtAvD&#43;Kc/Vm0Wcvt421HXwnm4f&#43;j&#43;8eoEvpG6DdC8gfIG&#43;efhM7DljeNbPFrA&lt;br/&gt;ieNe7XrQ1EZ29lMzpQv0nx3bi6tUHOWuazk82B6vnK49MjH7nrUFipcc18nXbSpM&lt;br/&gt;ZKjQakXmfqIBG8QP9ZUYUlW4aoG0oaOoZnGjQA2LeXBJpIPLpE/WPg0XaXubC&#43;No&lt;br/&gt;232CJNtNyUOmjkb2qbep6vSYgqGJNy1HbCU5y3qooxJhFnKdo63CQsyJKSpL/ssi&lt;br/&gt;0lWraNxjbacxsBn&#43;63In3wEkj02orwm2zTO4I77wCrZmJgpvBFb9bZWTeL8DCYSG&lt;br/&gt;DTkZoKWEK74xvm&#43;dNpEWXK9Lm1ltfyhPdaFeMoRDub4w2uuYlk3KuD8Vdy81HYJb&lt;br/&gt;sak8FbkiWw9xx2OP9&#43;G56Arf9W6mnJ3YHJGrY4SXeRAfuNYwGFHIGt6I1JobuHy4&lt;br/&gt;VWmcHuooz/Q9JLUu3Rr3HsEdXYgCmgmWuzTgWG&#43;Hx92Y6XLWV5pOX&#43;vFRO6J5fSm&lt;br/&gt;aTYPD4GsTM3FROXw5ezlXJ&#43;2y1&#43;ITzmrfm03fEDQvoIyH0TwBqBc5sMBBkma5DDR&lt;br/&gt;0HUthPHWCD&#43;AxbBPbRVa&lt;br/&gt;=CUMX&lt;br/&gt;-----END PGP SIGNATURE-----
    </content>
    <updated>2023-06-07T17:43:52Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsv52aj446nk836qp4r0sgp048lqzh770lxzpyke77qh0lgmyhnxdczyzdyv0s04wyk8vqndxxptg8jgjw3njtl8wyytrjcwsy4k5qxm7dqcsmkqzk</id>
    
      <title type="html">📅 Original date posted:2015-10-05 📝 Original ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsv52aj446nk836qp4r0sgp048lqzh770lxzpyke77qh0lgmyhnxdczyzdyv0s04wyk8vqndxxptg8jgjw3njtl8wyytrjcwsy4k5qxm7dqcsmkqzk" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsdap6urtlgjrshs9u7za4wxm9a976a4tnvj793w2550ugtn6reghcsc888a&#39;&gt;nevent1q…888a&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2015-10-05&lt;br/&gt;📝 Original message:-----BEGIN PGP SIGNED MESSAGE-----&lt;br/&gt;Hash: SHA1&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;gt; Perhaps Pedro wants to also participate in a 2-of-2 cosigning &lt;br/&gt;&amp;gt; arrangement with a merchant that will deliver a laptop to him, so&lt;br/&gt;&amp;gt; Pedro provides this merchant with the same extended public key&lt;br/&gt;&amp;gt; derived from path m/45&amp;#39;, and the merchant provides Pedro with his&lt;br/&gt;&amp;gt; own:&lt;br/&gt;&lt;br/&gt;What holds you back from using m/i&amp;#39;/45&amp;#39; where i&amp;#39; is your multisig&lt;br/&gt;&amp;#34;account&amp;#34; number?&lt;br/&gt;&lt;br/&gt;Within your BIP45 wallet (lets assume Copay), you would not provide&lt;br/&gt;the xpubkey at m/45&amp;#39;, instead you would provide your xpubkey at m/i&amp;#39;/45&amp;#39;&lt;br/&gt;.&lt;br/&gt;&lt;br/&gt;It&amp;#39;s probably no longer pure BIP45.&lt;br/&gt;-----BEGIN PGP SIGNATURE-----&lt;br/&gt;Version: GnuPG v1&lt;br/&gt;&lt;br/&gt;iQIcBAEBAgAGBQJWEm34AAoJECnUvLZBb1Ps&#43;TgP/RmIxp31GOF9JDYVvSpaWfjf&lt;br/&gt;NhB7o5/AiQ5rNv2BL5Wdoebb3EHzPTjzf/gGq3vSHQkm&#43;c5rnDO8kTtwlNog7HN3&lt;br/&gt;djtlbdhftlqcWdgBYNRstMj52NlfQKz4exvaPTsFlxUS02VzafPhssde9H7KdBHw&lt;br/&gt;HoePJziOku6ibHW3u2CdEtGHYSRZ0w7xUmGYUjYc9LRa86Gl5aHFOzTVmboQgNW&#43;&lt;br/&gt;MACb30gSjMGP6i4iHsuwYMpc7DJ1SyooqAL64Z&#43;YN/ZJayHatJIxVx8GGPC2HW5g&lt;br/&gt;nj1LuJacK5VA2VtqtnRhVP0IEm4rKSgSzJz/534lB8/6RFejR0VnjzLZcMsa2TcQ&lt;br/&gt;7yWf6xAN3ijMWi8mxG2RL/2xZiH3txpdMLme3e5YyZ8sgDw04zJI8lKRkg8kN8Wo&lt;br/&gt;G8JQ/6hAzK9OhceoCnazE1ODXRiKa/jXvtfdiuzAb7Q3zFbnXNT2b7dshU0eY6iW&lt;br/&gt;GWBmOInBROfoAqt43gQIMC0gpBsQc9JlVN5s6CgPxhEAMsZI/akKm4qufGbvb767&lt;br/&gt;USgzh6UPE&#43;secLkgjZC/lVKmk7rD&#43;7poJjZB5XzaGdKAxzpFTqw/gLXhfG17TVPA&lt;br/&gt;ZwA2UFhnHVitP839RenrCxWORng2F8gDO/ElWTWtwCq7&#43;c2UxEOxSiKfTOahEoFw&lt;br/&gt;LmOUFxn5iMSbdBEbkm54&lt;br/&gt;=cbgc&lt;br/&gt;-----END PGP SIGNATURE-----
    </content>
    <updated>2023-06-07T17:42:22Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs0s76wnmmmvhhmyvkq6x7ezm7lhy9n65vnd05gfnxegesnux5msnczyzdyv0s04wyk8vqndxxptg8jgjw3njtl8wyytrjcwsy4k5qxm7dqce960ay</id>
    
      <title type="html">📅 Original date posted:2015-09-18 📝 Original ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs0s76wnmmmvhhmyvkq6x7ezm7lhy9n65vnd05gfnxegesnux5msnczyzdyv0s04wyk8vqndxxptg8jgjw3njtl8wyytrjcwsy4k5qxm7dqce960ay" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsvg69889u30lgeaf4yj394clyjsr5msud5w2hm3ats5v3cj7s5cgsyjerv3&#39;&gt;nevent1q…erv3&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2015-09-18&lt;br/&gt;📝 Original message:-----BEGIN PGP SIGNED MESSAGE-----&lt;br/&gt;Hash: SHA256&lt;br/&gt;&lt;br/&gt;&amp;gt; On Friday, September 18, 2015 1:07:10 AM Wladimir J. van der Laan&lt;br/&gt;&amp;gt; via bitcoin-dev wrote:&lt;br/&gt;&amp;gt;&amp;gt; At Monday&amp;#39;s code sprint we had a good idea to schedule a regular&lt;br/&gt;&amp;gt;&amp;gt; developer meeting in #bitcoin-dev.&lt;br/&gt;&amp;gt;&amp;gt; &lt;br/&gt;&amp;gt;&amp;gt; Attendance is of course voluntary, but it may be good to have a&lt;br/&gt;&amp;gt;&amp;gt; time that many people are expected to be present and current&lt;br/&gt;&amp;gt;&amp;gt; issues can be discussed.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; I think it&amp;#39;s important to make a point that these meetings are for&lt;br/&gt;&amp;gt;  discussions, and explicitly never decisions, to avoid a repeat of&lt;br/&gt;&amp;gt; the P2SH events when people have to miss it.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt;&amp;gt; Any preference for days/times?&lt;br/&gt;&amp;gt;&amp;gt; &lt;br/&gt;&amp;gt;&amp;gt; What about e.g. every week 15:00-16:00 UTC on Thursday?&lt;br/&gt;&lt;br/&gt;&#43;1 for the weekly IRC meetings.&lt;br/&gt;&lt;br/&gt;For time and date maybe a Doodle could help:&lt;br/&gt;&lt;a href=&#34;http://doodle.com/poll/cihug53sa8u4h2in#table&#34;&gt;http://doodle.com/poll/cihug53sa8u4h2in#table&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;- ---&lt;br/&gt;jonas&lt;br/&gt;-----BEGIN PGP SIGNATURE-----&lt;br/&gt;Version: GnuPG v2&lt;br/&gt;&lt;br/&gt;iQIcBAEBCAAGBQJV&#43;7eaAAoJECnUvLZBb1PsESgQAIQnHDe7owv3OzMvxwupzGaD&lt;br/&gt;IkTsRtCTSntIb75Wb/KYc0y1L3ilSENRTfZ4nNc4QquqTstkhjU5t&#43;u9T3Mak4D3&lt;br/&gt;2/5AOiJhV6OLYav1SC7uSJh0B4halnZlTwclU7NOvmnkg40DUpNxmEbf&#43;RvUZup3&lt;br/&gt;J0EQFxIuhtjIz0HfZTvw6wmstrP3&#43;UJZTbM5fg0FO3TpgmGybAUoQ3eWgRa7v/gR&lt;br/&gt;OUxnAV//Mus2O80/Z&#43;c5KycZ1Dqc/iN7cQsQFt7kEIK0epkJhkTjoRrW9MyQW04d&lt;br/&gt;1jv7d0mjEJt&#43;2EiC8UuwpaW2eFmeFnGR0pL4UCY1QsDzGENyHKNbrVg26v1AzIbB&lt;br/&gt;SNEYN1&#43;fmsXQYosY5t0Z887Ij&#43;u4/GLHciimh5z7fbI5VB1Ng6Wl84maVmP5Zb3L&lt;br/&gt;MHtkIqQ00RX7GIXUp5&#43;u7eKOO0pH9S08tqo5Ag6ceynJ2lh4Wr8BCNghHzH&#43;ybNJ&lt;br/&gt;NG3BaSkQmjxnWjW3XplaYyxz6E4qJ8id7qH4s0iaNKchAfXiCaBtbcMfljlyBSn/&lt;br/&gt;UbzHJk5jlWZEVpxmiMRctFxusk6GI4P&#43;0eRTJrkffskLEjImUN93A8hOLs5Dy&#43;gI&lt;br/&gt;mm/PZKT2S2qKKa6dlI2kpyPZuRbN7&#43;WSi/FwI0YsUDGl&#43;IoDSqTX7WqRY8cY40ji&lt;br/&gt;rUgzYTw3Won3BcjHTe9y&lt;br/&gt;=JsXj&lt;br/&gt;-----END PGP SIGNATURE-----
    </content>
    <updated>2023-06-07T17:40:50Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsyj0rwlc8y73568uslc7swa7eudr9ywg7c7zl6zy0qkzr5sdnfg8szyzdyv0s04wyk8vqndxxptg8jgjw3njtl8wyytrjcwsy4k5qxm7dqcggy0pj</id>
    
      <title type="html">📅 Original date posted:2015-06-22 📝 Original ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsyj0rwlc8y73568uslc7swa7eudr9ywg7c7zl6zy0qkzr5sdnfg8szyzdyv0s04wyk8vqndxxptg8jgjw3njtl8wyytrjcwsy4k5qxm7dqcggy0pj" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsgtzfarf0qzmqnvc8zuxjgc2a60gc36784hp2070j59c9muz9qm2sj029a3&#39;&gt;nevent1q…29a3&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2015-06-22&lt;br/&gt;📝 Original message:-----BEGIN PGP SIGNED MESSAGE-----&lt;br/&gt;Hash: SHA1&lt;br/&gt;&lt;br/&gt;&amp;gt; &lt;a href=&#34;https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&#34;&gt;https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&lt;/a&gt; The&lt;br/&gt;&amp;gt; move is now complete.  The previous archive has been fully&lt;br/&gt;&amp;gt; imported and new posts here will now be saved.&lt;br/&gt;&lt;br/&gt;Thanks for the work!&lt;br/&gt;&lt;br/&gt;What about updating bitcoin.org (&lt;a href=&#34;https://bitcoin.org/en/development&#34;&gt;https://bitcoin.org/en/development&lt;/a&gt;)?&lt;br/&gt;I guess people start looking there...&lt;br/&gt;&lt;br/&gt;Same for this...&lt;br/&gt;&lt;a href=&#34;https://bitcointalk.org/index.php?topic=15527.0&#34;&gt;https://bitcointalk.org/index.php?topic=15527.0&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Bip0001 needs also an update...&lt;br/&gt;&lt;a href=&#34;https://github.com/bitcoin/bips/blob/master/bip-0001.mediawiki&#34;&gt;https://github.com/bitcoin/bips/blob/master/bip-0001.mediawiki&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;/jonas&amp;gt;&lt;br/&gt;-----BEGIN PGP SIGNATURE-----&lt;br/&gt;Version: GnuPG v1&lt;br/&gt;&lt;br/&gt;iQIcBAEBAgAGBQJVh63PAAoJECnUvLZBb1PsppEQAJTanEPNxRGZk88rlQP2OpYy&lt;br/&gt;1Giw5LwBHLQ/ybaiUxCzEHJqztvK&#43;kHblXWsh/W1QtHV0Mi1HqfYLFpwN9a02bAh&lt;br/&gt;2uBGmHURsmIM1Gr/5ayj&#43;Sz5YtvqXKIUMYlI4vnbvRYWV/JEuoTjsWtavb5prZZc&lt;br/&gt;g0VwQkNZBpBbgQ2apmdZ9ywa8sn4ShUSZiVnmi63pGijqOU3E1w0vt193cvCm85F&lt;br/&gt;h535XF6j5ZFNbdC1EIMo6QZXTRUhLTJ&#43;XYTbJZckF&#43;Ncm0uQOPlqo046jynSdgcK&lt;br/&gt;nUfoodKPq/fyOtOayVAd&#43;Pwqat15oMmUd&#43;Y7qzmxEBSewcmfwLKI&#43;BUnlb332JTz&lt;br/&gt;zgeB4k4JW5627iOwa7wably/XHRbPeByqMyEVEX8nMbrypAcHVGWdjkJCVUdjcrZ&lt;br/&gt;u0PgSAytnIytQrbhA&#43;woUlYhitqx8EYZXmiCs&#43;pBuGwAnwxLXS9fnuKKns7w3glB&lt;br/&gt;MR6b9Ab25bSdVmIJ93W4tEcmfTHzWc9aNBU2td1/c&#43;YuLnH&#43;OFJuu15ef4dWlNeR&lt;br/&gt;Ed&#43;f&#43;cZuGXS8kgEnE/XB&#43;HUVWfktktpUgKvmtZ5kUP/vErBwA&#43;/B&#43;i1drOp38kfv&lt;br/&gt;iGuUThCiep38w64dkV9KVJNp5z1k3PMoVCvgIhZjiDoL8YSBzlXL1iuGDKxtRhRk&lt;br/&gt;6IuBDtLlegeL0/I0d3UV&lt;br/&gt;=ShCq&lt;br/&gt;-----END PGP SIGNATURE-----
    </content>
    <updated>2023-06-07T15:39:33Z</updated>
  </entry>

</feed>