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




  <entry>
    <id>https://nostr.ae/nevent1qqsrkcyx5e4zck0jwvf4fdj09xhy3euxx37jrka36hgv92zl75s6htqzypl9wenvla7gd72pp5eaf56w70j3q5u4k0r54arj2swma6m587w7xcutszl</id>
    
      <title type="html">📅 Original date posted:2015-03-24 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsrkcyx5e4zck0jwvf4fdj09xhy3euxx37jrka36hgv92zl75s6htqzypl9wenvla7gd72pp5eaf56w70j3q5u4k0r54arj2swma6m587w7xcutszl" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsgqg3q5wh8rcd8muwgg9kdn4e6nezpgnwcs0vz0mk2h86rfzpdrlq0zdczs&#39;&gt;nevent1q…dczs&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2015-03-24&lt;br/&gt;📝 Original message:On Mon, 16 Mar 2015 09:29:03 -0700, Sergio Lerner  &lt;br/&gt;&amp;lt;sergiolerner at certimix.com&amp;gt; wrote:&lt;br/&gt;&amp;gt; I proposed a (what I think) is better protocol for Proof of Storage that&lt;br/&gt;&amp;gt; I call &amp;#34;Proof of Local storage&amp;#34; here&lt;br/&gt;&amp;gt; &lt;a href=&#34;https://bitslog.wordpress.com/2014/11/03/proof-of-local-blockchain-storage/&#34;&gt;https://bitslog.wordpress.com/2014/11/03/proof-of-local-blockchain-storage/&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Thanks so much for publishing this. It could be useful in any application  &lt;br/&gt;to try to prove a keyed copy of some data.&lt;br/&gt;&lt;br/&gt;If I understand correctly, transforming raw blocks to keyed blocks takes  &lt;br/&gt;512x longer than transforming keyed blocks back to raw. The key is public,  &lt;br/&gt;like the IP, or some other value which perhaps changes less frequently.&lt;br/&gt;&lt;br/&gt;The verifier keeps blocks in the keyed format, and can decrypt quickly to  &lt;br/&gt;provide raw data, or use the keyed data for hashing to try to demonstrate  &lt;br/&gt;they have a pre-keyed copy.&lt;br/&gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Two protocols can be performed to prove local possession:&lt;br/&gt;&amp;gt; 1. (prover and verifier pay a small cost) The verifier sends a seed to&lt;br/&gt;&amp;gt; derive some n random indexes, and the prover must respond with the hash&lt;br/&gt;&amp;gt; of the decrypted blocks within a certain time bound. Suppose that&lt;br/&gt;&amp;gt; decryption of n blocks take 100 msec (&#43;-100 msec of network jitter).&lt;br/&gt;&amp;gt; Then an attacker must have a computer 50 faster to be able to&lt;br/&gt;&amp;gt; consistently cheat. The last 50 blocks should not be part of the list to&lt;br/&gt;&amp;gt; allow nodes to catch-up and encrypt the blocks in background.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;Can you clarify, the prover is hashing random blocks of *decrypted*, as-in  &lt;br/&gt;raw, blockchain data? What does this prove other than, perhaps, fast  &lt;br/&gt;random IO of the blockchain? (which is useful in its own right, e.g. as a  &lt;br/&gt;way to ensure only full-node IO-bound mining if baked into the PoW)&lt;br/&gt;&lt;br/&gt;How is the verifier validating the response without possession of the full  &lt;br/&gt;blockchain?&lt;br/&gt;&lt;br/&gt;&amp;gt; 2. (prover pay a high cost, verified pays negligible cost). The verifier&lt;br/&gt;&amp;gt; chooses a seed n, and then pre-computes the encrypted blocks derived&lt;br/&gt;&amp;gt; from the seed using the prover&amp;#39;s IP. Then the verifier sends the  seed,&lt;br/&gt;&amp;gt; and the prover must respond with the hash of the encrypted blocks within&lt;br/&gt;&amp;gt; a certain time bound. The proved does not require to do any PH&lt;br/&gt;&amp;gt; decryption, just take the encrypted blocks for indexes derived from the&lt;br/&gt;&amp;gt; seed, hash them and send the hash back to the verifier. The verifier&lt;br/&gt;&amp;gt; validates the time bound and the hash.&lt;br/&gt;&lt;br/&gt;The challenger requests a hash-sum of a random sequence of indices of the  &lt;br/&gt;keyed data, based on a challenge seed. So in a few bytes round-trip we can  &lt;br/&gt;see how fast the computation is completed. If the data is already keyed,  &lt;br/&gt;the hash of 1,000 random 1024-bit blocks should come back much faster than  &lt;br/&gt;if the data needs to be keyed on-the-fly.&lt;br/&gt;&lt;br/&gt;To verify the response, the challenger would have to use the peer&amp;#39;s  &lt;br/&gt;identity key and perform the slower transforms on those same 1,000 blocks  &lt;br/&gt;and see that the result matches, so cost to challenger is higher than  &lt;br/&gt;prover, assuming they actually do the computation.&lt;br/&gt;&lt;br/&gt;Which brings up a good tweak, a full-node challenger could have to do the  &lt;br/&gt;computation first, then also include something like HMAC(identityKey,  &lt;br/&gt;expectedResult). The prover could then know if the challenger was honest  &lt;br/&gt;before returning a result, and blacklist them if not.&lt;br/&gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Both protocols can me made available by the client, under different&lt;br/&gt;&amp;gt; states. For instance, new nodes are only allowed to request protocol 2&lt;br/&gt;&amp;gt; (and so they get an initial assurance their are connecting to&lt;br/&gt;&amp;gt; full-nodes). After a first-time mutual authentication, they are allowed&lt;br/&gt;&amp;gt; to periodically perform protocol 1. Also new nodes may be allowed to&lt;br/&gt;&amp;gt; perform protocol 1 with a small index set, and increase the index set&lt;br/&gt;&amp;gt; over time, to get higher confidence.&lt;br/&gt;&lt;br/&gt;I guess a new-node could see if different servers all returned the same  &lt;br/&gt;challenge response, but they would have no way to know if the challenge  &lt;br/&gt;response was technically correct, or sybil.&lt;br/&gt;&lt;br/&gt;I also wonder about the effect of spinning disk versus SSD. Seek time for  &lt;br/&gt;1,000 random reads is either nearly zero or dominating depending on the  &lt;br/&gt;two modes. I wonder if a sequential read from a random index is a possible  &lt;br/&gt;trade-off,; it doesn&amp;#39;t prove possession of the whole chain nearly as well,  &lt;br/&gt;but at least iowait converges significantly. Then again, that presupposes  &lt;br/&gt;a specific ordering on disk which might not exist. In X years it will all  &lt;br/&gt;be solid-state, so eventually it&amp;#39;s moot.
    </content>
    <updated>2023-06-07T17:32:01&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs8966zuwexq2r4kcz3a77ay7uw5acdhdwzk3yvgawcgmfqqwqsg6szypl9wenvla7gd72pp5eaf56w70j3q5u4k0r54arj2swma6m587w7xu9dntv</id>
    
      <title type="html">📅 Original date posted:2014-02-19 📝 Original message:&amp;gt; ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs8966zuwexq2r4kcz3a77ay7uw5acdhdwzk3yvgawcgmfqqwqsg6szypl9wenvla7gd72pp5eaf56w70j3q5u4k0r54arj2swma6m587w7xu9dntv" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs8wvhzfhlud9v3zqn8dh6kaxm924dylzdrpl29xvdcm27gd4ugu7cexcjxp&#39;&gt;nevent1q…cjxp&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2014-02-19&lt;br/&gt;📝 Original message:&amp;gt; Longer term it would be more ideal have a canonical identifier for the  &lt;br/&gt;&amp;gt; transaction before it even gets to the chain to support these use cases,  &lt;br/&gt;&amp;gt; even if &amp;gt;wallets are able to properly identify the status of it&amp;#39;s  &lt;br/&gt;&amp;gt; transactions.  &lt;br/&gt;&amp;gt; -Allen&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;One possible work-around to get back trusted transaction chaining for  &lt;br/&gt;payment channels and locked refunds from multi-sig would be to make the  &lt;br/&gt;initial transaction include zero fee, and depend on child-pays-for-parent  &lt;br/&gt;in order to get the first and follow-on transactions into a block. This of  &lt;br/&gt;course only works for protocols where the parties don&amp;#39;t need the initial  &lt;br/&gt;funding transaction to actually hit the blockchain right away.&lt;br/&gt;&lt;br/&gt;But this relies on two assumptions; 1) that miners won&amp;#39;t include a  &lt;br/&gt;zero-fee transaction in the blockchain, and 2) that miners actually  &lt;br/&gt;implement child-pays-for-parent. It&amp;#39;s definitely not the same security  &lt;br/&gt;as-if you had immutable txid, but it&amp;#39;s something to consider.&lt;br/&gt;&lt;br/&gt;1) Mutants may cause wallet spam and difficulty calculating balance (and  &lt;br/&gt;wallets will evolve to deal with it)&lt;br/&gt;2) Mutants cause DoS because they can interfere with your own transaction  &lt;br/&gt;chains, which for example makes batch off-line processing much more  &lt;br/&gt;difficult&lt;br/&gt;3) Mutants introduce a 3rd party attacker into any two-party protocol that  &lt;br/&gt;relies on chains&lt;br/&gt;&lt;br/&gt;There&amp;#39;s a lot to digest in the &amp;#39;v3&amp;#39; transaction/block proposal. It sounds  &lt;br/&gt;like there may be some uncertainty over whether we can *prove* that v3  &lt;br/&gt;transactions in v3 blocks would actually be guaranteed immutable with  &lt;br/&gt;these changes?&lt;br/&gt;&lt;br/&gt;If we cannot fully prove a Tx is immutable, then is it actually worth  &lt;br/&gt;taking steps to make it seem immutable, or is that just a false sense of  &lt;br/&gt;security in the cases where chained transactions were actually expected to  &lt;br/&gt;be reliable? Under that thinking, maybe it&amp;#39;s best to accept mutants as a  &lt;br/&gt;fact of life, and only consider protocols and techniques that cannot be  &lt;br/&gt;broken by mutants.&lt;br/&gt;&lt;br/&gt;In what cases does reducing the sources of malleability, but not  &lt;br/&gt;necessarily eliminating from a security proof perspective, actually help?  &lt;br/&gt;Basically, if we don&amp;#39;t know that we will succeed, isn&amp;#39;t there really no  &lt;br/&gt;point in trying?&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/20140219/d695d83f/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20140219/d695d83f/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T17:13:30&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsxku0yhy7z5qqgdas9etu4e7whwg0p0x7shsa9dnafq42zr75k0mqzypl9wenvla7gd72pp5eaf56w70j3q5u4k0r54arj2swma6m587w7xn5empe</id>
    
      <title type="html">📅 Original date posted:2014-01-27 📝 Original message:On Jan ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsxku0yhy7z5qqgdas9etu4e7whwg0p0x7shsa9dnafq42zr75k0mqzypl9wenvla7gd72pp5eaf56w70j3q5u4k0r54arj2swma6m587w7xn5empe" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs02y9clzwpne2t72t75f9987tu8vk34ytl0ad06nz9zlpn75735nqdg5yrx&#39;&gt;nevent1q…5yrx&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2014-01-27&lt;br/&gt;📝 Original message:On Jan 27, 2014, at 9:39 AM, Andreas Schildbach &amp;lt;andreas at schildbach.de&amp;gt; wrote:&lt;br/&gt;&lt;br/&gt;&amp;gt; On 01/27/2014 06:11 PM, Jeremy Spilman wrote:&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; SCAN TO PAY&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; For scan-to-pay, the current landscape looks different. I assume at&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; least 50% of Bitcoin transactions are initiated by a BIP21 URL encoded&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; into a QR-code. Nevertheless, I tried to encode a payment request into&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; the bitcoin URL. I used my existing work on encoding transactions into&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; QR-codes. Steps to encode:&lt;br/&gt;&amp;gt;&amp;gt; &lt;br/&gt;&amp;gt;&amp;gt; Really interesting work. When using scan-to-pay, after the payer scans the  &lt;br/&gt;&amp;gt;&amp;gt; QR code with the protobuf PaymentRequest (not a URL to download the  &lt;br/&gt;&amp;gt;&amp;gt; PaymentRequest) are they using their own connectivity to submit the  &lt;br/&gt;&amp;gt;&amp;gt; Payment response?&lt;br/&gt;&amp;gt;&amp;gt; &lt;br/&gt;&amp;gt;&amp;gt; How about putting a Bluetooth address in the payment_url inside the&lt;br/&gt;&amp;gt;&amp;gt; PaymentDetails message for the smartphone to send back the Payment&lt;br/&gt;&amp;gt;&amp;gt; response and get PaymentAck?&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; That&amp;#39;s exactly what I have prototyped. I am putting a Bluetooth MAC&lt;br/&gt;&amp;gt; address into the payment_url. Have a look at the TAP TO PAY paragraph&lt;br/&gt;&amp;gt; for details, its mostly the same mechanism.&lt;br/&gt;&amp;gt; &lt;br/&gt;&lt;br/&gt;Same mechanism for both, of course. Sorry, that was obvious. :)
    </content>
    <updated>2023-06-07T17:12:42&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsqgf00e68qpgj7tcq3mgytlf8r60lc23c80pepj5dkky673m0z2vszypl9wenvla7gd72pp5eaf56w70j3q5u4k0r54arj2swma6m587w7xekks60</id>
    
      <title type="html">📅 Original date posted:2014-01-27 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsqgf00e68qpgj7tcq3mgytlf8r60lc23c80pepj5dkky673m0z2vszypl9wenvla7gd72pp5eaf56w70j3q5u4k0r54arj2swma6m587w7xekks60" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsfkwh3lfsfhzwclywfhgcpg08gva47yltud6xj7ueruhfwznhs7hg58c7sy&#39;&gt;nevent1q…c7sy&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2014-01-27&lt;br/&gt;📝 Original message:On Mon, 27 Jan 2014 03:59:25 -0800, Andreas Schildbach  &lt;br/&gt;&amp;lt;andreas at schildbach.de&amp;gt; wrote:&lt;br/&gt;&lt;br/&gt;&amp;gt; SCAN TO PAY&lt;br/&gt;&amp;gt; For scan-to-pay, the current landscape looks different. I assume at&lt;br/&gt;&amp;gt; least 50% of Bitcoin transactions are initiated by a BIP21 URL encoded&lt;br/&gt;&amp;gt; into a QR-code. Nevertheless, I tried to encode a payment request into&lt;br/&gt;&amp;gt; the bitcoin URL. I used my existing work on encoding transactions into&lt;br/&gt;&amp;gt; QR-codes. Steps to encode:&lt;br/&gt;&lt;br/&gt;Really interesting work. When using scan-to-pay, after the payer scans the  &lt;br/&gt;QR code with the protobuf PaymentRequest (not a URL to download the  &lt;br/&gt;PaymentRequest) are they using their own connectivity to submit the  &lt;br/&gt;Payment response?&lt;br/&gt;&lt;br/&gt;If we assume connectivity on the phone, might as well just get a URL from  &lt;br/&gt;the QR code and re-use existing infrastructure for serving that?&lt;br/&gt;&lt;br/&gt;How about putting a Bluetooth address in the payment_url inside the  &lt;br/&gt;PaymentDetails message for the smartphone to send back the Payment  &lt;br/&gt;response and get PaymentAck?
    </content>
    <updated>2023-06-07T17:12:42&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs2srghpy7r9d2pfjpzulyfdm33d7kz506pcg6stza0huy6yu7wjzczypl9wenvla7gd72pp5eaf56w70j3q5u4k0r54arj2swma6m587w7xgmqhuq</id>
    
      <title type="html">📅 Original date posted:2014-01-14 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs2srghpy7r9d2pfjpzulyfdm33d7kz506pcg6stza0huy6yu7wjzczypl9wenvla7gd72pp5eaf56w70j3q5u4k0r54arj2swma6m587w7xgmqhuq" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsrksm5fnv3942xtnktwv58nwtxmrs3ur79uzkkkg2th5737teut2gpzzyp5&#39;&gt;nevent1q…zyp5&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2014-01-14&lt;br/&gt;📝 Original message:On Tue, 14 Jan 2014 13:51:06 -0800, Adam Back &amp;lt;adam at cypherspace.org&amp;gt; wrote:&lt;br/&gt;&amp;gt; I saw in the math version you had said Q&amp;#39;=Q&#43;H(S) and I presumed it was a&lt;br/&gt;&amp;gt; typo, but your code says the same thing.  I presume you meant Q&amp;#39;=Q&#43;H(S)*G&lt;br/&gt;&amp;gt; and therefore that Util.SingleSHA256() multiplies by G internally?&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Adam&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;Thanks for reviewing this. The relevant line:&lt;br/&gt;&lt;br/&gt;    byte[] q1New = EC.PointAdd(Q1, Util.SingleSHA256(S1));&lt;br/&gt;&lt;br/&gt;SingleSHA256 is a single application of SHA256 -- named so since &amp;#39;SHA256&amp;#39;  &lt;br/&gt;functions in many Bitcoin libraries too often actually run DoubleSHA256.  &lt;br/&gt;32 bytes are returned.&lt;br/&gt;&lt;br/&gt;The multiplication by &amp;#39;G&amp;#39; that you mention is part of my EC.PointAdd...&lt;br/&gt;&lt;br/&gt;I should probably just publish all my code as MIT and be done with it ;-)&lt;br/&gt;&lt;br/&gt;Thanks,&lt;br/&gt;Jeremy&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;public static byte[] PointAdd(byte[] point, byte[] scalar, bool compressed  &lt;br/&gt;= true)&lt;br/&gt;{&lt;br/&gt;     var point1 = new OpenSSL.Crypto.EC.Point(EcGroup, point);&lt;br/&gt;&lt;br/&gt;     var num = OpenSSL.Core.BigNumber.FromArray(scalar);&lt;br/&gt;     var point2 = OpenSSL.Crypto.EC.Point.Multiply(EcGroup, num,  &lt;br/&gt;EcBnContext);&lt;br/&gt;&lt;br/&gt;     var result = point1.Add(point2, EcBnContext);&lt;br/&gt;&lt;br/&gt;     if (compressed)&lt;br/&gt;         return result.GetBytes(ConversionForm.Compressed);&lt;br/&gt;     else&lt;br/&gt;         return result.GetBytes(ConversionForm.Uncompressed);&lt;br/&gt;}
    </content>
    <updated>2023-06-07T17:11:54&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsq5ckd53e203vxhxs53h4a9crsf2smjyzkd6d7lgrpspn5fv7xr3szypl9wenvla7gd72pp5eaf56w70j3q5u4k0r54arj2swma6m587w7xwjgcxg</id>
    
      <title type="html">📅 Original date posted:2014-01-14 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsq5ckd53e203vxhxs53h4a9crsf2smjyzkd6d7lgrpspn5fv7xr3szypl9wenvla7gd72pp5eaf56w70j3q5u4k0r54arj2swma6m587w7xwjgcxg" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs8x5tkg84hhh0zn2jzgat25hfyha7ayad2m7xkytt7uhvv8266y7gnylmk3&#39;&gt;nevent1q…lmk3&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2014-01-14&lt;br/&gt;📝 Original message:On Tue, 14 Jan 2014 06:19:08 -0800, Peter Todd &amp;lt;pete at petertodd.org&amp;gt; wrote:&lt;br/&gt;&lt;br/&gt;&amp;gt; On Mon, Jan 13, 2014 at 02:02:00PM -0800, Jeremy Spilman wrote:&lt;br/&gt;&amp;gt;&amp;gt; I decided to put both pubKeys in a 2-of-2 multisig, instead of keeping  &lt;br/&gt;&amp;gt;&amp;gt; one of the pubKeys in the OP-RETURN, to prevent a malicious sender from  &lt;br/&gt;&amp;gt;&amp;gt; triggering false positives on your online detection key when the funds  &lt;br/&gt;&amp;gt;&amp;gt; are actually still fully controlled by the payer.&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; You can still have a false positive (only 1 of 2 keys actually yours)  &lt;br/&gt;&amp;gt;&amp;gt; but the funds would be trapped so it&amp;#39;s unlikely anyone would do it.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; How would they trigger false positives? The payee recovers the nonce&lt;br/&gt;&amp;gt; with ECDH from the payor&amp;#39;s ephemereal pubkey and their online detection&lt;br/&gt;&amp;gt; secret key. They use BIP32 public derivation with their offline spending&lt;br/&gt;&amp;gt; pubkey(s), if the derived pubkeys match the actual scriptPubKey they&lt;br/&gt;&amp;gt; know the output is spendable by them. I don&amp;#39;t see how that can go wrong.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;Right now I have this:&lt;br/&gt;&lt;br/&gt;   byte[] e = EC.NewPrivateKey();&lt;br/&gt;   byte[] P = EC.GetPublicKey(e, compressed: true);&lt;br/&gt;   byte[] S1 = EC.DH(e, Q1);&lt;br/&gt;   byte[] S2 = EC.DH(e, Q2);&lt;br/&gt;   byte[] q1New = EC.PointAdd(Q1, Util.SingleSHA256(S1));&lt;br/&gt;   byte[] q2New = EC.PointAdd(Q2, Util.SingleSHA256(S2));&lt;br/&gt;   stealthTx.Vout.Add(TxOut.PayToMultiSig(Util.Amount(&amp;#34;.995&amp;#34;), 2, 2, q1New,  &lt;br/&gt;q2New));&lt;br/&gt;   stealthTx.Vout.Add(TxOut.OpReturn(P));&lt;br/&gt;&lt;br/&gt;In this case, you can scan with d2, calculate S2, and matching payments  &lt;br/&gt;will have the right &amp;#39;q2New&amp;#39;. But you need to check again offline with d1  &lt;br/&gt;since it&amp;#39;s a separate shared secret.&lt;br/&gt;&lt;br/&gt;Maybe you are saying:&lt;br/&gt;&lt;br/&gt;   byte[] S = EC.DH(e, Q2);&lt;br/&gt;   byte[] q1New = EC.PointAdd(Q1, Util.SingleSHA256(S));&lt;br/&gt;   byte[] q2New = EC.PointAdd(Q2, Util.SingleSHA256(S));&lt;br/&gt;&lt;br/&gt;But the payment would have (q2New - q1New) == (Q2 - Q1), so I think not  &lt;br/&gt;entirely stealth? OK, let&amp;#39;s fix that by adding a counter to the hash  &lt;br/&gt;function...&lt;br/&gt;&lt;br/&gt;   byte[] S = EC.DH(e, Q2);&lt;br/&gt;   byte[] q1New = EC.PointAdd(Q1, Util.SingleSHA256(S || 1));&lt;br/&gt;   byte[] q2New = EC.PointAdd(Q2, Util.SingleSHA256(S || 2));&lt;br/&gt;   stealthTx.Vout.Add(TxOut.PayToMultiSig(Util.Amount(&amp;#34;.995&amp;#34;), 2, 2, q1New,  &lt;br/&gt;q2New));&lt;br/&gt;   stealthTx.Vout.Add(TxOut.OpReturn(P));&lt;br/&gt;&lt;br/&gt;This is assuming we want to put q2New somewhere into the transaction,  &lt;br/&gt;which, is it even required?&lt;br/&gt;&lt;br/&gt;   byte[] S = EC.DH(e, Q2);&lt;br/&gt;   byte[] q1New = EC.PointAdd(Q1, Util.SingleSHA256(S));&lt;br/&gt;   stealthTx.Vout.Add(TxOut.PayToPubKeyHash(Util.Amount(&amp;#34;.995&amp;#34;), q1New);&lt;br/&gt;   stealthTx.Vout.Add(TxOut.OpReturn(P));&lt;br/&gt;&lt;br/&gt;I&amp;#39;ll wait for ACK and then update my sample code.
    </content>
    <updated>2023-06-07T17:11:53&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsdt90sj39ztm6v59mctxlz6tza3ldatxqpnlyjfv509xut49r60xczypl9wenvla7gd72pp5eaf56w70j3q5u4k0r54arj2swma6m587w7xj58wte</id>
    
      <title type="html">📅 Original date posted:2014-01-13 📝 Original message:&amp;gt; ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsdt90sj39ztm6v59mctxlz6tza3ldatxqpnlyjfv509xut49r60xczypl9wenvla7gd72pp5eaf56w70j3q5u4k0r54arj2swma6m587w7xj58wte" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsf8fzdpwkr24grk3dumvy9x8axagzjz9atc4f4hlzmarkl06e8v9g68c8f6&#39;&gt;nevent1q…c8f6&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2014-01-13&lt;br/&gt;📝 Original message:&amp;gt; Uh while I&amp;#39;m responding again, what I&amp;#39;d discussed with Peter Todd in&lt;br/&gt;&amp;gt; IRC used two EC points in the stealth address. One for the payment and&lt;br/&gt;&amp;gt; one for the ECDH.  The reason to use two is that it makes delegating&lt;br/&gt;&amp;gt; detection possible and so you don&amp;#39;t have to have you spending keys&lt;br/&gt;&amp;gt; online to even detect these payments.  Why&amp;#39;d that get dropped?&lt;br/&gt;&lt;br/&gt;I think this is exactly what I&amp;#39;ve implemented.&lt;br/&gt;&lt;br/&gt;I decided to put both pubKeys in a 2-of-2 multisig, instead of keeping one of the pubKeys in the OP-RETURN, to prevent a malicious sender from triggering false positives on your online detection key when the funds are actually still fully controlled by the payer.&lt;br/&gt;&lt;br/&gt;You can still have a false positive (only 1 of 2 keys actually yours) but the funds would be trapped so it&amp;#39;s unlikely anyone would do it. &lt;br/&gt;&lt;br/&gt;Can you take a look at the Gist and TXs on TestNet I sent out, and see if that&amp;#39;s in line with what you expected?&lt;br/&gt;&lt;br/&gt;I would also greatly appreciate if you could review the discussion around doing two ECDH operations with a single ephemeral key.&lt;br/&gt;&lt;br/&gt;Thanks!&lt;br/&gt;--Jeremy
    </content>
    <updated>2023-06-07T17:11:52&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs8u28k8lj923kz9frdul3nma0camdpak9ynrverjgwu4cyn3h285qzypl9wenvla7gd72pp5eaf56w70j3q5u4k0r54arj2swma6m587w7xfj5cc0</id>
    
      <title type="html">📅 Original date posted:2014-01-18 📝 Original message:&amp;gt; ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs8u28k8lj923kz9frdul3nma0camdpak9ynrverjgwu4cyn3h285qzypl9wenvla7gd72pp5eaf56w70j3q5u4k0r54arj2swma6m587w7xfj5cc0" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsyw83qvuy0w0s8tscanp8yyjkrqgl5cpwmpmng7tc9g76v23xxhhs826cl2&#39;&gt;nevent1q…6cl2&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2014-01-18&lt;br/&gt;📝 Original message:&amp;gt; On Fri, Jan 17, 2014 at 8:55 PM, Alan Reiner &amp;lt;etotheipi at gmail.com&amp;gt; wrote:&lt;br/&gt;&amp;gt;&amp;gt; Isn&amp;#39;t there a much faster asymmetric scheme that we can use?  I&amp;#39;ve heard people talk about ed25519, though I&amp;#39;m not sure it can be used for encryption.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Doing ECDH with our curve is within a factor of ~2 of the fastest&lt;br/&gt;&amp;gt; encryption available at this security level, AFAIK.  And separate&lt;br/&gt;&amp;gt; encryption would ~double the amount of data vs using the ephemeral key&lt;br/&gt;&amp;gt; for derivation.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Using another cryptosystem would mandate carry around additional code&lt;br/&gt;&amp;gt; for a fast implementation of that cryptosystem, which wouldn&amp;#39;t be&lt;br/&gt;&amp;gt; fantastic.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; So I&amp;#39;m not sure much can be improved there.&lt;br/&gt;&lt;br/&gt;In the case where payment is being sent only to Q1, and Q2 is for discovery only, perhaps we could use a 160-bit curve for d2/Q2 and e/P resulting in 20 byte vs 32 bytes in the OP_RETURN, and of course faster multiplication. &lt;br/&gt;&lt;br/&gt;80-bits of security I assume still greatly exceeds the actual level of privacy you get with the overall solution, and since Q2 is never protecting actual funds...&lt;br/&gt;&lt;br/&gt;But if it&amp;#39;s a &amp;#34;real weakening&amp;#34; of the privacy then definitely not worth it, and even the added complexity of another curve seems possibly not worth it...
    </content>
    <updated>2023-06-07T17:11:50&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs864mtke5z5lz0974w4kmrvc5nkrj44svd2vyq4pazfnkv4wfk8hszypl9wenvla7gd72pp5eaf56w70j3q5u4k0r54arj2swma6m587w7xzcuqmn</id>
    
      <title type="html">📅 Original date posted:2014-01-17 📝 Original message:I hear ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs864mtke5z5lz0974w4kmrvc5nkrj44svd2vyq4pazfnkv4wfk8hszypl9wenvla7gd72pp5eaf56w70j3q5u4k0r54arj2swma6m587w7xzcuqmn" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqst9nth9jj5juc3gptjp6g82ft2hkrqg0j47l5ver0uysnvkds3z5gr5caz7&#39;&gt;nevent1q…caz7&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2014-01-17&lt;br/&gt;📝 Original message:I hear you, and I really don&amp;#39;t care that much what it&amp;#39;s called, as much as, does it work and how!&lt;br/&gt;&lt;br/&gt;&amp;gt; I might even try to enter in a &amp;#34;reusable&amp;#34; address in blockchain.info, which won&amp;#39;t work, and I&amp;#39;ll just figure&lt;br/&gt;&amp;gt; &amp;#34;must be some new unsupported thing&amp;#34; and move on with my life.&lt;br/&gt;&amp;gt; &lt;br/&gt;&lt;br/&gt;Regardless of what it&amp;#39;s called, Blockchain.info should tell the user, hey this address doesn&amp;#39;t let the whole world see every single payment that&amp;#39;s made to it! If you paid something to this address, only you know how to find the payment - look for the stealth address in your transaction list. &lt;br/&gt;&lt;br/&gt;So if we call the address that has the pubKeys the &amp;#34;reusable address&amp;#34; and the address that&amp;#39;s generated from the shared secret the &amp;#34;stealth address&amp;#34; then is everyone happy? :-)
    </content>
    <updated>2023-06-07T17:11:45&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs0w75jhzz88cw8pcr5y8pg6gp655vmrldhn6wzjk3ns8zpsnm0feczypl9wenvla7gd72pp5eaf56w70j3q5u4k0r54arj2swma6m587w7x6cm4gq</id>
    
      <title type="html">📅 Original date posted:2014-01-15 📝 Original message:Might ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs0w75jhzz88cw8pcr5y8pg6gp655vmrldhn6wzjk3ns8zpsnm0feczypl9wenvla7gd72pp5eaf56w70j3q5u4k0r54arj2swma6m587w7x6cm4gq" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsva29073q6tj6k82r2q2frmx8v0jm9uf60a2etqjva0mup0r859vql8zdce&#39;&gt;nevent1q…zdce&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2014-01-15&lt;br/&gt;📝 Original message:Might I propose &amp;#34;reusable address&amp;#34;.&lt;br/&gt;&lt;br/&gt;I think that describes it best to any non-programmer, and even more so  &lt;br/&gt;encourages wallets to present options as &amp;#39;one time use&amp;#39; vs &amp;#39;reusable&amp;#39;.&lt;br/&gt;&lt;br/&gt;It definitely packs a marketing punch which could help drive adoption. The  &lt;br/&gt;feature is only useful if/when broadly adopted.&lt;br/&gt;&lt;br/&gt;I think it meets all the criteria required:&lt;br/&gt;&lt;br/&gt;   - Communication between parties is a single message from the payee,  &lt;br/&gt;which may be public&lt;br/&gt;   - Multiple payments to the same address are not publicly linkable on the  &lt;br/&gt;blockchain&lt;br/&gt;   - The payee has explicitly designated they expect to receive more than  &lt;br/&gt;one payment at that address&lt;br/&gt;   - Payer can publicly prove they made a payment to the reusable address  &lt;br/&gt;by revealing a secret&lt;br/&gt;&lt;br/&gt;I have high hopes for this feature. The war *against* address reuse may  &lt;br/&gt;soon be a distant memory.&lt;br/&gt;&lt;br/&gt;On Wed, 15 Jan 2014 12:44:17 -0800, Jeff Garzik &amp;lt;jgarzik at bitpay.com&amp;gt; wrote:&lt;br/&gt;&amp;gt; &amp;#34;static address&amp;#34; seems like a reasonable attempt at describing intended  &lt;br/&gt;&amp;gt; use/direction.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; On Wed, Jan 15, 2014 at 3:38 PM, Gregory Maxwell &amp;lt;gmaxwell at gmail.com&amp;gt;  &lt;br/&gt;&amp;gt; wrote:&lt;br/&gt;&amp;gt;&amp;gt; On Wed, Jan 15, 2014 at 12:22 PM, Ben Davenport  &lt;br/&gt;&amp;gt;&amp;gt; &amp;lt;bendavenport at gmail.com&amp;gt; wrote:&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; But may I suggest we consider changing the name &amp;#34;stealth address&amp;#34; to&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; something more neutral?&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; ACK.  Regardless of the &amp;#39;political&amp;#39; overtones, I think stealth is a&lt;br/&gt;&amp;gt;&amp;gt; little cringe-worthy.&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;#34;Private address&amp;#34; would be fine if not for confusion with private-keys.&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;#34;Static address&amp;#34; is perhaps the best in my view. (also helps improve&lt;br/&gt;&amp;gt;&amp;gt; awareness that normal addresses are intended to be more one-use-ness)&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/20140115/8d3a6dc5/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20140115/8d3a6dc5/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T17:11:43&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsw6g2g9923sercsusvy4rg7ev64zl4s2ujqhzyzavmarfsvfmdeqgzypl9wenvla7gd72pp5eaf56w70j3q5u4k0r54arj2swma6m587w7x7y9svz</id>
    
      <title type="html">📅 Original date posted:2014-01-12 📝 Original message:&amp;gt; ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsw6g2g9923sercsusvy4rg7ev64zl4s2ujqhzyzavmarfsvfmdeqgzypl9wenvla7gd72pp5eaf56w70j3q5u4k0r54arj2swma6m587w7x7y9svz" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs29valy852xzlfthexy0zcqd96judjuuncwdvvy33s5a98528vwagd8vmg6&#39;&gt;nevent1q…vmg6&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2014-01-12&lt;br/&gt;📝 Original message:&amp;gt; You can always just extend the payment protocol with the new fields as  &lt;br/&gt;&amp;gt; well, vs making very long addresses.&lt;br/&gt;&lt;br/&gt;I should have mentioned that as Task #4. Agree it could be an optional  &lt;br/&gt;extension and backward compatible. I think for displaying the payment in  &lt;br/&gt;the UI after it&amp;#39;s been made via PP, we have to fully support sending to a  &lt;br/&gt;new standard address type anyway. Probably easiest to implement in PP  &lt;br/&gt;after the address and transaction building code is done.&lt;br/&gt;&lt;br/&gt;So &amp;#39;4a&amp;#39; would be building a static PP file given the necessary inputs.  &lt;br/&gt;When I get to that point, I&amp;#39;ll send out a draft PP extension with  &lt;br/&gt;fields/formats if someone else hasn&amp;#39;t already. &amp;#39;4b&amp;#39; would be actually  &lt;br/&gt;adding support for parsing those fields and generating the new transaction  &lt;br/&gt;type into bitcoind.&lt;br/&gt;&lt;br/&gt;Any thoughts on the prefix, and one vs two pubkey approach? First of all,  &lt;br/&gt;do we try to support both equally, or favor one over the other? I was  &lt;br/&gt;thinking we could have two different 4 byte prefixes but that both render  &lt;br/&gt;as xSTL/tSTL in Base58 but correspond to the one vs two pubkeys expected.  &lt;br/&gt;I think the chance of finding a single prefix which looks like xSTL for  &lt;br/&gt;both address lengths is 1 in (58^4)^2, so that&amp;#39;s probably not going to  &lt;br/&gt;happen.&lt;br/&gt;&lt;br/&gt; From the payer/user perspective, short stealth vs. long stealth is  &lt;br/&gt;irrelevant; they both have the same usability properties from the payer  &lt;br/&gt;perspective. So giving them the same Base58 prefix seems like a good plan.&lt;br/&gt;&lt;br/&gt;The full 4-byte prefix seems worth the usability trade-off versus 1-byte  &lt;br/&gt;prefix, especially since it will impact the ability to lookup the  &lt;br/&gt;transaction on an outside service, which I think a lot of people do to  &lt;br/&gt;verify their payments. IMO a longer prefix isn&amp;#39;t &amp;#34;wasting bytes&amp;#34; anywhere  &lt;br/&gt;that it really counts.&lt;br/&gt;&lt;br/&gt;We could save two bytes in the address if we required both pubkeys to  &lt;br/&gt;start with &amp;#39;03&amp;#39;, or save one byte if we required they both start with the  &lt;br/&gt;same byte, but again doesn&amp;#39;t seem worth it (to me) for the arbitrary  &lt;br/&gt;restriction.&lt;br/&gt;&lt;br/&gt;The actual internal wallet code for *receiving* STL payments and updating  &lt;br/&gt;balances is more tricky and probably not something I can personally tackle  &lt;br/&gt;for bitcoind. Assuming we even want first-class support for generating STL  &lt;br/&gt;addresses and receiving STL payments in a standard user wallet, someone  &lt;br/&gt;has to decide if the STL &amp;#39;d&amp;#39; / &amp;#39;d2&amp;#39; keys should be...&lt;br/&gt;&lt;br/&gt;   1) Encrypted as usual, and then keep a list of blocks with interesting  &lt;br/&gt;transactions, and go through them when the user enters their password?   &lt;br/&gt;This would cause balances to update differently than how they do now, but  &lt;br/&gt;perhaps be more secure.&lt;br/&gt;&lt;br/&gt;   2) Kept unencrypted to allow live scanning as usual? Or keep just &amp;#39;d2&amp;#39;  &lt;br/&gt;unencrypted, with some new concept of &amp;#39;unconfirmed&amp;#39; until the user enters  &lt;br/&gt;their password to prove they can spend that TX? That kind of extra step  &lt;br/&gt;seems OK for a merchant but sounds very scary for an average user.&lt;br/&gt;&lt;br/&gt;   3) Kept encrypted under a separate password? Meh...&lt;br/&gt;&lt;br/&gt;And last thought for now... At some point, we might want to decide on a  &lt;br/&gt;convention to highlight these STL addresses as &amp;#39;reusable&amp;#39; -- but similar  &lt;br/&gt;questions around revocability remain. I hope we don&amp;#39;t need anything like a  &lt;br/&gt;UTC expiration time baked in to the address. A static PP file will have an  &lt;br/&gt;expiration date either in the certificate or in &amp;#39;expires&amp;#39; field, so I  &lt;br/&gt;think if you want it to expire then use PP?&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/20140112/462cb3bc/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20140112/462cb3bc/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T17:11:36&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqszyq9jsn6f3kkhypkhwwrxwrt48h7upke6xu30pjjr24huflf07zczypl9wenvla7gd72pp5eaf56w70j3q5u4k0r54arj2swma6m587w7x3g0wxt</id>
    
      <title type="html">📅 Original date posted:2013-12-20 📝 Original message:Wow ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqszyq9jsn6f3kkhypkhwwrxwrt48h7upke6xu30pjjr24huflf07zczypl9wenvla7gd72pp5eaf56w70j3q5u4k0r54arj2swma6m587w7x3g0wxt" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsv8t4cle0wkqlckacuav769lh2y4xyn25saeaawcmn39uw2jx2etqz3dlxm&#39;&gt;nevent1q…dlxm&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2013-12-20&lt;br/&gt;📝 Original message:Wow there&amp;#39;s a lot here to think about. I&amp;#39;m pretty sure I haven&amp;#39;t grasped  &lt;br/&gt;the full implications yet.&lt;br/&gt;&lt;br/&gt;I see it proposes to also introduce additional BIPs describing the use of  &lt;br/&gt;the data stucture for stateless validation &amp;amp; mining, the UBC address index  &lt;br/&gt;for &amp;#34;SPV&#43;&amp;#34; operating modes, document timestamping and merged mining.&lt;br/&gt;&lt;br/&gt;Can the BIP stand alone as a BIP without some specific changes to the  &lt;br/&gt;protocol or end-user accessible features defined within it? It seems like  &lt;br/&gt;an extremely useful data stucture, but as I understand it the purpose of  &lt;br/&gt;BIPS is defining interoperability points, not implementation details?&lt;br/&gt;&lt;br/&gt;Unless the tree itself is becoming part of the protocol, seems like its  &lt;br/&gt;spec, test vectors, and reference implementation can live elsewhere, but I  &lt;br/&gt;would love to read about BIPS which use this tree to accomplish some  &lt;br/&gt;amazing scalability or security benefits.
    </content>
    <updated>2023-06-07T17:10:56&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqspvqsp5x7fs42yl086qm2jw6a0g8tuyex4z9uewhpxcyc5t8ydgmqzypl9wenvla7gd72pp5eaf56w70j3q5u4k0r54arj2swma6m587w7x8xwqnm</id>
    
      <title type="html">📅 Original date posted:2013-12-09 📝 Original message:I can ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqspvqsp5x7fs42yl086qm2jw6a0g8tuyex4z9uewhpxcyc5t8ydgmqzypl9wenvla7gd72pp5eaf56w70j3q5u4k0r54arj2swma6m587w7x8xwqnm" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs2wd7wcelwmndpv55m0v7eg09djdkh48yddldy7v0rkx5hn86q0xck7zmnm&#39;&gt;nevent1q…zmnm&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2013-12-09&lt;br/&gt;📝 Original message:I can provide the server hardware and colocation (space, power, and  &lt;br/&gt;bandwidth) if dedicated 50Mbit in 55 S. Market, San Jose, CA data center  &lt;br/&gt;is acceptable.&lt;br/&gt;&lt;br/&gt;If it needs more bandwidth than that, in a few months I hope to be getting  &lt;br/&gt;space in LA with 1Gbit, but I can&amp;#39;t commit to that now.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;gt; On Sun, Dec 8, 2013, at 03:11 PM, Drak wrote:&lt;br/&gt;&amp;gt;&amp;gt; It&amp;#39;s not just about trust, there is the robustness factor: what if he  &lt;br/&gt;&amp;gt;&amp;gt; becomes sick, unavailable, hit by a bus? Others need the ability to  &lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;pickup and run with it. The control over the domain (including  &lt;br/&gt;&amp;gt;&amp;gt; ability to renew registration, alter nameservers) needs to be with more  &lt;br/&gt;&amp;gt;&amp;gt; than &amp;gt;&amp;gt;one person. That&amp;#39;s why I suggest using the same people who have  &lt;br/&gt;&amp;gt;&amp;gt; control over the software project at sf,github&lt;br/&gt;&amp;gt;The bitcoin.org domain is controlled by me, Sirius, and an anonymous  &lt;br/&gt;&amp;gt; person. Control will not be lost if Sirius becomes unavailable.&lt;br/&gt;&amp;gt;SSL is probably a good idea, and it&amp;#39;s probably also a good idea to  &lt;br/&gt;&amp;gt; separate bitcoin.org from Github. I don&amp;#39;t know that I trust Github. I&amp;#39;m  &lt;br/&gt;&amp;gt; sure that you can &amp;gt;find a sponsor for a dedicated server. Let us know if  &lt;br/&gt;&amp;gt; DNS changes to bitcoin.org are required.&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/20131208/d012ed80/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20131208/d012ed80/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T17:10:27&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsdfnjxe2x5emyd4wluvmm6zfvzutqn4crajfpvcz5chddw04626kczypl9wenvla7gd72pp5eaf56w70j3q5u4k0r54arj2swma6m587w7x20yzmt</id>
    
      <title type="html">📅 Original date posted:2013-06-20 📝 Original message:&amp;gt; ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsdfnjxe2x5emyd4wluvmm6zfvzutqn4crajfpvcz5chddw04626kczypl9wenvla7gd72pp5eaf56w70j3q5u4k0r54arj2swma6m587w7x20yzmt" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqspnwghjw5qm80m9ve2vrre2y3ajhkev55g6ef74fx8kgmjpexyetgzrphdx&#39;&gt;nevent1q…phdx&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2013-06-20&lt;br/&gt;📝 Original message:&amp;gt; BIP 32 already specifies how to use the first three tree levels:  M/i/j/k, &lt;br/&gt;&amp;gt; i~wallet, j~Internal/External, k~address.  The first level is actually &lt;br/&gt;&amp;gt; type-1 derived, and thus we cannot create an arbitrary number of them &lt;br/&gt;&amp;gt; without pre-computing them from the offline wallet.  So it&amp;#39;s not &amp;#34;free&amp;#34; to &lt;br/&gt;&amp;gt; create new wallets unless we redefine how the levels work.&lt;br/&gt;&lt;br/&gt;Initially I was thinking that you would share the public key and chain code &lt;br/&gt;from [m/i&amp;#39;/0] so that you can receive payments at [m/i&amp;#39;/0/k], for a unique &lt;br/&gt;value of &amp;#39;i&amp;#39; for each receive chain.&lt;br/&gt;&lt;br/&gt;For the case of generating new receive chains from a *watch-only* wallet, as &lt;br/&gt;you say, the options are to either keep a cache of PubKey/ChainCode for &lt;br/&gt;unused [m/i&amp;#39;] or simply increment &amp;#39;j&amp;#39; past 1 for an existing [m/i&amp;#39;/j] -- the &lt;br/&gt;concept of &amp;#39;internal/&amp;#39;external&amp;#39; and change addresses at Depth=2 don&amp;#39;t make &lt;br/&gt;sense for handing out receive chains to lots of people anyway, and certainly &lt;br/&gt;BIP32 doesn&amp;#39;t *require* 0 &amp;lt;= j &amp;lt;= 1.  So I think incrementing &amp;#39;j&amp;#39; is the way &lt;br/&gt;to go here...&lt;br/&gt;&lt;br/&gt;The &amp;#34;default&amp;#34; layout of BIP32 does NOT mean that implementations should not &lt;br/&gt;check for transactions with j &amp;gt; 1. That would be a useless constraint and &lt;br/&gt;obviously self-limiting. It might be helpful to add to the &amp;#39;Compatibility&amp;#39; &lt;br/&gt;section some minimum expectations about how a wallet should be &amp;#39;probed&amp;#39; when &lt;br/&gt;imported. If you don&amp;#39;t feel completely free to monotonically increment &amp;#39;j&amp;#39; &lt;br/&gt;to your hearts content to achieve major usability benefits, then I say BIP32 &lt;br/&gt;could use some clarifying.&lt;br/&gt;&lt;br/&gt;BTW - the spec calls for addition not multiplication now, so we should call &lt;br/&gt;it the &amp;#39;Addend&amp;#39; not the &amp;#39;Multiplier&amp;#39; :-)&lt;br/&gt;&lt;br/&gt;&amp;gt; Do these extra wallet chains behave as different wallets, or sub-wallets?&lt;br/&gt;&lt;br/&gt;They could, but they certainly don&amp;#39;t need to!  A single-wallet &lt;br/&gt;implementation treats this merely as an address-generation algorithm, and &lt;br/&gt;does not expose any hierarchy to the user interface.  The user just &lt;br/&gt;“magically” gets the ability to send multiple payments to their contacts &lt;br/&gt;without immediately sacrificing their privacy &lt;br/&gt;(&lt;a href=&#34;http://www.wired.com/wiredenterprise/2013/06/bitcoin_retai/&#34;&gt;http://www.wired.com/wiredenterprise/2013/06/bitcoin_retai/&lt;/a&gt;). Everything &lt;br/&gt;goes into the same ledger, balance, coin pool, etc. Most of the code base is &lt;br/&gt;unaware BIP32 is even in use.&lt;br/&gt;&lt;br/&gt;While it is *possible* to support separate ledgers, balances, etc. it is &lt;br/&gt;certainly not required, and you get all the benefits either way.&lt;br/&gt;&lt;br/&gt;I think, since your proposal generates and receives payments into &lt;br/&gt;BIP32-style addresses, we both need similar underlying wallet code. The only &lt;br/&gt;difference is that you are passing the Kpar for [m/i&amp;#39;/0/k] and the *result* &lt;br/&gt;of CKD&amp;#39;((Kpar, cpar), k), and instead I proposed passing Kpar and cpar, and &lt;br/&gt;leaving &amp;#39;k&amp;#39; out of it, letting the receive choose &amp;#39;k&amp;#39;.&lt;br/&gt;&lt;br/&gt;&amp;gt; For instance, maybe there&amp;#39;s a benefit to using the same parent pubkey &lt;br/&gt;&amp;gt; across multiple services, as a form of identity.   If I don&amp;#39;t want that, I &lt;br/&gt;&amp;gt; use your method.  If I do want that, I use my method.&lt;br/&gt;&lt;br/&gt;I think it&amp;#39;s a interesting idea using static public keys as a means for &lt;br/&gt;persistent identity and hence security from MitM. If you want a shared &lt;br/&gt;public key across multiple services we could just combine both ideas and get &lt;br/&gt;all the benefits, by making the data structure { ParentPubKey, Addend, &lt;br/&gt;ChainCode }:&lt;br/&gt;&lt;br/&gt;   ParentPubKey: Public key of m/i&amp;#39; -- 33 bytes&lt;br/&gt;   Addend: I[L]*G from CDK&amp;#39;(m/i&amp;#39;, j) -- 33 bytes&lt;br/&gt;   ChainCode: I[R] from CDK&amp;#39;(m/i&amp;#39;, j) -- 32 bytes&lt;br/&gt;&lt;br/&gt;All that remains secret is the ChainCode from [m/i&amp;#39;] -- and of course the &lt;br/&gt;private keys.  The ParentPubKey is a common value across multiple services, &lt;br/&gt;corresponding to user&amp;#39;s identity rooted in [m/i&amp;#39;].  Each service gets their &lt;br/&gt;own &amp;#39;j&amp;#39;.  ParentPubKey &#43; Addend gives you the PubKey of [m/i&amp;#39;/j].  With the &lt;br/&gt;ChainCode, the receiver then can generate [m/i&amp;#39;/j/k] for monotonically &lt;br/&gt;increasing &amp;#39;k&amp;#39;. Again, from the user perspective all transactions under &lt;br/&gt;[m/i&amp;#39;] can be presented in a single ledger, or not.&lt;br/&gt;&lt;br/&gt;Anyway, fundamentally my feedback is if you are designing for persistent &lt;br/&gt;long-term relationships, you could build in a mechanism for generating &lt;br/&gt;address chains so you don&amp;#39;t need any further communication after the initial &lt;br/&gt;exchange, and it need not complicate the wallet.&lt;br/&gt;&lt;br/&gt;Thanks,&lt;br/&gt;--Jeremy
    </content>
    <updated>2023-06-07T17:03:36&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsyleu4veu28dfskdkcut89l750sx93kr4qxemcl3u7v7g8l58dmuczypl9wenvla7gd72pp5eaf56w70j3q5u4k0r54arj2swma6m587w7xg36e9m</id>
    
      <title type="html">📅 Original date posted:2013-06-19 📝 Original message:Hi ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsyleu4veu28dfskdkcut89l750sx93kr4qxemcl3u7v7g8l58dmuczypl9wenvla7gd72pp5eaf56w70j3q5u4k0r54arj2swma6m587w7xg36e9m" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqst7wv88ydtcx9997cjjlhmxd3prgkxwwgfn24zcdsccqvc9u2dmkgat25zh&#39;&gt;nevent1q…25zh&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2013-06-19&lt;br/&gt;📝 Original message:Hi Alan,&lt;br/&gt;&lt;br/&gt;&amp;gt; “BIP 32 does not prescribe a way to use multiple chains like you described &lt;br/&gt;&amp;gt; with the convenient type-2 derivation (though we could create a variant &lt;br/&gt;&amp;gt; that does)”&lt;br/&gt;&lt;br/&gt;What do you think is missing from BIP32 for this? A wallet creates a &lt;br/&gt;child-node using the public / type-2 CDF, hands out the PubKey/ChainCode, &lt;br/&gt;and then generally expects transactions to come in starting at /0 and &lt;br/&gt;incrementing monotonically.&lt;br/&gt;&lt;br/&gt;Also, I&amp;#39;m not sure I follow your point about the 128kB hardware wallet --  &lt;br/&gt;it&amp;#39;s a signing device, so assuming it&amp;#39;s even validating output amounts, at &lt;br/&gt;worst it cares about the number of inputs to the outputs being spent, but in &lt;br/&gt;many cases you&amp;#39;re just handing it a sighash and the BIP32 &amp;#34;path&amp;#34; &lt;br/&gt;(/1/54/27/0) to generate the right private key for signing. The hardware &lt;br/&gt;wallet is not actually listening on the P2P network and detecting payments, &lt;br/&gt;so it&amp;#39;s unaffected by dedicating child-nodes to each contact.&lt;br/&gt;&lt;br/&gt;Consider the benefits of gaining critical mass of support for a technique &lt;br/&gt;which [I think] can be used in all cases, and increases security and privacy &lt;br/&gt;for everyone. I think there are huge benefits to leaving the age of &amp;#39;single &lt;br/&gt;address generation&amp;#39; behind us...&lt;br/&gt;&lt;br/&gt;Thanks,&lt;br/&gt;--Jeremy
    </content>
    <updated>2023-06-07T17:03:35&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsgd3kv3hrj4spl68d2welrmlnlk0kl3n24gy3295l4m2rrgpgqk8szypl9wenvla7gd72pp5eaf56w70j3q5u4k0r54arj2swma6m587w7xs3f93q</id>
    
      <title type="html">📅 Original date posted:2013-06-20 📝 Original message:&amp;gt; ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsgd3kv3hrj4spl68d2welrmlnlk0kl3n24gy3295l4m2rrgpgqk8szypl9wenvla7gd72pp5eaf56w70j3q5u4k0r54arj2swma6m587w7xs3f93q" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsyhp6h8wlgrwtk09dms6x4wuud3hpu82u835x7g76p8ysca823k4cxkds42&#39;&gt;nevent1q…ds42&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2013-06-20&lt;br/&gt;📝 Original message:&amp;gt; which could involve proving something to a third party that has not seen &lt;br/&gt;&amp;gt; the communication between payer and payee.&lt;br/&gt;&lt;br/&gt;OK - I think I follow now.  So a third-party who does not see any of the &lt;br/&gt;communication between the payer and payee only knows the HASH160.  Let&amp;#39;s say &lt;br/&gt;the payee denies receipt of the funds....&lt;br/&gt;&lt;br/&gt;It&amp;#39;s easy to prove what public key it was sent to (it&amp;#39;s the preimage), but &lt;br/&gt;you can&amp;#39;t prove the parent of that public key. You can provide any number of &lt;br/&gt;ParentPubKey * Multiplier that could have been used, so the 3rd party is &lt;br/&gt;unconvinced by a &amp;#34;matching&amp;#34; ParentPubKey * Multiplier.&lt;br/&gt;&lt;br/&gt;However, if you calculated the destination using: PubKeyParent * &lt;br/&gt;HMAC(Multiplier,PubKeyParent) as Timo said, now if you give the 3rd party a &lt;br/&gt;PubKeyParent and Multiplier (or Addend) that produces the destination &lt;br/&gt;address, you&amp;#39;ve proven the payment is in fact spendable by PubKeyParent, and &lt;br/&gt;they can&amp;#39;t deny receipt. Very cool.&lt;br/&gt;&lt;br/&gt;Sorry for &amp;#34;echoing&amp;#34; this back, it took me a little while to work it out, so &lt;br/&gt;I thought I&amp;#39;d write it down. Hope I got it right...&lt;br/&gt;&lt;br/&gt;If you give {PubKey, ChainCode} you do get this feature. If you give &lt;br/&gt;{ParentPubKey, Addend} or {ParentPubKey, Addend, ChainCode} you&amp;#39;re back to &lt;br/&gt;having plausible deniability.&lt;br/&gt;&lt;br/&gt;If BIP32&amp;#39;s CKD&amp;#39;((Kpar, cpar), i) was actually HMAC(HMAC(cpar, i), Kpar) you &lt;br/&gt;could give HMAC(cpar, i) instead of Addend, and then you would get this &lt;br/&gt;feature; a way to &amp;#39;skip down&amp;#39; a level in the wallet hierarchy, keep the &lt;br/&gt;&amp;#39;chain of custody&amp;#39; so to speak back to the ParentPubKey intact, without &lt;br/&gt;having to disclose the ChainCode. Meh...&lt;br/&gt;&lt;br/&gt;Thanks,&lt;br/&gt;--Jeremy
    </content>
    <updated>2023-06-07T17:03:33&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs0jsdu9jl7wsw4t8dnw9t0ltpfd7svqfm6qvpgfmsn3h2ychwyhdczypl9wenvla7gd72pp5eaf56w70j3q5u4k0r54arj2swma6m587w7x694ckn</id>
    
      <title type="html">📅 Original date posted:2013-04-24 📝 Original ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs0jsdu9jl7wsw4t8dnw9t0ltpfd7svqfm6qvpgfmsn3h2ychwyhdczypl9wenvla7gd72pp5eaf56w70j3q5u4k0r54arj2swma6m587w7x694ckn" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsymslzdd4zqncjmyurmf4hmk3zzr8cahv3qjvw206462tdr762tfqhnguva&#39;&gt;nevent1q…guva&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2013-04-24&lt;br/&gt;📝 Original message:Payment Protocol uses x509 certs to sign a Payment Request. This&lt;br/&gt;allows wallets to display meta-data from the cert to the payer instead&lt;br/&gt;of the address, which should make it easier to verify where money is&lt;br/&gt;being sent, and make it harder for an attacker to change the address&lt;br/&gt;displayed to a user so that coins are not sent to the wrong place.&lt;br/&gt;&lt;br/&gt;The difficulty is that Payment Requests must be generated live, and&lt;br/&gt;therefore the key used to sign those requests must also be live,&lt;br/&gt;exposing the key to theft similar to a hot wallet. Steal the key,&lt;br/&gt;forge payment requests, and the payer sees a &amp;#39;green box&amp;#39; but the coins&lt;br/&gt;go to the attacker. The question... is there a way to sign something&lt;br/&gt;once, with a key kept offline, which verifies the address in the&lt;br/&gt;Payment Request belongs to the payee?&lt;br/&gt;&lt;br/&gt;1) Given a &amp;#39;parent&amp;#39; cert which is kept offline, and a child&lt;br/&gt;certificate of &amp;#39;parent&amp;#39; which is kept hot on the payment server.&lt;br/&gt;&lt;br/&gt;2) Given a public key and chain code { pubKey, code } under BIP32 we&lt;br/&gt;generate child keys as I = HMAC(code, Kpar || i), Ki = I[0:32] * Kpar.&lt;br/&gt;&lt;br/&gt;3) If we sign Kpar with the parent cert&amp;#39;s key offline, we can sign the&lt;br/&gt;remaining less critical data (address, I[0:32], amount, description,&lt;br/&gt;etc.) with the child cert&amp;#39;s key.&lt;br/&gt;&lt;br/&gt;4) The payer verifies Kpar, and verifies the address by calculating&lt;br/&gt;Hash160(Kpar * I[0:32])&lt;br/&gt;&lt;br/&gt;In fact, there&amp;#39;s no requirement to use BIP32 to calculate I[0:32], it&lt;br/&gt;could also just be randomly generated.&lt;br/&gt;&lt;br/&gt;Any I[0:32] included in the Payment Request, even if it is tampered&lt;br/&gt;with, will correspond to an address for which the payee can calculate&lt;br/&gt;the corresponding private key.&lt;br/&gt;&lt;br/&gt;So the idea is your &amp;#39;most trusted&amp;#39; cert would be used offline only to&lt;br/&gt;sign a Kpar once, and a &amp;#39;less trusted&amp;#39; cert would be used to sign the&lt;br/&gt;other stuff, like &amp;#39;amount&amp;#39;, &amp;#39;description&amp;#39;, &amp;#39;merchant-data&amp;#39;, and the&lt;br/&gt;&amp;#39;I[0:32]&amp;#39; as well.&lt;br/&gt;&lt;br/&gt;I&amp;#39;m not an expert on x509, but I imagine the trouble is, how does the&lt;br/&gt;payer know which cert is which? I was originally thinking the parent&lt;br/&gt;cert would be an intermediate CA cert used to sign the child cert, but&lt;br/&gt;I guess good look getting one of those, even with a name constraint,&lt;br/&gt;from a Root CA. I&amp;#39;m not sure if you can do better than just a&lt;br/&gt;&amp;#39;convention&amp;#39; such as one is an EV cert and one is not. Perhaps the&lt;br/&gt;less trusted cert is actually self-signed using the EV cert, but that&lt;br/&gt;requires special validation, since its no longer a standard&lt;br/&gt;certificate chain. I would love to hear a better idea.&lt;br/&gt;&lt;br/&gt;Any comments if this is something worth pursuing? I think there are&lt;br/&gt;definitely benefits if merchants can keep the key signing the address&lt;br/&gt;offline.&lt;br/&gt;&lt;br/&gt;Thanks,--Jeremy&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/20130424/9156de8b/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20130424/9156de8b/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T13:49:03&#43;02:00</updated>
  </entry>

</feed>