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




  <entry>
    <id>https://nostr.ae/nevent1qqsdmxwv7wh803pntmw029jju2a8xx08nz0prc4y7c8l5ut6vr5yf6qzyp45rh7vu6p8vn2qcq8avkq2n9s5k6a732pnyzzaagr6l0z8h20g7hhzr5k</id>
    
      <title type="html">📅 Original date posted:2017-04-08 📝 Original message:Yes, ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsdmxwv7wh803pntmw029jju2a8xx08nz0prc4y7c8l5ut6vr5yf6qzyp45rh7vu6p8vn2qcq8avkq2n9s5k6a732pnyzzaagr6l0z8h20g7hhzr5k" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs958v5jgctw3wj5njnwxdcfzemg3djvr4jr2fj994dz6yky7r2nvqjd4l0k&#39;&gt;nevent1q…4l0k&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2017-04-08&lt;br/&gt;📝 Original message:Yes, you only need a few bits in the version number, probably less than 8.&lt;br/&gt;&lt;br/&gt;If you encourage the overt method of using AsicBoost I would argue that you&lt;br/&gt;no longer need to dis-encourage the couvert method anymore as in Greg&amp;#39;s&lt;br/&gt;proposal. Nobody would use the couvert method anyway because the overt&lt;br/&gt;method is so much simpler. So maybe the proposals can be completely&lt;br/&gt;disentangled?&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;On Fri, Apr 7, 2017 at 5:05 PM, Jimmy Song via bitcoin-dev &amp;lt;&lt;br/&gt;bitcoin-dev at lists.linuxfoundation.org&amp;gt; wrote:&lt;br/&gt;&lt;br/&gt;&amp;gt; I&amp;#39;ve gotten feedback from Adam Back that you actually don&amp;#39;t need all 32&lt;br/&gt;&amp;gt; bits in the header for overt ASICBoost, so I&amp;#39;m modifying my proposal. Of&lt;br/&gt;&amp;gt; the 32-bit version field, bits 16 to 23 are reserved for miners, the&lt;br/&gt;&amp;gt; witness commitment stays as defined in BIP-141 except that it&amp;#39;s now&lt;br/&gt;&amp;gt; required. BIP9 then is modified so that bits 16 to 23 are now no longer&lt;br/&gt;&amp;gt; usable.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; On Fri, Apr 7, 2017 at 3:06 PM, Jimmy Song &amp;lt;jaejoon at gmail.com&amp;gt; wrote:&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; Hey everyone, This is an idea that I had about Segwit and Gregory&amp;#39;s&lt;br/&gt;&amp;gt;&amp;gt; proposal from yesterday that I wanted to run by everyone on this list. I&amp;#39;m&lt;br/&gt;&amp;gt;&amp;gt; not at all sure what this would mean for non-upgraded nodes on the network&lt;br/&gt;&amp;gt;&amp;gt; and would like feedback on that. This is not a formal BIP as it&amp;#39;s a&lt;br/&gt;&amp;gt;&amp;gt; modification to a previously submitted one, but I&amp;#39;m happy to formalize it&lt;br/&gt;&amp;gt;&amp;gt; if it would help.&lt;br/&gt;&amp;gt;&amp;gt; ----------------------------------------&lt;br/&gt;&amp;gt;&amp;gt; MotivationOne of the interesting aspects of Gregory Maxwell’s proposal&lt;br/&gt;&amp;gt;&amp;gt; is that it only precludes the covert version of ASICBoost. He&lt;br/&gt;&amp;gt;&amp;gt; specifically left the overt version alone.&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; Overt ASICBoost requires grinding on the version bits of the Block&lt;br/&gt;&amp;gt;&amp;gt; header instead of the Merkle Root. This is likely more efficient than the&lt;br/&gt;&amp;gt;&amp;gt; Merkle Root grinding (aka covert ASICBoost) and requires way less&lt;br/&gt;&amp;gt;&amp;gt; resources (much less RAM, SHA256 calculations, no tx shuffling, etc).&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; If we combine Gregory Maxwell’s proposal with BIP-141 (Segwit) and add a&lt;br/&gt;&amp;gt;&amp;gt; slight modification, this should, in theory, make ASICBoost a lot more&lt;br/&gt;&amp;gt;&amp;gt; useful to miners and appeal to their financial interests.&lt;br/&gt;&amp;gt;&amp;gt; The Modification&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; Currently, the version bits (currently 4 bytes, or 32 bits) in the header&lt;br/&gt;&amp;gt;&amp;gt; are used for BIP9 signaling. We change the version bits to a nonce-space so&lt;br/&gt;&amp;gt;&amp;gt; the miners can use it for overt ASICBoost. The 32-bits are now moved&lt;br/&gt;&amp;gt;&amp;gt; over to the Coinbase transaction as part of the witness commitment. The&lt;br/&gt;&amp;gt;&amp;gt; witness commitment goes from 38 bytes to 42 bytes, with the last 4 bytes&lt;br/&gt;&amp;gt;&amp;gt; being used as the version bits in the block header previously. The witness&lt;br/&gt;&amp;gt;&amp;gt; commitment becomes required as per Gregory Maxwell’s proposal.&lt;br/&gt;&amp;gt;&amp;gt; Reasoning&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; First, this brings ASICBoost out into the open. Covert ASICBoost becomes&lt;br/&gt;&amp;gt;&amp;gt; much more costly and overt ASICBoost is now encouraged.&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; Second, we can make this change relatively quickly. Most of the Segwit&lt;br/&gt;&amp;gt;&amp;gt; testing stays valid and this change can be deployed relatively quickly.&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; Note on SPV clients&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; Currently Segwit stores the witness commitment in the Coinbase tx, so&lt;br/&gt;&amp;gt;&amp;gt; lightweight clients will need to get the Coinbase tx &#43; Merkle proof to&lt;br/&gt;&amp;gt;&amp;gt; validate segwit transactions anyway. Putting block version information in&lt;br/&gt;&amp;gt;&amp;gt; the Coinbase tx will not impose an extra burden on upgraded light clients.&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; bitcoin-dev mailing list&lt;br/&gt;&amp;gt; bitcoin-dev at lists.linuxfoundation.org&lt;br/&gt;&amp;gt; &lt;a href=&#34;https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&#34;&gt;https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&lt;/a&gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;An HTML attachment was scrubbed...&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20170408/47873dc2/attachment-0001.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20170408/47873dc2/attachment-0001.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T17:59:46Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsteatjkrea0ykukxysq7e5xyhedfdgajdmyk0tpk69suqw466rcsczyp45rh7vu6p8vn2qcq8avkq2n9s5k6a732pnyzzaagr6l0z8h20g746jpkp</id>
    
      <title type="html">📅 Original date posted:2016-10-02 📝 Original message:&amp;gt; ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsteatjkrea0ykukxysq7e5xyhedfdgajdmyk0tpk69suqw466rcsczyp45rh7vu6p8vn2qcq8avkq2n9s5k6a732pnyzzaagr6l0z8h20g746jpkp" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsxe364zlq4uh8ej7ds6pmrr3demqkuwe3wrj7sku77mhxt93a0cngxk2d2j&#39;&gt;nevent1q…2d2j&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2016-10-02&lt;br/&gt;📝 Original message:&amp;gt; When you proposed the extra nonce space BIP [1], you had already&lt;br/&gt;&amp;gt; applied for your ASICBOOST patent [2] without disclosure in the BIP&lt;br/&gt;&amp;gt; [1] nor in your Bitcoin Core pull request #5102 [2].&lt;br/&gt;&lt;br/&gt;There may be quite a few things to clarify here, and a possible&lt;br/&gt;misunderstanding:&lt;br/&gt;&lt;br/&gt;The BIP proposal [1] and accompanying pull request [3] does not increase or&lt;br/&gt;decrease the entanglement of Bitcoin consensus code with any patents. This&lt;br/&gt;is indicated by the title of the pull request: &amp;#34;No forking Extra nonce&lt;br/&gt;added to Bitcoin header.&amp;#34; It is not a fork at all (soft or hard). The&lt;br/&gt;consensus is not changed.&lt;br/&gt;&lt;br/&gt;AsicBoost is possible with or without adoption of that BIP proposal. Of&lt;br/&gt;several ways to implement AsicBoost (all described in the patent&lt;br/&gt;application), making use of the version field is only one. And even that&lt;br/&gt;particular one has always been possible since the beginning of Bitcoin and&lt;br/&gt;is still possible today. It is not the case that the BIP proposal enables&lt;br/&gt;AsicBoost in a way that wasn&amp;#39;t possible before.&lt;br/&gt;&lt;br/&gt;The rationale behind the BIP proposal was to eliminate incentives to mess&lt;br/&gt;with the merkle root and, in the extreme case, to mine empty blocks. This&lt;br/&gt;incentive is real, and it is real with or without AsicBoost. It costs&lt;br/&gt;hardware manufacturers real $ in additional hardware components right now&lt;br/&gt;to cope with the pre-hashing load.&lt;br/&gt;&lt;br/&gt;Timo&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;On Sun, Oct 2, 2016 at 12:36 PM, Btc Drak via bitcoin-dev &amp;lt;&lt;br/&gt;bitcoin-dev at lists.linuxfoundation.org&amp;gt; wrote:&lt;br/&gt;&lt;br/&gt;&amp;gt; Sergio,&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; It is critically important to the future of Bitcoin that consensus&lt;br/&gt;&amp;gt; code avoid any unnecessary entanglements with patents because &amp;#34;the&lt;br/&gt;&amp;gt; free market&amp;#34; allows you and anyone else to make consensus change&lt;br/&gt;&amp;gt; proposals that rely on (unknown) patents - but this is something we&lt;br/&gt;&amp;gt; should all be working to avoid, as it unnecessarily hinders Bitcoin&lt;br/&gt;&amp;gt; development and everyone&amp;#39;s ability to deploy. Consensus code must not&lt;br/&gt;&amp;gt; be hindered by patents and Bitcoin should retain its permissionless&lt;br/&gt;&amp;gt; qualities.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; When you proposed the extra nonce space BIP [1], you had already&lt;br/&gt;&amp;gt; applied for your ASICBOOST patent [2] without disclosure in the BIP&lt;br/&gt;&amp;gt; [1] nor in your Bitcoin Core pull request #5102 [2].&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; The ASICBOOST patent [2] describes the same process as in the BIP [1]&lt;br/&gt;&amp;gt; and proposed code [3] &amp;#34;As we explained in our Provisional Application,&lt;br/&gt;&amp;gt; it has been proposed to partition the 4-byte Version field in the&lt;br/&gt;&amp;gt; block header (see, Fig. 6) and use, e.g., the high 2-byte portion as&lt;br/&gt;&amp;gt; additional nonce range.&amp;#34;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Today when you proposed a new sidechain BIP [4], Peter Todd was&lt;br/&gt;&amp;gt; (rightly) concerned about the prior lack of disclosure of your patents&lt;br/&gt;&amp;gt; related to your prior consensus modification proposal. Hence the&lt;br/&gt;&amp;gt; concern is that this might be happening this time as well.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; There is no evidence that any of the other filers for the&lt;br/&gt;&amp;gt; ASICBOOST-like patents by mining companies other than your own were&lt;br/&gt;&amp;gt; going to be using it offensively as those other companies appeared to&lt;br/&gt;&amp;gt; understand the decentralization risk of having an advantage enforced&lt;br/&gt;&amp;gt; by legal and not technical means.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; It&amp;#39;s great that you have now committed to looking into the Defensive&lt;br/&gt;&amp;gt; Patent License. This seems likely to mitigate some of the patent&lt;br/&gt;&amp;gt; concerns. Although it would be a show of good faith if you also agreed&lt;br/&gt;&amp;gt; to license ASICBOOST under the DPL.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; [1]: BIP: &lt;a href=&#34;https://github.com/BlockheaderNonce2/bitcoin/wiki&#34;&gt;https://github.com/BlockheaderNonce2/bitcoin/wiki&lt;/a&gt;&lt;br/&gt;&amp;gt; [2]: ASICBOOST PATENT &lt;a href=&#34;https://www.google.com/patents/WO2015077378A1?cl=en&#34;&gt;https://www.google.com/patents/WO2015077378A1?cl=en&lt;/a&gt;&lt;br/&gt;&amp;gt; [3]: Extra nonce pull request: &lt;a href=&#34;https://github.com/bitcoin/&#34;&gt;https://github.com/bitcoin/&lt;/a&gt;&lt;br/&gt;&amp;gt; bitcoin/pull/5102&lt;br/&gt;&amp;gt; [4]: COUNT_ACKS&lt;br/&gt;&amp;gt; [&lt;a href=&#34;https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2016-October/&#34;&gt;https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2016-October/&lt;/a&gt;&lt;br/&gt;&amp;gt; 013174.html&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; On Sun, Oct 2, 2016 at 6:13 PM, Sergio Demian Lerner 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; Please Peter Todd explain here all what you want to say about a patent&lt;br/&gt;&amp;gt; of a&lt;br/&gt;&amp;gt; &amp;gt; hardware design for an ASIC.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; Remember that ASICBoost is not the only patent out there, there are at&lt;br/&gt;&amp;gt; least&lt;br/&gt;&amp;gt; &amp;gt; three similar patents, filed by major Bitcoin ASIC manufacturers in three&lt;br/&gt;&amp;gt; &amp;gt; different countries, on similar technologies.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; That suggest that the problem is not ASICBoot&amp;#39;s: you cannot blame any&lt;br/&gt;&amp;gt; &amp;gt; company from doing lawful commerce in a FREE MARKET.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; It is a flaw in Bitcoin design that could be corrected if the guidelines&lt;br/&gt;&amp;gt; I&lt;br/&gt;&amp;gt; &amp;gt; posted in [1] had been followed.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; [1]&lt;br/&gt;&amp;gt; &amp;gt; &lt;a href=&#34;https://bitslog.wordpress.com/2014/03/18/the-re-design-of-&#34;&gt;https://bitslog.wordpress.com/2014/03/18/the-re-design-of-&lt;/a&gt;&lt;br/&gt;&amp;gt; the-bitcoin-block-header/&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; _______________________________________________&lt;br/&gt;&amp;gt; &amp;gt; bitcoin-dev mailing list&lt;br/&gt;&amp;gt; &amp;gt; bitcoin-dev at lists.linuxfoundation.org&lt;br/&gt;&amp;gt; &amp;gt; &lt;a href=&#34;https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&#34;&gt;https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&lt;/a&gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; _______________________________________________&lt;br/&gt;&amp;gt; bitcoin-dev mailing list&lt;br/&gt;&amp;gt; bitcoin-dev at lists.linuxfoundation.org&lt;br/&gt;&amp;gt; &lt;a href=&#34;https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&#34;&gt;https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&lt;/a&gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;An HTML attachment was scrubbed...&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20161002/ed3b4e7a/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20161002/ed3b4e7a/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T17:53:47Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsp2cqwmzrfxalsn7lx3sp8sy59nx6c2ew9wl967s24rkallka3nsgzyp45rh7vu6p8vn2qcq8avkq2n9s5k6a732pnyzzaagr6l0z8h20g7c8wjd9</id>
    
      <title type="html">📅 Original date posted:2016-05-11 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsp2cqwmzrfxalsn7lx3sp8sy59nx6c2ew9wl967s24rkallka3nsgzyp45rh7vu6p8vn2qcq8avkq2n9s5k6a732pnyzzaagr6l0z8h20g7c8wjd9" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs25sze26c76gtpwvnjcqxcclqa6xj3ke69y078xg00d2qe20gtetq0g623c&#39;&gt;nevent1q…623c&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2016-05-11&lt;br/&gt;📝 Original message:On Wed, May 11, 2016 at 3:47 AM, Jannes Faber &amp;lt;jannes.faber at gmail.com&amp;gt;&lt;br/&gt;wrote:&lt;br/&gt;&lt;br/&gt;&amp;gt; On 11 May 2016 at 12:36, Henning Kopp &amp;lt;henning.kopp at uni-ulm.de&amp;gt; wrote:&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; On Wed, May 11, 2016 at 11:21:10AM &#43;0200, Jannes Faber via bitcoin-dev&lt;br/&gt;&amp;gt;&amp;gt; wrote:&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; On 11 May 2016 at 05:14, Timo Hanke via bitcoin-dev &amp;lt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; bitcoin-dev at lists.linuxfoundation.org&amp;gt; wrote:&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; &amp;gt; There is no way to tell from a block if it was mined with AsicBoost or&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; &amp;gt; not. So you don’t know what percentage of the hashrate uses AsicBoost&lt;br/&gt;&amp;gt;&amp;gt; at&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; &amp;gt; any point in time. How can you risk forking that percentage out? Note&lt;br/&gt;&amp;gt;&amp;gt; that&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; &amp;gt; this would be a GUARANTEED chain fork. Meaning that after you change&lt;br/&gt;&amp;gt;&amp;gt; the&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; &amp;gt; block mining algorithm some percentage of hardware will no longer be&lt;br/&gt;&amp;gt;&amp;gt; able&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; &amp;gt; to produce valid blocks. That hardware cannot “switch over” to the&lt;br/&gt;&amp;gt;&amp;gt; majority&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; &amp;gt; chain even if it wanted to. Hence you are guaranteed to have two&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; &amp;gt; co-existing bitcoin blockchains afterwards.&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; &amp;gt; Again: this is unlike the hypothetical persistence of two chains&lt;br/&gt;&amp;gt;&amp;gt; after a&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; &amp;gt; hardfork that is only contentious but doesn’t change the mining&lt;br/&gt;&amp;gt;&amp;gt; algorithm,&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; &amp;gt; the kind of hardfork you are proposing would guarantee the&lt;br/&gt;&amp;gt;&amp;gt; persistence of&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; &amp;gt; two chains.&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; Assuming AsicBoost miners are in the minority, their chain will&lt;br/&gt;&amp;gt;&amp;gt; constantly&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; get overtaken. So it will not be one endless hard fork as you claim, but&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; rather AsicBoost blocks will continue to be ignored (orphaned) until&lt;br/&gt;&amp;gt;&amp;gt; they&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; stop making them.&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; At least until a difficulty adjustment on the AsicBoost chain takes&lt;br/&gt;&amp;gt;&amp;gt; place. From that point on, both chains, the AsicBoost one and the&lt;br/&gt;&amp;gt;&amp;gt; forked one will grow approximately at the same speed.&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; No: you are still assuming AsicBoost miners would reject normal blocks.&lt;br/&gt;&amp;gt; They don&amp;#39;t now and they would have to specifically code for that as a reply&lt;br/&gt;&amp;gt; to AsicBoost being banned. So there won&amp;#39;t be two chains at all, only the&lt;br/&gt;&amp;gt; main chain with a lot (more than usual) of short (few blocks) forks. Each&lt;br/&gt;&amp;gt; forks starts anew, it&amp;#39;s not one long fork. Therefore there is no&lt;br/&gt;&amp;gt; &amp;#34;difficulty adjustment on the AiscBoost chain&amp;#34;.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Now if they do decide to ban non-AsicBoost blocks as a response to being&lt;br/&gt;&amp;gt; banned themselves, they&amp;#39;re just another altcoin with a different PoW and no&lt;br/&gt;&amp;gt; one would have a reason to use them over Bitcoin (apart from maybe selling&lt;br/&gt;&amp;gt; those forked coins asap).&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;This is what I meant. If existing hardware gets forked-out it will&lt;br/&gt;inevitably lead to the creation of an altcoin. Simply because the hardware&lt;br/&gt;exists and can&amp;#39;t be used for anything else both chains will survive. I was&lt;br/&gt;only comparing the situation to a contentious hardfork that does not fork&lt;br/&gt;out any hardware. If the latter one is suspected to lead to the permanent&lt;br/&gt;existence of two chains then a hardfork that forks out hardware is even&lt;br/&gt;more likely to do so (I claim it&amp;#39;s guaranteed).&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;gt; You&amp;#39;re confused about what &amp;#34;longest&amp;#34; means as well: it&amp;#39;s not just the&lt;br/&gt;&amp;gt; number of blocks, it&amp;#39;s the aggregate difficulty that counts: so AsicBoost&lt;br/&gt;&amp;gt; would never become &amp;#34;longer&amp;#34; (more total work) either.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Hope this helps clear things up.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; --&lt;br/&gt;&amp;gt; Jannes&lt;br/&gt;&amp;gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;An HTML attachment was scrubbed...&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20160511/7b9660b1/attachment-0001.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20160511/7b9660b1/attachment-0001.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T17:50:35Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsdaphpqjruvaxy3x86t3vpfhlz9fszz6qa0t6905xrnl7cfacve4szyp45rh7vu6p8vn2qcq8avkq2n9s5k6a732pnyzzaagr6l0z8h20g7jy6kas</id>
    
      <title type="html">📅 Original date posted:2016-05-11 📝 Original message:There ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsdaphpqjruvaxy3x86t3vpfhlz9fszz6qa0t6905xrnl7cfacve4szyp45rh7vu6p8vn2qcq8avkq2n9s5k6a732pnyzzaagr6l0z8h20g7jy6kas" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqswse0dttpfldm634fwmfzcctgwfgnfk5uf5n0rwzfqsjd3kw7pphc2fj5ep&#39;&gt;nevent1q…j5ep&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2016-05-11&lt;br/&gt;📝 Original message:There is no way to tell from a block if it was mined with AsicBoost or not.&lt;br/&gt;So you don’t know what percentage of the hashrate uses AsicBoost at any&lt;br/&gt;point in time. How can you risk forking that percentage out? Note that this&lt;br/&gt;would be a GUARANTEED chain fork. Meaning that after you change the block&lt;br/&gt;mining algorithm some percentage of hardware will no longer be able to&lt;br/&gt;produce valid blocks. That hardware cannot “switch over” to the majority&lt;br/&gt;chain even if it wanted to. Hence you are guaranteed to have two&lt;br/&gt;co-existing bitcoin blockchains afterwards.&lt;br/&gt;&lt;br/&gt;Again: this is unlike the hypothetical persistence of two chains after a&lt;br/&gt;hardfork that is only contentious but doesn’t change the mining algorithm,&lt;br/&gt;the kind of hardfork you are proposing would guarantee the persistence of&lt;br/&gt;two chains.&lt;br/&gt;&lt;br/&gt;Note that “AsicBoost” above is replaceable with “optimization X”. It’s&lt;br/&gt;simply a logical argument: If you want to make optimization X impossible&lt;br/&gt;and someone is already using optimization X you end up with two chains. So&lt;br/&gt;unless you know exactly which optimizations are in use (and therefore also&lt;br/&gt;know which ones are not in use) you can’t make these kind of changes.&lt;br/&gt;AsicBoost is known at least since middle of 2013.&lt;br/&gt;&lt;br/&gt;To be more precise, if you change the block validation ruleset R to block&lt;br/&gt;validation ruleset S you have to make sure that every hardware that was&lt;br/&gt;capable of mining R-valid blocks is also capable of mining S-valid blocks.&lt;br/&gt;&lt;br/&gt;The problem is that chip manufacturers will not tell you which&lt;br/&gt;optimizations they use. You would have to threaten to irreversibly fork&lt;br/&gt;their hardware out by a rule change, only then would they start shouting&lt;br/&gt;and reveal their optimization. It seems extremely dangerous to set the&lt;br/&gt;precedence of a hardfork that irreversibly forks out a certain type of&lt;br/&gt;mining hardware.&lt;br/&gt;&lt;br/&gt;The part &amp;#34;Also the fix should be compatible with existing mining hardware.&amp;#34;&lt;br/&gt;is impossible to achieve because it&amp;#39;s unclear what &amp;#34;existing mining&lt;br/&gt;hardware&amp;#34; is. There has never been a specification of what mining hardware&lt;br/&gt;should do. There are only acceptance rules.&lt;br/&gt;&lt;br/&gt;The only way out is to go the exact opposite way and to embrace as many&lt;br/&gt;optimizations as possible to the point where there are no more&lt;br/&gt;optimizations left to do, or hopefully getting very close to that point.&lt;br/&gt;&lt;br/&gt;Timo&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;On Tue, May 10, 2016 at 11:57 AM, Peter Todd via bitcoin-dev &amp;lt;&lt;br/&gt;bitcoin-dev at lists.linuxfoundation.org&amp;gt; wrote:&lt;br/&gt;&lt;br/&gt;&amp;gt; As part of the hard-fork proposed in the HK agreement(1) we&amp;#39;d like to make&lt;br/&gt;&amp;gt; the&lt;br/&gt;&amp;gt; patented AsicBoost optimisation useless, and hopefully make further similar&lt;br/&gt;&amp;gt; optimizations useless as well.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; What&amp;#39;s the best way to do this? Ideally this would be SPV compatible, but&lt;br/&gt;&amp;gt; if it&lt;br/&gt;&amp;gt; requires changes from SPV clients that&amp;#39;s ok too. Also the fix this should&lt;br/&gt;&amp;gt; be&lt;br/&gt;&amp;gt; compatible with existing mining hardware.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; 1)&lt;br/&gt;&amp;gt; &lt;a href=&#34;https://medium.com/@bitcoinroundtable/bitcoin-roundtable-consensus-266d475a61ff&#34;&gt;https://medium.com/@bitcoinroundtable/bitcoin-roundtable-consensus-266d475a61ff&lt;/a&gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; 2)&lt;br/&gt;&amp;gt; &lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/2016-April/012596.html&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/2016-April/012596.html&lt;/a&gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; --&lt;br/&gt;&amp;gt; &lt;a href=&#34;https://petertodd.org&#34;&gt;https://petertodd.org&lt;/a&gt; &amp;#39;peter&amp;#39;[:-1]@petertodd.org&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; _______________________________________________&lt;br/&gt;&amp;gt; bitcoin-dev mailing list&lt;br/&gt;&amp;gt; bitcoin-dev at lists.linuxfoundation.org&lt;br/&gt;&amp;gt; &lt;a href=&#34;https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&#34;&gt;https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&lt;/a&gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;An HTML attachment was scrubbed...&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20160510/26eb0bad/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20160510/26eb0bad/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T17:50:34Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsydrs5aevy0cmvkrtwdvafx2la8p05zhhxqfm7xcv5mgkxd6pznqszyp45rh7vu6p8vn2qcq8avkq2n9s5k6a732pnyzzaagr6l0z8h20g7ggyvmv</id>
    
      <title type="html">📅 Original date posted:2016-05-11 📝 Original message:Sorry, ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsydrs5aevy0cmvkrtwdvafx2la8p05zhhxqfm7xcv5mgkxd6pznqszyp45rh7vu6p8vn2qcq8avkq2n9s5k6a732pnyzzaagr6l0z8h20g7ggyvmv" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsqcr9y9wmta3wvadat39uav88udcq7s480vq0v8r3ruf0kl8na70sucyhmf&#39;&gt;nevent1q…yhmf&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2016-05-11&lt;br/&gt;📝 Original message:Sorry, you must have meant all 12 bytes. That makes finding a collision&lt;br/&gt;substantially harder. However, you may have to restrict yourself to 10&lt;br/&gt;bytes because you don&amp;#39;t know if any hardware does timestamp rolling&lt;br/&gt;on-chip. Also you create an incentive to mess around with the version bits&lt;br/&gt;instead, so you would have to fix that as well. So it basically means a new&lt;br/&gt;mining header with the real blockheader as a child header.&lt;br/&gt;&lt;br/&gt;On Wed, May 11, 2016 at 9:24 AM, Timo Hanke &amp;lt;timo.hanke at web.de&amp;gt; wrote:&lt;br/&gt;&lt;br/&gt;&amp;gt; Luke, do you mean to replace the first 4 bytes of the second chunk (bytes&lt;br/&gt;&amp;gt; 64..67 in 0-based counting) by the XOR of those 4 bytes with the first 4&lt;br/&gt;&amp;gt; bytes of the midstate? (I assume you don&amp;#39;t care about 12 bytes but rather&lt;br/&gt;&amp;gt; those 4 bytes.)&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; This does not work. All it does is adding another computational step&lt;br/&gt;&amp;gt; before you can check for a collision in those 4 bytes. It makes finding a&lt;br/&gt;&amp;gt; collision only marginally harder.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; On Wed, May 11, 2016 at 7:28 AM, Luke Dashjr via bitcoin-dev &amp;lt;&lt;br/&gt;&amp;gt; bitcoin-dev at lists.linuxfoundation.org&amp;gt; wrote:&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; On Wednesday, May 11, 2016 12:20:55 PM Sergio Demian Lerner via&lt;br/&gt;&amp;gt;&amp;gt; bitcoin-dev&lt;br/&gt;&amp;gt;&amp;gt; wrote:&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; On Tue, May 10, 2016 at 6:43 PM, Sergio Demian Lerner &amp;lt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; sergio.d.lerner at gmail.com&amp;gt; wrote:&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; &amp;gt; You can find it here:&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &lt;a href=&#34;https://bitslog.wordpress.com/2014/03/18/the-re-design-of-the-bitcoin-blo&#34;&gt;https://bitslog.wordpress.com/2014/03/18/the-re-design-of-the-bitcoin-blo&lt;/a&gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; &amp;gt; ck-header/&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; &amp;gt; Basically, the idea is to put in the first 64 bytes a 4 byte hash of&lt;br/&gt;&amp;gt;&amp;gt; the&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; &amp;gt; second 64-byte chunk. That design also allows increased nonce space in&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; &amp;gt; the first 64 bytes.&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; My mistake here. I didn&amp;#39;t recalled correctly my own idea. The idea is to&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; include in the second 64-byte chunk a 4-byte hash of the first chunk,&lt;br/&gt;&amp;gt;&amp;gt; not&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; the opposite.&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; What if we XOR bytes 64..76 with the first 12 bytes of the SHA2 midstate?&lt;br/&gt;&amp;gt;&amp;gt; Would that work?&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; Luke&lt;br/&gt;&amp;gt;&amp;gt; _______________________________________________&lt;br/&gt;&amp;gt;&amp;gt; bitcoin-dev mailing list&lt;br/&gt;&amp;gt;&amp;gt; bitcoin-dev at lists.linuxfoundation.org&lt;br/&gt;&amp;gt;&amp;gt; &lt;a href=&#34;https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&#34;&gt;https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&lt;/a&gt;&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;An HTML attachment was scrubbed...&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20160511/6cb58d22/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20160511/6cb58d22/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T17:50:32Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqszh9lt6l84vs8wty6n6v8w6vw9zkpapu2we06epryfxn8pur87z4szyp45rh7vu6p8vn2qcq8avkq2n9s5k6a732pnyzzaagr6l0z8h20g79ktu4x</id>
    
      <title type="html">📅 Original date posted:2016-05-11 📝 Original message:Ups, I ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqszh9lt6l84vs8wty6n6v8w6vw9zkpapu2we06epryfxn8pur87z4szyp45rh7vu6p8vn2qcq8avkq2n9s5k6a732pnyzzaagr6l0z8h20g79ktu4x" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsydrs5aevy0cmvkrtwdvafx2la8p05zhhxqfm7xcv5mgkxd6pznqsgsn6j2&#39;&gt;nevent1q…n6j2&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2016-05-11&lt;br/&gt;📝 Original message:Ups, I forgot that you take the midstate which of course depends on the&lt;br/&gt;version number. So forget everything I said about the version bits. You are&lt;br/&gt;right. But why take the midstate? It can be any hash of the first chunk. So&lt;br/&gt;you probably want to take a hash function that&amp;#39;s available in standard&lt;br/&gt;software libraries. And I suppose midstate() is not.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;On Wed, May 11, 2016 at 11:28 AM, Timo Hanke &amp;lt;timo.hanke at web.de&amp;gt; wrote:&lt;br/&gt;&lt;br/&gt;&amp;gt; Sorry, you must have meant all 12 bytes. That makes finding a collision&lt;br/&gt;&amp;gt; substantially harder. However, you may have to restrict yourself to 10&lt;br/&gt;&amp;gt; bytes because you don&amp;#39;t know if any hardware does timestamp rolling&lt;br/&gt;&amp;gt; on-chip. Also you create an incentive to mess around with the version bits&lt;br/&gt;&amp;gt; instead, so you would have to fix that as well. So it basically means a new&lt;br/&gt;&amp;gt; mining header with the real blockheader as a child header.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; On Wed, May 11, 2016 at 9:24 AM, Timo Hanke &amp;lt;timo.hanke at web.de&amp;gt; wrote:&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; Luke, do you mean to replace the first 4 bytes of the second chunk (bytes&lt;br/&gt;&amp;gt;&amp;gt; 64..67 in 0-based counting) by the XOR of those 4 bytes with the first 4&lt;br/&gt;&amp;gt;&amp;gt; bytes of the midstate? (I assume you don&amp;#39;t care about 12 bytes but rather&lt;br/&gt;&amp;gt;&amp;gt; those 4 bytes.)&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; This does not work. All it does is adding another computational step&lt;br/&gt;&amp;gt;&amp;gt; before you can check for a collision in those 4 bytes. It makes finding a&lt;br/&gt;&amp;gt;&amp;gt; collision only marginally harder.&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; On Wed, May 11, 2016 at 7:28 AM, Luke Dashjr via bitcoin-dev &amp;lt;&lt;br/&gt;&amp;gt;&amp;gt; bitcoin-dev at lists.linuxfoundation.org&amp;gt; wrote:&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; On Wednesday, May 11, 2016 12:20:55 PM Sergio Demian Lerner via&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; bitcoin-dev&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; wrote:&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; On Tue, May 10, 2016 at 6:43 PM, Sergio Demian Lerner &amp;lt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; sergio.d.lerner at gmail.com&amp;gt; wrote:&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; &amp;gt; You can find it here:&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&#34;https://bitslog.wordpress.com/2014/03/18/the-re-design-of-the-bitcoin-blo&#34;&gt;https://bitslog.wordpress.com/2014/03/18/the-re-design-of-the-bitcoin-blo&lt;/a&gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; &amp;gt; ck-header/&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; &amp;gt; Basically, the idea is to put in the first 64 bytes a 4 byte hash of&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; the&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; &amp;gt; second 64-byte chunk. That design also allows increased nonce space&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; in&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; &amp;gt; the first 64 bytes.&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; My mistake here. I didn&amp;#39;t recalled correctly my own idea. The idea is&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; to&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; include in the second 64-byte chunk a 4-byte hash of the first chunk,&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; not&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; the opposite.&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; What if we XOR bytes 64..76 with the first 12 bytes of the SHA2 midstate?&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; Would that work?&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; Luke&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; _______________________________________________&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; bitcoin-dev mailing list&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; bitcoin-dev at lists.linuxfoundation.org&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&#34;https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&#34;&gt;https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&lt;/a&gt;&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&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/20160511/faae91b2/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20160511/faae91b2/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T17:50:32Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsqcr9y9wmta3wvadat39uav88udcq7s480vq0v8r3ruf0kl8na70szyp45rh7vu6p8vn2qcq8avkq2n9s5k6a732pnyzzaagr6l0z8h20g72n3d6s</id>
    
      <title type="html">📅 Original date posted:2016-05-11 📝 Original message:Luke, ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsqcr9y9wmta3wvadat39uav88udcq7s480vq0v8r3ruf0kl8na70szyp45rh7vu6p8vn2qcq8avkq2n9s5k6a732pnyzzaagr6l0z8h20g72n3d6s" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs9vym0jqktk3eqmc93k6daw0l6l5ywvw8c5xgd06mg95selfg9cggvkuf5a&#39;&gt;nevent1q…uf5a&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2016-05-11&lt;br/&gt;📝 Original message:Luke, do you mean to replace the first 4 bytes of the second chunk (bytes&lt;br/&gt;64..67 in 0-based counting) by the XOR of those 4 bytes with the first 4&lt;br/&gt;bytes of the midstate? (I assume you don&amp;#39;t care about 12 bytes but rather&lt;br/&gt;those 4 bytes.)&lt;br/&gt;&lt;br/&gt;This does not work. All it does is adding another computational step before&lt;br/&gt;you can check for a collision in those 4 bytes. It makes finding a&lt;br/&gt;collision only marginally harder.&lt;br/&gt;&lt;br/&gt;On Wed, May 11, 2016 at 7:28 AM, Luke Dashjr via bitcoin-dev &amp;lt;&lt;br/&gt;bitcoin-dev at lists.linuxfoundation.org&amp;gt; wrote:&lt;br/&gt;&lt;br/&gt;&amp;gt; On Wednesday, May 11, 2016 12:20:55 PM Sergio Demian Lerner via bitcoin-dev&lt;br/&gt;&amp;gt; wrote:&lt;br/&gt;&amp;gt; &amp;gt; On Tue, May 10, 2016 at 6:43 PM, Sergio Demian Lerner &amp;lt;&lt;br/&gt;&amp;gt; &amp;gt; sergio.d.lerner at gmail.com&amp;gt; wrote:&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; You can find it here:&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &lt;a href=&#34;https://bitslog.wordpress.com/2014/03/18/the-re-design-of-the-bitcoin-blo&#34;&gt;https://bitslog.wordpress.com/2014/03/18/the-re-design-of-the-bitcoin-blo&lt;/a&gt;&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; ck-header/&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; Basically, the idea is to put in the first 64 bytes a 4 byte hash of&lt;br/&gt;&amp;gt; the&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; second 64-byte chunk. That design also allows increased nonce space in&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; the first 64 bytes.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; My mistake here. I didn&amp;#39;t recalled correctly my own idea. The idea is to&lt;br/&gt;&amp;gt; &amp;gt; include in the second 64-byte chunk a 4-byte hash of the first chunk, not&lt;br/&gt;&amp;gt; &amp;gt; the opposite.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; What if we XOR bytes 64..76 with the first 12 bytes of the SHA2 midstate?&lt;br/&gt;&amp;gt; Would that work?&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;&lt;br/&gt;&amp;gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;An HTML attachment was scrubbed...&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20160511/499e1347/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20160511/499e1347/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T17:50:32Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsx8uycdg3upwvsg59vp9ncwqm4ltrfrl6jrnslehxz5afaw60w6eczyp45rh7vu6p8vn2qcq8avkq2n9s5k6a732pnyzzaagr6l0z8h20g7sm38jw</id>
    
      <title type="html">📅 Original date posted:2016-04-01 📝 Original message:Hi. ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsx8uycdg3upwvsg59vp9ncwqm4ltrfrl6jrnslehxz5afaw60w6eczyp45rh7vu6p8vn2qcq8avkq2n9s5k6a732pnyzzaagr6l0z8h20g7sm38jw" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs8jhz64k9ysjj77uffg73ahlm0wvzkmu7jqyqvees2hmmt8f5qajcct3hky&#39;&gt;nevent1q…3hky&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2016-04-01&lt;br/&gt;📝 Original message:Hi.&lt;br/&gt;&lt;br/&gt;I&amp;#39;d like to announce a white paper that describes a very new and&lt;br/&gt;significant algorithmic improvement to the Bitcoin mining process which has&lt;br/&gt;never been discussed in public before. The white paper can be found here:&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;http://www.math.rwth-aachen.de/~Timo.Hanke/AsicBoostWhitepaperrev5.pdf&#34;&gt;http://www.math.rwth-aachen.de/~Timo.Hanke/AsicBoostWhitepaperrev5.pdf&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Regards,&lt;br/&gt;&lt;br/&gt;Timo&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/20160331/00d287f0/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20160331/00d287f0/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T17:50:03Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqstjyqperlp5sc5pl8mvseyu0qsr0typcgtmytgem75z3m7wtwn2fszyp45rh7vu6p8vn2qcq8avkq2n9s5k6a732pnyzzaagr6l0z8h20g7nptems</id>
    
      <title type="html">📅 Original date posted:2014-04-27 📝 Original ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqstjyqperlp5sc5pl8mvseyu0qsr0typcgtmytgem75z3m7wtwn2fszyp45rh7vu6p8vn2qcq8avkq2n9s5k6a732pnyzzaagr6l0z8h20g7nptems" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqstq25gls4add8gee6ux89jjrrn23jm7ucqtdxvgrjcghh34r8punge9zy7k&#39;&gt;nevent1q…zy7k&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2014-04-27&lt;br/&gt;📝 Original message:I&amp;#39;d like to put the following draft of a BIP up for discussion.&lt;br/&gt;&lt;br/&gt;Timo&lt;br/&gt;&lt;br/&gt;# Abstract&lt;br/&gt;There are incentives for miners to find cheap, non-standard ways to generate new work, which are not necessarily in the best interest of the protocol.&lt;br/&gt;In order to reduce these incentives this proposal re-assigns 2 bytes from the version field of the block header to a new extra nonce field. &lt;br/&gt;# Copyright&lt;br/&gt;# Specification&lt;br/&gt;The block version number field in the block header is reduced in size from 4 to 2 bytes. &lt;br/&gt;The third and fourth byte in the block header are assigned to the new extra nonce field inside the block header.&lt;br/&gt;# Motivation&lt;br/&gt;The motivation of this proposal is to provide miners with a cheap constant-complexity method to create new work that does not require altering the transaction tree.&lt;br/&gt;&lt;br/&gt;Furthermore, the motivation is to protect the version and timestamp fields in the block header from abuse.&lt;br/&gt;# Rationale&lt;br/&gt;Traditionally, the extra nonce is part of the coinbase field of the generation transaction, which is always the very first transaction of a block.&lt;br/&gt;After incrementing the extra nonce the minimum amount of work a miner has to do to re-calculate the block header is a) to hash the coinbase transaction and b) to re-calculate the left-most branch of the merkle tree all the way to the merkle root.&lt;br/&gt;This is necessary overhead a miner has to do besides hashing the block header itself.&lt;br/&gt;We shall call the process that leads to a new block header from the same transaction set the _pre-hashing_.&lt;br/&gt;&lt;br/&gt;First it should be noted that the relative cost of pre-hashing in its traditional form depends&lt;br/&gt;on the block size, which may create an unwanted incentive for miners&lt;br/&gt;to keep the block size small. However, this is not the main motivation for&lt;br/&gt;the current proposal.&lt;br/&gt;&lt;br/&gt;While the block header is hashed by ASICs, pre-hashing typically happens on a CPU because of the greater flexibility required.&lt;br/&gt;Consequently, as ASIC cost per hash performance drops the relative cost of pre-hashing increases.&lt;br/&gt;&lt;br/&gt;This creates an incentive for miners to find cheaper ways to create new work than by means of pre-hashing.&lt;br/&gt;An example of this currently happening is the on-device rolling of the timestamp into the future.&lt;br/&gt;These ways of creating new work are unlikely to be in the best interest of the protocol.&lt;br/&gt;For example, rolling the timestamp faster than the real time is unwanted (more so on faster blockchains).&lt;br/&gt;&lt;br/&gt;The version number in the block header is a possible target for alteration with the goal of cheaply creating new work.&lt;br/&gt;Currently, blocks with arbitrarily large version numbers get relayed and accepted by the network.&lt;br/&gt;As this is unwanted behaviour, there should not exist any incentive for a miner to abuse the version number in this way. &lt;br/&gt;&lt;br/&gt;The solution is to reduce the range of version numbers from 2^32 to 2^16 and to declare the third and forth bytes of the block header as legitimate space for an extra nonce.&lt;br/&gt;This will reduce the incentive for a miner to abuse the shortened version number by a factor in the order of 2^16. &lt;br/&gt;&lt;br/&gt;As a side effect, this proposal greatly reduces the bandwidth requirements of a blind pool protocol by only submitting the block header to the miner.&lt;br/&gt;# Backwards Compatibility&lt;br/&gt;Old versions of the client will accept blocks of this kind but will throw an alert at the user to upgrade.&lt;br/&gt;The only code change would be a cast of the version number to a short.&lt;br/&gt;Besides the upgrade alert, old and new versions of the client can co-exist and there is no need to introduce a new block version number or to phase-out old block versions.&lt;br/&gt;# Reference Implementation&lt;br/&gt;# Final implementation&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Timo Hanke&lt;br/&gt;PGP 1EFF 69BC 6FB7 8744 14DB  631D 1BB5 D6E3 AB96 7DA8
    </content>
    <updated>2023-06-07T15:20:28Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs9u64jg8aat4jhpltuar5gak26nynz2gedyw2rpccahum3ge69uwszyp45rh7vu6p8vn2qcq8avkq2n9s5k6a732pnyzzaagr6l0z8h20g7w74pd2</id>
    
      <title type="html">📅 Original date posted:2013-11-04 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs9u64jg8aat4jhpltuar5gak26nynz2gedyw2rpccahum3ge69uwszyp45rh7vu6p8vn2qcq8avkq2n9s5k6a732pnyzzaagr6l0z8h20g7w74pd2" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs09kvvfx3r78rjystgmw86nf0ca40aw4wzkmajrahgp0fe7asfnlclm6wvu&#39;&gt;nevent1q…6wvu&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2013-11-04&lt;br/&gt;📝 Original message:On Sun, Nov 03, 2013 at 09:39:42AM &#43;0100, Thomas Voegtlin wrote:&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Le 03/11/2013 08:40, Timo Hanke a écrit :&lt;br/&gt;&amp;gt; &amp;gt;I think the communication would have to go the other way around. Trezor&lt;br/&gt;&amp;gt; &amp;gt;has to commit to a value First. Like this:&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;Trezor picks random s and sends S=s*G to computer, keeping s secret.&lt;br/&gt;&amp;gt; &amp;gt;Computer picks random t and sends t to Trezor.  Trezor makes r := s&#43;t&lt;br/&gt;&amp;gt; &amp;gt;its internal master private key with corresponding master public key&lt;br/&gt;&amp;gt; &amp;gt;R := (s&#43;t)*G. Since R = S&#43;t*G, the computer can verify the master&lt;br/&gt;&amp;gt; &amp;gt;public key. As you say, the computer can then store R and can later&lt;br/&gt;&amp;gt; &amp;gt;verify for each derived pubkey that it was indeed derived from R, hence&lt;br/&gt;&amp;gt; &amp;gt;from his own entropy t.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; I&amp;#39;m not sure how this differs from what I wrote...&lt;br/&gt;&lt;br/&gt;Sorry, yes, of course it&amp;#39;s the same..&lt;br/&gt;Your very first proposal was fine, provided that Trezor commits to its&lt;br/&gt;random value first.&lt;br/&gt;&lt;br/&gt;&amp;gt; However, if this is how it works, then my question remains:&lt;br/&gt;&amp;gt; The computer has no proof to know that pubkeys derived through&lt;br/&gt;&amp;gt; bip32&amp;#39;s private derivations are derived from its own entropy...&lt;br/&gt;&amp;gt; This verification would only work for public (aka type2) derivations.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; .. but maybe Trezor works in a different way? I think an explanation&lt;br/&gt;&amp;gt; from slush would be needed.&lt;br/&gt;&lt;br/&gt;Does Trezor even use private derivation?&lt;br/&gt;&lt;br/&gt;Regardless of whether the derivation is private or public, and&lt;br/&gt;regardless of what kind of proof you use to show that the master public&lt;br/&gt;key was derived from user supplied entropy, my question also remains:&lt;br/&gt;How do you verify your backup? The backup is a seed or private key. It&amp;#39;s&lt;br/&gt;too long to do any meaningful computation by hand. So you would need a&lt;br/&gt;second offline device, eg a second Trezor in &amp;#34;restore mode&amp;#34;, just to&lt;br/&gt;verify your backup.&lt;br/&gt;&lt;br/&gt;Timo&lt;br/&gt;&lt;br/&gt;&amp;gt; &amp;gt;However, Trezor could not use straight bip32 out of the box. The&lt;br/&gt;&amp;gt; &amp;gt;chaincode would have to be something like SHA(R). And the seed (that&lt;br/&gt;&amp;gt; &amp;gt;gets translated to mnemonic) would be r itself, making it 256 bit&lt;br/&gt;&amp;gt; &amp;gt;instead of only 128 bit.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;If the longer seed is bearable then this is a good way to do it.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;One question remains: if you only write down the mnemonic how can you be&lt;br/&gt;&amp;gt; &amp;gt;sure that it is correct and corresponds to the secret in Trezor? You&lt;br/&gt;&amp;gt; &amp;gt;cannot verify that on paper. You would have to restore it on some&lt;br/&gt;&amp;gt; &amp;gt;device, eg another empty Trezor, and see if it brings up the same master&lt;br/&gt;&amp;gt; &amp;gt;pubkey. Right?&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; I guess you have to trust Trezor that it derives R from r&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; &lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Timo Hanke&lt;br/&gt;PGP 1EFF 69BC 6FB7 8744 14DB  631D 1BB5 D6E3 AB96 7DA8
    </content>
    <updated>2023-06-07T15:08:33Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs0yxg98s3e79a598hd8pyj6g95tvh37r6hz5mlfvycxju6jdypx4qzyp45rh7vu6p8vn2qcq8avkq2n9s5k6a732pnyzzaagr6l0z8h20g7qek0pw</id>
    
      <title type="html">📅 Original date posted:2013-11-03 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs0yxg98s3e79a598hd8pyj6g95tvh37r6hz5mlfvycxju6jdypx4qzyp45rh7vu6p8vn2qcq8avkq2n9s5k6a732pnyzzaagr6l0z8h20g7qek0pw" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsx8jtf9pmzevsaln7jacjlq4mvv5ga2hkrdl0u3lwmaxjua3hc6pg25f0xl&#39;&gt;nevent1q…f0xl&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2013-11-03&lt;br/&gt;📝 Original message:On Sat, Nov 02, 2013 at 10:44:58AM &#43;0100, Thomas Voegtlin wrote:&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; &amp;gt;To be specific, we (in cooperation with / inspired by Timo Hanke)&lt;br/&gt;&amp;gt; &amp;gt;developed method how to prove that the seed generated by Trezor&lt;br/&gt;&amp;gt; &amp;gt;has been created using combination of computer-provided entropy&lt;br/&gt;&amp;gt; &amp;gt;and device-provided entropy, without leaking full private&lt;br/&gt;&amp;gt; &amp;gt;information to other computer, just because we want Trezor to be&lt;br/&gt;&amp;gt; &amp;gt;blackbox-testable and fully deterministic (seed generation is&lt;br/&gt;&amp;gt; &amp;gt;currently the only operation which uses any source of RNG).&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Thanks for the explanation. Here is how I understand how it works,&lt;br/&gt;&amp;gt; please correct me if I&amp;#39;m wrong:&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; The user&amp;#39;s computer picks a random number a, the Trezor picks a&lt;br/&gt;&amp;gt; random number b.&lt;br/&gt;&amp;gt; Trezor adds a and b in the secp256k1 group, and this creates a&lt;br/&gt;&amp;gt; master private key k.&lt;br/&gt;&amp;gt; Trezor sends the corresponding master public key K to the computer.&lt;br/&gt;&amp;gt; Thus, the computer can check that K was derived from a, without knowing b.&lt;br/&gt;&lt;br/&gt;No. You mean the computer would use B for this check? &lt;br/&gt;(k,K) could be rigged by Trezor, who computes b as k-a.&lt;br/&gt;&lt;br/&gt;Timo&lt;br/&gt;&lt;br/&gt;&amp;gt; This also allows the computer to check that any bitcoin address&lt;br/&gt;&amp;gt; derived from K is derived from a, without leaking b. (and&lt;br/&gt;&amp;gt; reciprocally)&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; However, it seems to me that this property will work only with bip32&lt;br/&gt;&amp;gt; public derivations; if a private derivation is used, don&amp;#39;t you need&lt;br/&gt;&amp;gt; to know k?&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; &lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Timo Hanke&lt;br/&gt;PGP 1EFF 69BC 6FB7 8744 14DB  631D 1BB5 D6E3 AB96 7DA8
    </content>
    <updated>2023-06-07T15:08:32Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqswhw4h7dqt037tr6gaywhqc8pknk0jjtrvn8v0q5qrvs79w5q50ggzyp45rh7vu6p8vn2qcq8avkq2n9s5k6a732pnyzzaagr6l0z8h20g72xldu3</id>
    
      <title type="html">📅 Original date posted:2013-11-03 📝 Original message:I ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqswhw4h7dqt037tr6gaywhqc8pknk0jjtrvn8v0q5qrvs79w5q50ggzyp45rh7vu6p8vn2qcq8avkq2n9s5k6a732pnyzzaagr6l0z8h20g72xldu3" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsrvesylkc777zvy7fcccvt30evsugjlct6279a2wsv40drn8dgtcc0uphua&#39;&gt;nevent1q…phua&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2013-11-03&lt;br/&gt;📝 Original message:I think the communication would have to go the other way around. Trezor&lt;br/&gt;has to commit to a value First. Like this:&lt;br/&gt;&lt;br/&gt;Trezor picks random s and sends S=s*G to computer, keeping s secret.&lt;br/&gt;Computer picks random t and sends t to Trezor.  Trezor makes r := s&#43;t&lt;br/&gt;its internal master private key with corresponding master public key &lt;br/&gt;R := (s&#43;t)*G. Since R = S&#43;t*G, the computer can verify the master&lt;br/&gt;public key. As you say, the computer can then store R and can later&lt;br/&gt;verify for each derived pubkey that it was indeed derived from R, hence&lt;br/&gt;from his own entropy t.&lt;br/&gt;&lt;br/&gt;However, Trezor could not use straight bip32 out of the box. The&lt;br/&gt;chaincode would have to be something like SHA(R). And the seed (that&lt;br/&gt;gets translated to mnemonic) would be r itself, making it 256 bit&lt;br/&gt;instead of only 128 bit.&lt;br/&gt;&lt;br/&gt;If the longer seed is bearable then this is a good way to do it.&lt;br/&gt;&lt;br/&gt;One question remains: if you only write down the mnemonic how can you be&lt;br/&gt;sure that it is correct and corresponds to the secret in Trezor? You&lt;br/&gt;cannot verify that on paper. You would have to restore it on some&lt;br/&gt;device, eg another empty Trezor, and see if it brings up the same master&lt;br/&gt;pubkey. Right? &lt;br/&gt;&lt;br/&gt;Timo&lt;br/&gt;&lt;br/&gt;On Sun, Nov 03, 2013 at 08:03:54AM &#43;0100, Thomas Voegtlin wrote:&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Le 03/11/2013 07:41, Timo Hanke a écrit :&lt;br/&gt;&amp;gt; &amp;gt;No. You mean the computer would use B for this check? (k,K) could&lt;br/&gt;&amp;gt; &amp;gt;be rigged by Trezor, who computes b as k-a. Timo&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; I was just asking a question, in order to understand how this device&lt;br/&gt;&amp;gt; works, and what are its requirements.&lt;br/&gt;&amp;gt; if you think you can help, please explain.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; &lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Timo Hanke&lt;br/&gt;PGP 1EFF 69BC 6FB7 8744 14DB  631D 1BB5 D6E3 AB96 7DA8
    </content>
    <updated>2023-06-07T15:08:32Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs2hf9lnld2f8426gkv3vd3aql242am9uvakw56lma4jcjuvtrjr2szyp45rh7vu6p8vn2qcq8avkq2n9s5k6a732pnyzzaagr6l0z8h20g7h74c34</id>
    
      <title type="html">📅 Original date posted:2013-11-03 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs2hf9lnld2f8426gkv3vd3aql242am9uvakw56lma4jcjuvtrjr2szyp45rh7vu6p8vn2qcq8avkq2n9s5k6a732pnyzzaagr6l0z8h20g7h74c34" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs85lhcqluz792ekcjfc30ennx83qg6zr30x77arcw9a568u05pdtch838ya&#39;&gt;nevent1q…38ya&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2013-11-03&lt;br/&gt;📝 Original message:On Sat, Nov 02, 2013 at 02:14:22PM -0700, Johnathan Corgan wrote:&lt;br/&gt;&amp;gt; On 11/01/2013 10:01 PM, bitcoingrant at gmx.com wrote:&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; &amp;gt; Server provides a token for the client to sign.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Anyone else concerned about signing an arbitrary string?  Could be a&lt;br/&gt;&amp;gt; hash of $EVIL_DOCUMENT, no?  I&amp;#39;d want to XOR the string with my own&lt;br/&gt;&amp;gt; randomly generated nonce, sign that, then pass the nonce and the&lt;br/&gt;&amp;gt; signature back to the server for verification.&lt;br/&gt;&lt;br/&gt;There were several replies like this, suggesting the client should&lt;br/&gt;modify or add something to the token, or should give the token some&lt;br/&gt;structure. But signing a token is not what the client should do in the&lt;br/&gt;first place. At least not if the client&amp;#39;s key is (EC)DSA. The standard&lt;br/&gt;way is a challenge-response protocol in the form of the Diffie-Hellman&lt;br/&gt;key exchange, which avoids producing any unintentional signatures.&lt;br/&gt;&lt;br/&gt;Say the clients wants to prove he owns private key p, belonging to&lt;br/&gt;public key P. P=p*G and G is the &amp;#34;base&amp;#34; of the (EC)DSA signature system.&lt;br/&gt;The server generates a new keypair (a,A), a is private, A is public, and&lt;br/&gt;sends A to the client as a challenge. The client computes and sends p*A&lt;br/&gt;back. The server verifies whether p*A = a*P.&lt;br/&gt;&lt;br/&gt;Only &amp;#34;public keys&amp;#34; are exchanged here, there&amp;#39;s nothing that can be&lt;br/&gt;mistaken for a (EC)DSA signature.&lt;br/&gt;&lt;br/&gt;Timo&lt;br/&gt;&lt;br/&gt;&amp;gt; -- &lt;br/&gt;&amp;gt; Johnathan Corgan, Corgan Labs&lt;br/&gt;&amp;gt; SDR Training and Development Services&lt;br/&gt;&amp;gt; &lt;a href=&#34;http://corganlabs.com&#34;&gt;http://corganlabs.com&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&amp;gt; begin:vcard&lt;br/&gt;&amp;gt; fn:Johnathan Corgan&lt;br/&gt;&amp;gt; n:Corgan;Johnathan&lt;br/&gt;&amp;gt; org:Corgan Enterprises LLC dba Corgan Labs&lt;br/&gt;&amp;gt; adr:;;6081 Meridian Ave. Suite 70-111;San Jose;CA;95120;United States&lt;br/&gt;&amp;gt; email;internet:johnathan at corganlabs.com&lt;br/&gt;&amp;gt; title:Managing Partner&lt;br/&gt;&amp;gt; tel;work:&#43;1 408 463 6614&lt;br/&gt;&amp;gt; x-mozilla-html:FALSE&lt;br/&gt;&amp;gt; url:&lt;a href=&#34;http://corganlabs.com&#34;&gt;http://corganlabs.com&lt;/a&gt;&lt;br/&gt;&amp;gt; version:2.1&lt;br/&gt;&amp;gt; end:vcard&lt;br/&gt;&amp;gt; &lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Timo Hanke&lt;br/&gt;PGP 1EFF 69BC 6FB7 8744 14DB  631D 1BB5 D6E3 AB96 7DA8
    </content>
    <updated>2023-06-07T15:08:30Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs9cztt847rpwhgpxcl8ajypun9k7lncupfu9dz8vdfmtu7235wkjszyp45rh7vu6p8vn2qcq8avkq2n9s5k6a732pnyzzaagr6l0z8h20g7j2rh6v</id>
    
      <title type="html">📅 Original date posted:2013-06-19 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs9cztt847rpwhgpxcl8ajypun9k7lncupfu9dz8vdfmtu7235wkjszyp45rh7vu6p8vn2qcq8avkq2n9s5k6a732pnyzzaagr6l0z8h20g7j2rh6v" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqstgchpla42fvm6t34t4zhacz3wd0l2jqp5j4zlj72tv9uceek8ylsl9m6qd&#39;&gt;nevent1q…m6qd&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2013-06-19&lt;br/&gt;📝 Original message:On Wed, Jun 19, 2013 at 10:39:04AM -0400, Alan Reiner wrote:&lt;br/&gt;&amp;gt; On 06/19/2013 10:25 AM, Timo Hanke wrote:&lt;br/&gt;&amp;gt; &amp;gt; Since you mention to use this in conjunction with the payment protocol,&lt;br/&gt;&amp;gt; &amp;gt; note the following subtlety. Suppose the payer has to paid this address&lt;br/&gt;&amp;gt; &amp;gt; called &amp;#34;destination&amp;#34;: &lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;    Standard Address ~ Base58(0x00 || hash160(PubKeyParent * Multiplier[i]) ||&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; checksum)&lt;br/&gt;&amp;gt; &amp;gt; Also suppose the payee has spent the output, i.e. the pubkey&lt;br/&gt;&amp;gt; &amp;gt; corresponding to &amp;#34;destination&amp;#34;, which is PubKeyParent * Multiplier[i],&lt;br/&gt;&amp;gt; &amp;gt; is publicly known. Then anybody can (in retrospect) create arbitrary&lt;br/&gt;&amp;gt; &amp;gt; many pairs {PublicKeyParent, Multiplier} (in particular different&lt;br/&gt;&amp;gt; &amp;gt; PublicKeyParent) that lead to the same &amp;#34;destination&amp;#34;.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; Depending on what you have in mind that the transaction should &amp;#34;prove&amp;#34;&lt;br/&gt;&amp;gt; &amp;gt; regarding its actual receiver or regarding the receiver&amp;#39;s PubKeyParent,&lt;br/&gt;&amp;gt; &amp;gt; this could be an unwanted feature (or it could be just fine). If it is&lt;br/&gt;&amp;gt; &amp;gt; unwanted then I suggest replacing&lt;br/&gt;&amp;gt; &amp;gt; PubKeyParent * Multiplier[i] by &lt;br/&gt;&amp;gt; &amp;gt; PubKeyParent * HMAC(Multiplier[i],PubKeyParent)&lt;br/&gt;&amp;gt; &amp;gt; which eliminates from the destination all ambiguity about PubKeyParent.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; This modification would not be directly compatible with BIP32 anymore&lt;br/&gt;&amp;gt; &amp;gt; (unfortunately), but seems to be better suited for use in conjunction&lt;br/&gt;&amp;gt; &amp;gt; with a payment protocol. &lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; Timo&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; It&amp;#39;s an interesting observation, but it looks like the most-obvious&lt;br/&gt;&amp;gt; attack vector is discrete log problem:  spoofing a relationship between&lt;br/&gt;&amp;gt; a target public key and one that you control.   For instance, if you see&lt;br/&gt;&amp;gt; {PubA, Mult} produces PubB and you have PubC already in your control&lt;br/&gt;&amp;gt; that you want to &amp;#34;prove&amp;#34; [maliciously] is related to PubB, then you have&lt;br/&gt;&amp;gt; to find the multiplier, M that solves:  M*PubC = PubB.  That&amp;#39;s a&lt;br/&gt;&amp;gt; discrete logarithm problem.&lt;br/&gt;&lt;br/&gt;Correct, for a given PubC in advance you can&amp;#39;t create such a &amp;#34;malicious&amp;#34;&lt;br/&gt;relation to PubB. You can only &amp;#34;reversely&amp;#34; construct new PubC from given&lt;br/&gt;PubB.&lt;br/&gt;&lt;br/&gt;&amp;gt; I&amp;#39;m not as familiar as you are, with the available operations on&lt;br/&gt;&amp;gt; elliptic curves, but it sounds like you can produce essentially-random&lt;br/&gt;&amp;gt; pairs of {PubX, Mult} pairs that give the same PubB, but you won&amp;#39;t have&lt;br/&gt;&amp;gt; the private key associated with those public keys.  &lt;br/&gt;&lt;br/&gt;Depends on who is &amp;#34;you&amp;#34;. The arbitrary person who produces {PubX, Mult}&lt;br/&gt;won&amp;#39;t have the private key, but the person who knows the private key for&lt;br/&gt;PubA will have it (assuming that PubB was computed from {PubA, Mult} in&lt;br/&gt;the first place).&lt;br/&gt;&lt;br/&gt;In the end, it all depends on your application. What proves enough for&lt;br/&gt;one party doing repeated transactions with another may not suffice for a&lt;br/&gt;third party doing auditing. On the other hand, ambiguity about PubA may&lt;br/&gt;just as well be a wanted feature for deniability reasons.&lt;br/&gt;&lt;br/&gt;Timo&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Timo Hanke&lt;br/&gt;PGP 1EFF 69BC 6FB7 8744 14DB  631D 1BB5 D6E3 AB96 7DA8
    </content>
    <updated>2023-06-07T15:03:34Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsyhp6h8wlgrwtk09dms6x4wuud3hpu82u835x7g76p8ysca823k4czyp45rh7vu6p8vn2qcq8avkq2n9s5k6a732pnyzzaagr6l0z8h20g7gzyrv4</id>
    
      <title type="html">📅 Original date posted:2013-06-20 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsyhp6h8wlgrwtk09dms6x4wuud3hpu82u835x7g76p8ysca823k4czyp45rh7vu6p8vn2qcq8avkq2n9s5k6a732pnyzzaagr6l0z8h20g7gzyrv4" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqswlrgc48hhwma0lha3cduyzly9ygkame4vcxrsf9g3fs9pk8xp60qj7dkgs&#39;&gt;nevent1q…dkgs&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2013-06-20&lt;br/&gt;📝 Original message:On Wed, Jun 19, 2013 at 05:28:15PM &#43;0200, Adam Back wrote:&lt;br/&gt;&amp;gt; I think Timo&amp;#39;s point is that while you cant do discrete log, you can do y-th&lt;br/&gt;&amp;gt; root.  So if P = xG is a parent public key (x private key, G base point),&lt;br/&gt;&amp;gt; then your proposed multiplier address is hash of Q=yP.  However its easy to&lt;br/&gt;&amp;gt; find another P such that Q=zP&amp;#39;.  ie just &amp;#34;divide by z&amp;#34; (EC multiply by z^-1&lt;br/&gt;&amp;gt; mod n, n the order of the curve).  So P&amp;#39;=z^-1.Q, which will work because&lt;br/&gt;&amp;gt; Q=zP&amp;#39;, substituting P&amp;#39; you get Q=z.z^-1.Q, Q=Q.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Of course the attacker has just performed an unspenable DoS (maybe, or maybe&lt;br/&gt;&amp;gt; a useless collision) because he wont know the discrete log of Q, nor P, nor&lt;br/&gt;&amp;gt; P&amp;#39;.  So thats the question, does the protocol have any reliance on knowing&lt;br/&gt;&amp;gt; the discrete log - is it a problem if someone can find different multipliers&lt;br/&gt;&amp;gt; of different (unknown, uncomputable discrete log) parent keys.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; If it was a concern I guess you could require a proof of knowledge of&lt;br/&gt;&amp;gt; discrete log.  ie as well as public key parent, multiplier the address must&lt;br/&gt;&amp;gt; include ECDSA sig or Schnorr proof of knowledge (which both demonstrate&lt;br/&gt;&amp;gt; knowledge of the discrete log of Q to base G.)&lt;br/&gt;&lt;br/&gt;The &amp;#34;concern&amp;#34; (if there is any) would be that the owner of the parent&lt;br/&gt;P=xG, i.e. the person knowing x, in addition to y creates another pair&lt;br/&gt;(P&amp;#39;,z) such that yP=Q=zP&amp;#39; and uses that second pair maliciously later on&lt;br/&gt;(such as claiming the payment went to identity P&amp;#39; not P). Since the&lt;br/&gt;owner of P knows the private key for P&amp;#39; (x*y*z^-1) he can also produce&lt;br/&gt;proof of knowledge for discrete log for P&amp;#39;. I think adding proof of&lt;br/&gt;knowledge or signatures on the multiplier don&amp;#39;t help to eliminate all&lt;br/&gt;possible concerns, which could involve proving something to a third&lt;br/&gt;party that has not seen the communication between payer and payee. &lt;br/&gt;&lt;br/&gt;If you consider only payer and payee then Alan&amp;#39;s original proposal is&lt;br/&gt;just fine, as far as I can tell. Only if you start using it in a payment&lt;br/&gt;protocol or, more precisely, if you start interpreting P as an identity&lt;br/&gt;(as Alan suggested in subsequent posts) _and_ this identity is a&lt;br/&gt;public/global one rather than a local one that only the payer uses, then&lt;br/&gt;reasons can pop up to eliminate ambiguity about which identity each&lt;br/&gt;payment went to.&lt;br/&gt;&lt;br/&gt;Timo&lt;br/&gt;&lt;br/&gt;ps the fact that this post used the multiplicative rather than additive&lt;br/&gt;derivation scheme doesn&amp;#39;t change the argument.&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Timo Hanke&lt;br/&gt;PGP 1EFF 69BC 6FB7 8744 14DB  631D 1BB5 D6E3 AB96 7DA8
    </content>
    <updated>2023-06-07T15:03:32Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs95x5h7qksrg835ntn75jgx2737vhrf2rtynhhde56g2fejadlpkszyp45rh7vu6p8vn2qcq8avkq2n9s5k6a732pnyzzaagr6l0z8h20g7djcqw4</id>
    
      <title type="html">📅 Original date posted:2013-06-19 📝 Original message:Since ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs95x5h7qksrg835ntn75jgx2737vhrf2rtynhhde56g2fejadlpkszyp45rh7vu6p8vn2qcq8avkq2n9s5k6a732pnyzzaagr6l0z8h20g7djcqw4" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs8f8zrm9cwf4pfu2s4zx58wa88u77dqcze2m0vepxyqaqy2zkvfscxgtsl5&#39;&gt;nevent1q…tsl5&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2013-06-19&lt;br/&gt;📝 Original message:Since you mention to use this in conjunction with the payment protocol,&lt;br/&gt;note the following subtlety. Suppose the payer has to paid this address&lt;br/&gt;called &amp;#34;destination&amp;#34;: &lt;br/&gt;&amp;gt;    Standard Address ~ Base58(0x00 || hash160(PubKeyParent * Multiplier[i]) ||&lt;br/&gt;&amp;gt; checksum)&lt;br/&gt;Also suppose the payee has spent the output, i.e. the pubkey&lt;br/&gt;corresponding to &amp;#34;destination&amp;#34;, which is PubKeyParent * Multiplier[i],&lt;br/&gt;is publicly known. Then anybody can (in retrospect) create arbitrary&lt;br/&gt;many pairs {PublicKeyParent, Multiplier} (in particular different&lt;br/&gt;PublicKeyParent) that lead to the same &amp;#34;destination&amp;#34;.&lt;br/&gt;&lt;br/&gt;Depending on what you have in mind that the transaction should &amp;#34;prove&amp;#34;&lt;br/&gt;regarding its actual receiver or regarding the receiver&amp;#39;s PubKeyParent,&lt;br/&gt;this could be an unwanted feature (or it could be just fine). If it is&lt;br/&gt;unwanted then I suggest replacing&lt;br/&gt;PubKeyParent * Multiplier[i] by &lt;br/&gt;PubKeyParent * HMAC(Multiplier[i],PubKeyParent)&lt;br/&gt;which eliminates from the destination all ambiguity about PubKeyParent.&lt;br/&gt;&lt;br/&gt;This modification would not be directly compatible with BIP32 anymore&lt;br/&gt;(unfortunately), but seems to be better suited for use in conjunction&lt;br/&gt;with a payment protocol. &lt;br/&gt;&lt;br/&gt;Timo&lt;br/&gt;&lt;br/&gt;On Mon, Jun 17, 2013 at 11:48:22PM -0400, Alan Reiner wrote:&lt;br/&gt;&amp;gt; Goal:  An alternative address format made possible by BIP 32, which allows one&lt;br/&gt;&amp;gt; to specify a &amp;#34;Wallet ID&amp;#34; and &amp;#34;One-time payment&amp;#34; code, instead of the standard&lt;br/&gt;&amp;gt; one-use Base58-Hash160 addresses.   This allows parties with a persistent&lt;br/&gt;&amp;gt; relationship to be able to prove that payment addresses they provide each other&lt;br/&gt;&amp;gt; are linked to a particular wallet, reducing exposure to MitM attacks without&lt;br/&gt;&amp;gt; the need for SSL or a web of trust, and without compromising the privacy of&lt;br/&gt;&amp;gt; either party.    For instance, this could be used between businesses that&lt;br/&gt;&amp;gt; frequently do business, by exchanging and verifying public keys beforehand, or&lt;br/&gt;&amp;gt; could be used by an exchange to identify if a customer withdrawal address is&lt;br/&gt;&amp;gt; related to their last deposit address, and if not enforce extra authentication&lt;br/&gt;&amp;gt; measures.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Background:&lt;br/&gt;&amp;gt; I haven&amp;#39;t been following the payment protocol discussions/development much, so&lt;br/&gt;&amp;gt; I apologize if this has already been addressed.   I&amp;#39;m calling it&lt;br/&gt;&amp;gt; &amp;#34;wallet-linkable&amp;#34; addresses, which would be an optional second form for sending&lt;br/&gt;&amp;gt; someone your address.   With BIP 32, the address is computed by the payee (the&lt;br/&gt;&amp;gt; person sending the address to receive money):&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt;    Standard Address ~ Base58(0x00 || hash160(PubKeyParent * Multiplier[i]) ||&lt;br/&gt;&amp;gt; checksum)&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; What I&amp;#39;d like to do is have the option, when specifying an address through the&lt;br/&gt;&amp;gt; payment protocol, to send *just* the {PublicKeyParent, Multiplier[i]} and let&lt;br/&gt;&amp;gt; the receiver of that address compute the address on their own.  This is no&lt;br/&gt;&amp;gt; significant burden on the receiver, but it does provide the useful property&lt;br/&gt;&amp;gt; that they can recognize when addresses specified in this way come from the same&lt;br/&gt;&amp;gt; wallet -- because the PubKeyParent will be the same.  Remember, this is&lt;br/&gt;&amp;gt; optional for the person providing the address.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; One nice, accidental feature of BIP 32 is that the Multiplier[i] used above&lt;br/&gt;&amp;gt; does not actually reveal the &amp;#34;chaincode&amp;#34; (I think Pieter started calling it the&lt;br/&gt;&amp;gt; &amp;#34;tweak&amp;#34;).   It is derived from the chaincode but doesn&amp;#39;t reveal it.  Therefore,&lt;br/&gt;&amp;gt; the payer sees the parent public key, but that&amp;#39;s not useful to derive any of&lt;br/&gt;&amp;gt; the other addresses unless they also have the chaincode.  But they can verify&lt;br/&gt;&amp;gt; that the PublicKeyParent is identical between transactions, and thus is&lt;br/&gt;&amp;gt; accessible only to that wallet.  It allows them validate a specific address&lt;br/&gt;&amp;gt; provided by the payee, but not generate or identify any other addresses.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Use Cases:&lt;br/&gt;&amp;gt; (1)  So, just like with PGP/GPG, when two parties decide they will start a&lt;br/&gt;&amp;gt; relationship, they can start by exchanging the public keys of their wallet and&lt;br/&gt;&amp;gt; verify them in a reliable manner.  After that, when one party requests a&lt;br/&gt;&amp;gt; payment address from the other, they can optionally send {PubKey, Multiplier},&lt;br/&gt;&amp;gt; and the payer&amp;#39;s software will identify the owner of that address, or let you&lt;br/&gt;&amp;gt; select who you think the address belongs to and it will verify it.  If the&lt;br/&gt;&amp;gt; payee&amp;#39;s system is compromised and address is replaced, the address received by&lt;br/&gt;&amp;gt; the payer won&amp;#39;t validate.  This doesn&amp;#39;t help if the side sending the money is&lt;br/&gt;&amp;gt; compromised.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; (2)  When a customer first provides a deposit to an exchange, it will send&lt;br/&gt;&amp;gt; money from an address in their wallet and the software will provide the&lt;br/&gt;&amp;gt; exchange the {PubKey,Mult}.  When the customer later provides a withdrawal&lt;br/&gt;&amp;gt; address, the site can automatically trust the address as long it is provided in&lt;br/&gt;&amp;gt; the alternate form and the public keys match.  If they don&amp;#39;t, it might be the&lt;br/&gt;&amp;gt; same customer just requesting a withdrawal to a different wallet, which is&lt;br/&gt;&amp;gt; fine, but they&amp;#39;ll have to go through an extra verification step to do so. &lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Downsides: &lt;br/&gt;&amp;gt; Multi-sig/P2SH  - The only way this works with P2SH, violates one of the goals&lt;br/&gt;&amp;gt; of P2SH slightly, but may not matter much if it&amp;#39;s all done under the hood by&lt;br/&gt;&amp;gt; the software.  Instead of providing a 20-byte hash of a script, you provide all&lt;br/&gt;&amp;gt; the public keys and multipliers for the individual addresses.  The payer&amp;#39;s&lt;br/&gt;&amp;gt; software automatically verifies all addresses and creates the P2SH script&lt;br/&gt;&amp;gt; itself (after a divine decree that public keys will always be sorted&lt;br/&gt;&amp;gt; lexicographically in the multi-sig script).  The blockchain still benefits from&lt;br/&gt;&amp;gt; the &amp;#34;compression&amp;#34; of moving the bulky scripts to the TxIn, but it does require&lt;br/&gt;&amp;gt; revealing more information than is necessary for the payer to pay the payee. &lt;br/&gt;&amp;gt; But it may not really be a problem, given the benefits.  It might just be&lt;br/&gt;&amp;gt; slightly longer strings to exchange during initialization and for each&lt;br/&gt;&amp;gt; transaction.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; I have various reasons I&amp;#39;d like to use this, and it&amp;#39;d be nice to have some&lt;br/&gt;&amp;gt; community backing, so I don&amp;#39;t have to twist anyone&amp;#39;s arm to trust me that it&amp;#39;s&lt;br/&gt;&amp;gt; legit.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; -Alan&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; &lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Timo Hanke&lt;br/&gt;PGP 1EFF 69BC 6FB7 8744 14DB  631D 1BB5 D6E3 AB96 7DA8
    </content>
    <updated>2023-06-07T15:03:30Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsvtm7kgggugwdcawv84lnhy4f6tr0ywnrv8ygvtt8jkqejk276j0qzyp45rh7vu6p8vn2qcq8avkq2n9s5k6a732pnyzzaagr6l0z8h20g7z2fwzf</id>
    
      <title type="html">📅 Original date posted:2013-02-11 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsvtm7kgggugwdcawv84lnhy4f6tr0ywnrv8ygvtt8jkqejk276j0qzyp45rh7vu6p8vn2qcq8avkq2n9s5k6a732pnyzzaagr6l0z8h20g7z2fwzf" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs8v62hdaj4z44pv34c7yazm42fk47gzpuak58ya9n5ps947xv36cgzcs60m&#39;&gt;nevent1q…s60m&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2013-02-11&lt;br/&gt;📝 Original message:On Sat, Feb 09, 2013 at 07:01:48PM &#43;0000, Luke-Jr wrote:&lt;br/&gt;&amp;gt; On Saturday, February 09, 2013 2:33:25 PM Timo Hanke wrote:&lt;br/&gt;&amp;gt; &amp;gt; namcoin tries to solve a different problem, DNS, whereas I want&lt;br/&gt;&amp;gt; &amp;gt; to establish an identity for a payment protocol.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; What is the technical difference here? Namecoin ties names to data; DNS is a &lt;br/&gt;&amp;gt; specific namespace in it. There is no reason I know of that this identity &lt;br/&gt;&amp;gt; stuff cannot be a new namespace.&lt;br/&gt;&lt;br/&gt;It&amp;#39;s not about technical differences, but about the different use or&lt;br/&gt;purpose, which can result in different security demands. I argue that&lt;br/&gt;DNS has a lower demand in this respect than payment ids have. So DNS&lt;br/&gt;data can be in a chain with a hashrate lower than bitcoin&amp;#39;s hashrate but&lt;br/&gt;payment ids _for_ bitcoin have to be in a chain with equal hashrate.&lt;br/&gt;&lt;br/&gt;&amp;gt; &amp;gt; You can argue that alt-chains _can_ be as strong as bitcoin, but they&lt;br/&gt;&amp;gt; &amp;gt; don&amp;#39;t _have to_ be. There is no guarantee how many people will&lt;br/&gt;&amp;gt; &amp;gt; cross-mine.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; This is true of namecoin, but it does not have to be true of new merged-mined &lt;br/&gt;&amp;gt; data. You could very well require the Bitcoin proof-of-work to be valid and &lt;br/&gt;&amp;gt; the master header to be in the Bitcoin blockchain.&lt;br/&gt;&lt;br/&gt;Ok, true. This does the trick. If few miners merge-mine then the new&lt;br/&gt;chain just becomes slower. But is this still an alt-chain? It is not&lt;br/&gt;independently verifiable anymore, like the alt-chains described in the&lt;br/&gt;wiki are. Instead, you need to refer to the bitcoin&amp;#39;s chain to see if&lt;br/&gt;the target is correct. Not sure if I got you right on this. But it seems&lt;br/&gt;to be essentially a more efficient version of what I proposed, rather&lt;br/&gt;than a true alt-chain.&lt;br/&gt;&lt;br/&gt;I suppose you suggest to place the master header hash into the coinbase.&lt;br/&gt;A drawback may be that it puts miners at a great advantage over regular&lt;br/&gt;users. This could (but doesn&amp;#39;t have to) become relevant depending on&lt;br/&gt;your counter-measures against excessive alias registration. I think&lt;br/&gt;Peter addressed this (below). &lt;br/&gt;&lt;br/&gt;On Fri, Feb 08, 2013 at 06:01:08AM -0500, Peter Todd wrote:&lt;br/&gt;&amp;gt; Finally, why is this implemented within the reference client? Use the&lt;br/&gt;&amp;gt; raw transaction API and make up your own database. If you want, create a&lt;br/&gt;&amp;gt; RPC command that allows you to query the UTXO set directly; this would&lt;br/&gt;&amp;gt; be a useful feature to have. This patch will never be accepted to the&lt;br/&gt;&amp;gt; reference client, so you&amp;#39;ll just wind up having to maintain a fork. Even&lt;br/&gt;&amp;gt; for a prototype this approach is ill-advised - prototypes have a bad way&lt;br/&gt;&amp;gt; of turning into production code.&lt;br/&gt;&lt;br/&gt;This was not intended to be a prototype and will certainly not be&lt;br/&gt;maintained. It is a demo to be run on the testnet to get a feel of how&lt;br/&gt;the user interface (RPC) and the &amp;#34;work flow&amp;#34; could look like, starting&lt;br/&gt;from the creation of a certificate all the way to paying to a&lt;br/&gt;customer-derived payment addresses (pay-to-contract) when the merchant&amp;#39;s&lt;br/&gt;base address is defined in the certificate. There&amp;#39;s an appeal to be able&lt;br/&gt;to issue&lt;br/&gt;./bitcoind sendtoalias foo deadbeef 10&lt;br/&gt;and being sure that 10 BTC go, e.g., to a unique P2SH multisig address&lt;br/&gt;that is derived for order number &amp;#39;deadbeef&amp;#39; from the two pubkeys that&lt;br/&gt;foo defined in his certificate. And having the certificate verification&lt;br/&gt;happen automatically in the background. The demo is in the reference&lt;br/&gt;client a) to simulate this feel, b) because it was the fastest way to&lt;br/&gt;code it. Apart from that, it could have just as well been separate, and&lt;br/&gt;an UTXO query-RPC would certainly be nice.  &lt;br/&gt;&lt;br/&gt;Another reason for this demo was the fun of devising a certificate that&lt;br/&gt;can handle all this. &lt;br/&gt;&lt;br/&gt;BTW, I&amp;#39;m sure that some form of certificate handling will find its way&lt;br/&gt;directly into the reference client. The user will want to trust only one&lt;br/&gt;piece of software running on one piece of dedicated hardware. &lt;br/&gt;&lt;br/&gt;On Mon, Feb 11, 2013 at 06:21:03AM -0500, Peter Todd wrote:&lt;br/&gt;&amp;gt; In what way are you not solving the same problem as DNS? I don&amp;#39;t mean&lt;br/&gt;&amp;gt; the Luke-Jr&amp;#39;s (quite correct) technical point about key-value maps, I&lt;br/&gt;&amp;gt; mean the human problem that I have these unique numbers that I can&amp;#39;t&lt;br/&gt;&amp;gt; memorize, and I have some non-unique names that I can.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; By creating Yet Another Totally Different System you are just creating&lt;br/&gt;&amp;gt; another way that users can be confused into thinking some name snatched&lt;br/&gt;&amp;gt; up by some scammers in some little-used PKI system is who they are&lt;br/&gt;&amp;gt; supposed to be communicating with. Fortunately your PKI system isn&amp;#39;t&lt;br/&gt;&amp;gt; actually used and probably never will be, so it&amp;#39;s not a big deal yet,&lt;br/&gt;&amp;gt; but ultimately you are adding to the problem.&lt;br/&gt;&lt;br/&gt;What exactly is the problem, the &amp;#34;little-used&amp;#34;? Otherwise it&amp;#39;s the same&lt;br/&gt;as it is now, you pick up an interesting domain name on the street, type&lt;br/&gt;it in, and start communicating with who you think it is, and maybe even&lt;br/&gt;pay them. The EV that centralized PKI offers prevents only some attacks,&lt;br/&gt;and may even create a false sense of security.&lt;br/&gt;&lt;br/&gt;&amp;gt; Go work on namecoin and make it more usable. Then add some PKI to it&lt;br/&gt;&amp;gt; using the *same* domain names so when I see a PKI certificate for &amp;#34;foo&amp;#34;&lt;br/&gt;&amp;gt; I know it must be the same &amp;#34;foo&amp;#34; website I just visited and the same&lt;br/&gt;&amp;gt; &amp;#34;foo at foo&amp;#34; I just emailed.&lt;br/&gt;&lt;br/&gt;No. I outlined above why I think namecoin is unsuitable (but Luke&amp;#39;s&lt;br/&gt;suggestion for a new alt-chain may be). BTW, if you want to link aliases&lt;br/&gt;of some &amp;#34;bitcoin PKI&amp;#34; and &amp;#34;domain names&amp;#34;, they should not correspond&lt;br/&gt;bijectively to each other. The &amp;#34;bitcoin alias&amp;#34; corresponds to a payment&lt;br/&gt;base address, which I see as a more universal identifier than a domain&lt;br/&gt;name. First, bitcoin alias foo can have several domains foo.com,&lt;br/&gt;foo.co.uk, etc. but still only one &amp;#34;bitcoin certificate&amp;#34;. This can be&lt;br/&gt;achieved by either writing the domain names directly into the&lt;br/&gt;certificate, or better, by having the &amp;#34;bitcoin certificate&amp;#34; sign an SSL&lt;br/&gt;sub-certificate and tell your browser to ask bitcoind to verify it.&lt;br/&gt;Second, a bitcoin alias can be meaningful without any domain names, e.g.&lt;br/&gt;it can be a certificate for all vending machines of a certain seller,&lt;br/&gt;with who you interact directly, say NFC. To summarize, I would either&lt;br/&gt;not link bitcoin aliases with domain names, or put SSL certificates&lt;br/&gt;&amp;#34;below&amp;#34; bitcoin certificates in the verification chain.&lt;br/&gt;&lt;br/&gt;Also BTW, it is the beauty of the pay-to-contract principle that&lt;br/&gt;authenticated communication is not even required. This means that if you&lt;br/&gt;know you have the correct &amp;#34;bitcoin certificate&amp;#34; stored with your&lt;br/&gt;bitcoind and you pay to it, then it doesn&amp;#39;t matter if you ordered on a&lt;br/&gt;wrong or fake website. The worst-case scenario is that you have to call&lt;br/&gt;in via another channel and re-submit your order, but funds are never&lt;br/&gt;lost.&lt;br/&gt;&lt;br/&gt;&amp;gt; Alt-chains don&amp;#39;t have to be based on mining you know. Your proof-of-work&lt;br/&gt;&amp;gt; can be replaced by proof-of-sacrifice, specifically Bitcoins. &lt;br/&gt;&amp;gt; [...]&lt;br/&gt;&amp;gt; 1) &lt;a href=&#34;https://github.com/petertodd/trustbits/blob/master/fidelitybond.md&#34;&gt;https://github.com/petertodd/trustbits/blob/master/fidelitybond.md&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Yes, I already read your discussing of sacrifice-methods after your&lt;br/&gt;first reply and found it interesting.. The problem I see is to&lt;br/&gt;dynamically (and automatically) adjust the minimum sacrifice amount. A&lt;br/&gt;strict limit on the number of registrations like namecoin has is not&lt;br/&gt;desirable. A constant sacrifice, as you mentioned earlier, is also&lt;br/&gt;undesirable. A good measure could be the average transaction fee taken&lt;br/&gt;over several blocks. Maybe the minimum sacrifice should be a constant&lt;br/&gt;times that. &lt;br/&gt;&lt;br/&gt;&amp;gt; &amp;gt; You are probably right that storing this in the _spent outputs_&lt;br/&gt;&amp;gt; &amp;gt; would be better [than UTXO]. There doesn&amp;#39;t seem to be any type of&lt;br/&gt;&amp;gt; &amp;gt; client out there that would benefit from having to search UTXO only. &lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; The blockchain grows at a maximum rate of 55GiB/year. Do you think your&lt;br/&gt;&amp;gt; users will all want to have that available just to validate some PKI&lt;br/&gt;&amp;gt; certificates?&lt;br/&gt;&lt;br/&gt;Actually yes. They are also willing to do that to verify their payments,&lt;br/&gt;so why not for the certificate? But true, this was the reason why I&lt;br/&gt;thought of putting it in the UTXO. To enable some future dedicated&lt;br/&gt;&amp;#34;hardware wallet&amp;#34; to keep only the UTXO and to verify against it. Where&lt;br/&gt;would you store you alt-chain block header hashes? UTXO? &lt;br/&gt;&lt;br/&gt;BTW, suppose you avoid any squatting (there would certainly be ways to&lt;br/&gt;do that). Then with my original proposal of one transaction per&lt;br/&gt;registration you would grow the UTXO by O(n), n is the number of users.&lt;br/&gt;Each user would create a small constant number of aliases. This number&lt;br/&gt;will certainly be dwarfed by the number of unspend outputs that each&lt;br/&gt;user keeps anyway as a result of their regular transactions. So it would&lt;br/&gt;not present a problem for the UTXO. Actually, anything above the dust&lt;br/&gt;threshold should not be a problem, or the system is misdesigned.  But of&lt;br/&gt;course the alt-chain header hashes would only take O(1), much better.&lt;br/&gt;&lt;br/&gt;Timo
    </content>
    <updated>2023-06-07T11:31:26Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsgdmeqpjp95wn6unv3mzcnq6lz7mmfe6903tch8ut6sz43ffkgh7czyp45rh7vu6p8vn2qcq8avkq2n9s5k6a732pnyzzaagr6l0z8h20g7fmxnzg</id>
    
      <title type="html">📅 Original date posted:2013-02-09 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsgdmeqpjp95wn6unv3mzcnq6lz7mmfe6903tch8ut6sz43ffkgh7czyp45rh7vu6p8vn2qcq8avkq2n9s5k6a732pnyzzaagr6l0z8h20g7fmxnzg" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsyeekt833t26m89r6wctf7xze2zyyfsvaf2tzrzt4rn7f53dma97s4sgf4j&#39;&gt;nevent1q…gf4j&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2013-02-09&lt;br/&gt;📝 Original message:On Fri, Feb 08, 2013 at 06:01:08AM -0500, Peter Todd wrote:&lt;br/&gt;&amp;gt; On Fri, Feb 08, 2013 at 11:03:54AM &#43;0100, Timo Hanke wrote:&lt;br/&gt;&amp;gt; &amp;gt; First, we have drafted a quite general specification for bitcoin certificates (protobuf messages) that allow for a variety of payment protocols (e.g. static as well as customer-side-generated payment addresses).&lt;br/&gt;&amp;gt; &amp;gt; This part has surely been done elsewhere as well and is orthogonal to the goal of this project.&lt;br/&gt;&amp;gt; &amp;gt; What is new here is the signatures _under_ the certificates.&lt;br/&gt;&amp;gt; &amp;gt; &lt;br/&gt;&amp;gt; &amp;gt; We have patched the bitcoind to handle certificates, submit signatures to the blockchain, verify certificates against the blockchain, pay directly to certificates (with various payment methods), revoke certificates.&lt;br/&gt;&amp;gt; &amp;gt; Signatures in the blockchain are stored entirely in the UTXO set (i.e. the unspend, unprunable outputs). &lt;br/&gt;&amp;gt; &amp;gt; This seems to make signature lookup and verification reasonably fast: &lt;br/&gt;&amp;gt; &amp;gt; it took us 10s in the mainnet test we performed (lookup is instant on the testnet, of course).&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Why don&amp;#39;t you use namecoin or another alt-chain for this?&lt;br/&gt;&lt;br/&gt;Because namcoin tries to solve a different problem, DNS, whereas I want&lt;br/&gt;to establish an identity for a payment protocol. Your incoming payments&lt;br/&gt;will land on addresses that are derived (regardless which way) from this&lt;br/&gt;idenity. This makes your identity as important (securitywise) as&lt;br/&gt;anything else involved in the bitcoin protocol. Therefore I would not&lt;br/&gt;want to have payment-ids rely on anything _less_ than bitcoin&amp;#39;s own&lt;br/&gt;blockchain. In particular not on PKI with centralized root CAs. But also&lt;br/&gt;not on namecoin or any other (weaker) alt-chains.&lt;br/&gt;&lt;br/&gt;You can argue that alt-chains _can_ be as strong as bitcoin, but they&lt;br/&gt;don&amp;#39;t _have to_ be. There is no guarantee how many people will&lt;br/&gt;cross-mine. The alt-chain could even disappear at some point. If at some&lt;br/&gt;point your alt-chain is no longer being worked on, then how do you prove&lt;br/&gt;that some old bitcoin transaction went to an address for which there was&lt;br/&gt;a valid id/certificate at the time of sending? If the certificate is&lt;br/&gt;based inside bitcoin&amp;#39;s blockchain then you will have a proof for the&lt;br/&gt;correct destinations of all your old transactions as long as bitcoin&lt;br/&gt;exists.&lt;br/&gt;&lt;br/&gt;Besides all this, as you mentioned namecoin specifically, that is&lt;br/&gt;overkill if you just want to link two hashes together. A single 2-of-2&lt;br/&gt;multisig output would suffice for that. &lt;br/&gt;&lt;br/&gt;&amp;gt; The UTXO set is the most expensive part of the blockchain because it&lt;br/&gt;&amp;gt; must be stored in memory with fast access times. It&amp;#39;s good that you have&lt;br/&gt;&amp;gt; designed the system so that the addresses can be revoked, removing them&lt;br/&gt;&amp;gt; from the UTXO set, but it still will encourage the exact same type of&lt;br/&gt;&amp;gt; ugly squatting behavior we&amp;#39;ve already seen with first-bits, and again&lt;br/&gt;&amp;gt; it&amp;#39;ll have a significant cost to the network going forward for purposes&lt;br/&gt;&amp;gt; that do not need to be done on the block chain.&lt;br/&gt;&lt;br/&gt;You are probably right that storing this in the _spent outputs_ would be&lt;br/&gt;better. There doesn&amp;#39;t seem to be any type of client out there that would&lt;br/&gt;benefit from having to search UTXO only. &lt;br/&gt;&lt;br/&gt;Timo
    </content>
    <updated>2023-06-07T11:31:20Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsd3pp2hfxp6zzqg840scu8aq6h57nj20re8hhs9hgq4l39qa2zyxqzyp45rh7vu6p8vn2qcq8avkq2n9s5k6a732pnyzzaagr6l0z8h20g743lq4d</id>
    
      <title type="html">📅 Original date posted:2013-02-08 📝 Original message:There ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsd3pp2hfxp6zzqg840scu8aq6h57nj20re8hhs9hgq4l39qa2zyxqzyp45rh7vu6p8vn2qcq8avkq2n9s5k6a732pnyzzaagr6l0z8h20g743lq4d" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqswny4qt95q8qqmm3st88n23u4fk43j7nxe84c7fxqfl4953pwusmgmw5cfm&#39;&gt;nevent1q…5cfm&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2013-02-08&lt;br/&gt;📝 Original message:There have been proposals to use the blockchain to establish&lt;br/&gt;&amp;#34;identities&amp;#34;. firstbits is a simple example. I would like to announce a&lt;br/&gt;project that extends this idea to turn the blockchain into a &amp;#34;root CA&amp;#34;&lt;br/&gt;that can sign arbitrary certificates. The purpose is to use these&lt;br/&gt;certificates in the payment protocol, where some might consider&lt;br/&gt;traditional centralized root CAs unsatisfactory. &lt;br/&gt;&lt;br/&gt;Code is here: &lt;a href=&#34;https://github.com/bcpki&#34;&gt;https://github.com/bcpki&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Technical specification and full-length examples are found in the wiki.&lt;br/&gt;I therefore spare myself from repeating the details here, even though,&lt;br/&gt;of course, discussion about those details is welcome on this list.&lt;br/&gt;&lt;br/&gt;Excerpt from README.md follows:&lt;br/&gt;&lt;br/&gt;First, we have drafted a quite general specification for bitcoin certificates (protobuf messages) that allow for a variety of payment protocols (e.g. static as well as customer-side-generated payment addresses).&lt;br/&gt;This part has surely been done elsewhere as well and is orthogonal to the goal of this project.&lt;br/&gt;What is new here is the signatures _under_ the certificates.&lt;br/&gt;&lt;br/&gt;We have patched the bitcoind to handle certificates, submit signatures to the blockchain, verify certificates against the blockchain, pay directly to certificates (with various payment methods), revoke certificates.&lt;br/&gt;Signatures in the blockchain are stored entirely in the UTXO set (i.e. the unspend, unprunable outputs). &lt;br/&gt;This seems to make signature lookup and verification reasonably fast: &lt;br/&gt;it took us 10s in the mainnet test we performed (lookup is instant on the testnet, of course).&lt;br/&gt;&lt;br/&gt;Payment methods include: static bitcoin addresses, client-side derived&lt;br/&gt;payment addresses (pay-to-contract), pay-to-contract with multisig destinations (P2SH)&lt;br/&gt;&lt;br/&gt;Full-length real-world examples for all payment methods are provided in the tutorial pages.&lt;br/&gt;These examples have actually been carried out on testnet3.&lt;br/&gt;&lt;br/&gt;For further details and specifications see the wiki.&lt;br/&gt;&lt;br/&gt;timo hanke
    </content>
    <updated>2023-06-07T11:31:13Z</updated>
  </entry>

</feed>