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




  <entry>
    <id>https://nostr.ae/nevent1qqsp6m478g88fcasmpc06jhfdhaaw6cw5pzfnwg9uemk0ceu4t8gmuqzyrrd0fqq396xpkdzcpam44v8xxmdqsn8aht44ap27305wxcytq0vyeq9e9w</id>
    
      <title type="html">📅 Original date posted:2021-03-21 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsp6m478g88fcasmpc06jhfdhaaw6cw5pzfnwg9uemk0ceu4t8gmuqzyrrd0fqq396xpkdzcpam44v8xxmdqsn8aht44ap27305wxcytq0vyeq9e9w" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqswpydnsd9yr0jtnvc4wf36yjmadth8twpy9xm8hdwrjw88yzrywlsg6vttr&#39;&gt;nevent1q…vttr&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2021-03-21&lt;br/&gt;📝 Original message:On Sat, 2021-03-20 at 21:25 &#43;0100, vjudeu via bitcoin-dev wrote:&lt;br/&gt;&amp;gt; So, things have to be complicated to be secure?&lt;br/&gt;&lt;br/&gt;Not at all. But we first need to spend some thoughts on what &amp;#34;secure&amp;#34;&lt;br/&gt;means before we can tell if something is secure.&lt;br/&gt;&lt;br/&gt;&amp;gt;  By definition, using some private key, calculating some public key&lt;br/&gt;&amp;gt; from it and incrementing that key is secure (it is definitely no&lt;br/&gt;&amp;gt; worse than address reuse). &lt;br/&gt;&lt;br/&gt;If secure means that it does not hurt the unforgeability of ECDSA, then&lt;br/&gt;I believe you&amp;#39;re right.&lt;br/&gt;&lt;br/&gt;&amp;gt; The only problem with using &amp;#34;privKey&amp;#34;, &amp;#34;(privKey&#43;1) mod n&amp;#34;,&lt;br/&gt;&amp;gt; &amp;#34;(privKey&#43;2) mod n&amp;#34; and so on is that all of those public keys could&lt;br/&gt;&amp;gt; be easily linked together. If that is the only problem, then by&lt;br/&gt;&amp;gt; making offset deterministic but less predictable, it should be secure&lt;br/&gt;&amp;gt; enough, right? So, instead of simple incrementation, we would have&lt;br/&gt;&amp;gt; &amp;#34;privKey&amp;#34; (parent), &amp;#34;(privKey&#43;firstOffset) mod n&amp;#34; (first child),&lt;br/&gt;&amp;gt; &amp;#34;(privKey&#43;secondOffset) mod n&amp;#34; (second child) and so on. And as long&lt;br/&gt;&amp;gt; as this offset is not guessed by the attacker, it is impossible to&lt;br/&gt;&amp;gt; link all of those keys together, right?&lt;br/&gt;&lt;br/&gt;I believe this intuition is also a good first approach. So let&amp;#39;s have a&lt;br/&gt;look:  You say that offset = SHA256(masterPublicKey || nonce). Is this&lt;br/&gt;predictable by the attacker? &lt;br/&gt;&lt;br/&gt;I can&amp;#39;t really answer that question because it&amp;#39;s not specified how&lt;br/&gt;&amp;#34;nonce&amp;#34; is obtained.  Since this is supposed to be a deterministic&lt;br/&gt;scheme, I see two basic ways: Either the master private key is involved&lt;br/&gt;in the derivation of &amp;#34;nonce&amp;#34; (then &amp;#34;nonce&amp;#34; may be unpredictable) or&lt;br/&gt;it&amp;#39;s not (then &amp;#34;nonce&amp;#34; is predictable).  &lt;br/&gt;&lt;br/&gt;Another fact that may or not be a problem is that it may be possible to&lt;br/&gt;compute a parent private key from the a private key. Again, I can&amp;#39;t&lt;br/&gt;tell because I don&amp;#39;t know how nonce is obtained. 	&lt;br/&gt;&lt;br/&gt;Taking a step back, BIP 32 addresses all of these concerns. I agree it&lt;br/&gt;could be simpler but I don&amp;#39;t see a practical necessity to invent a new&lt;br/&gt;scheme. In any application where this proposal could potentially be&lt;br/&gt;used, BIP 32 could also be used and it&amp;#39;s just good enough.&lt;br/&gt;&lt;br/&gt;Tim &lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; &amp;gt; On 2021-03-20 11:08:30 user Tim Ruffing &amp;lt;crypto at timruffing.de&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; wrote:&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; On Fri, 2021-03-19 at 20:46 &#43;0100, vjudeu via bitcoin-dev wrote:&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; &amp;gt; is it safe enough to implement it and use in practice?&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; &lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; This may be harsh but I can assure you that a HD wallet scheme&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; that can&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; be specified in 3 lines (without even specifying what the&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; security&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; goals are) should not be assumed safe to implement.&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; &lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; Tim &lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; &lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; &lt;br/&gt;&amp;gt; &amp;gt; &lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;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;
    </content>
    <updated>2023-06-07T20:31:00&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsrzpergw75zcfux638kdvxgt64p670nprrjk5z74khdx4vqm20l8qzyrrd0fqq396xpkdzcpam44v8xxmdqsn8aht44ap27305wxcytq0vym2eg65</id>
    
      <title type="html">📅 Original date posted:2021-03-20 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsrzpergw75zcfux638kdvxgt64p670nprrjk5z74khdx4vqm20l8qzyrrd0fqq396xpkdzcpam44v8xxmdqsn8aht44ap27305wxcytq0vym2eg65" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsdm0jcvduwz36zjx34h7dcex5pc7wpwtjtqjys4n560e0mwk8v6eqc7q942&#39;&gt;nevent1q…q942&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2021-03-20&lt;br/&gt;📝 Original message:On Fri, 2021-03-19 at 20:46 &#43;0100, vjudeu via bitcoin-dev wrote:&lt;br/&gt;&amp;gt; is it safe enough to implement it and use in practice?&lt;br/&gt;&lt;br/&gt;This may be harsh but I can assure you that a HD wallet scheme that can&lt;br/&gt;be specified in 3 lines (without even specifying what the security&lt;br/&gt;goals are) should not be assumed safe to implement.&lt;br/&gt;&lt;br/&gt;Tim
    </content>
    <updated>2023-06-07T20:30:59&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsrl7h48rslcc8e0v54df9uggwz6am35uv2z5045q3sh03pr27tyjqzyrrd0fqq396xpkdzcpam44v8xxmdqsn8aht44ap27305wxcytq0vyq945qe</id>
    
      <title type="html">📅 Original date posted:2020-03-22 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsrl7h48rslcc8e0v54df9uggwz6am35uv2z5045q3sh03pr27tyjqzyrrd0fqq396xpkdzcpam44v8xxmdqsn8aht44ap27305wxcytq0vyq945qe" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsx6u0gmmccp007pp37ddzgzu9c5lxxh8wpumdvg3qtlejqv85mdmqrlw4pa&#39;&gt;nevent1q…w4pa&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2020-03-22&lt;br/&gt;📝 Original message:On Sat, 2020-03-21 at 12:59 -0400, Russell O&amp;#39;Connor wrote:&lt;br/&gt;&amp;gt; Public keys are deterministic and can be spot checked.  In fact,&lt;br/&gt;&amp;gt; AFAIU if hardened HD key derivations are not used, then spot checking&lt;br/&gt;&amp;gt; is very easy.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; While spot checking isn&amp;#39;t ideal, my original concern with the&lt;br/&gt;&amp;gt; synthetic none standard proposal was that it is inherently non-&lt;br/&gt;&amp;gt; deterministic and cannot ever be spot checked.  This is why anti-&lt;br/&gt;&amp;gt; covert signing protocols are so important if we are going to use&lt;br/&gt;&amp;gt; synthetic nonces.&lt;br/&gt;&lt;br/&gt;If spot checking means checking a few instances, then I think this is a&lt;br/&gt;pretty weak defense. What if the device starts to behave differently&lt;br/&gt;after a year?&lt;br/&gt;&lt;br/&gt;On Sat, 2020-03-21 at 21:29 &#43;0100, Marko Bencun wrote:&lt;br/&gt;&amp;gt; Practically speaking, most hardware wallets allow you to import your&lt;br/&gt;&amp;gt; own BIP39 seed, so you can work around key generation attacks today,&lt;br/&gt;&amp;gt; with a one time inconvenience at the start. However, with the signing&lt;br/&gt;&amp;gt; nonce attacks, a user today has no protection.&lt;br/&gt;&amp;gt; &lt;br/&gt;&lt;br/&gt;How do you know that the device really uses your seed? This can only be&lt;br/&gt;done by comparing the public keys output by the HW with a second&lt;br/&gt;computation. Even if you use only non-hardened derivation, you need to&lt;br/&gt;check the master (root) public key and that means you need compute the&lt;br/&gt;master root public key once from the seed. You can&amp;#39;t do this manually&lt;br/&gt;on a sheet of paper after you rolled a few dice to generate your seed.&lt;br/&gt;So you need to store the seed on a second device (if only for a short&lt;br/&gt;time). And I think this defeats the purpose of a HW wallet.&lt;br/&gt;&lt;br/&gt;And even if assume that spot checking and importing the seed works, the&lt;br/&gt;problem is not solved. We still need a clearly specified full protocol&lt;br/&gt;that we can analyze. &lt;br/&gt;&lt;br/&gt;Best,&lt;br/&gt;Tim
    </content>
    <updated>2023-06-07T20:23:12&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsrrv29dn2vr2y55q4789hgs7d9uuwhdjhlq9v2ed7x4nlf4ryjweszyrrd0fqq396xpkdzcpam44v8xxmdqsn8aht44ap27305wxcytq0vyc88tdr</id>
    
      <title type="html">📅 Original date posted:2020-03-21 📝 Original message:Hi ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsrrv29dn2vr2y55q4789hgs7d9uuwhdjhlq9v2ed7x4nlf4ryjweszyrrd0fqq396xpkdzcpam44v8xxmdqsn8aht44ap27305wxcytq0vyc88tdr" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsrnne05yv8jns8wu40mkrppc30ws8eccxvuv2w9re3m4pjdj0kcygf4y7c7&#39;&gt;nevent1q…y7c7&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2020-03-21&lt;br/&gt;📝 Original message:Hi Pieter, &lt;br/&gt;&lt;br/&gt;That&amp;#39;s a really nice overview.&lt;br/&gt;&lt;br/&gt;Let&amp;#39;s take a step back first. If we believe that malicious hardware&lt;br/&gt;wallets are big enough of a concern, then signing is only part of the&lt;br/&gt;problem. The other issue is key generation. The PRG from which the seed&lt;br/&gt;is derived can be malicious, e.g., just H(k_OO,counter) for a key k_OO&lt;br/&gt;chosen by the hardware manufacturer. I haven&amp;#39;t seen an argument why&lt;br/&gt;attacks during the signing model should more realistic than attacks&lt;br/&gt;during key generation, so I&amp;#39;d be very hesitant to deploy anti-covert&lt;br/&gt;channel singing protocols without deploying protocols for key&lt;br/&gt;generation that are secure in the same attacker model.&lt;br/&gt;&lt;br/&gt;While there&amp;#39;s a bunch of protocols for signing, there&amp;#39;s not much&lt;br/&gt;research for key generation. One simple idea is a simple commit-and-&lt;br/&gt;reveal protocol to generate a master (elliptic curve) public key pair&lt;br/&gt;with entropy contributions from both HW and SW (similar to the&lt;br/&gt;protocols here for generating R). Then use BIP32 public derivation for&lt;br/&gt;all other keys in order to make sure that SW can verify the derivation&lt;br/&gt;of the public kyes. The corresponding master secret key would replace&lt;br/&gt;the seed, i.e., there&amp;#39;s no &amp;#34;symmetric&amp;#34; seed. That idea comes with other&lt;br/&gt;drawbacks however, most importantly this is not compatible with&lt;br/&gt;hardened derivation, which creates a new security risk. If we want&lt;br/&gt;(something like) hardened derivation, zero-knowledge proofs of correct&lt;br/&gt;derivation could maybe used but they again come with other issues&lt;br/&gt;(efficiency, complexity). &lt;br/&gt;&lt;br/&gt;By the way, here&amp;#39;s a paper that considers a similar setting where the&lt;br/&gt;hardware wallet is also malicious during key generation: &lt;br/&gt;&lt;a href=&#34;https://fc19.ifca.ai/preproceedings/93-preproceedings.pdf&#34;&gt;https://fc19.ifca.ai/preproceedings/93-preproceedings.pdf&lt;/a&gt;&lt;br/&gt;This model goes a step further and assumes threshold signatures but&lt;br/&gt;interestingly here the human user (instead of the SW) is the trusted&lt;br/&gt;party interacting with the HW. In this model the human user has a low-&lt;br/&gt;entropy password.&lt;br/&gt;&lt;br/&gt;Now back to the signing process: I think yet another security property&lt;br/&gt;to look at is security against a malicious SW with parallel signing&lt;br/&gt;sessions. I think it&amp;#39;s reasonable to restrict a single HW device to a&lt;br/&gt;single session but what if the same seed is stored in two or more HW&lt;br/&gt;wallets? That&amp;#39;s plausible at least. Taking this additional security&lt;br/&gt;property into account, it appears that Scheme 4 is vulnerable to&lt;br/&gt;Wagner&amp;#39;s attack because SW can influence R by choosing t after seeing&lt;br/&gt;R0. (This can be fixed, e.g., by using Scheme 5 instead.) &lt;br/&gt;&lt;br/&gt;&lt;br/&gt;On Tue, 2020-03-03 at 21:35 &#43;0000, Pieter Wuille via bitcoin-dev wrote:&lt;br/&gt;&amp;gt; 2.d) Statefulness&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; We&amp;#39;re left with Schemes 4 and 5 that protect against all listed&lt;br/&gt;&amp;gt; issues. Both&lt;br/&gt;&amp;gt; need two interaction rounds, with state that needs to be kept by HW&lt;br/&gt;&amp;gt; between&lt;br/&gt;&amp;gt; the rounds (the k0 value). While not a problem in theory, this may be&lt;br/&gt;&amp;gt; hard to&lt;br/&gt;&amp;gt; implement safely in simple APIs.&lt;br/&gt;&lt;br/&gt;A generic way to make one party (HW in this case) stateless is to let&lt;br/&gt;it encrypt and authenticate its state, e.g., using AEAD. In our&lt;br/&gt;particular case I think that the state does not need to be&lt;br/&gt;confidential, and a simple MAC suffices. For simplicity let&amp;#39;s assume we&lt;br/&gt;have another hash function H&amp;#39; (modeled as a random oracle) used as MAC.&lt;br/&gt;We can (ab)use d as a MAC key.&lt;br/&gt;&lt;br/&gt;If we don&amp;#39;t want to spend an entire signature verification on the side&lt;br/&gt;of HW to protect against fault attacks, we can additionally let SW&lt;br/&gt;compute and send the challenge hash e=H(R,Q,m) and let HW only verify&lt;br/&gt;the computation of e. This helps against fault-attacks in the&lt;br/&gt;computation of R and e because now SW needs to commit to e, which is a&lt;br/&gt;commitment to the exact computation fault that HW will suffer from. But&lt;br/&gt;I&amp;#39;m not sure yet if this is weaker or stronger or incomparable to&lt;br/&gt;verifying the signature. I guess it&amp;#39;s weaker [1]. If we don&amp;#39;t drop&lt;br/&gt;signature verification, this technique does not hurt at least.  &lt;br/&gt;&lt;br/&gt;[Scheme 7: synthetic nonce, two interactions, stateless using MAC,&lt;br/&gt;verifying e]&lt;br/&gt;&lt;br/&gt;First interaction:&lt;br/&gt; * SW generates a random t, computes h=H(t), and requests the R0 point&lt;br/&gt;   that HW would use by sending (Q,m,h) to HW.&lt;br/&gt; * HW uses a global counter c (or fresh randomness c), and computes&lt;br/&gt;   k0=H(d,m,c,h), R0=k0G, mac=H&amp;#39;(d,m,c,h) and sends R0,c,mac to SW.&lt;br/&gt;&lt;br/&gt;Second interaction:&lt;br/&gt; * SW computes R=R0&#43;tG, e=H(R,Q,m) and requests a signature by sending&lt;br/&gt;   (Q,m,t,e,c,mac) to HW&lt;br/&gt; * HW verifies mac=H&amp;#39;(d,m,c,H(t)), recomputes k0=H(d,m,c,H(t)), k=k0&#43;t,&lt;br/&gt;   computes R=kG, verifies e=H(R,Q,m), and if all is good computes&lt;br/&gt;   s=k&#43;H(R,Q,m)d and sends s to SW.&lt;br/&gt; * SW verifies that sG=R&#43;eQ and publishes (R,s) if all is good.&lt;br/&gt;&lt;br/&gt;One last observation: Since the inputs to H and H&amp;#39; are the same, we&lt;br/&gt;could even use H&amp;#39;(x)=H(H(x)). Not sure if that&amp;#39;s useful.&lt;br/&gt;&lt;br/&gt;Best,&lt;br/&gt;Tim&lt;br/&gt;&lt;br/&gt;[1] In the (admittedly weird) case that faults in two runs of the&lt;br/&gt;executions are independent and can be made highly likely (say&lt;br/&gt;probability almost 1), verifying e could indeed be stronger than&lt;br/&gt;verifying the signature: When verifying the signature, the fault attack&lt;br/&gt;is successful if  the *same* fault happens during signing and&lt;br/&gt;verification (birthday collision!). When verifying e instead, the&lt;br/&gt;attack is successful if the attacker predicts the fault correctly. But&lt;br/&gt;I guess if faults can be made very likely, there&amp;#39;s no hope anyway.
    </content>
    <updated>2023-06-07T20:23:11&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsrwms9jyef5uj6juqlewwwg5xcvuy0llg0lta39d7j2pywxvfkv7szyrrd0fqq396xpkdzcpam44v8xxmdqsn8aht44ap27305wxcytq0vyhl9697</id>
    
      <title type="html">📅 Original date posted:2018-09-06 📝 Original message:Hi ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsrwms9jyef5uj6juqlewwwg5xcvuy0llg0lta39d7j2pywxvfkv7szyrrd0fqq396xpkdzcpam44v8xxmdqsn8aht44ap27305wxcytq0vyhl9697" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsfgh7fc26ffffvzx0kywh680q5mxkf48v7humz49jmpm7t4pqqcrgn6la83&#39;&gt;nevent1q…la83&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2018-09-06&lt;br/&gt;📝 Original message:Hi Jonas,&lt;br/&gt;&lt;br/&gt;Great to see progress in this area. I have quite a few comments.&lt;br/&gt;&lt;br/&gt;Post-quantum key exchange&lt;br/&gt;=========================&lt;br/&gt;I think that&amp;#39;s overkill. Bitcoin has huge problems in the presence of a quantum computer, and the&lt;br/&gt;confidentiality of the P2P messages is the most minor one. If there is a quantum computer and&lt;br/&gt;Bitcoin remains in its current form, then people should probably stop using it.&lt;br/&gt;&lt;br/&gt;Now you can argue that the attacker is storing encrypted traffic today to decrypt it later. Sure,&lt;br/&gt;but if that&amp;#39;s your threat model then Bitcoin is probably not the right tool for you. (And if&lt;br/&gt;you insist that Bitcoin is the right tool, then you can and probably should use it over Tor&lt;br/&gt;anyway.) Given the fact that essentially all information in Bitcoin will be public in some way,&lt;br/&gt;there are probably cheaper attacks (MITM, traffic analysis).&lt;br/&gt;&lt;br/&gt;It&amp;#39;s not worth the hassle, would hinder adoption, and it has the potential to create a wrong&lt;br/&gt;impression of &amp;#34;bulletproof&amp;#34; security. Even worse, there will be too many people that will suddenly&lt;br/&gt;assume that Bitcoin is post-quantum secure.&lt;br/&gt;&lt;br/&gt;Key exchange indistinguishable from random&lt;br/&gt;==========================================&lt;br/&gt;I would rather love to see a simple ECDH key exchange as currently used but with an encoding of&lt;br/&gt;public key that provides indistinguishability from random bitstrings. &amp;#34;Elligator&amp;#34; does not work&lt;br/&gt;but &amp;#34;Elligator Squared&amp;#34; [1] does the job for secp256k1 -- it just doubles the size of the public&lt;br/&gt;key. Together with the encrypted packet lengths, the entire data stream looks like random then,&lt;br/&gt;which is pretty useful against censorship resistance for example. (The only exception is that the&lt;br/&gt;stream will never start with the magic bytes.)&lt;br/&gt;&lt;br/&gt;Key derivation&lt;br/&gt;==============&lt;br/&gt;The key derivation can be improved. It should include each peer&amp;#39;s understanding of its role,&lt;br/&gt;i.e., requester (or &amp;#34;initiator&amp;#34; is the more common term) or responder. At the moment, an attacker&lt;br/&gt;can create a situation where two peers think they&amp;#39;re in the same session (with the same session&lt;br/&gt;id) but they&amp;#39;re actually not. Also, it&amp;#39;s possible for an attacker to rerandomize the public keys.&lt;br/&gt;That&amp;#39;s nothing bad by itself but anything which restricts the flexibility of the attacker without&lt;br/&gt;adding complexity is a good idea. Something like&lt;br/&gt;   &amp;#34;salt = BitcoinSharedSecret||INITIATOR_PUBKEY||RESPONDER_PUBKEY&amp;#34; should just avoid this issue.&lt;br/&gt;&lt;br/&gt;Re-keying&lt;br/&gt;=========&lt;br/&gt;The problem with signalling re-keying in the length field is that the length field is not covered&lt;br/&gt;by the MAC. So the attacker can flip the signalling bit. The resulting protocol is probably still&lt;br/&gt;secure but the malleability is certainly not desirable.&lt;br/&gt;&lt;br/&gt;Deterministic rekeying rules may be better. Otherwise there will be implementations that rekey&lt;br/&gt;every 10 seconds and implementations that just don&amp;#39;t rekey at all (rendering the 10 s rekeying&lt;br/&gt;interval in the opposite direction useless). Different policies also make it possible to&lt;br/&gt;fingerprint implementations. Another problem is that people will set their policies arbitrarily.&lt;br/&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;like discussions about ciphers... What&amp;#39;s better AES-GCM or ChaCha20/Poly1305? I don&amp;#39;t know, but&lt;br/&gt;again both are reasonable choices.)&lt;br/&gt;&lt;br/&gt;Symmetric crypto&lt;br/&gt;================&lt;br/&gt;You call it chacha20-poly1305 at bitcoin but what&amp;#39;s the difference to the openssh then? Is the&lt;br/&gt;idea to save a call to chacha here as you mentioned?&lt;br/&gt;&lt;br/&gt;I didn&amp;#39;t think about this in detail: maybe there are a few meaningful cases where padding could&lt;br/&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;Misc&lt;br/&gt;====&lt;br/&gt;&amp;#34;The ID/string mapping is a peer to peer arrangement and MAY be negotiated between the&lt;br/&gt;requesting and responding peer.&amp;#34; I think that&amp;#39;s overly complicated. I suggest it should just be&lt;br/&gt;written in stone, again to avoid complexity and to avoid fingerprinting. New implementations are&lt;br/&gt;necessary anyway, so maybe just use IDs for anything? ASCII is nice if you want to debug your code&lt;br/&gt;or some random network failure but that&amp;#39;s hard anyway when encryption is used.&lt;br/&gt;&lt;br/&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;A few examples:&lt;br/&gt; - What should a peer do if the MAC verification fails?&lt;br/&gt; - What should a peer do if it receives an even key?&lt;br/&gt; - &amp;#34;Processing the message before the authentication succeeds (MAC verified) MUST not be done.&amp;#34;&lt;br/&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; to refer to the openssh document or steal from it; it does a pretty good job.&lt;br/&gt; - &amp;#34;Both peers MUST keep track of the message sequence number (uint32) of sent and received&lt;br/&gt; messages for building a 64-bit symmetric cipher IV.&amp;#34; I think you mean nonce when you say IV?&lt;br/&gt; - What is the initial value of the sequence number?&lt;br/&gt; - How is a 64-bit nonce formed from one (two?) uint32?&lt;br/&gt; - What if the uint32 overflows?&lt;br/&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; too many re-keying requests? Nothing or should I raise the DoS score?&lt;br/&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; own sending key, so this should just read &amp;#34;sent&amp;#34; instead of &amp;#34;sent or received&amp;#34;?&lt;br/&gt;&lt;br/&gt;Pseudocode could probably help here.&lt;br/&gt;&lt;br/&gt;[1] &lt;a href=&#34;https://eprint.iacr.org/2014/043.pdf&#34;&gt;https://eprint.iacr.org/2014/043.pdf&lt;/a&gt;
    </content>
    <updated>2023-06-07T20:14:33&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsq2a6dx923ejuapa4gfpprtkxqqsp5sdcevxgtc7euujl6waypg0szyrrd0fqq396xpkdzcpam44v8xxmdqsn8aht44ap27305wxcytq0vyrlzv5c</id>
    
      <title type="html">📅 Original date posted:2018-07-08 📝 Original message:Hi ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsq2a6dx923ejuapa4gfpprtkxqqsp5sdcevxgtc7euujl6waypg0szyrrd0fqq396xpkdzcpam44v8xxmdqsn8aht44ap27305wxcytq0vyrlzv5c" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsg0wzhfwmmtqr98vgklfu9lxcykjwnus2ju95wa4ra3c5qadcqqyq2u8du5&#39;&gt;nevent1q…8du5&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2018-07-08&lt;br/&gt;📝 Original message:Hi Erik,&lt;br/&gt;&lt;br/&gt;On Sun, 2018-07-08 at 10:19 -0400, Erik Aronesty via bitcoin-dev wrote:&lt;br/&gt;&amp;gt; Consider changing the &amp;#34;e&amp;#34; term in the schnorr algorithm to hash of&lt;br/&gt;&amp;gt; message (elligator style) to the power of r, rather than using&lt;br/&gt;&amp;gt; concatenation.  &lt;br/&gt;&lt;br/&gt;How do you compute s = x*e if e is an element of group G?&lt;br/&gt;(Similar question: How do you verify if e is element of G?)&lt;br/&gt;&lt;br/&gt;Are you aware of &lt;br/&gt; &lt;a href=&#34;http://cacr.uwaterloo.ca/techreports/2001/corr2001-13.ps&#34;&gt;http://cacr.uwaterloo.ca/techreports/2001/corr2001-13.ps&lt;/a&gt; ?&lt;br/&gt;This is a threshold signature scheme for Schnorr signatures, so what&lt;br/&gt;you want is possible already with Schnorr signatures.&lt;br/&gt;&lt;br/&gt;Best,&lt;br/&gt;Tim
    </content>
    <updated>2023-06-07T20:13:40&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsq23v4emukavwfjeqgkyket0w2a9kwcaawhaszmd4unvq0eh2gpkqzyrrd0fqq396xpkdzcpam44v8xxmdqsn8aht44ap27305wxcytq0vydsxm5e</id>
    
      <title type="html">📅 Original date posted:2018-03-12 📝 Original ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsq23v4emukavwfjeqgkyket0w2a9kwcaawhaszmd4unvq0eh2gpkqzyrrd0fqq396xpkdzcpam44v8xxmdqsn8aht44ap27305wxcytq0vydsxm5e" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsvv8d4zwkeh4l0tvmau8mq90ucs0ffmauwhz0hh8ju4843y7yl9ds8uca5a&#39;&gt;nevent1q…ca5a&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2018-03-12&lt;br/&gt;📝 Original message:You&amp;#39;re right that this is a simple electronic voting scheme. The thing&lt;br/&gt;is that cryptographers are working on e-voting for decades and the idea&lt;br/&gt;to use homomorphic commitments (or encryption) and zero-knowledge&lt;br/&gt;proofs is not new in this area. It&amp;#39;s rather the case that e-voting&lt;br/&gt;inspired a lot of work on homomorphic crypto and related zero-knowledge &lt;br/&gt;proofs. For example, range proofs are overkill in e-voting. You just&lt;br/&gt;need to ensure that the sum of all my votes (over all candidates) is 1.&lt;br/&gt; &lt;br/&gt;E-voting protocols typically require some &amp;#34;bulletin board&amp;#34;, where&lt;br/&gt;ballots are stored. A blockchain could indeed be helpful in specific&lt;br/&gt;cases (but not in all cases)...&lt;br/&gt;&lt;br/&gt;If you&amp;#39;re interested in that stuff, I&amp;#39;d suggest you to read some&lt;br/&gt;literature about e-voting. (For example, &lt;br/&gt;&lt;a href=&#34;https://arxiv.org/pdf/1801.08064&#34;&gt;https://arxiv.org/pdf/1801.08064&lt;/a&gt; looks interesting for the connection&lt;br/&gt;to blockchains -- I haven&amp;#39;t read it though). There are pretty&lt;br/&gt;sophisticated protocols in the literature. And I think that this&lt;br/&gt;mailing list may not be the best place to discuss these.&lt;br/&gt;&lt;br/&gt;Best,&lt;br/&gt;Tim &lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;On Sun, 2018-03-11 at 13:44 &#43;0100, JOSE FEMENIAS CAÑUELO via bitcoin-&lt;br/&gt;dev wrote:&lt;br/&gt;&amp;gt; If I understand Bulletproof Confidential Transactions properly, their&lt;br/&gt;&amp;gt; main virtue is being able to hide not the senders/receivers of a coin&lt;br/&gt;&amp;gt; but the amount transferred.&lt;br/&gt;&amp;gt; That sounds to me like a perfect use case for an election.&lt;br/&gt;&amp;gt; For instance, in my country, every citizen is issued a National ID&lt;br/&gt;&amp;gt; Card with a digital certificate. &lt;br/&gt;&amp;gt; So, a naive implementation could simply be that the Voting Authority,&lt;br/&gt;&amp;gt; sends a coin (1 coin = 1 vote) to each citizen above 18. This would&lt;br/&gt;&amp;gt; be an open transaction, so it is easily auditable.&lt;br/&gt;&amp;gt; Later on, each voter sends her coin to her preferred party, as part&lt;br/&gt;&amp;gt; of a Bulletproof CT, along with 0 coins to other parties to disguise&lt;br/&gt;&amp;gt; her vote.&lt;br/&gt;&amp;gt; In the end, each party will accrue as may votes as coins received.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Is there any gotcha I’m missing here? Are there any missing features&lt;br/&gt;&amp;gt; required in Bulletproof to support this use case?&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;
    </content>
    <updated>2023-06-07T20:11:10&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsw2mrz5sh5pph5ta46ajcws30y2wd2tw3d6rcq68gzce0v7nd7q6czyrrd0fqq396xpkdzcpam44v8xxmdqsn8aht44ap27305wxcytq0vyt5zavx</id>
    
      <title type="html">📅 Original date posted:2018-02-15 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsw2mrz5sh5pph5ta46ajcws30y2wd2tw3d6rcq68gzce0v7nd7q6czyrrd0fqq396xpkdzcpam44v8xxmdqsn8aht44ap27305wxcytq0vyt5zavx" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsgzym036hlk6w9g36sysn2d3cwfd0q9w3cw97yq8gkw9lc9nrmglgksjnjc&#39;&gt;nevent1q…jnjc&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2018-02-15&lt;br/&gt;📝 Original message:On Thu, 2018-02-15 at 21:27 &#43;0100, Natanael wrote:&lt;br/&gt;&amp;gt; I addressed this partially before, and this is unfortunately&lt;br/&gt;&amp;gt; incomplete.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Situation A: Regardless of expiration of commitments, we allow&lt;br/&gt;&amp;gt; doubles. (Or no doubles allowed, but commitments expire.) &lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; If I can block your transaction from confirming (censorship), then I&lt;br/&gt;&amp;gt; can make my own commitment &#43; transaction. The miners will see two&lt;br/&gt;&amp;gt; commitments referencing the same UTXO - but can see only one&lt;br/&gt;&amp;gt; transaction which match a valid challenge and spends them, which is&lt;br/&gt;&amp;gt; mine. You gained nothing from the commitment.&lt;br/&gt;&lt;br/&gt;Yes, I assume situation A: &lt;br/&gt;  * commitments never expire&lt;br/&gt;  * and there is no limit on the number of commitment for the same UTXO&lt;br/&gt;&lt;br/&gt;As I understand, you mean &amp;#34;decommitment&amp;#34; when you say &amp;#34;transaction&amp;#34;.&lt;br/&gt;Please correct me if I&amp;#39;m wrong. I&amp;#39;ll stick with &amp;#34;decommitment&amp;#34;.&lt;br/&gt;&lt;br/&gt;Let&amp;#39;s assume the attacker blocks the decommitment by the honest user,&lt;br/&gt;inserts his own malicious commitment and his own decommitment, which&lt;br/&gt;should be valid for the malicious commitment. Then the miners will see&lt;br/&gt;two commitments (the earlier commitment by the honest user and the&lt;br/&gt;later one by the attacker).&lt;br/&gt;&lt;br/&gt;Also, the miners will indeed see one valid decommitment. This&lt;br/&gt;decommitment may have been sent by the attacker but it&amp;#39;s the preimage&lt;br/&gt;chal of the address, because otherwise it&amp;#39;s not valid for the malicious&lt;br/&gt;commitment. But if the decommitment is chal, then this decommitment is&lt;br/&gt;also valid for the commitment of the honest user, which is earliest&lt;br/&gt;additionally. So the honest commitment wins. The attacker does not&lt;br/&gt;succeed and everything is fine.&lt;br/&gt;&lt;br/&gt;The reason why this works:&lt;br/&gt;There is only one unique decommitment for the UTXO (assuming H_addr is&lt;br/&gt;collision-resistant). The decommitment does not depend on the&lt;br/&gt;commitment. The attacker cannot send a different decommitment, just&lt;br/&gt;because there is none.&lt;br/&gt;&lt;br/&gt;Maybe I&amp;#39;m wrong and I just don&amp;#39;t understand your attack. In this case,&lt;br/&gt;please explain it more detail.&lt;br/&gt;&lt;br/&gt;Regards,&lt;br/&gt;Tim
    </content>
    <updated>2023-06-07T20:10:39&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsqgu48lad3k2dzw670gn6x0zwt9azzs363anhsj8wlhz02ahz7p6szyrrd0fqq396xpkdzcpam44v8xxmdqsn8aht44ap27305wxcytq0vyv9jd3p</id>
    
      <title type="html">📅 Original date posted:2018-02-15 📝 Original message:First ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsqgu48lad3k2dzw670gn6x0zwt9azzs363anhsj8wlhz02ahz7p6szyrrd0fqq396xpkdzcpam44v8xxmdqsn8aht44ap27305wxcytq0vyv9jd3p" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsfny83xc5uz507f5j8zpeqcqg846maslaae3lz4zwqj38uuttyy4qc5zkw0&#39;&gt;nevent1q…zkw0&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2018-02-15&lt;br/&gt;📝 Original message:First of all, there is indeed an issue in my proposal:&lt;br/&gt;&lt;br/&gt;The idea was to include a classic signature to make sure that, if (for&lt;br/&gt;whatever reason) you have revealed classic_pk already.&lt;br/&gt;&lt;br/&gt;However, the problem is that if you have revealed classic_pk, then&lt;br/&gt;everybody can effectively prevent you from spending the funds as you&lt;br/&gt;wish by just including the first commit entry with an arbitrary tx in&lt;br/&gt;the blockchain. That&amp;#39;s bad obviously.&lt;br/&gt;&lt;br/&gt;Here is a fixed variant, which does not only work with normal P2PKH but&lt;br/&gt;1) supports basically with any (hash-based) addresses, for which the&lt;br/&gt;preimage has not been revealed and 2) does not change the conditions&lt;br/&gt;under which a UTXO can be spent.&lt;br/&gt;&lt;br/&gt;Setup&lt;br/&gt;=====&lt;br/&gt;We will need multiple hash functions KDF, H, and authenticated&lt;br/&gt;symmetric encryption Enc/Dec.&lt;br/&gt;&lt;br/&gt;Let&amp;#39;s assume we have an UTXO with address addr = H_addr(chal), where&lt;br/&gt;chal is a challenge, i.e., typically a scriptPubKey (what I called&lt;br/&gt;classic_pk initially) and H_addr is the hash function used to form&lt;br/&gt;addresses. (If there are multiple UTXO sharing the same address, they&lt;br/&gt;can be spent simultaneously with this approach.) To spend this UTXO&lt;br/&gt;with a transaction tx, the user performs the following two steps.&lt;br/&gt;&lt;br/&gt;Note that -- in contrast to my earlier emails -- tx is assumed to&lt;br/&gt;include a solution to the challenge in its input, i.e., a string which&lt;br/&gt;proves that you are allowed to spend the UTXO (typically a scriptSig). &lt;br/&gt;&lt;br/&gt;Commit step&lt;br/&gt;===========&lt;br/&gt;Derive a symmetric key k = KDF(chal).&lt;br/&gt;&lt;br/&gt;Create and publish a commitment in the blockchain that references the&lt;br/&gt;UTXO as inputs and contains the following data: &lt;br/&gt;      c = Enc(k, tx)&lt;br/&gt;&lt;br/&gt;Wait until c is confirmed. (If it does not confirm, send it again as&lt;br/&gt;usual.)&lt;br/&gt;&lt;br/&gt;Decommit step&lt;br/&gt;=============&lt;br/&gt;Create and publish a decommitment with the following data:&lt;br/&gt;      d = chal&lt;br/&gt;&lt;br/&gt;Consensus rules&lt;br/&gt;===============&lt;br/&gt;A decommitment d = chal spends a UTXO with address H_addr(chal), if&lt;br/&gt;there exists a commitment c in the blockchain which references the UTXO&lt;br/&gt;and which is the first commitment (among all referencing the UTXO) in&lt;br/&gt;the blockchain such that&lt;br/&gt;1. k = KDF(chal) correctly decrypts Dec(k, c)&lt;br/&gt;    and&lt;br/&gt;2. tx = Dec(k, c) is a valid transaction to spend UTXO &lt;br/&gt;&lt;br/&gt;The UTXO is spent as described by tx.&lt;br/&gt;Commitments never expire.&lt;br/&gt;&lt;br/&gt;The second condition covers that tx contains a classic signature under&lt;br/&gt;the public key specified in chal in normal P2PKH addresses.&lt;br/&gt;&lt;br/&gt;The trick here is that the encryption ensures that the user commits to&lt;br/&gt;tx (including the classic signature) already in the commit step, while&lt;br/&gt;still keeping the decommitment unique. If I&amp;#39;m not mistaken, this scheme&lt;br/&gt;is a variant of Adam Back&amp;#39;s proposal for committed transactions from&lt;br/&gt;2013, which he invented for an entirely different goal, namely&lt;br/&gt;censorship resistance:&lt;br/&gt;&lt;a href=&#34;https://bitcointalk.org/index.php?topic=206303.msg2162962#msg2162962&#34;&gt;https://bitcointalk.org/index.php?topic=206303.msg2162962#msg2162962&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;(Adam noted the similarity of the problems on Twitter recently:&lt;br/&gt;&lt;a href=&#34;https://twitter.com/adam3us/status/948219461345075201&#34;&gt;https://twitter.com/adam3us/status/948219461345075201&lt;/a&gt;)&lt;br/&gt;&lt;br/&gt;The above variant is pretty simple. If it really works and is secure,&lt;br/&gt;it has the advantage over Adam&amp;#39;s proposal that it does not rely on&lt;br/&gt;ECDSA specifically and can be used for any address type. &lt;br/&gt;&lt;br/&gt;The aforementioned thread in the Bitcoin forum discusses the main&lt;br/&gt;problem of an approach like that: Everybody can flood the blockchain&lt;br/&gt;with commitments. Of course, one can require fees to create&lt;br/&gt;commitments, but that&amp;#39;s pretty ugly: If this UTXO is the only money you&lt;br/&gt;have, then you need to borrow some to pay the transaction fees upfront.&lt;br/&gt;But this may be the price you need to pay for recovery. This can be&lt;br/&gt;acceptable, because recovery should be the exception (see below).&lt;br/&gt;&lt;br/&gt;On Tue, 2018-02-13 at 21:06 &#43;1100, Tristan Hoy via bitcoin-dev wrote:&lt;br/&gt;&amp;gt; The worst-case outcome is that ECDSA is broken before PQ addresses&lt;br/&gt;&amp;gt; are &lt;br/&gt;&amp;gt; rolled out. There is no reactive response to this - all the existing &lt;br/&gt;&amp;gt; ECDSA addresses will be compromised. A proactive measure is&lt;br/&gt;&amp;gt; required, &lt;br/&gt;&amp;gt; and it should be deployed sooner rather than later.&lt;br/&gt;&lt;br/&gt;The proposal above does not require any changes to existing ECDSA&lt;br/&gt;addresses, so there is no need to change something now already. &lt;br/&gt;&lt;br/&gt;At some point in the future, PQ addresses will be deployed. And at some&lt;br/&gt;(potentially different) point in the future, we should deploy a&lt;br/&gt;solution to recover UTXOs. But there&amp;#39;s no need to do this today. A&lt;br/&gt;recovery solution can be deployed even when DLOG has been broken&lt;br/&gt;already -- not optimal but possible.&lt;br/&gt;&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Any two-step approach adopted now as a proactive measure will not&lt;br/&gt;&amp;gt; only &lt;br/&gt;&amp;gt; bloat the blockchain, it will also double the effective confirmation &lt;br/&gt;&amp;gt; time - for all transactions between now and when PQ addresses are&lt;br/&gt;&amp;gt; rolled &lt;br/&gt;&amp;gt; out, which seems unlikely to happen in the next 5 years. The bloat&lt;br/&gt;&amp;gt; will &lt;br/&gt;&amp;gt; be permanent.&lt;br/&gt;&amp;gt; &lt;br/&gt;&lt;br/&gt;I don&amp;#39;t think that&amp;#39;s true due to the situation I describe above. We&lt;br/&gt;don&amp;#39;t need to act now.&lt;br/&gt;&lt;br/&gt;And even if we act now, i.e., even if we enable the above proposal (or&lt;br/&gt;any other protocol that enables recovery of UTXOs with addresses)&lt;br/&gt;today, people are not forced to use it. As long as ECDSA and the other&lt;br/&gt;schemes we use today remain secure, people can and will continue to&lt;br/&gt;perform conventional transactions. Ideally, people will need a recovery&lt;br/&gt;protocol only for those UTXOs which they haven&amp;#39;t touched for years and&lt;br/&gt;have forgotten to convert to PQ in time.&lt;br/&gt;&lt;br/&gt;You mentioned confirmation time. A nice thing is that the above&lt;br/&gt;protocol does not double confirmation times. The sender needs to wait&lt;br/&gt;for confirmation of the commitment. But as soon as the commitment is&lt;br/&gt;confirmed, double-spending is excluded already, because the sender is&lt;br/&gt;committed to the transaction. So the recipient does not need to wait&lt;br/&gt;for confirmation of the decommitment. As soon as the recipient sees the&lt;br/&gt;decommitment, everything is good. (If the decommitment is not&lt;br/&gt;confirmed, the recipient can just re-broadcast it.)&lt;br/&gt;&lt;br/&gt;In practice, we could even go further and call the transaction done&lt;br/&gt;after the commitment is confirmed and the sender sends the data for the&lt;br/&gt;second step to the recipient off-chain. Only when the recipient wants&lt;br/&gt;to spend the funds again, the recipient will reveal this data.&lt;br/&gt;&lt;br/&gt;The fact that double-spending is excluded after the first step is&lt;br/&gt;confirmed, is exactly what makes the protocol secure against quantum&lt;br/&gt;attackers who want to steal the money. As soon as the user reveals the&lt;br/&gt;ECDSA public key, a quantum attacker has access to all secrets: The&lt;br/&gt;attacker knows the preimage of the hash can compute the secret key.&lt;br/&gt;So from this point on, there is no hope that we can distinguish the&lt;br/&gt;honest user from the attacker. But since the correct transaction has&lt;br/&gt;been committed to the blockchain, and cannot be changed anymore, we&lt;br/&gt;don&amp;#39;t need to distinguish the honest user from the attacker.&lt;br/&gt;&lt;br/&gt;&amp;gt; Either way, would you mind if I included your approach in the&lt;br/&gt;&amp;gt; article, &lt;br/&gt;&amp;gt; with credit? I will seek your review before publishing.&lt;br/&gt;&lt;br/&gt;Sure, feel free to include. You don&amp;#39;t need to seek my review but I can&lt;br/&gt;certainly have a look if desired.&lt;br/&gt;&lt;br/&gt;Tim
    </content>
    <updated>2023-06-07T20:10:38&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsw62nc6saykaag8t378ttskhsed7y9dclr520ys6vzsljtxjyl38gzyrrd0fqq396xpkdzcpam44v8xxmdqsn8aht44ap27305wxcytq0vyge87wk</id>
    
      <title type="html">📅 Original date posted:2017-09-27 📝 Original message:Oh ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsw62nc6saykaag8t378ttskhsed7y9dclr520ys6vzsljtxjyl38gzyrrd0fqq396xpkdzcpam44v8xxmdqsn8aht44ap27305wxcytq0vyge87wk" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsy7m5uzy0axf478lqj39c9ah00f9gydrr3pc980xcmsm4xeepa72cpn8q6e&#39;&gt;nevent1q…8q6e&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2017-09-27&lt;br/&gt;📝 Original message:Oh nevermind. I had a look at the history but missed that commit and&lt;br/&gt;assumed the change was introduced when adding the text to&lt;br/&gt;contrib/debian/copyright&lt;br/&gt;&lt;br/&gt;Tim&lt;br/&gt;&lt;br/&gt;On Wed, 2017-09-27 at 22:21 &#43;0000, Gregory Maxwell wrote:&lt;br/&gt;&amp;gt; On Wed, Sep 27, 2017 at 9:54 PM, Tim Ruffing via bitcoin-dev&lt;br/&gt;&amp;gt; &amp;lt;bitcoin-dev at lists.linuxfoundation.org&amp;gt; wrote:&lt;br/&gt;&amp;gt; &amp;gt; Also, even the old version lists some icons &amp;#34;based on Stephan&lt;br/&gt;&amp;gt; &amp;gt; Hutchings&lt;br/&gt;&amp;gt; &amp;gt; Typicons&amp;#34; as &amp;#34;License: MIT&amp;#34;, which could be a violation of CC BY-SA &lt;br/&gt;&amp;gt; &amp;gt; if&lt;br/&gt;&amp;gt; &amp;gt; I&amp;#39;m not mistaken.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Relicensed by the copyright holder:&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; &lt;a href=&#34;https://github.com/bitcoin/bitcoin/commit/dae0a89d4b66f08c83ccc8c20cf&#34;&gt;https://github.com/bitcoin/bitcoin/commit/dae0a89d4b66f08c83ccc8c20cf&lt;/a&gt;&lt;br/&gt;&amp;gt; 37521084b6257&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; (For future reference, git log -p &amp;lt;file&amp;gt; makes it easy to go find&lt;br/&gt;&amp;gt; where some string was last in a file, so you can look at the commit&lt;br/&gt;&amp;gt; that changed it.)
    </content>
    <updated>2023-06-07T20:06:15&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqstztjkq0kd462e4sfnnuylk3lvs709tw9gd2n67skmyy4h6a2ke7szyrrd0fqq396xpkdzcpam44v8xxmdqsn8aht44ap27305wxcytq0vyt2m8lj</id>
    
      <title type="html">📅 Original date posted:2017-09-27 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqstztjkq0kd462e4sfnnuylk3lvs709tw9gd2n67skmyy4h6a2ke7szyrrd0fqq396xpkdzcpam44v8xxmdqsn8aht44ap27305wxcytq0vyt2m8lj" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs0s0g4pjn59y5nm7jl3z6uzcp2vs4vnphx9q7nethzhwalrc62zesjn6jjl&#39;&gt;nevent1q…6jjl&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2017-09-27&lt;br/&gt;📝 Original message:On Wed, 2017-09-27 at 17:20 -0400, Cory Fields via bitcoin-dev wrote:&lt;br/&gt;&amp;gt; &amp;gt; Creative Commons Attribution Share Alike 3.0&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; I didn&amp;#39;t manage to find any CC-licensed files. The match probably&lt;br/&gt;&amp;gt; comes from our gui svg icons, which contain an xml tag with a link to&lt;br/&gt;&amp;gt; creativecommons.org. This seems to be the default behavior of&lt;br/&gt;&amp;gt; inkscape, which was used to create those icons. Any icons that we&lt;br/&gt;&amp;gt; have not created ourselves are listed in contrib/debian/copyright&lt;br/&gt;&amp;gt; (they&amp;#39;re all expat/public domain).&lt;br/&gt;&lt;br/&gt;This is somewhat weird. Back in 2014, most of icons were listed as&lt;br/&gt;&amp;#34;CC BY-SA&amp;#34; (which is the correct license according to the original&lt;br/&gt;source):&lt;br/&gt;&lt;a href=&#34;https://github.com/bitcoin/bitcoin/blob/31aac02446472ec5bfc4676ab190ec9d37056503/doc/assets-attribution.md&#34;&gt;https://github.com/bitcoin/bitcoin/blob/31aac02446472ec5bfc4676ab190ec9d37056503/doc/assets-attribution.md&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;However the current docs list them as &amp;#34;Expat&amp;#34;. A mistake?&lt;br/&gt;&lt;a href=&#34;https://github.com/bitcoin/bitcoin/blob/master/contrib/debian/copyright&#34;&gt;https://github.com/bitcoin/bitcoin/blob/master/contrib/debian/copyright&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Also, even the old version lists some icons &amp;#34;based on Stephan Hutchings&lt;br/&gt;Typicons&amp;#34; as &amp;#34;License: MIT&amp;#34;, which could be a violation of CC BY-SA if&lt;br/&gt;I&amp;#39;m not mistaken.&lt;br/&gt;&lt;br/&gt;Best,&lt;br/&gt;Tim
    </content>
    <updated>2023-06-07T20:06:15&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqswfejzkfp3fykxf7ww8ucg5p6vgl6ttmvue8n9crzq3r9cxe6unqqzyrrd0fqq396xpkdzcpam44v8xxmdqsn8aht44ap27305wxcytq0vyvvtx54</id>
    
      <title type="html">📅 Original date posted:2017-03-06 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqswfejzkfp3fykxf7ww8ucg5p6vgl6ttmvue8n9crzq3r9cxe6unqqzyrrd0fqq396xpkdzcpam44v8xxmdqsn8aht44ap27305wxcytq0vyvvtx54" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs93h60jl5jrs2s3re0uzjyzrhtjvjujtqgehtrcr2mwggktpe4l5scrpm3y&#39;&gt;nevent1q…pm3y&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2017-03-06&lt;br/&gt;📝 Original message:On Mon, 2017-03-06 at 07:09 &#43;0000, Luke Dashjr wrote:&lt;br/&gt;&amp;gt; On Monday, March 06, 2017 5:37:24 AM Tim Ruffing via bitcoin-dev&lt;br/&gt;&amp;gt; wrote:&lt;br/&gt;&amp;gt; &amp;gt; But ignoring this, the server should be authenticated at a&lt;br/&gt;&amp;gt; &amp;gt; minimum. Otherwise manipulating exchange rates seems to be a nice&lt;br/&gt;&amp;gt; &amp;gt; way for the attacker on the wire to make money...&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; HTTPS would be used for that. It&amp;#39;s not something that needs to be at&lt;br/&gt;&amp;gt; a higher &lt;br/&gt;&amp;gt; layer.&lt;br/&gt;Sure, HTTPS is the way to go. But I think that should be required or at&lt;br/&gt;least noted in the BIP, because people could miss easily, e.g., &amp;#34;I&lt;br/&gt;don&amp;#39;t need TLS, all the data is public anyway.&amp;#34;&lt;br/&gt;&lt;br/&gt;&amp;gt; When displaying historical transactions, it doesn&amp;#39;t really make sense&lt;br/&gt;&amp;gt; to use &lt;br/&gt;&amp;gt; the current market rate, but rather the market rate at the time the&lt;br/&gt;&amp;gt; payment &lt;br/&gt;&amp;gt; was made. While wallets might simply cache it with the transaction,&lt;br/&gt;&amp;gt; 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&lt;br/&gt;&amp;gt; provide/use &lt;br/&gt;&amp;gt; historical information, it can simply not implement that part.&lt;br/&gt;&amp;gt; &lt;br/&gt;Having the rate at the time of payment is indeed very useful, yes.&lt;br/&gt;However that requires just a single value per payment, and there is no&lt;br/&gt;query that tells the server &amp;#34;give me the value closest to timestamp t&amp;#34;&lt;br/&gt;or similar.&lt;br/&gt;Of course the client can download and keep a large part of history and&lt;br/&gt;extract the information on its own but I can imagine that not every&lt;br/&gt;clients wants to do that, and also the client does not know in advance&lt;br/&gt;the bounds (from, to) that it must query.&lt;br/&gt;&lt;br/&gt;&amp;gt; &amp;gt; If yes, the client should be allowed to decide on which time scale&lt;br/&gt;&amp;gt; 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,&lt;br/&gt;&amp;gt; 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;In the current draft the client or the server cannot specify&lt;br/&gt;granularity. If the clients only wants one value per day but for an&lt;br/&gt;entire year, then it has to perform many requests or download and&lt;br/&gt;process a very large response.&lt;br/&gt;Also, I think it&amp;#39;s okay that the type field allows for arbitrary user-&lt;br/&gt;defined values, but it should also have some precisely defined values&lt;br/&gt;(e.g. the mentioned low/high/open/close/typical).&lt;br/&gt;For example, it&amp;#39;s not clear currently what &amp;#34;low&amp;#34; means for a timestamp&lt;br/&gt;(as opposed to a time span). Is it the low of the entire day or the low&lt;br/&gt;since the previous record or something different?  &lt;br/&gt;&lt;br/&gt;One has to be careful not to add too much complexity though. As soon as&lt;br/&gt;one moves away from timestamps to something like hours or days, all&lt;br/&gt;kind of issues with timezone, daylight saving time etc. appear. Maybe a&lt;br/&gt;simple way to let the client ask &amp;#34;give me one value for every interval&lt;br/&gt;of 3600 seconds&amp;#34; or similar. &lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;gt; Pushing is what longpolling does.&lt;br/&gt;&amp;gt; &lt;br/&gt;That makes a lot of sense, yes.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Tim
    </content>
    <updated>2023-06-07T19:56:53&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqstxwyrug8qkcqnz50qd7rqhaaml6ewd5v3nchdurade0vqjg5hr2czyrrd0fqq396xpkdzcpam44v8xxmdqsn8aht44ap27305wxcytq0vy8zpznl</id>
    
      <title type="html">📅 Original date posted:2017-03-06 📝 Original ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqstxwyrug8qkcqnz50qd7rqhaaml6ewd5v3nchdurade0vqjg5hr2czyrrd0fqq396xpkdzcpam44v8xxmdqsn8aht44ap27305wxcytq0vy8zpznl" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsqlkt69a65fffk7x78xqakd9r644adst3xt32lqw0amvmzrtesc4q6gyu97&#39;&gt;nevent1q…yu97&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2017-03-06&lt;br/&gt;📝 Original message:I&amp;#39;m not sure if a BIP is the right thing in that case, given that the&lt;br/&gt;provided functionality is not special to Bitcoin and can be used in&lt;br/&gt;other contexts as well. &lt;br/&gt;&lt;br/&gt;But ignoring this, the server should be authenticated at a&lt;br/&gt;minimum. Otherwise manipulating exchange rates seems to be a nice&lt;br/&gt;way for the attacker on the wire to make money...&lt;br/&gt;&lt;br/&gt;Apart from that, my feeling is that it could be simplified. Is &lt;br/&gt;longpolling useful? And is the historical rate thing really necessary&lt;br/&gt;for typical applications?&lt;br/&gt;&lt;br/&gt;If yes, the client should be allowed to decide on which time scale the&lt;br/&gt;data should be. (tick, min, hour, day, ...) That goes together with&lt;br/&gt;clearly defining the type field (something like low, high, open, close,&lt;br/&gt;but without flexibility). Think of a candle-stick chart basically.&lt;br/&gt;&lt;br/&gt;Also, pushing may be more appropriate for &amp;#34;current&amp;#34; rates than polling.&lt;br/&gt;Then no polling interval is necessary. On the other hand, this adds&lt;br/&gt;complexity in other places, e.g., state.&lt;br/&gt;&lt;br/&gt;Tim  &lt;br/&gt;&lt;br/&gt;On Sat, 2017-03-04 at 08:27 &#43;0000, Luke Dashjr via bitcoin-dev wrote:&lt;br/&gt;&amp;gt; Investigating what it would take to add fiat currency information to&lt;br/&gt;&amp;gt; Bitcoin &lt;br/&gt;&amp;gt; Knots, I noticed Electrum currently has many implementations, one for&lt;br/&gt;&amp;gt; each &lt;br/&gt;&amp;gt; exchange rate provider, due to lack of a common format for such data.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Therefore, I put together an initial draft of a BIP that could&lt;br/&gt;&amp;gt; standardise &lt;br/&gt;&amp;gt; this so wallets (or other software) and exchange rate providers can&lt;br/&gt;&amp;gt; simply &lt;br/&gt;&amp;gt; interoperate without a lot of overhead reimplementing the same thing&lt;br/&gt;&amp;gt; many &lt;br/&gt;&amp;gt; ways.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; One thing I am unsure about, is that currently this draft requires&lt;br/&gt;&amp;gt; using XBT &lt;br/&gt;&amp;gt; (as BTC) for Bitcoin amounts. It would seem nicer to use satoshis,&lt;br/&gt;&amp;gt; but those &lt;br/&gt;&amp;gt; don&amp;#39;t really have a pseudo-ISO currency code to fit in nicely...&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Current draft here:&lt;br/&gt;&amp;gt;     &lt;a href=&#34;https://github.com/luke-jr/bips/blob/bip-xchgrate/bip-xchgrate.me&#34;&gt;https://github.com/luke-jr/bips/blob/bip-xchgrate/bip-xchgrate.me&lt;/a&gt;&lt;br/&gt;&amp;gt; diawiki&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Thoughts? Anything critical missing? Ways to make the interface&lt;br/&gt;&amp;gt; better?&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Luke&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;
    </content>
    <updated>2023-06-07T19:56:52&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqspjaafsyd9mdaapcajf0ppzj9526zavxkydydxvjy5kyapq4n4czqzyrrd0fqq396xpkdzcpam44v8xxmdqsn8aht44ap27305wxcytq0vywkz73l</id>
    
      <title type="html">📅 Original date posted:2017-02-24 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqspjaafsyd9mdaapcajf0ppzj9526zavxkydydxvjy5kyapq4n4czqzyrrd0fqq396xpkdzcpam44v8xxmdqsn8aht44ap27305wxcytq0vywkz73l" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsvvx24j4vhu0hlqjrrc0pamhwmgd4akh8zhtyx0am2l2rvn8lrtcsmx2a9s&#39;&gt;nevent1q…2a9s&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2017-02-24&lt;br/&gt;📝 Original message:On Fri, 2017-02-24 at 00:57 &#43;0100, Aymeric Vitte via bitcoin-dev wrote:&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; I have not worked on this since some time, so that&amp;#39;s just thoughts,&lt;br/&gt;&amp;gt; but maybe it can render things much more difficult&lt;br/&gt;&amp;gt; than       computing two files until the same hash is found&lt;br/&gt;&amp;gt; &lt;br/&gt;&lt;br/&gt;You basically rely on the idea that specific collisions are more&lt;br/&gt;difficult to find. This trick or similar tricks will not help. (And&lt;br/&gt;actually, the more files you add to the hash, the more freedom you give&lt;br/&gt;the attacker.)&lt;br/&gt;&lt;br/&gt;Even if certain collisions are more difficult to find today (which is&lt;br/&gt;certainly true), the general rule is that someone will prove you wrong&lt;br/&gt;in a year.&lt;br/&gt;&lt;br/&gt;Even if ignore security entirely, switching to new hash function is&lt;br/&gt;much simpler trying to fix the usage of a broken hash function.&lt;br/&gt;&lt;br/&gt;Relying on SHA1 is hopeless. We have to get rid of it.&lt;br/&gt;&lt;br/&gt;Best,&lt;br/&gt;Tim
    </content>
    <updated>2023-06-07T19:56:38&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqspsgu3x68f6gkw95v0q0ap8wc8duhcztxnw2fjk25veuvansz5xygzyrrd0fqq396xpkdzcpam44v8xxmdqsn8aht44ap27305wxcytq0vyllmdpk</id>
    
      <title type="html">📅 Original date posted:2017-02-24 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqspsgu3x68f6gkw95v0q0ap8wc8duhcztxnw2fjk25veuvansz5xygzyrrd0fqq396xpkdzcpam44v8xxmdqsn8aht44ap27305wxcytq0vyllmdpk" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsw92hdsyg7qm480j993drxexrvuj4hzp3m0r2kv58j4zphp0qe9ng6gxa2g&#39;&gt;nevent1q…xa2g&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2017-02-24&lt;br/&gt;📝 Original message:On Fri, 2017-02-24 at 16:18 &#43;0100, Aymeric Vitte via bitcoin-dev wrote:&lt;br/&gt;&amp;gt; Not sure that you really read deeply what I sent, because stating&lt;br/&gt;&amp;gt; that&lt;br/&gt;&amp;gt; hashing files continuously instead of hashing the intermediate steps&lt;br/&gt;&amp;gt; just gives more latitude to the attacker can&amp;#39;t be true when the&lt;br/&gt;&amp;gt; attacker&lt;br/&gt;&amp;gt; has absolutely no control over the past files&lt;br/&gt;What prevents the attacker to provide different past files when talking&lt;br/&gt;to parties who are still in the initial state?&lt;br/&gt;&lt;br/&gt;Then the question is: knowing the hash state, is it as easy to find a&lt;br/&gt;&amp;gt; collision between two files that will be computed in the next round&lt;br/&gt;&amp;gt; than&lt;br/&gt;&amp;gt; finding a collision between two files only?&lt;br/&gt;With the original usage of the hash function, the hash state is always&lt;br/&gt;the initial state. Now that the attacker has some control over the hash&lt;br/&gt;state even. In other words, if the original use of the hash function&lt;br/&gt;was vulnerable, then your scheme is vulnerable for the initial state.&lt;br/&gt;&lt;br/&gt;Concrete attack: If you can find x != y with H(x) = H(y), then you can&lt;br/&gt;also find m, x != y, with H(m||x) = H(m||y), just by setting m = &amp;#34;&amp;#34;. &lt;br/&gt;&lt;br/&gt;Not sure if this is the right place to discuss that issue though...&lt;br/&gt;&lt;br/&gt;Best,&lt;br/&gt;Tim
    </content>
    <updated>2023-06-07T19:56:38&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsqmsq8ruqc0xdvzz6699suglqw7dep7nxx4pskmvjpl3xkg3khyvgzyrrd0fqq396xpkdzcpam44v8xxmdqsn8aht44ap27305wxcytq0vyknxr0w</id>
    
      <title type="html">📅 Original date posted:2014-08-06 📝 Original message:Hey, ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsqmsq8ruqc0xdvzz6699suglqw7dep7nxx4pskmvjpl3xkg3khyvgzyrrd0fqq396xpkdzcpam44v8xxmdqsn8aht44ap27305wxcytq0vyknxr0w" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs2jskgphphc3rm4nwuvy4r8jg2s8sm8ecdsy00nu8ufkj6rckj0tgyflgl7&#39;&gt;nevent1q…lgl7&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2014-08-06&lt;br/&gt;📝 Original message:Hey,&lt;br/&gt;&lt;br/&gt;We (a group of researchers in Germany) propose a decentralized protocol for &lt;br/&gt;CoinJoin, a way to mix coins among users to improve anonymity. Our protocol is &lt;br/&gt;called CoinShuffle. We believe that CoinShuffle is a way to implement CoinJoin &lt;br/&gt;in the original spirit of Bitcoin, i.e., decentralized and without trusted &lt;br/&gt;third parties. (If you are not familiar with CoinJoin, the idea is explained &lt;br/&gt;here: &lt;a href=&#34;https://bitcointalk.org/index.php?topic=279249.0&#34;&gt;https://bitcointalk.org/index.php?topic=279249.0&lt;/a&gt; )&lt;br/&gt;&lt;br/&gt;The protocol is essentially a clever way to create a CoinJoin transaction. &lt;br/&gt;Recall that the idea of CoinJoin is mixing with one SINGLE transaction that &lt;br/&gt;has multiple input addresses and multiple fresh output addresses (i.e., one &lt;br/&gt;pair of addresses per user). The advantage of CoinJoin over mixing with a &lt;br/&gt;server or trusted party is that nobody can steal coins. Each user can check if &lt;br/&gt;the single transaction sends enough coins to his fresh output address. If this &lt;br/&gt;is not the case, the user can just refuse to sign the transaction and nothing &lt;br/&gt;(bad) happens.&lt;br/&gt;&lt;br/&gt;The difficulty in CoinJoin is to let the participants announce their fresh &lt;br/&gt;output addresses without breaking anonymity: Of course, if a participant of &lt;br/&gt;the protocol just announces &amp;#34;I have 1 BTC at address X now&amp;#34; and &amp;#34;I would like &lt;br/&gt;to have it back at address Y&amp;#34;, then everybody can link X and Y and mixing is &lt;br/&gt;useless. A naive approach is to send these two messages via a secure channel &lt;br/&gt;to a server that organizes the whole mixing. While the server cannot steal &lt;br/&gt;coins, the server still has to be trusted for anonymity, because it knows &lt;br/&gt;which input addresses belong to which output addresses.&lt;br/&gt;&lt;br/&gt;We present the list of CoinShuffle&amp;#39;s features at the end of this e-mail. An &lt;br/&gt;overview over the technical details can be found on the project page:&lt;br/&gt;&lt;a href=&#34;http://crypsys.mmci.uni-saarland.de/projects/CoinShuffle/&#34;&gt;http://crypsys.mmci.uni-saarland.de/projects/CoinShuffle/&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Moreover, for the full details, have a look at the research paper on &lt;br/&gt;CoinShuffle that can be found here:&lt;br/&gt;&lt;a href=&#34;http://crypsys.mmci.uni-saarland.de/projects/CoinShuffle/coinshuffle.pdf&#34;&gt;http://crypsys.mmci.uni-saarland.de/projects/CoinShuffle/coinshuffle.pdf&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;The paper has been accepted at a major European academic conference on &lt;br/&gt;security (ESORICS). We will present the idea there. &lt;br/&gt;&lt;br/&gt;Our Proof-of-concept Implementation&lt;br/&gt;-----------------------------------&lt;br/&gt;There is a proof-of-concept implementation (written in Python) available on &lt;br/&gt;our project page. It is really only a proof-of-concept and it implements only &lt;br/&gt;the announcement of the addresses, not the creation of the transaction. &lt;br/&gt;Moreover, the code is CERTAINLY INSECURE and not well-written; our only goal &lt;br/&gt;was to demonstrate feasibility and estimate the performance of our approach.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Our Future Plans&lt;br/&gt;----------------&lt;br/&gt;Now we are planning a full, open-source implementation of the protocol. Of &lt;br/&gt;course, we would like to build on top of an existing wide-spread client. Since &lt;br/&gt;we do not have much experience in the design of existing Bitcoin clients, we &lt;br/&gt;would appreciate any help in the process. In particular, we did not decide &lt;br/&gt;which of the existing clients we would like to extend. Any hints towards this &lt;br/&gt;decisions would very helpful. Help in design and coding would be great but we &lt;br/&gt;also would like to hear your comments, criticism, and improvements for the &lt;br/&gt;protocol itself.&lt;br/&gt;&lt;br/&gt;CoinShuffle Features&lt;br/&gt;--------------------&lt;br/&gt;CoinShuffle has the following features:&lt;br/&gt;&lt;br/&gt; - Decentralization / no third party:&lt;br/&gt;There is no (trusted or untrusted) third party in a run of the protocol. &lt;br/&gt;(Still, as in all mixing solutions, users need some way to gather together &lt;br/&gt;before they can run the protocol. This can be done via a P2P protocol if a &lt;br/&gt;decentralized solution is desired also for this step.)&lt;br/&gt;&lt;br/&gt;   &lt;br/&gt; - Unlinkability of input and output addresses:&lt;br/&gt;Nobody, in particular no server (there is none!), can link input and output &lt;br/&gt;addresses of a mixing transaction, as long as there are at least two honest &lt;br/&gt;participants in run of the protocol.&lt;br/&gt;   &lt;br/&gt;(This is not a weakness: If there is only one honest participant, meaningful &lt;br/&gt;mixing is just impossible, no matter how it is organized. If all the other &lt;br/&gt;participants collude, they know all their input and output addresses and can &lt;br/&gt;immediately determine the output address of the honest participant.)&lt;br/&gt;&lt;br/&gt; - Security against thefts:&lt;br/&gt;As explained above, nobody can steal coins during the mixing because of the &lt;br/&gt;CoinJoin principle.  &lt;br/&gt;Every participant can verify that his money will not be stolen. Otherwise, he &lt;br/&gt;refuses to sign the transaction and nothing will happen.&lt;br/&gt;&lt;br/&gt; - Robustness against denial-of-service:&lt;br/&gt;In CoinJoin, a single malicious (or malfunctioning) client suffices to stop &lt;br/&gt;the whole protocol (e.g., by just refusing to sing the transaction without a &lt;br/&gt;proper reason.) This can easily lead to DoS attacks but these can be countered &lt;br/&gt;in CoinShuffle.&lt;br/&gt;   &lt;br/&gt;While in case of disruption, the current run of the protocol has to stop, &lt;br/&gt;CoinShuffle addresses this problem as follows:  In case of active disruption, &lt;br/&gt;i.e., some participant sends wrong messages, the protocol provides a proof of &lt;br/&gt;this misbehavior. Then the honest protocol parties can start a new run of the &lt;br/&gt;protocol without the misbehaving participant. Also in case of passive &lt;br/&gt;disruption, i.e., some participant does not respond (for whatever reason), the &lt;br/&gt;remaining participants can agree on starting a new run without this &lt;br/&gt;participant. This ensures that the protocol will finally succeed even in the &lt;br/&gt;presence of malicious participant (although this can take quite a while then).&lt;br/&gt;&lt;br/&gt; - Only public-key encryption and signatures:&lt;br/&gt;The protocol requires only well-established cryptographic primitives. Besides &lt;br/&gt;signatures and hash functions (that are already used by Bitcoin), only &lt;br/&gt;standard public-key encryption is necessary.&lt;br/&gt;  &lt;br/&gt; - Efficiency:&lt;br/&gt;A run of the protocol with 30 participants takes less than 100 seconds (in a &lt;br/&gt;setting with reasonable bandwidth and delay). This is not much, given that 10 &lt;br/&gt;min (on average) are required to confirm the mixing transaction anyway.&lt;br/&gt;   &lt;br/&gt;The costs are almost completely caused by communication. The computation &lt;br/&gt;overhead is minimal. (This is the main achievement actually. In theory, it is &lt;br/&gt;clear that a protocol with all the properties can be built. However, generic &lt;br/&gt;constructions cannot be used in practice yet, because the computation and &lt;br/&gt;communication costs are huge.)&lt;br/&gt;&lt;br/&gt;- Compatibility:&lt;br/&gt;As CoinShuffle works on top of Bitcoin, it is fully compatible with the &lt;br/&gt;current Bitcoin system. No changes to the Bitcoin protocol are required.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;By the way: The NXT cryptocurrency picked up our idea and an implementation of &lt;br/&gt;CoinShuffle for a part of NXT is under way. ( &lt;br/&gt;&lt;a href=&#34;https://twitter.com/comefrombeyond/status/485429369268350977&#34;&gt;https://twitter.com/comefrombeyond/status/485429369268350977&lt;/a&gt; )&lt;br/&gt;&lt;br/&gt;  &lt;br/&gt;TL,DR:&lt;br/&gt;Mixing is the way to improve anonymity in Bitcoin now, as it does not require &lt;br/&gt;changes to the Bitcoin protocol. We propose CoinShuffle, a decentralized &lt;br/&gt;protocol to perform mixing in a secure way without trusted third parties, see &lt;br/&gt;&lt;a href=&#34;http://crypsys.mmci.uni-saarland.de/projects/CoinShuffle/&#34;&gt;http://crypsys.mmci.uni-saarland.de/projects/CoinShuffle/&lt;/a&gt; for a technical &lt;br/&gt;overview. Our next step is to implement the protocol. Help in design and &lt;br/&gt;coding would be great but we also would like to hear your comments, criticism, &lt;br/&gt;and improvements for the protocol itself. &lt;br/&gt;&lt;br/&gt;Best,&lt;br/&gt;Tim Ruffing, Pedro Moreno-Sanchez, Aniket Kate&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: 648 bytes&lt;br/&gt;Desc: This is a digitally signed message part.&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20140807/f43f0fc1/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20140807/f43f0fc1/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T17:24:51&#43;02:00</updated>
  </entry>

</feed>