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




  <entry>
    <id>https://nostr.ae/nevent1qqs840drwy390wvwc0knalcq3aexjfq6wjshcgjy78ugg74swh5zlfszypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvq4lezs</id>
    
      <title type="html">📅 Original date posted:2022-10-12 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs840drwy390wvwc0knalcq3aexjfq6wjshcgjy78ugg74swh5zlfszypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvq4lezs" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsxdg0t0m3gj6q6g9yq0z6e8xxv9cw6v4n22zqk4w24xjq8wdqz9xcg82vcy&#39;&gt;nevent1q…2vcy&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2022-10-12&lt;br/&gt;📝 Original message:On Wednesday, October 12th, 2022 at 1:42 AM, Anthony Towns &amp;lt;aj at erisian.com.au&amp;gt; wrote:&lt;br/&gt;&lt;br/&gt;&amp;gt; On Tue, Oct 11, 2022 at 04:18:10PM &#43;0000, Pieter Wuille via bitcoin-dev wrote:&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; &amp;gt; On Friday, October 7th, 2022 at 5:37 PM, Dario Sneidermanis via bitcoin-dev bitcoin-dev at lists.linuxfoundation.org wrote:&lt;br/&gt;&amp;gt; &amp;gt; &lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; Thanks for the fast answer! It seems I missed the link to the PR, sorry for the&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; confusion. I&amp;#39;m referring to the opt-in flag for full-RBF from #25353&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; (&lt;a href=&#34;https://github.com/bitcoin/bitcoin/pull/25353&#34;&gt;https://github.com/bitcoin/bitcoin/pull/25353&lt;/a&gt;).&lt;br/&gt;&amp;gt; &amp;gt; &amp;gt; It is not clear to me why you believe the merging of this particular pull request poses an immediate risk to you.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Did you see the rest of Dario&amp;#39;s reply, bottom-posted after the quoted&lt;br/&gt;&amp;gt; text? Namely:&lt;br/&gt;&lt;br/&gt;Oh, my mail client for some reason chose to hide all that. Dario, I&amp;#39;m sorry for missing this; I see now that you were certainly aware of what the PR under consideration did.&lt;br/&gt;&lt;br/&gt;Further comments inline.&lt;br/&gt;&lt;br/&gt;&amp;gt; On Fri, Oct 07, 2022 at 06:37:38PM -0300, Dario Sneidermanis via&lt;br/&gt;&lt;br/&gt;&amp;gt; &amp;gt; The question then is whether an opt-in flag for full-RBF will have enough&lt;br/&gt;&amp;gt; &amp;gt; adoption to get us from 1 to 2. If it isn&amp;#39;t, then #25353 won&amp;#39;t meet its&lt;br/&gt;&amp;gt; &amp;gt; objective of allowing nodes participating in multi-party funding protocols&lt;br/&gt;&amp;gt; &amp;gt; to assume that they can rely on full-RBF. If it is, then zero-conf applications&lt;br/&gt;&amp;gt; &amp;gt; will be at severe risk (per the logic in the initial email).&lt;br/&gt;&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; That logic seems reasonably sound to me:&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; - if adding the option does nothing, then there&amp;#39;s no point adding it,&lt;br/&gt;&amp;gt; and no harm in restricting it to test nets only&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; - if adding the option does do something, then businesses using zero-conf&lt;br/&gt;&amp;gt; need to react immediately, or will go from approximately zero risk of&lt;br/&gt;&amp;gt; losing funds, to substantial risk&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; (I guess having the option today may allow you to manually switch your&lt;br/&gt;&amp;gt; node over to supporting fullrbf in future when the majority of the network&lt;br/&gt;&amp;gt; supports it, without needing to do an additional upgrade in the meantime;&lt;br/&gt;&amp;gt; but that seems like a pretty weak benefit)&lt;br/&gt;&lt;br/&gt;I certainly recognize that adding the flag is a likely step towards, over time, the full RBF policy becoming more widely adopted on the network. That is presumably the reason why people are in favor of having the flag, even default off - including me. I believe that policy&amp;#39;s adoption is inevitable eventually, but the speed at which that is achieved is certainly a function of availability and adopted of software which provides the option.&lt;br/&gt;&lt;br/&gt;That said, I think it&amp;#39;s a bit of a jump to conclude that the only two options are that either the existence of the flag either has no effect at all, or poses an immediate threat to those relying on its absence. In my view, it is just what I said: a step towards getting full RBF on the network, by allowing experimentation and socializing the notion that developers believe it is time. So I have a hard time imagining how it would change anything *immediately* on the network at large (without things like default on and/or preferential peering, ...), but I still believe it&amp;#39;s an important step.&lt;br/&gt;&lt;br/&gt;Cheers,&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter
    </content>
    <updated>2023-06-08T01:14:19&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsp4gxr9j0p6gsgw55n034u80thz8l25zjd3husd90xl7acjjwh9pszypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvs5je02</id>
    
      <title type="html">📅 Original date posted:2022-10-11 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsp4gxr9j0p6gsgw55n034u80thz8l25zjd3husd90xl7acjjwh9pszypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvs5je02" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs8rp43wagam92rl6rhvkww83kfdzsusvutncmf5flmm4ww3umewlg69ct4d&#39;&gt;nevent1q…ct4d&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2022-10-11&lt;br/&gt;📝 Original message:On Friday, October 7th, 2022 at 5:37 PM, Dario Sneidermanis via bitcoin-dev &amp;lt;bitcoin-dev at lists.linuxfoundation.org&amp;gt; wrote:&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;gt; Hello David,&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Thanks for the fast answer! It seems I missed the link to the PR, sorry for the&lt;br/&gt;&amp;gt; confusion. I&amp;#39;m referring to the opt-in flag for full-RBF from #25353&lt;br/&gt;&amp;gt; (&lt;a href=&#34;https://github.com/bitcoin/bitcoin/pull/25353&#34;&gt;https://github.com/bitcoin/bitcoin/pull/25353&lt;/a&gt;).&lt;br/&gt;&lt;br/&gt;Hello Dario,&lt;br/&gt;&lt;br/&gt;It is not clear to me why you believe the merging of this particular pull request poses an immediate risk to you.&lt;br/&gt;&lt;br/&gt;As explained by others, it&amp;#39;s only a configuration option that is default off, and the possibility of running rull-RBF policy nodes on the network have been trivial for anyone who wanted to for a long time on the network.&lt;br/&gt;&lt;br/&gt;I don&amp;#39;t want to sound dismissive of your concerns, but at this point I&amp;#39;m not convinced you&amp;#39;re actually aware of what this PR does and doesn&amp;#39;t do.&lt;br/&gt;&lt;br/&gt;Cheers,&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter
    </content>
    <updated>2023-06-08T01:14:18&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsgwselld06m72fj8mltm05xkfl5s85ce72aazy3r35vjwfgx9jagszypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvhs6rph</id>
    
      <title type="html">📅 Original date posted:2022-07-28 📝 Original ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsgwselld06m72fj8mltm05xkfl5s85ce72aazy3r35vjwfgx9jagszypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvhs6rph" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsyshvy0u4tf5qrxtv38frhrr2hhtz08pzucm5aqthmvgxaymgu2xq7w0y5k&#39;&gt;nevent1q…0y5k&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2022-07-28&lt;br/&gt;📝 Original message:------- Original Message -------&lt;br/&gt;On Thursday, July 28th, 2022 at 3:27 AM, Ali Sherief via bitcoin-dev &amp;lt;bitcoin-dev at lists.linuxfoundation.org&amp;gt; wrote:&lt;br/&gt;&lt;br/&gt;&amp;gt; Essentially, zero-knowledge proofs such as Schnorr are not compatible with address message signing - the public key cannot be retrieved from the address or the signature, so the address does not actually prove the authenticity of a Schnorr signature. That&amp;#39;s why the public key is required as an input in the first place.&lt;br/&gt;&lt;br/&gt;Yes, that&amp;#39;s an intentional design choice in BIP340, see note 5: &lt;a href=&#34;https://github.com/bitcoin/bips/blob/master/bip-0340.mediawiki#cite_ref-5-0&#34;&gt;https://github.com/bitcoin/bips/blob/master/bip-0340.mediawiki#cite_ref-5-0&lt;/a&gt;. The choice is either batch verifiability or public key recovery.&lt;br/&gt;&lt;br/&gt;I regret ever using public key recovery when introducing the old legacy message signing scheme. It should just have used script signatures like BIP322 proposes.&lt;br/&gt;&lt;br/&gt;&amp;gt; In order to make it compatible with the address signing mechanism, the zero-knowledge part would have to be sacrificed in my BIP, or else a completely separate message signing format just for Taproot would be required&lt;br/&gt;&lt;br/&gt;You can avoid relying on public key recovery, and include the public key &#43; BIP340 signature in the encoded signature.&lt;br/&gt;&lt;br/&gt;&amp;gt; (which, in my view, is redundant - there is already the draft BIP322 which can verify anything and everything, but nobody is implementing that&lt;br/&gt;&lt;br/&gt;I think it would be much better if people would cooperate to get BIP322 to move forward than to keep inventing other formats. It&amp;#39;s the obvious solution in my opinion: not restricted to single-key policies, compatible with every script type, and trivially extensible to future schemes.&lt;br/&gt;&lt;br/&gt;&amp;gt; , just like BIP340).&lt;br/&gt;&lt;br/&gt;How so? Every taproot compatible wallet has a BIP340 implementation.&lt;br/&gt;&lt;br/&gt;Cheers,&lt;br/&gt;&lt;br/&gt;--&lt;br/&gt;Pieter
    </content>
    <updated>2023-06-08T01:12:19&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqswm6qqrsxpvvcgtrxuc77utvptq74czna3ve8smlhn4sffykk5cjgzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvtd7djn</id>
    
      <title type="html">📅 Original date posted:2021-10-26 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqswm6qqrsxpvvcgtrxuc77utvptq74czna3ve8smlhn4sffykk5cjgzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvtd7djn" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsw6yrwq0qqt8s8ute34hlxqnadfyckc3stgwedgmwejc0vrydtsnsdw0emy&#39;&gt;nevent1q…0emy&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2021-10-26&lt;br/&gt;📝 Original message:On Monday, October 25th, 2021 at 10:56 PM, lisa neigut via bitcoin-dev &amp;lt;bitcoin-dev at lists.linuxfoundation.org&amp;gt; wrote:&lt;br/&gt;&lt;br/&gt;&amp;gt; Hi all,&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; In a recent conversation with @glozow, I had the realization that the mempool is obsolete and should be eliminated.&lt;br/&gt;&lt;br/&gt;Hi Lisa,&lt;br/&gt;&lt;br/&gt;I see where this idea is coming from, especially as it relates to reducing complexities around transaction relays, but I strongly believe this is throwing out the baby with the bathwater. Comments inline below.&lt;br/&gt;&lt;br/&gt;&amp;gt; In reality however, mempool relay is unnecessary where the majority of hashpower and thus block template creation is concentrated in a semi-restricted set.&lt;br/&gt;&lt;br/&gt;The *entire* reason mining and PoW exist, as opposed to having a fixed, centralized (set of) actors who decide transaction ordering, is to make the &amp;#34;censorship rights&amp;#34; of the network permissionless. It is essential that anyone can become a miner if they dislike what existing miners are doing, with income close to proportional to their investment. The existing reality isn&amp;#39;t perfect, but it&amp;#39;s fairly close to that. Sure, at any given point in time, a nontrivial fraction of mining power is in the hands of a few, but over time, those can, and have, changed a lot. Furthermore, if miners were to actually exercise censorship, it could quite reasonably incentivize other ecosystem players to start mining, perhaps close at cost or even at a small loss.&lt;br/&gt;&lt;br/&gt;Your proposal, as far as I can tell, makes it *far* harder to become a miner. Ideas to provide a mechanism for miners to publish their &amp;#34;tx submit&amp;#34; URL/IP/onion on chain don&amp;#39;t help; that&amp;#39;s dependent on other miners to not censor the publishing. Furthermore, it gives a tremendous centralizing incentive: it&amp;#39;s just far easier for most wallets to just submit to the largest few pools, because the cost/complexity of an additional submission is independent of the pool&amp;#39;s hashrate, but the benefit is directly proportional to it. There would be very little incentive to submit to a sub-1% pool for anyone.&lt;br/&gt;&lt;br/&gt;&amp;gt; Removing the mempool would greatly reduce the bandwidth requirement for running a node,&lt;br/&gt;&lt;br/&gt;That&amp;#39;s not true due to compact blocks (most transactions are relayed exactly once to every node, and not repeated in blocks), and with Erlay it will be even less the case.&lt;br/&gt;&lt;br/&gt;&amp;gt; keep intentionality of transactions private until confirmed/irrevocable,&lt;br/&gt;&lt;br/&gt;Except to miners; it&amp;#39;s replacing socialized transparency with a few who get to see the actual details. Not the same scale obviously, but there is some similarity to banks in the existing financial system. Our privacy goals shouldn&amp;#39;t be relying on a few trusted gatekeepers.&lt;br/&gt;&lt;br/&gt;&amp;gt; and naturally resolve all current issues inherent in package relay and rbf rules. It also resolves the recent minimum relay questions, as relay is no longer a concern for unmined transactions.&lt;br/&gt;&lt;br/&gt;There are other solutions to this, like weak blocks (miners get to relay partial PoW solutuon of say 10% of the difficulty to the network; and nodes which receive such a weak block can &amp;#34;forcibly&amp;#34; insert its transaction to their mempool, as there is evidence it&amp;#39;s actually being worked on, while still being DoS resistant because partial PoW is still PoW).&lt;br/&gt;&lt;br/&gt;&amp;gt; Provided the number of block template producing actors remains beneath, say 1000, it’d be quite feasible to publish a list of tor endpoints that nodes can independently &#43; directly submit their transactions to. In fact, merely allowing users to select their own list of endpoints to use alternatively to the mempool would be a low effort starting point for the eventual replacement.&lt;br/&gt;&lt;br/&gt;In this scenario, there is no incentive for miners to relay to each other. The fewer other miners know about a high fee-paying transaction, the better you as a miner.&lt;br/&gt;&lt;br/&gt;More conceptually: it is a responsibility of the full node network to relay blocks between miners quickly, to limit how much advantage well-connected miners over less-well-connected ones have. If the network doesn&amp;#39;t have the transactions being included in those blocks, this is *far* harder (additional roundtrips, as nodes can&amp;#39;t reconstruct from mempools).&lt;br/&gt;&lt;br/&gt;&amp;gt; A direct communication channel between block template construction venues and transaction proposers also provides a venue for direct feedback wrt acceptable feerates at the time, which both makes transaction confirmation timelines less variable as well as provides block producers a mechanism for (independently) enforcing their own minimum security budget. In other words, expressing a minimum acceptable feerate for continued operation.&lt;br/&gt;&lt;br/&gt;Yes, it&amp;#39;s definitely easier. That doesn&amp;#39;t make it right.&lt;br/&gt;&lt;br/&gt;Cheers,&lt;br/&gt;&lt;br/&gt;--&lt;br/&gt;Pieter&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/20211026/f0c847d7/attachment-0001.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20211026/f0c847d7/attachment-0001.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-08T01:00:20&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsxu9swajdx7swlv58nzytvugesu8sm6ftsqudkp8dh9my5d9es49gzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dv8f6ftx</id>
    
      <title type="html">📅 Original date posted:2021-09-16 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsxu9swajdx7swlv58nzytvugesu8sm6ftsqudkp8dh9my5d9es49gzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dv8f6ftx" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsgnpxhxlgh8q97ulj2frfsc2yeusm0xgwhntulc8qr73cd7g7mnpgx9mvg7&#39;&gt;nevent1q…mvg7&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2021-09-16&lt;br/&gt;📝 Original message:On Thursday, September 16th, 2021 at 5:36 PM, Giacomo Caironi via bitcoin-dev &amp;lt;bitcoin-dev at lists.linuxfoundation.org&amp;gt; wrote:&lt;br/&gt;&lt;br/&gt;&amp;gt; Hi,&lt;br/&gt;&amp;gt; recently I have worked on a python implementation of bitcoin signature messages, and I have found that there was way better documentation about Segwit signature message than Taproot.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; 1) Segwit signature message got its own BIP, completed with test cases regarding only that specific function; Taproot on the other hand has the signature message function defined in BIP 341 and the test vectors in a different BIP (341). This is confusing. Shouldn&amp;#39;t we create a different BIP only for Taproot signature message exactly like Segwit?&lt;br/&gt;&lt;br/&gt;I&amp;#39;m not entirely sure what you mean; you&amp;#39;re saying BIP 341 twice.&lt;br/&gt;&lt;br/&gt;Still, you&amp;#39;re right overall - there is no separate BIP for the signature message function. The reason is that the message function is different for BIP341 and BIP342. BIP 341 defines a basic common message function, which is then built up for BIP 341 key path spending, and for BIP 342 tapscript spending. This common part could have been a separate BIP, but that&amp;#39;d still not be a very clean separation. I&amp;#39;m not very inclined to support changing that at this point, given the state of deployment the BIPs have, but that doesn&amp;#39;t mean the documentation/vectors can&amp;#39;t be improved in the existing documents.&lt;br/&gt;&lt;br/&gt;&amp;gt; 2) The test vectors for Taproot have no documentation and, most importantly, they are not atomic, in the sense that they do not target a specific part of the taproot code but all of it. This may not be a very big problem, but for signature verification it is. Because there are hashes involved, we can&amp;#39;t really debug why a signature message doesn&amp;#39;t pass validation, either it is valid or it is not. BIP 143 in this case is really good, because it provides hash preimages, so it is possible to debug the function and see where something went wrong. Because of this, writing the Segwit signature hash function took a fraction of the time compared to Taproot.&lt;br/&gt;&lt;br/&gt;You&amp;#39;re right. The existing tests are really intended for verifying an implementation against (and for making sure future code changes don&amp;#39;t break anything). They have much higher coverage than the segwit tests had. But they aren&amp;#39;t useful as documentation; the code that generates them (&lt;a href=&#34;https://github.com/bitcoin/bitcoin/blob/v22.0/test/functional/feature_taproot.py#L605L1122&#34;&gt;https://github.com/bitcoin/bitcoin/blob/v22.0/test/functional/feature_taproot.py#L605L1122&lt;/a&gt;) is probably better at that even, but still pretty dense.&lt;br/&gt;&lt;br/&gt;&amp;gt; If this idea is accepted I will be more than happy to write the test cases for Taproot.&lt;br/&gt;&lt;br/&gt;If you&amp;#39;re interested in writing test vectors that are more aimed at helping debugging issues, by all means, do. You&amp;#39;ve already brought up the sighash code as an example. Another idea, primarily aimed at developers of signing code, is test vectors for certain P2TR scriptPubKeys, derived from certain internal keys and script trees. I&amp;#39;m happy to help to integrate such in Bitcoin Core and the BIP(s).&lt;br/&gt;&lt;br/&gt;Thanks!&lt;br/&gt;&lt;br/&gt;Cheers,&lt;br/&gt;&lt;br/&gt;--&lt;br/&gt;Pieter&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/20210916/75d36938/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20210916/75d36938/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-08T00:59:33&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqswv6x70xexrs6eyja5pflpenmg4ya7ygzv56ysryxwh0yn4cy4qrqzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvu9quk6</id>
    
      <title type="html">📅 Original date posted:2020-12-05 📝 Original message:&amp;gt; ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqswv6x70xexrs6eyja5pflpenmg4ya7ygzv56ysryxwh0yn4cy4qrqzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvu9quk6" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs2xwe3x9xvz3hm74sqzjkmy354wrzaarhpr2nlrelhp6x08gr6qtgqa0ws7&#39;&gt;nevent1q…0ws7&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2020-12-05&lt;br/&gt;📝 Original message:&amp;gt; On Wednesday, October 7, 2020 5:21 PM, Rusty Russell via bitcoin-dev bitcoin-dev at lists.linuxfoundation.org wrote:&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; I propose an alternative to length restrictions suggested by&lt;br/&gt;&amp;gt; &amp;gt; Russell in &lt;a href=&#34;https://github.com/bitcoin/bips/pull/945&#34;&gt;https://github.com/bitcoin/bips/pull/945&lt;/a&gt;: use the&lt;br/&gt;&amp;gt; &amp;gt; &lt;a href=&#34;https://gist.github.com/sipa/a9845b37c1b298a7301c33a04090b2eb&#34;&gt;https://gist.github.com/sipa/a9845b37c1b298a7301c33a04090b2eb&lt;/a&gt; variant,&lt;br/&gt;&amp;gt; &amp;gt; unless the first byte is 0.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Hi all,&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; starting a slight side-thread here.&lt;br/&gt;&lt;br/&gt;Another update, and a longer write-up.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Introduction&lt;br/&gt;------------&lt;br/&gt;&lt;br/&gt;Bech32&amp;#39;s checksum algorithm was designed to be strong against substitution&lt;br/&gt;errors, but it also provides some protection against more general classes of&lt;br/&gt;errors. The final constant M that is XOR&amp;#39;ed into the checksum influences that&lt;br/&gt;protection. BIP173 today uses M=1, but it is now known that this has a&lt;br/&gt;weakness: if the final character is a &amp;#34;p&amp;#34;, any number of &amp;#34;q&amp;#34; characters can be&lt;br/&gt;inserted or erased right before it, without invalidating the checksum.&lt;br/&gt;&lt;br/&gt;As it was recognized that other constants do not have this issue, the obvious&lt;br/&gt;question is whether this is the only possible type of weakness, and if not, if&lt;br/&gt;there is an optimal constant to use that minimizes the largest number of&lt;br/&gt;weaknesses.&lt;br/&gt;&lt;br/&gt;Since my last mail I&amp;#39;ve realized that it is actually possible to analyse the&lt;br/&gt;behavior of these final constants under a wide variety of error classes&lt;br/&gt;(substitutions, deletions, insertions, swaps, duplications) programatically.&lt;br/&gt;Greg Maxwell and I have used this to perform an exhaustive analysis of certain&lt;br/&gt;error patterns for all 2^30 possible M values, selected a number of criteria&lt;br/&gt;to optimize for, and conclude that we should use as constant:&lt;br/&gt;&lt;br/&gt;  M = 0x2bc830a3&lt;br/&gt;&lt;br/&gt;The code used to do this analysis, as well as the code used to verify some&lt;br/&gt;expected properties of the final result, and more, can be found on&lt;br/&gt;&lt;a href=&#34;https://gist.github.com/sipa/14c248c288c3880a3b191f978a34508e&#34;&gt;https://gist.github.com/sipa/14c248c288c3880a3b191f978a34508e&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;See results_final.txt to see how this constant compares with the previously&lt;br/&gt;suggested constants 1, 0x3fffffff, and 0x3fefffff.&lt;br/&gt;&lt;br/&gt;Properties&lt;br/&gt;----------&lt;br/&gt;&lt;br/&gt;If we define an error as a deletion of one position, a swap of adjacent&lt;br/&gt;positions, a substitution in a specific position with a random character, an&lt;br/&gt;insertion of one random character in a specific position, or a duplication of&lt;br/&gt;the character in a specific position, then this M constant above gives us the&lt;br/&gt;following properties:&lt;br/&gt;&lt;br/&gt;* For generic HRPs and errors that don&amp;#39;t affect the first 6 data characters,&lt;br/&gt;  or alternatively averaged over all HRPs (see details futher):&lt;br/&gt;  * Always detected:&lt;br/&gt;    * (P) Up to 4 substitution errors (true for any constant).&lt;br/&gt;    * (Q) Any valid code with the new constant, fed without modification to&lt;br/&gt;          software that uses the old constant 1 (true for any constant).&lt;br/&gt;  * Any error pattern has failure to detect probability &amp;lt;= 2^-30:&lt;br/&gt;    * (L) Any number of errors restricted to a single window of up to 4&lt;br/&gt;          characters.&lt;br/&gt;    * (B) Up to two errors restricted to a window of up to 68 characters.&lt;br/&gt;    * (D) Any one error made to a valid code with the new constant, and fed to&lt;br/&gt;          software that uses the old constant 1&lt;br/&gt;  * Most error patterns have probability &amp;lt;= 2^-30:&lt;br/&gt;    * (C) Up to two errors in general: out of 23926796 such error patterns,&lt;br/&gt;          0.0040% have probability 2^-25.&lt;br/&gt;    * (N) Up to three errors restricted to a window of up to 69 characters:&lt;br/&gt;          out of 284708444 such patterns, 0.033% have probability 2^-25.&lt;br/&gt;    * (O) Up to three errors in general: out of 295744442 such error patterns,&lt;br/&gt;          0.034% have probability 2^-25; 0.000065% have probability 2^-20.&lt;br/&gt;    * (G) Up to two errors made to a valid code with the new constant, and fed&lt;br/&gt;          to software that uses the old constant 1: out of 2831622 such error&lt;br/&gt;          patterns, 0.048% have probability 2^-25.&lt;br/&gt;&lt;br/&gt;* Specifically for the bc1 HRP, with the BIP173 length restrictions:&lt;br/&gt;  * Always detected:&lt;br/&gt;    * (R) Up to 4 substitution errors (true for any constant).&lt;br/&gt;    * (A) Up to 3 substitution errors made to a valid code with the new&lt;br/&gt;          constant, and fed to software that uses the old constant 1.&lt;br/&gt;  * Any error pattern has failure to detect probability &amp;lt;= 2^-30:&lt;br/&gt;    * (E) Any one error.&lt;br/&gt;    * (F) Any one error made to a valid code with the new constant, and fed to&lt;br/&gt;          software that uses the old constant 1.&lt;br/&gt;    * (H) Up to two errors restricted to a window of 28 characters.&lt;br/&gt;  * Most error patterns have probability &amp;lt;= 2^-30:&lt;br/&gt;    * (J) Up to two errors in general: out of 455916 such error patterns,&lt;br/&gt;          0.039% have probability 2^-25; 0.0053% have 2^-20.&lt;br/&gt;    * (K) Any number of errors restricted to a window of 4 characters: out of&lt;br/&gt;          5813139 such error patterns, 0.0016% have probability 2^-25.&lt;br/&gt;    * (M) Up to three errors: out of 50713466 such error patterns, 0.078% have&lt;br/&gt;          probability 2^-25; 0.00063% have 2^-20.&lt;br/&gt;    * (I) Up to two errors made to a valid code with the new constant, and fed&lt;br/&gt;          to software that uses the old constant 1: out of 610683 such error&lt;br/&gt;          patterns, 0.092% have probability 2^-25; 0.00049% have probability&lt;br/&gt;          2^-20.&lt;br/&gt;&lt;br/&gt;To give an idea of what these probabilities mean, consider the known BIP173&lt;br/&gt;insertion issue. It admits an error pattern of 1 error (insertion in&lt;br/&gt;penultimate position) that has a failure to detect probability of 2^-10:&lt;br/&gt;it requires the final character to be &amp;#39;p&amp;#39;, and the inserted character to be&lt;br/&gt;&amp;#39;q&amp;#39;. Assuming those are both random, we have a chance of 1 in 32*32 to hit it.&lt;br/&gt;Note that the choice of *what* the error pattern is (whether it&amp;#39;s insertion,&lt;br/&gt;and where) isn&amp;#39;t part of our probabilities: we try to make sure that *every*&lt;br/&gt;pattern behaves well, not just randomly chosen ones, because presumably humans&lt;br/&gt;make some kinds of errors more than others, and we don&amp;#39;t know which ones.&lt;br/&gt;&lt;br/&gt;All the analyzed patterns above are guaranteed to be detected with probability&lt;br/&gt;2^-20 or better (and most are 2^-30). Of course, if we&amp;#39;d search for even&lt;br/&gt;larger classes of errors, say any 4 independent errors of any type, we would&lt;br/&gt;probably discover patterns with worse probabilities, but at that point the&lt;br/&gt;probability of the pattern itself being hit should be taken into account.&lt;br/&gt;&lt;br/&gt;The selection was made based on these same properties:&lt;br/&gt;* Start with the set of all 2^30 constants.&lt;br/&gt;* The generic properties (L), (B), (D), (C), (N), (O), and (G) were selected&lt;br/&gt;  for by rejecting all constants that left any worse error patterns (e.g.&lt;br/&gt;  all codes for which patterns matching (N) existed with failure probability&lt;br/&gt;  above 2^-25 were removed). All these restrictions are as strong as they&lt;br/&gt;  can be: making them over longer strings, wider windows, or more errors with&lt;br/&gt;  the same restrictions removes all remaining constants. This leaves us with&lt;br/&gt;  just 12054 acceptable constants.&lt;br/&gt;* The same was then done for the bc1/BIP173 specific properties (A), (E), (J),&lt;br/&gt;  (F), (H), (K), (M), and (I). This reduces the set further to 79 acceptable&lt;br/&gt;  constants. The full analysis output for all of these can be found in&lt;br/&gt;  output.txt.&lt;br/&gt;* Finally, the constant with the minimal number of worst-probability patterns&lt;br/&gt;  was chosen for the generic property (N). The single constant 0x2bc830a3&lt;br/&gt;  remains.&lt;br/&gt;* This solution and a few of its expected properties were then validated using&lt;br/&gt;  a simple program that makes random errors (see the monte_carlo.py file).&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Technical details&lt;br/&gt;-----------------&lt;br/&gt;&lt;br/&gt;For the purpose of this analysis, define an &amp;#34;error pattern&amp;#34; as a starting&lt;br/&gt;length (of a valid string consisting of otherwise randomly chosen characters)&lt;br/&gt;combined with a sequence of the following (in this order):&lt;br/&gt;* 0 or more deletions of characters at specific positions (without&lt;br/&gt;  constraining what those characters are)&lt;br/&gt;* 0 or more swaps of characters at specific positions with the character&lt;br/&gt;  following it&lt;br/&gt;* 0 or more substitutions of characters at specific positions with a uniformly&lt;br/&gt;  randomly selected character&lt;br/&gt;* 0 or more insertions of uniformly randomly selected characters at specific&lt;br/&gt;  positions&lt;br/&gt;* 0 or more duplications of characters at specific positions (including&lt;br/&gt;  duplications of characters inserted/substituted in the previous steps)&lt;br/&gt;&lt;br/&gt;Examples:&lt;br/&gt;* &amp;#34;Start with a random valid 58 character string, remove the 17th character,&lt;br/&gt;  swap the 11th character with the 12th character, and insert a random&lt;br/&gt;  character in the 24th position&amp;#34; is an error pattern.&lt;br/&gt;* &amp;#34;Replace the 17th through 24th characters in a 78 character string with&lt;br/&gt;  &amp;#39;aardvark&amp;#39;&amp;#34; is not an error pattern, because substituted characters have to&lt;br/&gt;  be random, and can&amp;#39;t be specific values.&lt;br/&gt;&lt;br/&gt;Given such a pattern, assign variable names to every input character, and to&lt;br/&gt;every inserted/substituted character. For example, the pattern &amp;#34;Start with&lt;br/&gt;a 6 character string, delete the 1st character, swap the 2nd and 3rd&lt;br/&gt;character, and insert a random character between those&amp;#34; would be represented&lt;br/&gt;as [v0 v1 v2 v3 v4 v5] and [v1 v3 v6 v2 v4 v5]. Treat these variables as&lt;br/&gt;elements of GF(32), and write out the equations that both the first and second&lt;br/&gt;list have a valid checksum. Due to the fact that BCH codes are linear, this is&lt;br/&gt;just a linear set of equations over GF(32), and we can use Gaussian&lt;br/&gt;elimination to find the size of the solution space. If the input and output&lt;br/&gt;are the same length, we need to subtract the number of solutions for which the&lt;br/&gt;input and output are exactly the same, which is easy to find with another set&lt;br/&gt;of equations. Now compute the ratio of this number divided by (32^numvars /&lt;br/&gt;32^6), where the 32^6 is due to the precondition that the input string is&lt;br/&gt;valid. This gives us the probability of failure, assuming input and output are&lt;br/&gt;random, apart from the known relation between the two, and the fact that both&lt;br/&gt;are valid.&lt;br/&gt;&lt;br/&gt;This technique has an important limitation: it can only reason about randomly-&lt;br/&gt;chosen input strings, and the presence of the HRP and version numbers at the&lt;br/&gt;start violates that assumption. These are not random, and we&amp;#39;re forced to&lt;br/&gt;make one of these concessions:&lt;br/&gt;1) Ignore the problem, and treat the HRP as random. This lets us derive&lt;br/&gt;   properties that hold over all potential HRPs on average, but will thus fail&lt;br/&gt;   to account for the possibility that for a small numbers of potential HRPs&lt;br/&gt;   some error patterns may exist that behave worse. For technical reasons,&lt;br/&gt;   this averaging makes all constants behave identically for error patterns&lt;br/&gt;   that don&amp;#39;t change the length of the string. Given that substitution/swap&lt;br/&gt;   only errors are already dealt with well due to the BCH design this is&lt;br/&gt;   perhaps not too important. One exception is frame-shifting errors (a&lt;br/&gt;   deletion in one place compensated with an insertion in another place).&lt;br/&gt;2) Restrict analysis to error patterns that don&amp;#39;t affect the first 6 actual&lt;br/&gt;   characters. Doing so &amp;#34;masks&amp;#34; the effect of the HRP completely.&lt;br/&gt;3) Do analysis for specific HRPs only, allowing much more accurate statements,&lt;br/&gt;   but HRP-specific ones that may not hold for every HRP.&lt;br/&gt;&lt;br/&gt;Our final selection primarily optimizes for 1) and 2) as those benefit all&lt;br/&gt;potential uses of the encoding, but do optimize for 3) the &amp;#34;bc1&amp;#34; prefix&lt;br/&gt;specifically (and the BIP173 length restriction) as a tiebreaker.&lt;br/&gt;&lt;br/&gt;The code for this can be found under the link above, in const_analysis.cpp.&lt;br/&gt;&lt;br/&gt;Cheers,&lt;br/&gt;&lt;br/&gt;--&lt;br/&gt;Pieter
    </content>
    <updated>2023-06-07T20:27:40&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsfwqrqzze392j0mxqw9krxxmsnasvvkasez8ud5nryufprnallqwszypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvkhvza9</id>
    
      <title type="html">📅 Original date posted:2020-08-19 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsfwqrqzze392j0mxqw9krxxmsnasvvkasez8ud5nryufprnallqwszypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvkhvza9" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsd5flevgdze7k742dm5trzre4hxwphqzamd58sc7rrh96t7a2kyus6n5ue8&#39;&gt;nevent1q…5ue8&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2020-08-19&lt;br/&gt;📝 Original message:On Wednesday, August 12, 2020 11:49 AM, Pieter Wuille &amp;lt;bitcoin-dev at wuille.net&amp;gt; wrote:&lt;br/&gt;&lt;br/&gt;&amp;gt; It is late in the process, but I feel I owe this explanation so that at least the possibility of changing can be discussed with all information.&lt;br/&gt;&lt;br/&gt;As the responses have been pretty positive so far, we&amp;#39;ve gone ahead and made a patch to implement the change to the even tiebreaker: &lt;a href=&#34;https://github.com/sipa/bips/pull/210&#34;&gt;https://github.com/sipa/bips/pull/210&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;If there are no other arguments (against), I&amp;#39;ll PR it to the BIPs repo in a week or so.&lt;br/&gt;&lt;br/&gt;All comments/questions/... still welcome.&lt;br/&gt;&lt;br/&gt;Cheers,&lt;br/&gt;&lt;br/&gt;--&lt;br/&gt;Pieter
    </content>
    <updated>2023-06-07T20:26:21&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs28h8cswt06h8scde2gdk3l8hxvvsh78ad84ny9nqfqfm00l70r7szypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvr3fpzr</id>
    
      <title type="html">📅 Original date posted:2020-08-12 📝 Original message:Hello ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs28h8cswt06h8scde2gdk3l8hxvvsh78ad84ny9nqfqfm00l70r7szypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvr3fpzr" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsf654h4ld72cnr0qyfzt7rk5qyku0y4lekgm7y5q5f0ntut962z9cdm9a5p&#39;&gt;nevent1q…9a5p&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2020-08-12&lt;br/&gt;📝 Original message:Hello all,&lt;br/&gt;&lt;br/&gt;The current BIP340 draft[1] uses two different tiebreakers for conveying the Y coordinate of points: for the R point inside signatures squaredness is used, while for public keys evenness is used. Originally both used squaredness, but it was changed[2] for public keys after observing this results in additional complexity for compatibility with existing systems.&lt;br/&gt;&lt;br/&gt;The reason for choosing squaredness as tiebreaker was performance: in non-batch signature validation, the recomputed R point must be verified to have the correct sign, to guarantee consistency with batch validation. Whether the Y coordinate is square can be computed directly in Jacobian coordinates, while determining evenness requires a conversion to affine coordinates first.&lt;br/&gt;&lt;br/&gt;This argument of course relies on the assumption that determining whether the Y coordinate is square can be done more efficiently than a conversion to affine coordinates. It appears now that this assumption is incorrect, and the justification for picking the squaredness tiebreaking doesn&amp;#39;t really exist. As it comes with other trade-offs (it slows down signing, and is a less conventional choice), it would seem that we should reconsider the option of having the R point use the evenness tiebreaker (like public keys).&lt;br/&gt;&lt;br/&gt;It is late in the process, but I feel I owe this explanation so that at least the possibility of changing can be discussed with all information. On the upside, this was discovered in the context of looking into a cool improvement to libsecp256k1[5], which makes things faster in general, but specifically benefits the evenness variant.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;# 1. What happened?&lt;br/&gt;&lt;br/&gt;Computing squaredness is done through the Jacobi symbol (same inventor, but unrelated to Jacobian coordinates). Computing evenness requires converting points to affine coordinates first, and that needs a modular inverse. The assumption that Jacobi symbols are faster to compute than inverses was based on:&lt;br/&gt;&lt;br/&gt;* A (possibly) mistaken belief about the theory: fast algorithms for both Jacobi symbols and inverses are internally based on variants of the same extended GCD algorithm[3]. Since an inverse needs to extract a full big integer out of the transition steps made in the extgcd algorithm, while the Jacobi symbol just extracts a single bit, it had seemed that any advances applicable to one would be applicable to the other, but inverses would always need additional work on top. It appears however that a class of extgcd algorithms exists (LSB based ones) that cannot be used for Jacobi calculations without losing efficiency. Recent developments[4] and a proposed implementation in libsecp256k1[5] by Peter Dettman show that using this, inverses in some cases can in fact be faster than Jacobi symbols.&lt;br/&gt;&lt;br/&gt;* A broken benchmark. This belief was incorrectly confirmed by a broken benchmark[6] in libsecp256k1 for the libgmp-based Jacobi symbol calculation and modular inverse. The benchmark was repeatedly testing the same constant input, which apparently was around 2.5x faster than the average speed. It is a variable-time algorithm, so a good variation of inputs matters. This mistake had me (and probably others) convinced for years that Jacobi symbols were amazingly fast, while in reality they were always very close in performance to inverses.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;# 2. What is the actual impact of picking evenness instead?&lt;br/&gt;&lt;br/&gt;It is hard to make very generic statements here, as BIP340 will hopefully be used for a long time, and hardware advancements and algorithmic improvements may change the balance. That said, performance on current hardware with optimized algorithms is the best approximation we have.&lt;br/&gt;&lt;br/&gt;The numbers below give the expected performance change from squareness to evenness, for single BIP340 validation, and for signing. Positive numbers mean evenness is faster. Batch validation is not impacted at all.&lt;br/&gt;&lt;br/&gt;In the short term, for block validation in Bitcoin Core, the numbers for master-nogmp are probably the most relevant (as Bitcoin Core uses libsecp256k1 without libgmp, to reduce consensus-critical dependencies). If/when [5] gets merged, safegcd-nogmp will be what matters. On a longer time scale, the gmp numbers may be more relevant, as the Jacobi implementation there is certainly closer to the state of the art.&lt;br/&gt;&lt;br/&gt;* i7-7820HQ: (verify) (sign)&lt;br/&gt;  - master-nogmp: -0.3% &#43;16.1%&lt;br/&gt;  - safegcd-nogmp: &#43;6.7% &#43;17.1%&lt;br/&gt;  - master-gmp: &#43;0.6% &#43;7.7%&lt;br/&gt;  - safegcd-gmp: &#43;1.6% &#43;8.6%&lt;br/&gt;&lt;br/&gt;* Cortex-A53: (verify) (sign)&lt;br/&gt;  - master-nogmp: -0.3% &#43;15.7%&lt;br/&gt;  - safegcd-nogmp: &#43;7.5% &#43;16.9%&lt;br/&gt;  - master-gmp: &#43;0.3% &#43;4.1%&lt;br/&gt;  - safegcd-gmp: 0.0% &#43;3.5%&lt;br/&gt;&lt;br/&gt;* EPYC 7742: (verify) (sign)&lt;br/&gt;  - master-nogmp: -0.3% &#43;16.8%&lt;br/&gt;  - safegcd-nogmp: &#43;8.6% &#43;18.4%&lt;br/&gt;  - master-gmp: 0.0% &#43;7.4%&lt;br/&gt;  - safegcd-gmp: &#43;2.3% &#43;7.8%&lt;br/&gt;&lt;br/&gt;In well optimized cryptographic code speedups as large as a couple percent are difficult to come by, so we would usually consider changes of this magnitude relevant. Note however that while the percentages for signing speed are larger, they are not what is unexpected here. The choice for the square tiebreaker was intended to improve verification speed at the cost of signing speed. As it turns out that it doesn&amp;#39;t actually benefit verification speed, this is a bad trade-off.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;# 3. How big a change is it&lt;br/&gt;&lt;br/&gt;* In the BIP:&lt;br/&gt;  - Changing both invocations of `has_square_y` to `has_even_y`.&lt;br/&gt;  - Changing the `lift_x_square_y` invocation to `lift_x_even_y`.&lt;br/&gt;  - Applying the same change to the test vector generation code, and the resulting test vectors.&lt;br/&gt;* In the libsecp256k1:&lt;br/&gt;  - An 8-line patch to the proposed BIP340 implementation[7]: see [8]&lt;br/&gt;* In Bitcoin Core:&lt;br/&gt;  - Similarly small changes to the Python test reimplementation[9]&lt;br/&gt;* Duplicating these changes in other draft implementations that may already exist.&lt;br/&gt;* Review for all the above.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;# 4. Conclusion&lt;br/&gt;&lt;br/&gt;We discovered that the justification for using squaredness tiebreakers in BIP340 is based on a misunderstanding, and recent developments show that it may in fact be a somewhat worse choice than the alternative. It is a relatively simple change to address this, but that has be weighed against the impact of changing the standard at this stage.&lt;br/&gt;&lt;br/&gt;Thoughts?&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;# 5. References&lt;br/&gt;&lt;br/&gt;  [1] &lt;a href=&#34;https://github.com/bitcoin/bips/blob/master/bip-0340.mediawiki#design&#34;&gt;https://github.com/bitcoin/bips/blob/master/bip-0340.mediawiki#design&lt;/a&gt;&lt;br/&gt;  [2] &lt;a href=&#34;https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2020-February/017639.html&#34;&gt;https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2020-February/017639.html&lt;/a&gt;&lt;br/&gt;  [3] &lt;a href=&#34;https://en.wikipedia.org/wiki/Extended_Euclidean_algorithm&#34;&gt;https://en.wikipedia.org/wiki/Extended_Euclidean_algorithm&lt;/a&gt;&lt;br/&gt;  [4] &lt;a href=&#34;https://gcd.cr.yp.to/safegcd-20190413.pdf&#34;&gt;https://gcd.cr.yp.to/safegcd-20190413.pdf&lt;/a&gt;&lt;br/&gt;  [5] &lt;a href=&#34;https://github.com/bitcoin-core/secp256k1/pull/767&#34;&gt;https://github.com/bitcoin-core/secp256k1/pull/767&lt;/a&gt;&lt;br/&gt;  [6] &lt;a href=&#34;https://github.com/bitcoin-core/secp256k1/pull/797&#34;&gt;https://github.com/bitcoin-core/secp256k1/pull/797&lt;/a&gt;&lt;br/&gt;  [7] &lt;a href=&#34;https://github.com/bitcoin-core/secp256k1/pull/558&#34;&gt;https://github.com/bitcoin-core/secp256k1/pull/558&lt;/a&gt;&lt;br/&gt;  [8] &lt;a href=&#34;https://github.com/sipa/secp256k1/commit/822311ca230a48d2c373f3e48b91b2a59e1371d6&#34;&gt;https://github.com/sipa/secp256k1/commit/822311ca230a48d2c373f3e48b91b2a59e1371d6&lt;/a&gt;&lt;br/&gt;  [9] &lt;a href=&#34;https://github.com/bitcoin/bitcoin/pull/17977&#34;&gt;https://github.com/bitcoin/bitcoin/pull/17977&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Cheers,&lt;br/&gt;&lt;br/&gt;--&lt;br/&gt;Pieter
    </content>
    <updated>2023-06-07T20:26:19&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsrnne05yv8jns8wu40mkrppc30ws8eccxvuv2w9re3m4pjdj0kcygzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvavxveu</id>
    
      <title type="html">📅 Original date posted:2020-03-03 📝 Original message:Hi ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsrnne05yv8jns8wu40mkrppc30ws8eccxvuv2w9re3m4pjdj0kcygzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvavxveu" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsdc4ldq3kaz7lmmc453tjujw6pjleneduw3534u2p76c9l5878yxgr82ja7&#39;&gt;nevent1q…2ja7&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2020-03-03&lt;br/&gt;📝 Original message:Hi all,&lt;br/&gt;&lt;br/&gt;Given the recent activity and attention [1,2] around anti-covert channel&lt;br/&gt;signing schemes, I decided to create this overview of the various techniques&lt;br/&gt;that I know of, their trade-offs, and the various issues they protect against.&lt;br/&gt;Most of this is based on various schemes by a number of authors, and credit&lt;br/&gt;goes to them. I&amp;#39;m putting this together into something hopefully more&lt;br/&gt;comprehensive, but mistakes and omissions in this writeup are likely mine.&lt;br/&gt;&lt;br/&gt;I don&amp;#39;t believe we have security proofs for any of the schemes, or for any of&lt;br/&gt;the claims I make about the mitigation techniques below. I hope that having&lt;br/&gt;all properties written up in one place makes it easier to eventually get those.&lt;br/&gt;&lt;br/&gt;1) Security model&lt;br/&gt;-----------------&lt;br/&gt;&lt;br/&gt;When talking about signing with covert channels, we consider 3 parties:&lt;br/&gt;* HW, the hardware wallet (or other offline signing device) with secret data&lt;br/&gt;  (a private key, or a seed from which the private key is derived).&lt;br/&gt;* SW, the software wallet (or whatever communicates with HW and the network).&lt;br/&gt;* OO, the outside observer who is trying to learn information about HW&amp;#39;s&lt;br/&gt;  secret data.&lt;br/&gt;&lt;br/&gt;We consider two distinct attack models:&lt;br/&gt;* MSW, &amp;#34;malicious software wallet&amp;#34;, but with honest HW. OO and SW are the&lt;br/&gt;  same party here, so this models the usual scenarios hardware wallets are&lt;br/&gt;  designed for, including side-channel attacks if those are considered to be&lt;br/&gt;  part of the threat model.&lt;br/&gt;* MHW, &amp;#34;malicious hardware wallet&amp;#34;, but with honest SW and no malicious party&lt;br/&gt;  being able to communicate with HW directly. OO and HW may have shared secret&lt;br/&gt;  information that SW (or anyone else) is unaware of. SW&amp;#39;s job is trying to&lt;br/&gt;  prevent HW from using this to leak any information about its secret.&lt;br/&gt;&lt;br/&gt;When both the HW and the SW are compromised, clearly no security is possible,&lt;br/&gt;as all entities are controlled by the same party in that case.&lt;br/&gt;&lt;br/&gt;In case HW uses a deterministic algorithm, it is possible to protect against&lt;br/&gt;the MHW case by spot checking HW&amp;#39;s behavior, by using an externally known&lt;br/&gt;secret/seed. However, we&amp;#39;d like to have better than just spot checking&lt;br/&gt;security, and for protection against side-channel attacks we may want&lt;br/&gt;something that keeps working even when randomness is used by HW.&lt;br/&gt;&lt;br/&gt;To keep the scope limited, we assume SW has no secret key of their own. This&lt;br/&gt;rules out solutions like using 2-of-2 MuSig between HW and SW, which work, but&lt;br/&gt;come with their own complications (like needing secure storage for that&lt;br/&gt;secret).&lt;br/&gt;&lt;br/&gt;2) Issues and solutions&lt;br/&gt;-----------------------&lt;br/&gt;&lt;br/&gt;In this section I will go over the various issues that exist in the MHW and MSW&lt;br/&gt;models, the known mitigation techniques, and the resulting schemes.&lt;br/&gt;&lt;br/&gt;I&amp;#39;m assuming a Schnorr-like signature protocol, though everything should apply&lt;br/&gt;equally to ECDSA, and to a lesser extent probably also to multisignature&lt;br/&gt;schemes. These variable names are used:&lt;br/&gt;* H is a hash function.&lt;br/&gt;* G is the curve generator.&lt;br/&gt;* m is the message to be signed, known to and agreed upon by SW and HW.&lt;br/&gt;* d is HW&amp;#39;s secret key, with corresponding public key Q=dG.&lt;br/&gt;* k is the secret nonce k, with corresponding public nonce R=kG.&lt;br/&gt;&lt;br/&gt;The simplest protocol is naive Schnorr with deterministic nonce generation,&lt;br/&gt;where SW only verifies that a signature created by HW is valid:&lt;br/&gt;&lt;br/&gt;[Scheme 1: deterministic nonce, no tweak]&lt;br/&gt;* SW requests a signature by sending (Q,m) to HW.&lt;br/&gt;* HW computes k=H(d,m), R=kG, s=k&#43;H(R,Q,m)d, and sends (R,s) to SW.&lt;br/&gt;* SW verifies sG=R&#43;H(R,Q,m)Q, and publishes sig (R,s) in case of success.&lt;br/&gt;&lt;br/&gt;2.a) Predictable k value&lt;br/&gt;&lt;br/&gt;There is a simple attack against Scheme 1 that will leak the entire private&lt;br/&gt;key undetectably using a single signature, under MHW. Assume HW and OO both&lt;br/&gt;have access to a shared secret a, unknown to anyone else. HW computes&lt;br/&gt;k=H(a,Q,m) instead, which SW cannot distinguish from the honest k=H(d,m) as it&lt;br/&gt;knows neither a or d. OO can compute k using the same formula, and thus&lt;br/&gt;recover the private key as d=(s-k)/H(R,Q,m).&lt;br/&gt;&lt;br/&gt;The general strategy to avoid this is by letting SW provide entropy that is&lt;br/&gt;included into the nonce computation. A very naive (and ineffective) way of&lt;br/&gt;doing that would be:&lt;br/&gt;* SW generates random t, and requests a signature by sending (Q,m,t) to HW.&lt;br/&gt;* HW computes k0=H(d,m,t), R0=k0G, k=k0&#43;t, R=kG, s=k&#43;H(R,Q,m)d, and sends&lt;br/&gt;  (R0,R,s) to SW.&lt;br/&gt;* SW verifies sG=R&#43;H(R,Q,m)Q, R=R0&#43;tG, and publishes sig (R,s) if all is good.&lt;br/&gt;&lt;br/&gt;This does not help as HW can still choose k directly, and retroactively&lt;br/&gt;compute R0 as R-tG, satsifying SW&amp;#39;s requirements. To address that, there are&lt;br/&gt;two options:&lt;br/&gt;* Turning R into a binding commitment to R0 and t (see Scheme 2).&lt;br/&gt;* Only revealing t after HW has revealed their R0 (see Scheme 3).&lt;br/&gt;&lt;br/&gt;The first approach is based on making R a commitment to R0 and t using&lt;br/&gt;R=R0&#43;H(R0,t)G. When applied to public keys this is known as pay-to-contract&lt;br/&gt;(and is the basis for Taproot); when applied to the R point in signatures it&amp;#39;s&lt;br/&gt;known as sign-to-contract [3]. These are generally useful approaches to make&lt;br/&gt;public keys and signatures commit to/timestamp external data, but using this&lt;br/&gt;to protect against covert channels in signatures was first discussed by Greg&lt;br/&gt;Maxwell [4]:&lt;br/&gt;&lt;br/&gt;[Scheme 2: deterministic nonce, S2C tweak]&lt;br/&gt;* SW generates random t, and requests a signature by sending (Q,m,t) to HW.&lt;br/&gt;* HW computes k0=H(d,m,t), R0=k0G, k=k0&#43;H(R0,t), R=kG,&lt;br/&gt;  s=k&#43;H(R,Q,m)d, and sends (R0,R,s) to SW.&lt;br/&gt;* SW verifies sG=R&#43;H(R,Q,m)Q, R=R0&#43;H(R0,t)G, and publishes sig (R,s) if all&lt;br/&gt;  is good.&lt;br/&gt;&lt;br/&gt;The second approach is adding a round, and only revealing the tweak t after HW&lt;br/&gt;has revealed their R0:&lt;br/&gt;&lt;br/&gt;[Scheme 3: deterministic nonce, tweak revealed after nonce]&lt;br/&gt;* SW requests a signature by sending (Q,m) to HW.&lt;br/&gt;* HW computes k0=H(d,m), R0=k0G, and sends R0 to SW.&lt;br/&gt;* SW generates a random t, and sends it to HW.&lt;br/&gt;* HW computes k=k0&#43;t, R=kG, s=k&#43;H(R,Q,m)d, and sends (R,s) to SW.&lt;br/&gt;* SW verifies sG=R&#43;H(R,Q,m)Q, R=R0&#43;tG, and publishes (R,s) if all is good.&lt;br/&gt;&lt;br/&gt;2.b) Replay attacks&lt;br/&gt;&lt;br/&gt;Scheme 3 introduces another problem however, this time under MSW. SW can ask&lt;br/&gt;HW to sign the same message twice, but then pick distinct values for t (t and&lt;br/&gt;t&amp;#39;). The resulting R points will be R=(k0&#43;t)G and R&amp;#39;=(k0&#43;t&amp;#39;)G, and the s&lt;br/&gt;values will be s=k0&#43;t&#43;H(R,Q,m)d and s&amp;#39;=k0&#43;t&amp;#39;&#43;H(R&amp;#39;,Q,m)d. This allows SW to&lt;br/&gt;compute d=(s&amp;#39;-t&amp;#39;-s&#43;t)/(H(R&amp;#39;,Q,m)-H(R,Q,m)). A similar problem would also exist&lt;br/&gt;in Scheme 2 if t wasn&amp;#39;t included in the formula for k0.&lt;br/&gt;&lt;br/&gt;The problem is that SW is allowed to change their tweak while the nonce&lt;br/&gt;only undergoes a linear function known to SW. There are again two ways to&lt;br/&gt;address this problem:&lt;br/&gt;* Making k0 generation non-repeating by including a counter or randomness&lt;br/&gt;  in it (Scheme 4).&lt;br/&gt;* Making SW commit to their tweak before revealing it as well (Scheme 5).&lt;br/&gt;&lt;br/&gt;[Scheme 4: counter/random nonce, tweak revealed after nonce]&lt;br/&gt;* SW requests a signature by sending (Q,m) to HW.&lt;br/&gt;* HW uses a global counter c, or fresh randomness b, and computes k0=H(d,m,c)&lt;br/&gt;  or k0=H(d,m,b), R0=k0G, and sends R0 to SW.&lt;br/&gt;* SW generates a random t, and sends it to HW.&lt;br/&gt;* HW computes k=k0&#43;t, R=kG, s=k&#43;H(R,Q,m)d, and sends (R,s) to SW.&lt;br/&gt;* SW verifies sG=R&#43;H(R,Q,m)Q, R=R0&#43;tH, and publishes (R,s) if all is good.&lt;br/&gt;&lt;br/&gt;A variant of Scheme 4, but with multiplicative tweak rather than additive,&lt;br/&gt;and only revealing H(R0) rather than R0 immediately, was suggested by Sergio&lt;br/&gt;Demian Lerner in [5].&lt;br/&gt;&lt;br/&gt;[Scheme 5: deterministic nonce, precommited tweak revealed after nonce]&lt;br/&gt;* SW generates a random t, computes h=H(t), and requests a signature by&lt;br/&gt;  sending (Q,m,h) to HW.&lt;br/&gt;* HW computes k0=H(d,m,h), R0=k0G, and sends R0 to SW.&lt;br/&gt;* SW sends t to HW.&lt;br/&gt;* HW verifies h=H(t), and if so, computes k=k0&#43;t, R=kG, s=k&#43;H(R,Q,m)d, and&lt;br/&gt;  sends (R,s) to SW.&lt;br/&gt;* SW verifies sG=R&#43;H(R,Q,m)Q, R=R0&#43;tG, and publishes (R,s) if all is good.&lt;br/&gt;&lt;br/&gt;Scheme 5 is the one suggested by Stepan Snigirev in [2,6]. A variant with&lt;br/&gt;S2C tweaking instead of additive tweaked was suggested by Andrew Poelstra&lt;br/&gt;in his talk [7], with transcript by Bryan Bishop in [8].&lt;br/&gt;&lt;br/&gt;2.c) k0 grinding&lt;br/&gt;&lt;br/&gt;So far Schemes 2, 4, and 5 protect against predictable k values and replay&lt;br/&gt;attacks. Predictable k values are however not the only way MWH can leak&lt;br/&gt;secrets.&lt;br/&gt;&lt;br/&gt;If we imagine HW has significant computational power, in Scheme 2 it can try&lt;br/&gt;many different k0 values (by deviating from k0=H(d,m,t)), and observe what the&lt;br/&gt;resulting (R,s) signature will be. For example, by iterating on average 256&lt;br/&gt;times, it can choose 8 bits in (R,s) that convey information about k, d, or&lt;br/&gt;whatever seed or master key they are derived from. Using forward error&lt;br/&gt;correction (FEC) schemes, this channel of a few bits per signature may be&lt;br/&gt;enough to leak an entire seed over enough signatures. Using a shared secret a&lt;br/&gt;between HW and OO those bits can again be made undetectable to anyone else.&lt;br/&gt;&lt;br/&gt;Schemes 4 and 5 are not vulnerable to this problem, as they force HW to commit&lt;br/&gt;to its R0 before knowing the resulting R. One might think that Scheme 4 merely&lt;br/&gt;shifts this problem to MSW, where SW can grind t to make R biased in a similar&lt;br/&gt;way. We assumed that SW does not have access to any secrets however, so this&lt;br/&gt;is harmless.&lt;br/&gt;&lt;br/&gt;2.d) Statefulness&lt;br/&gt;&lt;br/&gt;We&amp;#39;re left with Schemes 4 and 5 that protect against all listed issues. Both&lt;br/&gt;need two interaction rounds, with state that needs to be kept by HW between&lt;br/&gt;the rounds (the k0 value). While not a problem in theory, this may be hard to&lt;br/&gt;implement safely in simple APIs.&lt;br/&gt;&lt;br/&gt;One possibility is sticking with our &amp;#34;best one-round&amp;#34; Scheme 2, and accepting&lt;br/&gt;that that implies the k0 grinding vulnerability.&lt;br/&gt;&lt;br/&gt;There is another possibility, namely splitting Scheme 5 into two independent&lt;br/&gt;interactions with HW, where no memory between them is needed on the HW side:&lt;br/&gt;&lt;br/&gt;[Scheme 6: deterministic nonce, precommitted tweak revealed separately]&lt;br/&gt;First interaction:&lt;br/&gt;* SW generates a random t, computes h=H(t), and requests the R0 point that HW&lt;br/&gt;  would use by sending (Q,m,h) to HW.&lt;br/&gt;* HW computes k0=H(d,m,h), R0=k0G, and sends R0 to SW.&lt;br/&gt;Second interaction:&lt;br/&gt;* SW requests a signature by sending (Q,m,t) to HW&lt;br/&gt;* HW computes k0=H(d,m,H(t)), k=k0&#43;t, R0=R0k, R=kG, s=k&#43;H(R,Q,m)d, and sends&lt;br/&gt;  (R0,R,s) to SW.&lt;br/&gt;* SW verifies that R0 matches the earlier R0 it received, and that&lt;br/&gt;  sG=R&#43;H(R,Q,m)Q, R=R0&#43;tG, and publishes (R,s) if all is good.&lt;br/&gt;&lt;br/&gt;A variant of Scheme 6, with S2C tweaking instead of additive tweaking, is what&lt;br/&gt;is being worked on by Jonas Nick [9] and Marko Bencun [10] for the&lt;br/&gt;libsecp256k1 library.&lt;br/&gt;&lt;br/&gt;The same technique cannot be applied to Scheme 4, as HW inherently needs state&lt;br/&gt;to keep the counter c, or to remember the randomness b between interactions&lt;br/&gt;there.&lt;br/&gt;&lt;br/&gt;2.e) Failure bias&lt;br/&gt;&lt;br/&gt;There is yet another, and even weaker, leak that is available in MHW: whenever&lt;br/&gt;HW learns what the eventual signature (R,s) will be, it could pretend to fail&lt;br/&gt;and go offline, or return some kind of error. In theory, this is enough to&lt;br/&gt;introduce a similar bias, though it would come at possibly enormous failure&lt;br/&gt;rates. If HW is allowed to fail 255 times out of 256, it can introduce an&lt;br/&gt;8-bit bias, and employ similar techniques (FEC and shared HW/OO secret).&lt;br/&gt;The obvious solution is showing a big warning to the user whenever any kind of&lt;br/&gt;failure occurs (including device going offline, or returning invalid&lt;br/&gt;responses) that the device is failing, and that if this happens frequently, it&lt;br/&gt;should be treated as malicious.&lt;br/&gt;&lt;br/&gt;Interestingly, Scheme 6 can be adapted to reduce this (already very weak)&lt;br/&gt;channel further. The observation is that HW cannot predict during the first&lt;br/&gt;interaction what (R,s) is going to be, as t is not known. This means it can&lt;br/&gt;only fail during the second interaction when the result is already committed&lt;br/&gt;to. Thus, if failure occurs during the second interaction, SW can simply&lt;br/&gt;retry it with the same t value. If that succeeds, either a glitch occurred and&lt;br/&gt;was safely retried, or the device&amp;#39;s attempt to bias was prevented. If the&lt;br/&gt;failure persists, the user should still be warned - as restarting with a&lt;br/&gt;different k would reintroduce the possibility for bias.&lt;br/&gt;&lt;br/&gt;2.f) Side-channel attacks&lt;br/&gt;&lt;br/&gt;As a last consideration, let&amp;#39;s see if these schemes have an impact on&lt;br/&gt;potential resilience against side-channel attacks. I say potential, because&lt;br/&gt;these classes of attacks are in general hard to protect against and model,&lt;br/&gt;as they depend on implementation details and hardware protections. Still,&lt;br/&gt;there are some general observations possible.&lt;br/&gt;&lt;br/&gt;A significant amount of time in HW is likely spent on the EC multiplications&lt;br/&gt;to obtain R0 and R from k0 and k. As s=k&#43;H(R,Q,m)d, an variation of the replay&lt;br/&gt;attack is possible here. In schemes with deterministic nonces, SW can ask for&lt;br/&gt;the same signature twice, but use a fault injection to hopefully (only) cause&lt;br/&gt;an error in R, R&amp;#39;. This would reveal (R,s) and (R&amp;#39;,s&amp;#39;) to SW, where s&amp;#39; is&lt;br/&gt;k&#43;H(R&amp;#39;,Q,m)d, which would let them compute d=(s&amp;#39;-s)/(H(R&amp;#39;,Q,m)-H(R,q,m)).&lt;br/&gt;There is an easy solution against this, namely verifying the final signature&lt;br/&gt;(R,s) in HW before sending it to SW, as almost certainly the result of such&lt;br/&gt;a fault would not result in a valid signature. This comes at an extra&lt;br/&gt;computational cost, though.&lt;br/&gt;&lt;br/&gt;For other side-channel attacks like different power analysis, research [11]&lt;br/&gt;shows that introducing fresh randomness in the right place may be helpful.&lt;br/&gt;This approach is called &amp;#34;synthetic nonces&amp;#34; [12]. Unfortunately usage of these&lt;br/&gt;rules out the deterministic approach from Scheme 6. A variant of Scheme 5&lt;br/&gt;with fresh randomness in the k0 computation can be used, though.&lt;br/&gt;&lt;br/&gt;3) Summary&lt;br/&gt;----------&lt;br/&gt;&lt;br/&gt;Six different issues of various levels of severity were discussed:&lt;br/&gt;  (a) Predictable k: (MHW) a single signature leaks the entire private key.&lt;br/&gt;  (b) Replay attacks: (MSW) a single signature leaks the entire private key.&lt;br/&gt;  (c) k0 grinding: (MHW) the HW can leak n bits with 2^n work.&lt;br/&gt;  (d) Statefulness: HW has to correctly maintain state, complicating things.&lt;br/&gt;  (e) Failure bias: (MHW) a selective failure rate of (2^n-1)/2^n can be used&lt;br/&gt;      to leak n bits of secret per signature.&lt;br/&gt;  (f) Side-channel attacks: (MSW) physical access to HW can help extracting&lt;br/&gt;      secrets.&lt;br/&gt;&lt;br/&gt;It seems any reasonable solution should at least protect against (a), (b), and&lt;br/&gt;(c), but it seems no solution can be optimal for all of (d), (e), and (f) too.&lt;br/&gt;&lt;br/&gt;If statelessness and protection against failure bias are prioritized, Scheme 6&lt;br/&gt;seems best. Its additive tweaking can be replaced with S2C (or multiplicative)&lt;br/&gt;tweaking too. S2C in particular may be desirable to unify with support for&lt;br/&gt;S2C-based timestamping.&lt;br/&gt;&lt;br/&gt;If resistance against side-channels is prioritized, solutions with synthetic&lt;br/&gt;nonces seem best; either Scheme 4, or Scheme 5 with randomness added to the&lt;br/&gt;k0 computation. Again, any tweaking approach can be chosen.&lt;br/&gt;&lt;br/&gt;If the 2-round approaches for Schemes 4, 5, and 6 are really unacceptable,&lt;br/&gt;Scheme 2 (with S2C tweaking) could be used, but in that case protection&lt;br/&gt;against k0 grinding is reduced to spot checking. If randomness is additionally&lt;br/&gt;added for side-channel resistance, the ability to spot check disappears&lt;br/&gt;entirely.&lt;br/&gt;&lt;br/&gt;4) References&lt;br/&gt;-------------&lt;br/&gt;&lt;br/&gt;  [1] &lt;a href=&#34;https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2020-February/017649.html&#34;&gt;https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2020-February/017649.html&lt;/a&gt;&lt;br/&gt;  [2] &lt;a href=&#34;https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2020-February/017655.html&#34;&gt;https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2020-February/017655.html&lt;/a&gt;&lt;br/&gt;  [3] &lt;a href=&#34;https://blog.eternitywall.com/2018/04/13/sign-to-contract/&#34;&gt;https://blog.eternitywall.com/2018/04/13/sign-to-contract/&lt;/a&gt;&lt;br/&gt;  [4] &lt;a href=&#34;https://bitcointalk.org/index.php?topic=893898.msg9861102#msg9861102&#34;&gt;https://bitcointalk.org/index.php?topic=893898.msg9861102#msg9861102&lt;/a&gt;&lt;br/&gt;  [5] &lt;a href=&#34;https://bitcointalk.org/index.php?topic=893898.msg9841502#msg9841502&#34;&gt;https://bitcointalk.org/index.php?topic=893898.msg9841502#msg9841502&lt;/a&gt;&lt;br/&gt;  [6] &lt;a href=&#34;https://medium.com/cryptoadvance/hardware-wallets-can-be-hacked-but-this-is-fine-a6156bbd199&#34;&gt;https://medium.com/cryptoadvance/hardware-wallets-can-be-hacked-but-this-is-fine-a6156bbd199&lt;/a&gt;&lt;br/&gt;  [7] &lt;a href=&#34;https://youtu.be/j9Wvz7zI_Ac?t=640&#34;&gt;https://youtu.be/j9Wvz7zI_Ac?t=640&lt;/a&gt;&lt;br/&gt;  [8] &lt;a href=&#34;https://diyhpl.us/wiki/transcripts/sf-bitcoin-meetup/2019-02-04-threshold-signatures-and-accountability/&#34;&gt;https://diyhpl.us/wiki/transcripts/sf-bitcoin-meetup/2019-02-04-threshold-signatures-and-accountability/&lt;/a&gt;&lt;br/&gt;  [9] &lt;a href=&#34;https://github.com/bitcoin-core/secp256k1/pull/590&#34;&gt;https://github.com/bitcoin-core/secp256k1/pull/590&lt;/a&gt;&lt;br/&gt;  [10] &lt;a href=&#34;https://github.com/bitcoin-core/secp256k1/pull/669&#34;&gt;https://github.com/bitcoin-core/secp256k1/pull/669&lt;/a&gt;&lt;br/&gt;  [11] &lt;a href=&#34;https://eprint.iacr.org/2017/985&#34;&gt;https://eprint.iacr.org/2017/985&lt;/a&gt;&lt;br/&gt;  [12] &lt;a href=&#34;https://moderncrypto.org/mail-archive/curves/2017/000925.html&#34;&gt;https://moderncrypto.org/mail-archive/curves/2017/000925.html&lt;/a&gt;
    </content>
    <updated>2023-06-07T20:23:11&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsyhx8jrkclqwckgllyrk7v29qm0lawtcpefak5r4xgdwmlcytagpszypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dv229sx4</id>
    
      <title type="html">📅 Original date posted:2019-08-19 📝 Original message:Hi ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsyhx8jrkclqwckgllyrk7v29qm0lawtcpefak5r4xgdwmlcytagpszypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dv229sx4" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsqk89t4r8jkgq6gvmh67l9edmxnfzq525lzj5s3r4rcmmpy6t9qmc4ajykw&#39;&gt;nevent1q…jykw&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2019-08-19&lt;br/&gt;📝 Original message:Hi all,&lt;br/&gt;&lt;br/&gt;Miniscript is a project we&amp;#39;ve been working on for the past year or so,&lt;br/&gt;and is now at a stage where I&amp;#39;d like to get it some more attention. It is joint&lt;br/&gt;work with Andrew Poelstra and Sanket Sanjalkar.&lt;br/&gt;&lt;br/&gt;It&amp;#39;s a language for writing (a subset of) Bitcoin Scripts in a structured way,&lt;br/&gt;enabling analysis, composition, generic signing and more.&lt;br/&gt;&lt;br/&gt;For example the script&lt;br/&gt;&lt;br/&gt;  &amp;lt;A&amp;gt; OP_CHECKSIG OP_IFDUP OP_NOTIF OP_DUP OP_HASH160 &amp;lt;hash160(B)&amp;gt;&lt;br/&gt;  OP_EQUALVERIFY OP_CHECKSIGVERIFY &amp;lt;144&amp;gt; OP_CSV OP_ENDIF&lt;br/&gt;&lt;br/&gt;in Miniscript notation would be&lt;br/&gt;&lt;br/&gt;  or_d(c:pk(A),and_v(vc:pk_h(B),older(144)))&lt;br/&gt;&lt;br/&gt;making it human (engineer?) readable that this is a script that permits A to&lt;br/&gt;take the coins at any time, and B after 1 day. A full description of the&lt;br/&gt;language can be found on the project website &lt;a href=&#34;http://bitcoin.sipa.be/miniscript&#34;&gt;http://bitcoin.sipa.be/miniscript&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Using Miniscript it&amp;#39;s possible to:&lt;br/&gt;* Write descriptors for addresses for scripts that implement things more&lt;br/&gt;  complicated than multisig.&lt;br/&gt;* Make software that can deal with composition of policies (e.g. have funds&lt;br/&gt;  in a 2-of-3 setup where one of the 3 &amp;#34;keys&amp;#34; is itself a policy that involves&lt;br/&gt;  perhaps multiple devices and timeouts).&lt;br/&gt;* Compile complex spending policies to efficient scripts.&lt;br/&gt;* Figure out under what necessary and/or sufficient conditions a script can be&lt;br/&gt;  satisfied.&lt;br/&gt;* Given signatures for a sufficient set of keys (and hash preimages, if needed),&lt;br/&gt;  generically construct a witness for arbitrary scripts, without metadata&lt;br/&gt;  apart from the script itself and public keys appearing in it. This means&lt;br/&gt;  generic PSBT signers are possible for this class of scripts.&lt;br/&gt;* Compute the bounds on the size of a witness for arbitrary scripts.&lt;br/&gt;* Perform static analysis to see if any of Script&amp;#39;s resource limitations&lt;br/&gt;  (ops limit, stack size, ...) might interfere with the ability to spend.&lt;br/&gt;* Who knows what else...&lt;br/&gt;&lt;br/&gt;We have two implementations:&lt;br/&gt;* a C&#43;&#43; one (&lt;a href=&#34;https://github.com/sipa/miniscript&#34;&gt;https://github.com/sipa/miniscript&lt;/a&gt;)&lt;br/&gt;* a Rust library (&lt;a href=&#34;https://github.com/apoelstra/rust-miniscript&#34;&gt;https://github.com/apoelstra/rust-miniscript&lt;/a&gt;).&lt;br/&gt;&lt;br/&gt;The implementations are a work in progress, but through large scale randomized&lt;br/&gt;tests we have confidence that the language design and associated witnesses are&lt;br/&gt;compatible with the existing consensus and standardness rules.&lt;br/&gt;&lt;br/&gt;To be clear: Miniscript is designed for Bitcoin as it exists today (primarily&lt;br/&gt;P2WSH), and does not need any consensus changes. That said, we plan to extend&lt;br/&gt;the design to support future script changes Bitcoin may include.&lt;br/&gt;&lt;br/&gt;Cheers,&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter
    </content>
    <updated>2023-06-07T20:20:23&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqstkg679hwx3txrkmk8hax6l27hh28ydvg433u8c52crzuu38dpjmszypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvauf4uy</id>
    
      <title type="html">📅 Original date posted:2019-05-26 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqstkg679hwx3txrkmk8hax6l27hh28ydvg433u8c52crzuu38dpjmszypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvauf4uy" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsfqxpn9ewxkqlea88yn2vhjkmm50dtm85yzmzjh78plr62yjemr7c6yuvpe&#39;&gt;nevent1q…uvpe&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2019-05-26&lt;br/&gt;📝 Original message:On Sun, May 26, 2019, 07:07 Aymeric Vitte 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 realized recently that my segwit implementation was not correct,&lt;br/&gt;&amp;gt; basically some time ago, wrongly reading the specs (and misleaded by&lt;br/&gt;&amp;gt; what follows), I thought that scriptsig would go into witness data as it&lt;br/&gt;&amp;gt; was, but that&amp;#39;s not the case, op_pushdata is replaced by varlen&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Now reading correctly the specs, they seem to be not totally correct,&lt;br/&gt;&amp;gt; then the first question is: why OP_0 is 00 in witness data and not 0100?&lt;br/&gt;&amp;gt; Does this apply to other op_codes? This does not look logical at all&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; The second question is: why for non segwit inputs there is a 00 length&lt;br/&gt;&amp;gt; in segwit data, what is the rational for that? It should just be nothing&lt;br/&gt;&amp;gt; since you don&amp;#39;t need this to reconciliate things&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;This is a question that belongs on &lt;a href=&#34;https://bitcoin.stackexchange.com&#34;&gt;https://bitcoin.stackexchange.com&lt;/a&gt;, not&lt;br/&gt;this list.&lt;br/&gt;&lt;br/&gt;Cheers,&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter&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/20190526/7df58353/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20190526/7df58353/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T20:18:23&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsyyc6l927lrhd99ss8zl5guhwhe8x4zy4d4mmmtpqf5w6qnx4350gzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvruhhc2</id>
    
      <title type="html">📅 Original date posted:2019-05-08 📝 Original message:Thanks ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsyyc6l927lrhd99ss8zl5guhwhe8x4zy4d4mmmtpqf5w6qnx4350gzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvruhhc2" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsz5swaxmavpywjd6mkwrrncy9pultkdmlzc65szpckqazn6d5h87q99kemf&#39;&gt;nevent1q…kemf&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2019-05-08&lt;br/&gt;📝 Original message:Thanks for the comments so far!&lt;br/&gt;&lt;br/&gt;I&amp;#39;m going to respond to some of the comments here. Things which I plan&lt;br/&gt;to address with changes in the BIP I&amp;#39;ll leave for later.&lt;br/&gt;&lt;br/&gt;On Mon, 6 May 2019 at 13:17, Luke Dashjr &amp;lt;luke at dashjr.org&amp;gt; wrote:&lt;br/&gt;&amp;gt; Tagged hashes put the tagging at the start of the hash input. This means&lt;br/&gt;&amp;gt; implementations can pre-cache SHA2 states, but it also means they can&amp;#39;t reuse&lt;br/&gt;&amp;gt; states to produce data for different contexts. (I&amp;#39;m not sure if there is a&lt;br/&gt;&amp;gt; use for doing so... but maybe as part of further hiding MAST branches?)&lt;br/&gt;&lt;br/&gt;It&amp;#39;s true you can&amp;#39;t cache/precompute things across tags, but I also&lt;br/&gt;think there is no need. The type of data hashed in a sighash vs a&lt;br/&gt;merkle branch/leaf vs a tweak is fundamentally different. I think this&lt;br/&gt;is perhaps a good guidance to include about when separate tags are&lt;br/&gt;warranted vs. simply making sure the input does not collide: there&lt;br/&gt;shouldn&amp;#39;t be much or any shared data with things that are expected to&lt;br/&gt;be inputs under other tags.&lt;br/&gt;&lt;br/&gt;&amp;gt; Is there any way to use the Taproot construct here while retaining external&lt;br/&gt;&amp;gt; script limitations that the involved party(ies) *cannot* agree to override?&lt;br/&gt;&amp;gt; For example, it is conceivable that one might wish to have an unconditional&lt;br/&gt;&amp;gt; CLTV enforced in all circumstances.&lt;br/&gt;&lt;br/&gt;Yes, absolutely - you can use a point with unknown discrete logarithm&lt;br/&gt;as internal key. This will result in only script path spends being&lt;br/&gt;available. For the specific goal you&amp;#39;re stating an alternative may be&lt;br/&gt;using a valid known private key, using it to pre-sign a timelocked&lt;br/&gt;transaction, and destroying the key.&lt;br/&gt;&lt;br/&gt;&amp;gt; It may be useful to have a way to add a salt to tap branches.&lt;br/&gt;&lt;br/&gt;If you don&amp;#39;t reuse public keys, effectively every branch is&lt;br/&gt;automatically salted (and the position in the tree gets randomized&lt;br/&gt;automatically when doing so, providing a small additional privacy&lt;br/&gt;benefit).&lt;br/&gt;&lt;br/&gt;&amp;gt;&amp;gt; Some way to sign an additional script (not committed to by the witness&lt;br/&gt;&amp;gt;&amp;gt; program) seems like it could be a trivial addition.&lt;br/&gt;&amp;gt; This would be especially useful for things like OP_CHECKBLOCKATHEIGHT:&lt;br/&gt;&amp;gt; &lt;a href=&#34;https://github.com/bitcoin/bips/blob/master/bip-0115.mediawiki&#34;&gt;https://github.com/bitcoin/bips/blob/master/bip-0115.mediawiki&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;If you&amp;#39;re talking about the ability to sign over the ability to spend&lt;br/&gt;to another script (&amp;#34;delegation&amp;#34;), there are lots of interesting&lt;br/&gt;applications and ways to implement it. But it overlaps with Graftroot,&lt;br/&gt;and doing it efficiently in general has some interesting and&lt;br/&gt;non-obvious engineering challenges (for example, signing over to a&lt;br/&gt;script that enforces &amp;#34;f(tx)=y&amp;#34; for some f can be done by only storing&lt;br/&gt;f and then including y in the sighash).&lt;br/&gt;&lt;br/&gt;For the specific example of BIP115&amp;#39;s functionality, that seems like a&lt;br/&gt;reasonable thing that could be dealt with using the annex construction&lt;br/&gt;in the proposed BIP. A consensus rule could define a region inside the&lt;br/&gt;annex that functions as a height-blockhash assertion. The annex is&lt;br/&gt;included in all sighashes, so it can&amp;#39;t be removed from the input;&lt;br/&gt;later opcodes could include the ability to inspect that assertion&lt;br/&gt;even.&lt;br/&gt;&lt;br/&gt;On Tue, 7 May 2019 at 13:43, Sjors Provoost &amp;lt;sjors at sprovoost.nl&amp;gt; wrote:&lt;br/&gt;&amp;gt; One reason why someone would want to avoid a &amp;#34;everone agrees&amp;#34; branch, is duress (or self-discipline, or limiting powers of a trustee). In particular with respect to time-locks.&amp;gt;&lt;br/&gt;&lt;br/&gt;Indeed, though as I suggested above, you can also use timelocked&lt;br/&gt;transactions (but using only CLTV branches is more flexible&lt;br/&gt;certainly).&lt;br/&gt;&lt;br/&gt;&amp;gt; Can this &amp;#34;unknown discrete logarithm&amp;#34; be made provably unknown, so all signers are assured of this property? Bonus points if the outside world can&amp;#39;t tell. The exact mechanism could be outside the scope of the BIP, but knowing that it&amp;#39;s possible is useful.&lt;br/&gt;&lt;br/&gt;Yes, that&amp;#39;s a TODO that&amp;#39;s left in the draft, but this is absolutely&lt;br/&gt;possible (using a hash-to-curve operation). As ZmnSCPxj already&lt;br/&gt;suggested, there can even be a fixed known constant you can use for&lt;br/&gt;this. However, you get better privacy by taking this fixed known&lt;br/&gt;constant (call it C) and using as internal key a blinded version of it&lt;br/&gt;(C&#43;rG, for some random value r, and G the normal secp256k1 generator);&lt;br/&gt;as long as the DL between G and C is unknown, this is safe (and does&lt;br/&gt;not reveal to the world that in fact no key-path was permitted when&lt;br/&gt;spending).&lt;br/&gt;&lt;br/&gt;&amp;gt; Regarding usage of Schnorr: do I understand correctly that the &amp;#34;everyone agrees&amp;#34; internal key MUST use Schnorr, and that individual branches MAY use Schnorr, but only if they&amp;#39;re marked as tapscript spend?&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Why is tapscript not mandatory?&lt;br/&gt;&lt;br/&gt;Spending using the internal key always uses a single Schnorr signature&lt;br/&gt;and nothing else. When you spend using a script path, you must reveal&lt;br/&gt;both the script and its leaf version. If that leaf version is 0xc0,&lt;br/&gt;the script is interpreted as a tapscript (in which only Schnorr&lt;br/&gt;opcodes exist). If that leaf version is not 0xc0, the script is&lt;br/&gt;undefined, and is unconditionally valid. This is one of the included&lt;br/&gt;extension mechanisms, allowing replacing the whole script language&lt;br/&gt;with something else, but without revealing it unless a branch using it&lt;br/&gt;is actually used (different Merkle tree leaves can have a distinct&lt;br/&gt;leaf versions).&lt;br/&gt;&lt;br/&gt;So the reason that tapscript is not mandatory is because other leaf&lt;br/&gt;versions are undefined, and left for future extensions (similar to how&lt;br/&gt;future segwit versions at the output level are undefined).&lt;br/&gt;&lt;br/&gt;Cheers,&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter
    </content>
    <updated>2023-06-07T20:17:59&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsxpdnejmg4q9gyjqaw57gaxlr7tdzjn2h2qysk5n7kext2xdzx6fszypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dv25uam5</id>
    
      <title type="html">📅 Original date posted:2019-05-06 📝 Original message:Hello ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsxpdnejmg4q9gyjqaw57gaxlr7tdzjn2h2qysk5n7kext2xdzx6fszypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dv25uam5" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs998n8ze3faaxar0gans7cfaca8ry3fvyvq0w95jeq95uh068ygyq85xwvk&#39;&gt;nevent1q…xwvk&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2019-05-06&lt;br/&gt;📝 Original message:Hello everyone,&lt;br/&gt;&lt;br/&gt;Here are two BIP drafts that specify a proposal for a Taproot&lt;br/&gt;softfork. A number of ideas are included:&lt;br/&gt;&lt;br/&gt;* Taproot to make all outputs and cooperative spends indistinguishable&lt;br/&gt;from eachother.&lt;br/&gt;* Merkle branches to hide the unexecuted branches in scripts.&lt;br/&gt;* Schnorr signatures enable wallet software to use key&lt;br/&gt;aggregation/thresholds within one input.&lt;br/&gt;* Improvements to the signature hashing algorithm (including signing&lt;br/&gt;all input amounts).&lt;br/&gt;* Replacing OP_CHECKMULTISIG(VERIFY) with OP_CHECKSIGADD, to support&lt;br/&gt;batch validation.&lt;br/&gt;* Tagged hashing for domain separation (avoiding issues like&lt;br/&gt;CVE-2012-2459 in Merkle trees).&lt;br/&gt;* Extensibility through leaf versions, OP_SUCCESS opcodes, and&lt;br/&gt;upgradable pubkey types.&lt;br/&gt;&lt;br/&gt;The BIP drafts can be found here:&lt;br/&gt;* &lt;a href=&#34;https://github.com/sipa/bips/blob/bip-schnorr/bip-taproot.mediawiki&#34;&gt;https://github.com/sipa/bips/blob/bip-schnorr/bip-taproot.mediawiki&lt;/a&gt;&lt;br/&gt;specifies the transaction input spending rules.&lt;br/&gt;* &lt;a href=&#34;https://github.com/sipa/bips/blob/bip-schnorr/bip-tapscript.mediawiki&#34;&gt;https://github.com/sipa/bips/blob/bip-schnorr/bip-tapscript.mediawiki&lt;/a&gt;&lt;br/&gt;specifies the changes to Script inside such spends.&lt;br/&gt;* &lt;a href=&#34;https://github.com/sipa/bips/blob/bip-schnorr/bip-schnorr.mediawiki&#34;&gt;https://github.com/sipa/bips/blob/bip-schnorr/bip-schnorr.mediawiki&lt;/a&gt;&lt;br/&gt;is the Schnorr signature proposal that was discussed earlier on this&lt;br/&gt;list (See &lt;a href=&#34;https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2018-July/016203.html&#34;&gt;https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2018-July/016203.html&lt;/a&gt;)&lt;br/&gt;&lt;br/&gt;An initial reference implementation of the consensus changes, plus&lt;br/&gt;preliminary construction/signing tests in the Python framework can be&lt;br/&gt;found on &lt;a href=&#34;https://github.com/sipa/bitcoin/commits/taproot&#34;&gt;https://github.com/sipa/bitcoin/commits/taproot&lt;/a&gt;. All&lt;br/&gt;together, excluding the Schnorr signature module in libsecp256k1, the&lt;br/&gt;consensus changes are around 520 LoC.&lt;br/&gt;&lt;br/&gt;While many other ideas exist, not everything is incorporated. This&lt;br/&gt;includes several ideas that can be implemented separately without loss&lt;br/&gt;of effectiveness. One such idea is a way to integrate SIGHASH_NOINPUT,&lt;br/&gt;which we&amp;#39;re working on as an independent proposal.&lt;br/&gt;&lt;br/&gt;The document explains basic wallet operations, such as constructing&lt;br/&gt;outputs and signing. However, a wide variety of more complex&lt;br/&gt;constructions exist. Standardizing these is useful, but out of scope&lt;br/&gt;for now. It is likely also desirable to define extensions to PSBT&lt;br/&gt;(BIP174) for interacting with Taproot. That too is not included here.&lt;br/&gt;&lt;br/&gt;Cheers,&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter
    </content>
    <updated>2023-06-07T20:17:57&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsqqahnnxjay3qs0e6h56y8jymgnsft407mnj8yflyscjkkhkmegqczypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvyns5uv</id>
    
      <title type="html">📅 Original date posted:2018-11-19 📝 Original message:Hello ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsqqahnnxjay3qs0e6h56y8jymgnsft407mnj8yflyscjkkhkmegqczypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvyns5uv" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsph4a8s83vl5txl7dr8vd6ch77g7n82wz045dzlyf76vydvf5el6s5ykudz&#39;&gt;nevent1q…kudz&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2018-11-19&lt;br/&gt;📝 Original message:Hello everyone,&lt;br/&gt;&lt;br/&gt;For future segwit versions, I think it would be good add a few things&lt;br/&gt;to the sighash by default that were overlooked in BIP143:&lt;br/&gt;* Committing to the absolute transaction fee (in addition to just the&lt;br/&gt;amount being spent in each input) would categorically remove concerns&lt;br/&gt;about wallets lying about fees to HW devices or airgapped signers.&lt;br/&gt;* Committing to the scriptPubKey (in addition to the scriptCode) would&lt;br/&gt;prevent lying to devices about the type of output being spent, even&lt;br/&gt;when the scriptCode is correct. As a reminder, the scriptCode is the&lt;br/&gt;actually executed script (which is the redeemscript in non-segwit&lt;br/&gt;P2SH, and the witnesscript in P2WSH/P2WPKH).&lt;br/&gt;&lt;br/&gt;As this implies additional information that may not be desirable to&lt;br/&gt;commit to in all circumstances, it makes sense to make these optional.&lt;br/&gt;This obviously interacts with SIGHASH_NOINPUT, which really adds two&lt;br/&gt;different ways of rebinding signatures to inputs:&lt;br/&gt;* Changing the prevout (so that the txid doesn&amp;#39;t need to be known when&lt;br/&gt;the signature is created)&lt;br/&gt;* Changing the script (so that the exact scriptPubKey/redeemScript/...&lt;br/&gt;doesn&amp;#39;t need to be known when the signature is created)&lt;br/&gt;&lt;br/&gt;Of course, the second implies the first, but do all use cases require&lt;br/&gt;both being able to change the prevout and (arbitrarily) changing the&lt;br/&gt;scriptPubKey? While BIP118 correctly points out this is secure if the&lt;br/&gt;same keys are only used in scripts with which binding is to be&lt;br/&gt;permitted, I feel it would be preferable if signatures/scripts would&lt;br/&gt;explicitly state what can change. One way to accomplish this is by&lt;br/&gt;indicating exactly what in a script is subject to change.&lt;br/&gt;&lt;br/&gt;Here is a combined proposal:&lt;br/&gt;* Three new sighash flags are added: SIGHASH_NOINPUT, SIGHASH_NOFEE,&lt;br/&gt;and SIGHASH_SCRIPTMASK.&lt;br/&gt;* A new opcode OP_MASK is added, which acts as a NOP during execution.&lt;br/&gt;* The sighash is computed like in BIP143, but:&lt;br/&gt;  * If SIGHASH_SCRIPTMASK is present, for every OP_MASK in scriptCode&lt;br/&gt;the subsequent opcode/push is removed.&lt;br/&gt;  * The scriptPubKey being spent is added to the sighash, unless&lt;br/&gt;SIGHASH_SCRIPTMASK is set.&lt;br/&gt;  * The transaction fee is added to the sighash, unless SIGHASH_NOFEE is set.&lt;br/&gt;  * hashPrevouts, hashSequence, and outpoint are set to null when&lt;br/&gt;SIGHASH_NOINPUT is set (like BIP118, but not for scriptCode).&lt;br/&gt;&lt;br/&gt;So my question is whether anyone can see ways in which this introduces&lt;br/&gt;redundant flexibility, or misses obvious use cases?&lt;br/&gt;&lt;br/&gt;Cheers,&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter
    </content>
    <updated>2023-06-07T20:15:15&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsgtxykt2z54e3dl60mwlv0w3283vtkcs8ecql60paf0d4u6zvflxszypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvra2qa7</id>
    
      <title type="html">📅 Original date posted:2018-07-08 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsgtxykt2z54e3dl60mwlv0w3283vtkcs8ecql60paf0d4u6zvflxszypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvra2qa7" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqstk6rqgm30903sdxfkdmshzhrvas9d8244eccp4lhdl996szrljkcgt5ql6&#39;&gt;nevent1q…5ql6&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2018-07-08&lt;br/&gt;📝 Original message:On Sun, Jul 8, 2018, 07:26 Erik Aronesty 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; To save space, start with the wiki terminology on schnorr sigs.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Consider changing the &amp;#34;e&amp;#34; term in the schnorr algorithm to hash of message&lt;br/&gt;&amp;gt; (elligator style) to the power of r, rather than using concatenation.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;This is a very vague description. Is there some paper you can reference, or&lt;br/&gt;a more detailed explanation of the algorithm?&lt;br/&gt;&lt;br/&gt;This would allow m of n devices to sign a transaction without any of them&lt;br/&gt;&amp;gt; knowing a private key at all.&lt;br/&gt;&amp;gt;&lt;br/&gt;IE: each device can roll a random number as a share and the interpolation&lt;br/&gt;&amp;gt; of that is the private key.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; The public shares can be broadcast and combines.  And signature shares can&lt;br/&gt;&amp;gt; be broadcast and combined.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; The net result of this is it really possible for an arbitrary set of&lt;br/&gt;&amp;gt; devices to create a perfectly secure public-private key pair set.&lt;br/&gt;&amp;gt;&lt;br/&gt;At no point was the private key anywhere.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;All of this sounds like a threshold signature scheme, which as Tim pointed&lt;br/&gt;out is already possible with Schnorr.&lt;br/&gt;&lt;br/&gt;What are the advantages of what you&amp;#39;re describing?&lt;br/&gt;&lt;br/&gt;Cheers,&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter&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/20180708/396b25b7/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20180708/396b25b7/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T20:13:41&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs0lt40fe0745xr7uljsauhwya35hnf9wamnhl04qyns95spya65cczypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvyg86vu</id>
    
      <title type="html">📅 Original date posted:2018-07-08 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs0lt40fe0745xr7uljsauhwya35hnf9wamnhl04qyns95spya65cczypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvyg86vu" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsfzhrde6qrumc0qt7dgp9592ujzj2qple6mv2ruupy2hgjwdpnvrgh7jnhy&#39;&gt;nevent1q…jnhy&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2018-07-08&lt;br/&gt;📝 Original message:On Sun, Jul 8, 2018, 19:23 Erik Aronesty 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; Pretty sure these non interactive sigs are more secure.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;Schnorr signatures are provably secure in the random oracle model assuming&lt;br/&gt;the discrete logarithm problem is hard in the used group.&lt;br/&gt;&lt;br/&gt;What does &amp;#34;more secure&amp;#34; mean? Is your construction secure with weaker&lt;br/&gt;assumptions?&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter&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/20180708/4f9bcb27/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20180708/4f9bcb27/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T20:13:40&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsr6afr9mwvgye2kytvs3f3ga7703e0kjj9cmchn93ww2rvjfd0z6qzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvyg3uw0</id>
    
      <title type="html">📅 Original date posted:2018-07-14 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsr6afr9mwvgye2kytvs3f3ga7703e0kjj9cmchn93ww2rvjfd0z6qzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvyg3uw0" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsxt3s0hj5klaetfml7knvv8lmejfyu0r7kelnhkkgl2ze8vdlqccceqvhfy&#39;&gt;nevent1q…vhfy&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2018-07-14&lt;br/&gt;📝 Original message:On Sat, Jul 14, 2018 at 8:42 AM, Sjors Provoost &amp;lt;sjors at sprovoost.nl&amp;gt; wrote:&lt;br/&gt;&amp;gt; Questions:&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Regarding verification: why does bytes(P) use compressed key serialization rather than the implicit Y coordinate used for signing? I understand space savings don&amp;#39;t matter since these values don&amp;#39;t end up on the blockchain. Is it just easier to implement or is it faster?&lt;br/&gt;&lt;br/&gt;Following the design decision to use key-prefixed Schnorr, the&lt;br/&gt;signature must commit to the entire public key, including its Y&lt;br/&gt;coordinate.&lt;br/&gt;&lt;br/&gt;It would be possible to only permit public keys whose Y coordinates&lt;br/&gt;are even, or quadratic residues (like the signature internally uses&lt;br/&gt;for the R point), but that would mean changing what public keys are&lt;br/&gt;acceptable. Not doing so has significant practical advantages, like&lt;br/&gt;not breaking existing key generation mechanisms (like BIP32 and&lt;br/&gt;derivatives).&lt;br/&gt;&lt;br/&gt;So if we&amp;#39;re going to serialize the public key into the hash, in full,&lt;br/&gt;the easiest choice seems to be to use the encoding everyone already&lt;br/&gt;uses for public keys.&lt;br/&gt;&lt;br/&gt;&amp;gt; Regarding rationale for choosing (e,s) vs. (R,s), you say that (e,s) &amp;#34;avoids the difficulty of encoding a point R in the signature&amp;#34;. But since e = H(sG - eP || m) also involves converting a point to some byte encoding in order to hash it, how much difficulty is actually avoided? Is that, like for previous question, because you could get away with compressed keys rather than implicit Y coordinates?&lt;br/&gt;&lt;br/&gt;This is mostly a historical argument. When Schnorr is applied to an&lt;br/&gt;integer multiplication group rather than an elliptic curve group,&lt;br/&gt;serializing a group element is many times larger than serializing a&lt;br/&gt;hash. For elliptic curve based Schnorr, there is hardly any benefit&lt;br/&gt;for choosing the (e,s) form over (R,s).&lt;br/&gt;&lt;br/&gt;&amp;gt; Regarding batch verification: &amp;#34;randomly generated independently for each batch of verifications&amp;#34; - by whom? I assume randomly picked by the verifier?&lt;br/&gt;&lt;br/&gt;Randomly picked by the verifier, yes. The randomization factors are&lt;br/&gt;there so that an attacker cannot choose signatures which cancel out&lt;br/&gt;other invalid signatures within the same batch.&lt;br/&gt;&lt;br/&gt;&amp;gt; Regarding random number used for signing. The suggested (?) deterministic algorithm to derive secret key &amp;#39;&amp;#39;k&amp;#39;&amp;#39; from the private key &amp;#39;&amp;#39;d&amp;#39;&amp;#39;  seems similar to RFC6979. Maybe it&amp;#39;s useful to briefly explain the difference, as well as your rationale for not making it mandatory (presumably the same as why RFC6979 isn&amp;#39;t mandatory although most (?) wallets use it).&lt;br/&gt;&lt;br/&gt;What would &amp;#34;mandatory&amp;#34; mean? To follow the BIP, signers must sign&lt;br/&gt;using nonces generated deterministically following the provided&lt;br/&gt;method. That&amp;#39;s as far as mandatory can go.&lt;br/&gt;&lt;br/&gt;However, it is not possible to enforce (by a verifier) than nonces&lt;br/&gt;were generated in a specific way. To do so, the verifier would need to&lt;br/&gt;know the nonce, which implies learning the private key. So the nonce&lt;br/&gt;choosing algorithm cannot be enforced by the verifier. This implies&lt;br/&gt;that it is possible to generate valid (and secure) nonces in a way&lt;br/&gt;that does not follow the BIP.&lt;br/&gt;&lt;br/&gt;&amp;gt; * Motivation: &amp;#34;signatures ... These are standardized&amp;#34;, but the &amp;#34;standardized&amp;#34; link points to the secp256k1 curve parameters, not to anything signature related afaik&lt;br/&gt;&lt;br/&gt;There are two documents on the site linked to. One describes the ECDSA&lt;br/&gt;signing algorithm and serializations, the other specifies the curve&lt;br/&gt;parameter. I could link to both.&lt;br/&gt;&lt;br/&gt;&amp;gt; * &amp;#34;message m: an array of 32 bytes&amp;#34;, maybe add &amp;#34;typically the sha256 hash of the transaction components commited to by SIGHASH_TYPE”&lt;br/&gt;&lt;br/&gt;Ok.&lt;br/&gt;&lt;br/&gt;&amp;gt; * I left a few even smaller nits as a PR: &lt;a href=&#34;https://github.com/sipa/bips/pull/10&#34;&gt;https://github.com/sipa/bips/pull/10&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Thanks for your comments, will review.&lt;br/&gt;&lt;br/&gt;Cheers,&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter
    </content>
    <updated>2023-06-07T20:13:39&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqswa4tzy2htf25sayeh9auya6d5xev4wrdwtpujp3g8jl5whl9557czypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dv22tygy</id>
    
      <title type="html">📅 Original date posted:2018-06-21 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqswa4tzy2htf25sayeh9auya6d5xev4wrdwtpujp3g8jl5whl9557czypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dv22tygy" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs9adkpszxjy7v4a9as6j936naq7z9y0qnf959lsuwcupj3ymx2tlskkuxxz&#39;&gt;nevent1q…uxxz&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2018-06-21&lt;br/&gt;📝 Original message:On Thu, Jun 21, 2018 at 4:29 AM, matejcik &amp;lt;jan.matejek at satoshilabs.com&amp;gt; wrote:&lt;br/&gt;&amp;gt; In the case of everything per-input, the naive Signer can do this:&lt;br/&gt;&amp;gt; 1. (in the global section) pre-serialize the transaction&lt;br/&gt;&amp;gt; 2. (in each input) find and fill out scriptPubKey from the provided UTXO&lt;br/&gt;&amp;gt; 3. (for a given BIP32 path) check if the master fingerprint matches&lt;br/&gt;&amp;gt; mine, if yes, derive secret key, output pubkey, signature&lt;br/&gt;&amp;gt; 4. goto 3 (more keys per input), goto 2 (next input)&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Note that this flow works perfectly for multisig; it’s going to be the&lt;br/&gt;&amp;gt; job of a Finalizer to build the final scriptSig, but each input can have&lt;br/&gt;&amp;gt; multiple partial signatures -- and, interestingly, the naive Signer&lt;br/&gt;&amp;gt; doesn’t even need to know about multisig.&lt;br/&gt;&lt;br/&gt;Ah, you&amp;#39;re thinking of an even simpler signer than I was imagining. I&lt;br/&gt;don&amp;#39;t think this works in general, because the hash being signed&lt;br/&gt;depends on the structure of the script. For example, if it is P2SH, it&lt;br/&gt;is the redeemscript that goes into the scriptCode serialization rather&lt;br/&gt;than the scriptPubKey. If it is segwit, BIP143 serialization needs to&lt;br/&gt;be used, etc. It may work if your signing is restricted to just one of&lt;br/&gt;those structures, though.&lt;br/&gt;&lt;br/&gt;&amp;gt; A less naive Signer will want to check things, maybe derive a scriptSig&lt;br/&gt;&amp;gt; itself and check if it matches the given hash, etc., but it can do this&lt;br/&gt;&amp;gt; all in place. You go linearly through the signing flow and place a&lt;br/&gt;&amp;gt; couple strategic assertions along the way.&lt;br/&gt;&lt;br/&gt;Right - but I think anything but the simplest signer must do this,&lt;br/&gt;just to be able to distinguish between different kinds of signature&lt;br/&gt;hashing.&lt;br/&gt;&lt;br/&gt;But you&amp;#39;re right, having per-input redeemscript/witnessscript&lt;br/&gt;simplifies things still - instead of needing to look a script hash in&lt;br/&gt;a map, you can just compare it with *the* redeemscript/witnessscript.&lt;br/&gt;&lt;br/&gt;&amp;gt; However, if the data is global, as is now, it gets more complicated:&lt;br/&gt;&amp;gt; 1. (in the global section) pre-serialize the transaction, prefill lookup&lt;br/&gt;&amp;gt; tables&lt;br/&gt;&amp;gt; 2. (for a given BIP32 path) check if mine, then derive public key and&lt;br/&gt;&amp;gt; store in a dictionary&lt;br/&gt;&amp;gt; 3. (for each input) find _and parse_ scriptPubKey, extract (PK or)&lt;br/&gt;&amp;gt; script hash&lt;br/&gt;&amp;gt; 4. lookup redeem script based on script-hash; if not found, goto 2; if&lt;br/&gt;&amp;gt; found, parse out public key&lt;br/&gt;&amp;gt; 5. lookup public key in the BIP32 dictionary; if not found, goto 2&lt;br/&gt;&amp;gt; 6. output pubkey, signature&lt;br/&gt;&lt;br/&gt;I understand your point now. I hadn&amp;#39;t considered the possibility of&lt;br/&gt;just signing with all BIP32 derivation paths given for which the&lt;br/&gt;master matches, instead of extracting pubkeys/pkhs from the script.&lt;br/&gt;That&amp;#39;s a major simplification for signers indeed. I do think you need&lt;br/&gt;some conditions before to determine the script structure (see above),&lt;br/&gt;but this is a good point in favour of making the derivation paths&lt;br/&gt;per-input.&lt;br/&gt;&lt;br/&gt;&amp;gt; In general, you seem to focus a lot on the role of Combiners, esp.&lt;br/&gt;&amp;gt; simple Combiners. To me, that doesn’t look like a significant role. As I&lt;br/&gt;&amp;gt; envision it, a Combiner really doesn’t need to do anything more&lt;br/&gt;&amp;gt; complicated than merge and deduplicate records, simply based on the&lt;br/&gt;&amp;gt; uniqueness of the whole record.&lt;br/&gt;&lt;br/&gt;It&amp;#39;s more a side-effect of focusing on forward compatibility. I expect&lt;br/&gt;that we will have transactions with inputs spending different kinds of&lt;br/&gt;outputs, and some signers may not be able to understand all of them.&lt;br/&gt;However, as long as the design goal of having Combiners function&lt;br/&gt;correctly for things they don&amp;#39;t understand, everything should be able&lt;br/&gt;to work together fine.&lt;br/&gt;&lt;br/&gt;&amp;gt; It’s the Finalizer’s job to reconstruct and validate the result. Also&lt;br/&gt;&amp;gt; ISTM if something messes up the PSBT (such as including multiple&lt;br/&gt;&amp;gt; conflicting fields anywhere), it’s OK to leave it to Finalizer to fail.&lt;br/&gt;&lt;br/&gt;Agree.&lt;br/&gt;&lt;br/&gt;&amp;gt; An aside to this in particular, I’ve been thinking about the requirement&lt;br/&gt;&amp;gt; to share derivation paths and public keys with the Creator. The spec&lt;br/&gt;&amp;gt; assumes that this will happen; you’re talking about providing full&lt;br/&gt;&amp;gt; xpub&#43;chaincode too. At least, the Creator must prefill BIP32 paths and&lt;br/&gt;&amp;gt; master key fingerprints. Possibly also prefill public keys in the redeem&lt;br/&gt;&amp;gt; scripts?&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; This might not be an improvement proposal, but a point worth being&lt;br/&gt;&amp;gt; raised and maybe explained in the spec. Perhaps the original Creator&lt;br/&gt;&amp;gt; doesn’t have access to this data, and delegates this to some&lt;br/&gt;&amp;gt; “sub-Creators”  - I imagine a coordinator sending a PSBT to signing&lt;br/&gt;&amp;gt; parties, each of which acts as a sub-Creator (fills out derivation paths&lt;br/&gt;&amp;gt; and public keys) and a Signer (forwarding to a HWW). Some of the&lt;br/&gt;&amp;gt; discussion even suggests some sort of generic “key derivation field”&lt;br/&gt;&amp;gt; with arbitrary contents - fingerprint &#43; bip32 path? xpub &#43; chain code?&lt;br/&gt;&amp;gt; derivation points? encrypted xprv?&lt;br/&gt;&lt;br/&gt;That makes sense - I think we&amp;#39;ve already touched this when discussing&lt;br/&gt;the requirement for UTXOs to be added. Perhaps those aren&amp;#39;t added by&lt;br/&gt;the Creator, but by some index server. The same could be true for the&lt;br/&gt;scripts or derivations paths.&lt;br/&gt;&lt;br/&gt;And indeed, most of the information in the derivation paths is&lt;br/&gt;effectively opaque to the Creator - it&amp;#39;s just some data given out by&lt;br/&gt;the Signer about its keys that gets passed back to it so it can&lt;br/&gt;identify the key. There is benefit in keeping it in a fixed structure&lt;br/&gt;(like xpub/chaincode, or fingerprint &#43; derivation indexes), to&lt;br/&gt;guarantee compatibility between multiple signer implementations with&lt;br/&gt;access to the same key.&lt;br/&gt;&lt;br/&gt;On Tue, Jun 19, 2018 at 5:39 PM, Jason Les via bitcoin-dev&lt;br/&gt;&amp;lt;bitcoin-dev at lists.linuxfoundation.org&amp;gt; wrote:&lt;br/&gt;&amp;gt;&amp;gt;Hex encoding?&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; I was hoping for some standard here was well and I agree using something&lt;br/&gt;&amp;gt; more compact than hex is important. My understanding is Z85 is better for&lt;br/&gt;&amp;gt; use with JSON than Base64, which is probably a good benefit to have here.&lt;br/&gt;&lt;br/&gt;Both Base64 and Z85 can be stored in JSON strings without quoting&lt;br/&gt;(neither uses quotation characters or backslashes), but Z85 is&lt;br/&gt;slightly more compact (Z85 is 5 characters for 4 bytes, Base64 is 4&lt;br/&gt;characters for 3 bytes). Both use non-alphanumeric characters, so I&lt;br/&gt;don&amp;#39;t think there is much difference w.r.t. copy-pastability either.&lt;br/&gt;Z85 is far less common though.&lt;br/&gt;&lt;br/&gt;On Thu, Jun 21, 2018 at 4:44 AM, Tomas Susanka via bitcoin-dev&lt;br/&gt;&amp;lt;bitcoin-dev at lists.linuxfoundation.org&amp;gt; wrote:&lt;br/&gt;&amp;gt;&amp;gt; I think here it makes sense because there can actually only be (up to)&lt;br/&gt;&amp;gt;&amp;gt; one redeemscript and (up to) one witnessscript. So if we made those&lt;br/&gt;&amp;gt;&amp;gt; per-input and per-output, it may simplify signers as they don&amp;#39;t need a&lt;br/&gt;&amp;gt;&amp;gt; table lookup to find the correct one. That would also mean we can drop&lt;br/&gt;&amp;gt;&amp;gt; their hashes, even if we keep a key-value model.&lt;br/&gt;&amp;gt; Yes, indeed. Just to clarify: in the first sentence you mean &amp;#34;per&lt;br/&gt;&amp;gt; output&amp;#34;, right? There can actually only be (up to) one redeemscript and&lt;br/&gt;&amp;gt; (up to) one witnessscript *per output*.&lt;br/&gt;&lt;br/&gt;Up to one per output, and up to one per input - indeed.&lt;br/&gt;&lt;br/&gt;On Thu, Jun 21, 2018 at 7:32 AM, Tomas Susanka via bitcoin-dev&lt;br/&gt;&amp;lt;bitcoin-dev at lists.linuxfoundation.org&amp;gt; wrote:&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; A question to consider is,&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; will there be more per-output data? If yes, it might make sense to have&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt; an output section.&lt;br/&gt;&amp;gt;&amp;gt; I think it is unlikely that there would be anymore per-output data.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Hmm, upon further reflection, maybe it&amp;#39;s not even worth including *any*&lt;br/&gt;&amp;gt; per-output data, aside from what the original transaction contains.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; The output redeem script is either:&lt;br/&gt;&amp;gt; - unknown, because we have received only an address from the receiver&lt;br/&gt;&amp;gt; - or it is known, because it is ours and in that case it doesn’t make&lt;br/&gt;&amp;gt; sense to include it in PSBT&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; We got stuck on the idea of the Creator providing future (output)&lt;br/&gt;&amp;gt; redeem/witness scripts. But that seems to be a minority use case and can&lt;br/&gt;&amp;gt; be solved efficiently via the same channels that coordinate the PSBT&lt;br/&gt;&amp;gt; creation. Sorry to change opinions so quickly on this one.&lt;br/&gt;&lt;br/&gt;Perhaps you&amp;#39;re missing the reason for having output scripts? It is so&lt;br/&gt;that signers that wish to known the amounts transferred can be told&lt;br/&gt;which outputs of the to-be transaction are change, and thus shouldn&amp;#39;t&lt;br/&gt;be counted towards the balance. By providing the scripts and&lt;br/&gt;derivation paths in a PSBT, the Creator can prove to the Signer that&lt;br/&gt;certain outputs do not actually move funds to some other entity.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Based on the points before, my preference is having everything&lt;br/&gt;per-input and per-output except the transaction (with empty&lt;br/&gt;scriptSig/witness) itself, and having exactly one set/map per input&lt;br/&gt;and output (which may include a &amp;#34;finalized scriptSig/witness field&amp;#34;&lt;br/&gt;for finalized inputs). The overhead of having at least one separator&lt;br/&gt;byte for every input and output in the transaction is at most a few&lt;br/&gt;percent compared to the data in the transaction itself. If size is&lt;br/&gt;really an issue (but I think we&amp;#39;ve already established that small size&lt;br/&gt;gains aren&amp;#39;t worth much extra complexity), we could also serialize the&lt;br/&gt;transaction without scriptSigs/witnesses (which are at least one byte&lt;br/&gt;each, and guaranteed to be empty).&lt;br/&gt;&lt;br/&gt;I&amp;#39;m unsure about typed record vs. key-value model. If we&amp;#39;d go with a&lt;br/&gt;per-input script approach, the key would just be a single byte (&amp;#34;the&lt;br/&gt;redeemscript&amp;#34; and &amp;#34;the witnessscript&amp;#34;), so the advantage of being able&lt;br/&gt;to drop the script hashes applies equally to both models. After that,&lt;br/&gt;it seems the only difference seems to be that a well-defined prefix of&lt;br/&gt;the records is enforced to be unique as opposed to the entire record&lt;br/&gt;being enforced to be unique. I don&amp;#39;t think there is much difference in&lt;br/&gt;complexity, as Combiners and Signers still need to enforce some kind&lt;br/&gt;of uniqueness even in a typed records model.&lt;br/&gt;&lt;br/&gt;Cheers,&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter
    </content>
    <updated>2023-06-07T20:13:06&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs89ttrvcr2jy092uqa8q6wdhwad8ax3fg3g9fxjnu2gsxn0uhqrwgzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dv932k9q</id>
    
      <title type="html">📅 Original date posted:2018-06-19 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs89ttrvcr2jy092uqa8q6wdhwad8ax3fg3g9fxjnu2gsxn0uhqrwgzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dv932k9q" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqspfd36r62ddxh6uzahxjhwgdemmnj54r6hq68mftgds7gqa8dl83g245e9l&#39;&gt;nevent1q…5e9l&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2018-06-19&lt;br/&gt;📝 Original message:On Tue, Jun 19, 2018 at 7:20 AM, matejcik via bitcoin-dev&lt;br/&gt;&amp;lt;bitcoin-dev at lists.linuxfoundation.org&amp;gt; wrote:&lt;br/&gt;&lt;br/&gt;Thanks for your comments so far. I&amp;#39;m very happy to see people dig into&lt;br/&gt;the details, and consider alternative approaches.&lt;br/&gt;&lt;br/&gt;&amp;gt; 1) Why isn&amp;#39;t the global type 0x03 (BIP-32 path) per-input? How do we&lt;br/&gt;&amp;gt; know, which BIP-32 path goes to which input? The only idea that comes to&lt;br/&gt;&amp;gt; my mind is that we should match the input&amp;#39;s scriptPubKey&amp;#39;s pubkey to&lt;br/&gt;&amp;gt; this 0x03&amp;#39;s key (the public key).&lt;br/&gt;&lt;br/&gt;&amp;gt; If our understanding is correct, the BIP-32 path is global to save space&lt;br/&gt;&amp;gt; in case two inputs share the same BIP-32 path? How often does that&lt;br/&gt;&amp;gt; happen? And in case it does, doesn&amp;#39;t it mean an address reuse which is&lt;br/&gt;&amp;gt; discouraged?&lt;br/&gt;&lt;br/&gt;Yes, the reason is address reuse. It may be discouraged, but it still&lt;br/&gt;happens in practice (and unfortunately it&amp;#39;s very hard to prevent&lt;br/&gt;people from sending to the same address twice).&lt;br/&gt;&lt;br/&gt;It&amp;#39;s certainly possible to make them per-input (and even per-output as&lt;br/&gt;suggested below), but I don&amp;#39;t think it gains you much. At least when a&lt;br/&gt;signer supports any kind of multisig, it needs to match up public keys&lt;br/&gt;with derivation paths. If several can be provided, looking them up&lt;br/&gt;from a global table or a per-input table shouldn&amp;#39;t fundamentally&lt;br/&gt;change anything.&lt;br/&gt;&lt;br/&gt;However, perhaps it makes sense to get rid of the global section&lt;br/&gt;entirely, and make the whole format a transaction plus per-input and&lt;br/&gt;per-output extra fields. This would result in duplication in case of&lt;br/&gt;key reuse, but perhaps that&amp;#39;s worth the complexity reduction.&lt;br/&gt;&lt;br/&gt;&amp;gt; 2) The global items 0x01 (redeem script) and 0x02 (witness script) are&lt;br/&gt;&amp;gt; somewhat confusing. Let&amp;#39;s consider only the redeem script (0x01) to make&lt;br/&gt;&amp;gt; it simple. The value description says: &amp;#34;A redeem script that will be&lt;br/&gt;&amp;gt; needed to sign a Pay-To-Script-Hash input or is spent to by an output.&amp;#34;.&lt;br/&gt;&amp;gt; Does this mean that the record includes both input&amp;#39;s redeem script&lt;br/&gt;&amp;gt; (because we need to sign it), but also a redeem script for the output&lt;br/&gt;&amp;gt; (to verify we are sending to a correct P2SH)? To mix those two seems&lt;br/&gt;&amp;gt; really confusing.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Yet again, adding a new output section would make this more readable. We&lt;br/&gt;&amp;gt; would include the input’s redeem script in the input section and the&lt;br/&gt;&amp;gt; output’s redeem script again in the output section, because they’ll most&lt;br/&gt;&amp;gt; likely differ anyway.&lt;br/&gt;&lt;br/&gt;I think here it makes sense because there can actually only be (up to)&lt;br/&gt;one redeemscript and (up to) one witnessscript. So if we made those&lt;br/&gt;per-input and per-output, it may simplify signers as they don&amp;#39;t need a&lt;br/&gt;table lookup to find the correct one. That would also mean we can drop&lt;br/&gt;their hashes, even if we keep a key-value model.&lt;br/&gt;&lt;br/&gt;&amp;gt; 3) The sighash type 0x03 says the sighash is only a recommendation. That&lt;br/&gt;&amp;gt; seems rather ambiguous. If the field is specified shouldn&amp;#39;t it be binding?&lt;br/&gt;&lt;br/&gt;Perhaps, yes.&lt;br/&gt;&lt;br/&gt;&amp;gt; 4) Is it a good idea to skip records which types we are unaware of? We&lt;br/&gt;&amp;gt; can&amp;#39;t come up with a reasonable example, but intuitively this seems as a&lt;br/&gt;&amp;gt; potential security issue. We think we should consider  introducing a&lt;br/&gt;&amp;gt; flag, which would define if the record is &amp;#34;optional&amp;#34;. In case the signer&lt;br/&gt;&amp;gt; encounters a record it doesn&amp;#39;t recognize and such flag is not set, it&lt;br/&gt;&amp;gt; aborts the procedure. If we assume the set model we could change the&lt;br/&gt;&amp;gt; structure to &amp;lt;type&amp;gt;&amp;lt;optional flag&amp;gt;&amp;lt;length&amp;gt;{data}. We are not keen on&lt;br/&gt;&amp;gt; this, but we wanted to include this idea to see what you think.&lt;br/&gt;&lt;br/&gt;Originally there was at least this intuition for why it shouldn&amp;#39;t be&lt;br/&gt;necessary: the resulting signature for an input is either valid or&lt;br/&gt;invalid. Adding information to a PSBT (which is what signers do)&lt;br/&gt;either helps with that or not. The worst case is that they simply&lt;br/&gt;don&amp;#39;t have enough information to produce a signature together. But an&lt;br/&gt;ignored unknown field being present should never result in signing the&lt;br/&gt;wrong thing (they can always see the transaction being signed), or&lt;br/&gt;failing to sign if signing was possible in the first place. Another&lt;br/&gt;way of looking at it, the operation of a signer is driven by queries:&lt;br/&gt;it looks at the scriptPubKey of the output being spent, sees it is&lt;br/&gt;P2SH, looks for the redeemscript, sees it is P2WSH, looks for the&lt;br/&gt;witnessscript, sees it is multisig, looks for other signers&amp;#39;&lt;br/&gt;signatures, finds enough for the threshold, and proceeds to sign and&lt;br/&gt;create a full transaction. If at any point one of those things is&lt;br/&gt;missing or not comprehensible to the signer, he simply fails and&lt;br/&gt;doesn&amp;#39;t modify the PSBT.&lt;br/&gt;&lt;br/&gt;However, if the sighash request type becomes mandatory, perhaps this&lt;br/&gt;is not the case anymore, as misinterpreting something like this could&lt;br/&gt;indeed result in an incorrect signature.&lt;br/&gt;&lt;br/&gt;If we go down this route, if a field is marked as mandatory, can you&lt;br/&gt;still act as a combiner for it? Future extensions should always&lt;br/&gt;maintain the invariant that a simple combiner which just merges all&lt;br/&gt;the fields and deduplicates should always be correct, I think. So such&lt;br/&gt;a mandatory field should only apply to signers?&lt;br/&gt;&lt;br/&gt;&amp;gt; In general, the standard is trying to be very space-conservative,&lt;br/&gt;&amp;gt; however is that really necessary? We would argue for clarity and ease of&lt;br/&gt;&amp;gt; use over space constraints. We think more straightforward approach is&lt;br/&gt;&amp;gt; desired, although more space demanding. What are the arguments to make&lt;br/&gt;&amp;gt; this as small as possible? If we understand correctly, this format is&lt;br/&gt;&amp;gt; not intended for blockchain nor for persistent storage, so size doesn’t&lt;br/&gt;&amp;gt; matter nearly as much.&lt;br/&gt;&lt;br/&gt;I wouldn&amp;#39;t say it&amp;#39;s trying very hard to be space-conservative. The&lt;br/&gt;design train of thought started from &amp;#34;what information does a signer&lt;br/&gt;need&amp;#34;, and found a signer would need information on the transaction to&lt;br/&gt;sign, and on scripts to descend into, information on keys to derive,&lt;br/&gt;and information on signatures provided by other participants. Given&lt;br/&gt;that some of this information was global (at least the transaction),&lt;br/&gt;and some of this information was per-input (at least the signatures),&lt;br/&gt;separate scopes were needed for those. Once you have a global scope,&lt;br/&gt;and you envision a signer which looks up scripts and keys in a map of&lt;br/&gt;known ones (like the signing code in Bitcoin Core), there is basically&lt;br/&gt;no downside to make the keys and scripts global - while giving space&lt;br/&gt;savings for free to deduplication.&lt;br/&gt;&lt;br/&gt;However, perhaps that&amp;#39;s not the right way to think about things, and&lt;br/&gt;the result is simpler if we only keep the transaction itself global,&lt;br/&gt;and everything else per-input (and per-output).&lt;br/&gt;&lt;br/&gt;I think there are good reasons to not be gratuitously large (I expect&lt;br/&gt;that at least while experimenting, people will copy-paste these things&lt;br/&gt;a lot and page-long copy pastes become unwieldy quickly), but maybe&lt;br/&gt;not at the cost of structural complexity.&lt;br/&gt;&lt;br/&gt;On Tue, Jun 19, 2018 at 7:22 AM, matejcik via bitcoin-dev&lt;br/&gt;&amp;lt;bitcoin-dev at lists.linuxfoundation.org&amp;gt; wrote:&lt;br/&gt;&amp;gt; hello,&lt;br/&gt;&amp;gt; this is our second e-mail with replies to Pieter&amp;#39;s suggestions.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; On 16.6.2018 01:34, pieter.wuille at gmail.com (Pieter Wuille) wrote:&lt;br/&gt;&amp;gt;&amp;gt; * Key-value map model or set model.&lt;br/&gt;&lt;br/&gt;&amp;gt; Just to note, we should probably use varint for the &amp;lt;type&amp;gt; field - this&lt;br/&gt;&amp;gt; allows us, e.g., to create “namespaces” for future extensions by using&lt;br/&gt;&amp;gt; one byte as namespace identifier and one as field identifier.&lt;br/&gt;&lt;br/&gt;Agree, but this doesn&amp;#39;t actually need to be specified right now. As&lt;br/&gt;the key&amp;#39;s (and or value&amp;#39;s) interpretation (including the type) is&lt;br/&gt;completely unspecified, an extension can just start using 2-byte keys&lt;br/&gt;(as long as the first byte of those 2 isn&amp;#39;t used by another field&lt;br/&gt;already).&lt;br/&gt;&lt;br/&gt;&amp;gt;&amp;gt; One exception is the &amp;#34;transaction&amp;#34; record, which needs to be unique.&lt;br/&gt;&amp;gt;&amp;gt; That can either be done by adding an exception (&amp;#34;there can only be one&lt;br/&gt;&amp;gt;&amp;gt; transaction record&amp;#34;), or by encoding it separately outside the normal&lt;br/&gt;&amp;gt;&amp;gt; records (that may also be useful to make it clear that it is always&lt;br/&gt;&amp;gt;&amp;gt; required).&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; This seems to be the case for some fields already - i.e., an input field&lt;br/&gt;&amp;gt; must have exactly one of Non-witness UTXO or Witness Output. So “adding&lt;br/&gt;&amp;gt; an exception” is probably just a matter of language?&lt;br/&gt;&lt;br/&gt;Hmm, I wouldn&amp;#39;t say so. Perhaps the transaction&amp;#39;s inputs and outputs&lt;br/&gt;are chosen by one entity, and then sent to another entity which has&lt;br/&gt;access to the UTXOs or previous transactions. So while the UTXOs must&lt;br/&gt;be present before signing, I wouldn&amp;#39;t say the file format itself must&lt;br/&gt;enforce that the UTXOs are present.&lt;br/&gt;&lt;br/&gt;However, perhaps we do want to enforce at-most one UTXO per input. If&lt;br/&gt;there are more potential extensions like this, perhaps a key-value&lt;br/&gt;model is better, as it&amp;#39;s much easier to enforce no duplicate keys than&lt;br/&gt;it is to add field-specific logic to combiners (especially for&lt;br/&gt;extensions they don&amp;#39;t know about yet).&lt;br/&gt;&lt;br/&gt;&amp;gt; We’d also like to note that the “number of inputs” field should be&lt;br/&gt;&amp;gt; mandatory - and as such, possibly also a candidate for outside-record field.&lt;br/&gt;&lt;br/&gt;If we go with the &amp;#34;not put signatures/witnesses inside the transaction&lt;br/&gt;until all of them are finalized&amp;#34; suggestion, perhaps the number of&lt;br/&gt;inputs field can be dropped. There would be always one exactly for&lt;br/&gt;each input (but some may have the &amp;#34;final script/witness&amp;#34; field and&lt;br/&gt;others won&amp;#39;t).&lt;br/&gt;&lt;br/&gt;&amp;gt;&amp;gt; * Derivation from xpub or fingerprint&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; For BIP32 derivation paths, the spec currently only encodes the 32-bit&lt;br/&gt;&amp;gt;&amp;gt; fingerprint of the parent or master xpub. When the Signer only has a&lt;br/&gt;&amp;gt;&amp;gt; single xprv from which everything is derived, this is obviously&lt;br/&gt;&amp;gt;&amp;gt; sufficient. When there are many xprv, or when they&amp;#39;re not available&lt;br/&gt;&amp;gt;&amp;gt; indexed by fingerprint, this may be less convenient for the signer.&lt;br/&gt;&amp;gt;&amp;gt; Furthermore, it violates the &amp;#34;PSBT contains all information necessary&lt;br/&gt;&amp;gt;&amp;gt; for signing, excluding private keys&amp;#34; idea - at least if we don&amp;#39;t treat&lt;br/&gt;&amp;gt;&amp;gt; the chaincode as part of the private key.&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; For that reason I would suggest that the derivation paths include the&lt;br/&gt;&amp;gt;&amp;gt; full public key and chaincode of the parent or master things are&lt;br/&gt;&amp;gt;&amp;gt; derived from. This does mean that the Creator needs to know the full&lt;br/&gt;&amp;gt;&amp;gt; xpub which things are derived from, rather than just its fingerprint.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; We don’t understand the rationale for this idea. Do you see a scenario&lt;br/&gt;&amp;gt; where an index on master fingerprint is not available but index by xpubs&lt;br/&gt;&amp;gt; is? In our envisioned use cases at least, indexing private keys by xpubs&lt;br/&gt;&amp;gt; (as opposed to deriving from a BIP32 path) makes no sense.&lt;br/&gt;&lt;br/&gt;Let me elaborate.&lt;br/&gt;&lt;br/&gt;Right now, the BIP32 fields are of the form &amp;lt;master&lt;br/&gt;fingerprint&amp;gt;&amp;lt;childidx&amp;gt;&amp;lt;childidx&amp;gt;&amp;lt;childidx&amp;gt;...&lt;br/&gt;&lt;br/&gt;Instead, I suggest fields of the form &amp;lt;master pubkey&amp;gt;&amp;lt;master&lt;br/&gt;chaincode&amp;gt;&amp;lt;childidx&amp;gt;&amp;lt;childidx&amp;gt;&amp;lt;childidx&amp;gt;...&lt;br/&gt;&lt;br/&gt;The fingerprint in this case is identical to the first 32 bit of the&lt;br/&gt;Hash160 of &amp;lt;master pubkey&amp;gt;, so certainly no information is lost by&lt;br/&gt;making this change.&lt;br/&gt;&lt;br/&gt;This may be advantageous for three reasons:&lt;br/&gt;* It permits signers to have ~thousands of master keys (at which point&lt;br/&gt;32-bit fingerprints would start having reasonable chance for&lt;br/&gt;collisions, meaning multiple derivation attempts would be needed to&lt;br/&gt;figure out which one to use).&lt;br/&gt;* It permits signers to index their master keys by whatever they like&lt;br/&gt;(for example, SHA256 rather than Hash160 or prefix thereof).&lt;br/&gt;* It permits signers who don&amp;#39;t store a chaincode at all, and just&lt;br/&gt;protect a single private key.&lt;br/&gt;&lt;br/&gt;Cheers,&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter
    </content>
    <updated>2023-06-07T20:13:04&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsduzdauwgv5dlnhwra8uqcddq4647za9qtzg5m6vjmr2tkhmexdxczypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dv34y69h</id>
    
      <title type="html">📅 Original date posted:2018-06-15 📝 Original message:Hello ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsduzdauwgv5dlnhwra8uqcddq4647za9qtzg5m6vjmr2tkhmexdxczypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dv34y69h" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsvmc7z7xh4a38ryq8r93lahja9fdv8gx5avhfcm5uru7pjtms0lngvzuxvg&#39;&gt;nevent1q…uxvg&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2018-06-15&lt;br/&gt;📝 Original message:Hello all,&lt;br/&gt;&lt;br/&gt;given some recent work and discussions around BIP 174 (Partially&lt;br/&gt;Signed Bitcoin Transaction Format) I&amp;#39;d like to bring up a few ideas.&lt;br/&gt;&lt;br/&gt;First of all, it&amp;#39;s unclear to me to what extent projects have already&lt;br/&gt;worked on implementations, and thus to what extent the specification&lt;br/&gt;is still subject to change. A response of &amp;#34;this is way too late&amp;#34; is&lt;br/&gt;perfectly fine.&lt;br/&gt;&lt;br/&gt;So here goes:&lt;br/&gt;&lt;br/&gt;* Key-value map model or set model.&lt;br/&gt;&lt;br/&gt;This was suggested in this thread:&lt;br/&gt;&lt;a href=&#34;https://twitter.com/matejcik/status/1002618633472892929&#34;&gt;https://twitter.com/matejcik/status/1002618633472892929&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;The motivation behind using a key-value model rather than a simple&lt;br/&gt;list of records was that PSBTs can be duplicated (given to multiple&lt;br/&gt;people for signing, for example), and merged back together after&lt;br/&gt;signing. With a generic key-value model, any implementation can remove&lt;br/&gt;the duplication even if they don&amp;#39;t understand fields that may have&lt;br/&gt;been added in future extensions.&lt;br/&gt;&lt;br/&gt;However, almost the same can be accomplished by using the simpler set&lt;br/&gt;model (the file consists of a set of records, with no duplication&lt;br/&gt;allowed). This would mean that it would technically be legal to have&lt;br/&gt;two partial signatures with the same key for the same input, if a&lt;br/&gt;non-deterministic signer is used.&lt;br/&gt;&lt;br/&gt;On the other hand, this means that certain data currently encoded&lt;br/&gt;inside keys can be dropped, reducing the PSBT size. This is&lt;br/&gt;particularly true for redeemscripts and witnessscripts, as they can&lt;br/&gt;just be computed by the client when deserializing. The two types could&lt;br/&gt;even be merged into just &amp;#34;scripts&amp;#34; records - as they don&amp;#39;t need to be&lt;br/&gt;separated based on the way they&amp;#39;re looked up (Hash160 for P2SH, SHA256&lt;br/&gt;for P2WSH). The same could be done for the BIP32 derivation paths,&lt;br/&gt;though this may be expensive, as the client would need to derive all&lt;br/&gt;keys before being able to figure out which one(s) it needs.&lt;br/&gt;&lt;br/&gt;One exception is the &amp;#34;transaction&amp;#34; record, which needs to be unique.&lt;br/&gt;That can either be done by adding an exception (&amp;#34;there can only be one&lt;br/&gt;transaction record&amp;#34;), or by encoding it separately outside the normal&lt;br/&gt;records (that may also be useful to make it clear that it is always&lt;br/&gt;required).&lt;br/&gt;&lt;br/&gt;* Ability for Combiners to verify two PSBT are for the same transaction&lt;br/&gt;&lt;br/&gt;Clearly two PSBTs for incompatible transactions cannot be combined,&lt;br/&gt;and this should not be allowed.&lt;br/&gt;&lt;br/&gt;It may be easier to enforce this if the &amp;#34;transaction&amp;#34; record inside a&lt;br/&gt;PSBT was required to be in a canonical form, meaning with empty&lt;br/&gt;scriptSigs and witnesses. In order to do so, there could be per-input&lt;br/&gt;records for &amp;#34;finalized scriptSig&amp;#34; and &amp;#34;finalized witness&amp;#34;. Actually&lt;br/&gt;placing those inside the transaction itself would only be allowed when&lt;br/&gt;all inputs are finalized.&lt;br/&gt;&lt;br/&gt;* Optional signing&lt;br/&gt;&lt;br/&gt;I think all operation for the Signer responsibility should be&lt;br/&gt;optional. This will inevitably lead to incompatibilities, but with the&lt;br/&gt;intent of being forward compatible with future developments, I don&amp;#39;t&lt;br/&gt;think it is possible to require every implementation to support the&lt;br/&gt;same set of scripts or contracts. For example, some signers may only&lt;br/&gt;implement single-key P2PKH, or may only support signing SegWit inputs.&lt;br/&gt;It&amp;#39;s the user&amp;#39;s responsibility to find compatible signers (which is&lt;br/&gt;generally not an issue, as the different participants in a setup&lt;br/&gt;necessarily have this figured out before being able to create an&lt;br/&gt;address). This does mean that there can&amp;#39;t be an unconditional test&lt;br/&gt;vector that specifies the produced signature in certain circumstances,&lt;br/&gt;but there could be &amp;#34;For implementations that choose to implement&lt;br/&gt;signing for P2PKH inputs using RFC6979, the expected output given&lt;br/&gt;input X and access to key Y is Z&amp;#34;.&lt;br/&gt;&lt;br/&gt;On the other hand, the Combiner and Finalizer roles can probably be&lt;br/&gt;specified much more accurately than they are now.&lt;br/&gt;&lt;br/&gt;* Derivation from xpub or fingerprint&lt;br/&gt;&lt;br/&gt;For BIP32 derivation paths, the spec currently only encodes the 32-bit&lt;br/&gt;fingerprint of the parent or master xpub. When the Signer only has a&lt;br/&gt;single xprv from which everything is derived, this is obviously&lt;br/&gt;sufficient. When there are many xprv, or when they&amp;#39;re not available&lt;br/&gt;indexed by fingerprint, this may be less convenient for the signer.&lt;br/&gt;Furthermore, it violates the &amp;#34;PSBT contains all information necessary&lt;br/&gt;for signing, excluding private keys&amp;#34; idea - at least if we don&amp;#39;t treat&lt;br/&gt;the chaincode as part of the private key.&lt;br/&gt;&lt;br/&gt;For that reason I would suggest that the derivation paths include the&lt;br/&gt;full public key and chaincode of the parent or master things are&lt;br/&gt;derived from. This does mean that the Creator needs to know the full&lt;br/&gt;xpub which things are derived from, rather than just its fingerprint.&lt;br/&gt;&lt;br/&gt;* Generic key offset derivation&lt;br/&gt;&lt;br/&gt;Whenever a BIP32 derivation path does not include any hardened steps,&lt;br/&gt;the entirety of the derivation can be conveyed as &amp;#34;The private key for&lt;br/&gt;P is equal to the private key for Q plus x&amp;#34;, with P and Q points and x&lt;br/&gt;a scalar. This representation is more flexible (it also supports&lt;br/&gt;pay-to-contract derivations), more efficient, and more compact. The&lt;br/&gt;downside is that it requires the Signer to support such derivation,&lt;br/&gt;which I don&amp;#39;t believe any current hardware devices do.&lt;br/&gt;&lt;br/&gt;Would it make sense to add this as an additional derivation method?&lt;br/&gt;&lt;br/&gt;* Hex encoding?&lt;br/&gt;&lt;br/&gt;This is a very minor thing. But presumably there will be some standard&lt;br/&gt;way to store PSBTs as text for copy-pasting - either prescribed by the&lt;br/&gt;spec, or de facto. These structures may become pretty large, so&lt;br/&gt;perhaps it&amp;#39;s worth choosing something more compact than hexadecimal -&lt;br/&gt;for example Base64 or even Z85 (&lt;a href=&#34;https://rfc.zeromq.org/spec:32/Z85/&#34;&gt;https://rfc.zeromq.org/spec:32/Z85/&lt;/a&gt;).&lt;br/&gt;&lt;br/&gt;Cheers,&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter
    </content>
    <updated>2023-06-07T20:13:02&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs9d32c8539527wmpyed0uy54gaqzkfq787hkkarq34u7plmvv6hfczypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dv7m2eqt</id>
    
      <title type="html">📅 Original date posted:2018-06-11 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs9d32c8539527wmpyed0uy54gaqzkfq787hkkarq34u7plmvv6hfczypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dv7m2eqt" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqstv6vj0z4dcwesnelvpft5eakdhyz9xgnvm43mfhhet32teehz3wsd0q897&#39;&gt;nevent1q…q897&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2018-06-11&lt;br/&gt;📝 Original message:On Mon, Jun 11, 2018, 07:37 Bradley Denby 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; Thanks for the comments Pieter!&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; We can make descriptions for the intended node behaviors more clear in the&lt;br/&gt;&amp;gt; BIP.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Regarding interaction with BIPs 37 and 133, we have found that if&lt;br/&gt;&amp;gt; Dandelion routing decisions are based on self-reported features, malicious&lt;br/&gt;&amp;gt; nodes can often exploit that to launch serious deanonymization attacks. As&lt;br/&gt;&amp;gt; a result, we recommend not allowing fee filters from peers to influence the&lt;br/&gt;&amp;gt; choice of route. Your suggestion of automatically fluffing is a good&lt;br/&gt;&amp;gt; solution. Another (similar) option would be to apply fee filters in the&lt;br/&gt;&amp;gt; stempool. This would prevent the tx from propagating in stem phase, so&lt;br/&gt;&amp;gt; eventually an embargo timer on the stem will expire and the transaction&lt;br/&gt;&amp;gt; will fluff. This is slower than auto-fluffing, but requires (slightly) less&lt;br/&gt;&amp;gt; code.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;I understand the argument about not making routing decisions based on&lt;br/&gt;self-reported features, but I would expect it to only matter if done&lt;br/&gt;selectively? Allowing a node to opt out of Dandelion entirely should always&lt;br/&gt;be possible regardless - as they can always indicate not supporting it.&lt;br/&gt;&lt;br/&gt;The reason for my suggestion was that most full nodes on the network use&lt;br/&gt;feefilter, while only (from the perspective of Dandelion uninteresting)&lt;br/&gt;light nodes and blocksonly nodes generally use Bloom filters.&lt;br/&gt;&lt;br/&gt;Just dropping stem transactions that would otherwise be sent to a Dandelion&lt;br/&gt;peer which fails its filter, and relying on embargo seems fine. But perhaps&lt;br/&gt;this option is something to describe in the BIP (&amp;#34;Nodes MAY choose to&lt;br/&gt;either drop stem transactions or immediately start diffusion when a&lt;br/&gt;transaction would otherwise be sent to a Dandelion node whose filter is not&lt;br/&gt;satisfied for that transaction. A node SHOULD NOT make any routing&lt;br/&gt;decisions based on the transaction itself, and thus SHOULD NOT try to find&lt;br/&gt;an alternative Dandelion node to forward to&amp;#34; for example).&lt;br/&gt;&lt;br/&gt;Regarding mempool-dependent transactions, the reference implementation adds&lt;br/&gt;&amp;gt; any mempool transactions to the stempool but not vice-versa so that the&lt;br/&gt;&amp;gt; stempool becomes a superset of the mempool. In other words, information is&lt;br/&gt;&amp;gt; free to flow from the mempool to the stempool. Information does not flow&lt;br/&gt;&amp;gt; from the stempool to the mempool except when a transaction fluffs. As a&lt;br/&gt;&amp;gt; result, a node&amp;#39;s stempool should accept and propagate Dandelion&lt;br/&gt;&amp;gt; transactions that depend on other unconfirmed normal mempool transactions.&lt;br/&gt;&amp;gt; The behavior you described is not intended; if you have any tests&lt;br/&gt;&amp;gt; demonstrating this behavior, would you mind sharing them?&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;Oh, I see! I was just judging based on the spec code you published, but I&lt;br/&gt;must have missed this. Yes, that makes perfect sense. There may be some&lt;br/&gt;issues with this having a significant impact on stempool memory usage, but&lt;br/&gt;let&amp;#39;s discuss this later on implementation.&lt;br/&gt;&lt;br/&gt;Orphans: stem orphans can occur when a node on the stem shuffles its route&lt;br/&gt;&amp;gt; between sending dependent transactions. One way to deal with this issue&lt;br/&gt;&amp;gt; would be to re-broadcast all previous Dandelion transactions that have not&lt;br/&gt;&amp;gt; been fluffed after Dandelion route shuffling. This could add a fair amount&lt;br/&gt;&amp;gt; of data and logic. This re-broadcast method also telegraphs the fact that a&lt;br/&gt;&amp;gt; Dandelion shuffle has taken place and can result in bursts of transactions&lt;br/&gt;&amp;gt; depending on traffic patterns. A second option (which we used in the&lt;br/&gt;&amp;gt; reference implementation) is to wait for the fluff phase to begin, at which&lt;br/&gt;&amp;gt; point the orphans will be resolved. This should happen within 15 seconds&lt;br/&gt;&amp;gt; for most transactions. Do you have any thoughts on which option would be&lt;br/&gt;&amp;gt; more palatable? Or if there are other options we have missed?&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;Another option (just brainstorming, I may be missing something here), is to&lt;br/&gt;remember which peer each stempool transaction was forwarded to. When a&lt;br/&gt;dependent stem transaction arrives, it is always sent to (one of?) the&lt;br/&gt;peers its dependencies were sent to, even if a reshuffle happened in&lt;br/&gt;between.&lt;br/&gt;&lt;br/&gt;Thinking more about it, relying on embargo is probably fine - it&amp;#39;ll just&lt;br/&gt;result in slightly lowered average stem length, and perhaps multiple&lt;br/&gt;simultaneous fluffs starting?&lt;br/&gt;&lt;br/&gt;Regarding preferred connections, we have found that making Dandelion&lt;br/&gt;&amp;gt; routing decisions based on claims made by peer nodes can cause problems and&lt;br/&gt;&amp;gt; therefore would recommend against biasing the peer selection code.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;Oh, I don&amp;#39;t mean routing decisions, but connections in general.&lt;br/&gt;&lt;br/&gt;On the implementation side:&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;Let&amp;#39;s discuss these later.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;gt; Based on the feedback we have received so far, we are planning to&lt;br/&gt;&amp;gt; prioritize writing up a clearer spec for node behavior in the BIP. Does&lt;br/&gt;&amp;gt; that seem reasonable, or are there other issues that are more pressing at&lt;br/&gt;&amp;gt; this point?&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;I think that&amp;#39;s the primary thing to focus on at this point, but perhaps&lt;br/&gt;others on this list feel different.&lt;br/&gt;&lt;br/&gt;Cheers,&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter&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/20180611/308dd73e/attachment-0001.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20180611/308dd73e/attachment-0001.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T20:12:50&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsxujun8vj376xql9c7f00ma6duma2lh4k5wpyq240gxur3jqkqpngzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dv9zttmy</id>
    
      <title type="html">📅 Original date posted:2018-06-03 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsxujun8vj376xql9c7f00ma6duma2lh4k5wpyq240gxur3jqkqpngzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dv9zttmy" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsfwjzus888t5rjccwdgyv804azld6t38pmm838u8lffp9mmcf8c0q090k7f&#39;&gt;nevent1q…0k7f&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2018-06-03&lt;br/&gt;📝 Original message:On Sat, Jun 2, 2018, 22:56 Tamas Blummer 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; Lighter but SPV secure nodes (filter committed) would help the network&lt;br/&gt;&amp;gt; (esp. Layer 2) to grow mesh like, but add more user that blindly follow POW.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; On longer term most users&amp;#39; security will be determined by either trusted&lt;br/&gt;&amp;gt; hubs or POW.&lt;br/&gt;&amp;gt; I do not know which is worse, but we should at least offer the choice to&lt;br/&gt;&amp;gt; the user, therefore commit filters.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;I don&amp;#39;t think that&amp;#39;s the point of discussion here. Of course, in order to&lt;br/&gt;have filters that verifiably don&amp;#39;t lie by omission, the filters need to be&lt;br/&gt;committed to by blocks.&lt;br/&gt;&lt;br/&gt;The question is what data that filter should contain.&lt;br/&gt;&lt;br/&gt;There are two suggestions:&lt;br/&gt;(a) The scriptPubKeys of the block&amp;#39;s outputs, and prevouts of the block&amp;#39;s&lt;br/&gt;inputs.&lt;br/&gt;(b) The scriptPubKeys of the block&amp;#39;s outputs, and scriptPubKeys of outputs&lt;br/&gt;being spent by the block&amp;#39;s inputs.&lt;br/&gt;&lt;br/&gt;The advantage of (a) is that it can be verified against a full block&lt;br/&gt;without access to the outputs being spent by it. This allows light clients&lt;br/&gt;to ban nodes that give them incorrect filters, but they do need to actually&lt;br/&gt;see the blocks (partially defeating the purpose of having filters in the&lt;br/&gt;first place).&lt;br/&gt;&lt;br/&gt;The advantage of (b) is that it is more compact (scriot reuse, and outputs&lt;br/&gt;spent within the same block as they are created). It also had the advantage&lt;br/&gt;of being more easily usable for scanning of a wallet&amp;#39;s transactions. Using&lt;br/&gt;(a) for that in some cases may need to restart and refetch when an output&lt;br/&gt;is discovered, to go test for its spending (whose outpoint is not known&lt;br/&gt;ahead of time). Especially when fetching multiple filters at a time this&lt;br/&gt;may be an issue.&lt;br/&gt;&lt;br/&gt;I think both of these potentially good arguments. However, once a committed&lt;br/&gt;filter exists, the advantage of (a) goes away completely - validation of&lt;br/&gt;committed filters is trivial and can be done without needing the full&lt;br/&gt;blocks in the first place.&lt;br/&gt;&lt;br/&gt;So I think the question is do we aim for an uncommitted (a) first and a&lt;br/&gt;committed (b) later, or go for (b) immediately?&lt;br/&gt;&lt;br/&gt;Cheers,&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter&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/20180602/ddc0b29e/attachment-0001.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20180602/ddc0b29e/attachment-0001.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T20:12:39&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsyexkjeeyuz0nlufj3g7m46ue7j2g623z8kuhy3y8lan3gr03zp2gzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvaf5rnm</id>
    
      <title type="html">📅 Original date posted:2018-05-31 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsyexkjeeyuz0nlufj3g7m46ue7j2g623z8kuhy3y8lan3gr03zp2gzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvaf5rnm" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqst35sn26kg5yqgyy292rwr6tq67pk6yy89chp2yeqxz97xvctlkws52yrp2&#39;&gt;nevent1q…yrp2&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2018-05-31&lt;br/&gt;📝 Original message:On Fri, May 25, 2018 at 3:14 AM, Johnson Lau &amp;lt;jl2012 at xbt.hk&amp;gt; wrote:&lt;br/&gt;&amp;gt; A graftroot design like this is a strict subset of existing signature checking rules. If this is dangerous, the existing signature checking rules must be dangerous.&lt;br/&gt;&lt;br/&gt;While you may be right in this situation, I&amp;#39;m not sure that conclusion&lt;br/&gt;follows from your argument. Whether or not a construction is safe does&lt;br/&gt;not just depend on the consensus rules, but also on how it is used.&lt;br/&gt;Otherwise you could as well argue that since OP_TRUE is possible right&lt;br/&gt;now which is obviously insecure, nothing more dangerous can be&lt;br/&gt;accomplished through any soft fork.&lt;br/&gt;&lt;br/&gt;The best argument for why Graftroot does not need to be optional I&lt;br/&gt;think was how Greg put it: &amp;#34;since the signer(s) could have signed an&lt;br/&gt;arbitrary transaction instead, being able to delegate is strictly less&lt;br/&gt;powerful.&amp;#34;.&lt;br/&gt;&lt;br/&gt;Cheers,&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter
    </content>
    <updated>2023-06-07T20:12:34&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsqzvyeqfqqj4w99vurgnlpl8hp7vtaf7ndux0wazfvjhn4ua7et8gzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dv5xz2kz</id>
    
      <title type="html">📅 Original date posted:2018-05-25 📝 Original message:Hi ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsqzvyeqfqqj4w99vurgnlpl8hp7vtaf7ndux0wazfvjhn4ua7et8gzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dv5xz2kz" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsplv5ee4gumg97fmmy7xasu3at8mwa9g56dcs649mqluyxedydm7c9p9hpm&#39;&gt;nevent1q…9hpm&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2018-05-25&lt;br/&gt;📝 Original message:Hi all,&lt;br/&gt;&lt;br/&gt;I spent some time working out the optimal parameter selection for the&lt;br/&gt;Golomb Coded Sets that are proposed in BIP158:&lt;br/&gt;&lt;a href=&#34;https://gist.github.com/sipa/576d5f09c3b86c3b1b75598d799fc845&#34;&gt;https://gist.github.com/sipa/576d5f09c3b86c3b1b75598d799fc845&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;TL;DR: if we really want an FP rate of exactly 1 in 2^20, the Rice&lt;br/&gt;parameter should be 19, not 20. If we don&amp;#39;t, we should pick an FP rate&lt;br/&gt;of 1 in a 1.4971*2^B. So for example M=784931 B=19 or M=1569861 B=20.&lt;br/&gt;&lt;br/&gt;Cheers,&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter
    </content>
    <updated>2023-06-07T20:12:29&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsxpr6v44my36hxayfhqarxluhwtkyaueqtpm75pjkfxjla4a2uheszypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dv029zp5</id>
    
      <title type="html">📅 Original date posted:2017-09-22 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsxpr6v44my36hxayfhqarxluhwtkyaueqtpm75pjkfxjla4a2uheszypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dv029zp5" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsx07hmpj9lfdmq7lddxtv2rysjdmn9fwluc7utyve8022v96d7eus4r0fym&#39;&gt;nevent1q…0fym&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2017-09-22&lt;br/&gt;📝 Original message:On Fri, Sep 22, 2017 at 2:54 PM, Sergio Demian Lerner 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; If the variable size increase is only a few bytes, then three&lt;br/&gt;&amp;gt; possibilities arise:&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; - one should allow signatures to be zero padded (to reach the maximum&lt;br/&gt;&amp;gt; size) and abandon strict DER encoding&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; - one should allow spare witness stack elements (to pad the size to match&lt;br/&gt;&amp;gt; the maximum size) and remove the cleanstack rule. But this is tricky&lt;br/&gt;&amp;gt; because empty stack elements must be counted as 1 byte.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; - signers must loop the generation of signatures until the signature&lt;br/&gt;&amp;gt; generated is of its maximum size.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;Or (my preference);&lt;br/&gt;&lt;br/&gt;- Get rid of DER encoding alltogether and switch to fixed size signatures.&lt;br/&gt;&lt;br/&gt;Cheers,&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter&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/20170922/5cb68030/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20170922/5cb68030/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T20:05:40&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsykcg2pgmgm3dw2tfa9cpzp5ggycupp4udv323r6emxugh9cj8pzczypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dv8h9yyf</id>
    
      <title type="html">📅 Original date posted:2017-07-11 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsykcg2pgmgm3dw2tfa9cpzp5ggycupp4udv323r6emxugh9cj8pzczypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dv8h9yyf" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqswnt8hgelja5ru325kx9vuahx2wan2h3wvul5puvz6guu8allgaegqdchg6&#39;&gt;nevent1q…chg6&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2017-07-11&lt;br/&gt;📝 Original message:On Tue, Jul 11, 2017 at 1:36 PM, Paul Sztorc &amp;lt;truthcoin at gmail.com&amp;gt; wrote:&lt;br/&gt;&amp;gt; Pieter,&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; I think that you have misrepresented Chris&amp;#39; view by taking it out of&lt;br/&gt;&amp;gt; context. His complete quote reads &amp;#34;If drivechains are successful they should&lt;br/&gt;&amp;gt; be viewed as the way we scale -- not hard forking the protocol.&amp;#34; Chris is&lt;br/&gt;&amp;gt; comparing Drivechains/sidechains to a hard fork.&lt;br/&gt;&lt;br/&gt;I apologize here; I didn&amp;#39;t mean to misrepresent his viewpoint.&lt;br/&gt;&lt;br/&gt;&amp;gt; You went on to &amp;#34;disagree&amp;#34;, but every point of contention you introduced was&lt;br/&gt;&amp;gt; something that would apply to both drivechain-sourced capacity and&lt;br/&gt;&amp;gt; hardfork-sourced capacity. Neither improves scalability, and both allow&lt;br/&gt;&amp;gt; users only the opportunity to select a different security model. If I&lt;br/&gt;&amp;gt; understand you, the point at which a security model does not become&lt;br/&gt;&amp;gt; &amp;#34;interesting&amp;#34; to you, would be the exact same point in the drivechain and&lt;br/&gt;&amp;gt; hardfork worlds. Both, at any rate, have the same effect on &amp;#34;validation cost&lt;br/&gt;&amp;gt; to auditors&amp;#34;.&lt;br/&gt;&lt;br/&gt;If you&amp;#39;re talking about the extreme case where every full node in the&lt;br/&gt;increased capacity single chain model corresponds to a node that&lt;br/&gt;validates both chains and all transfers between them in the&lt;br/&gt;drivechains, I agree. At that point they become nearly equivalent in&lt;br/&gt;terms of ease of adoption, resource costs, and capacity.&lt;br/&gt;&lt;br/&gt;However, I don&amp;#39;t think that is a realistic expectation. When&lt;br/&gt;considering drivechains as a capacity increase, I believe most people&lt;br/&gt;think about a situation where there are many chains that give an&lt;br/&gt;increased capacity combined, but not everyone verifies all of them.&lt;br/&gt;This is what I meant with uninteresting security model, as it requires&lt;br/&gt;increased miner trust for preventing the other chains&amp;#39; coins from&lt;br/&gt;being illegally transferred to the chain you&amp;#39;re operating on.&lt;br/&gt;&lt;br/&gt;Regardless, people are free experiment and adopt such an approach. The&lt;br/&gt;nice thing about it not being a hardfork is that it does not require&lt;br/&gt;network-wide consensus to deploy. However, I don&amp;#39;t think they offer a&lt;br/&gt;security model that should be encouraged, and thus doesn&amp;#39;t have a&lt;br/&gt;place on a roadmap.&lt;br/&gt;&lt;br/&gt;&amp;gt; Since their sidechain coins cannot appreciate in value relative&lt;br/&gt;&amp;gt; to the mainchain coins, users would only opt-in if they felt that they were&lt;br/&gt;&amp;gt; sufficiently compensated for any and all risks. Hence, it is difficult to&lt;br/&gt;&amp;gt; list this item as a drawback when, to the user, it is a strict improvement&lt;br/&gt;&amp;gt; (at least, by any epistemological standard that I can think of). If you have&lt;br/&gt;&amp;gt; new objections to these claims, I&amp;#39;m sure we would all benefit from hearing&lt;br/&gt;&amp;gt; them, myself most of all.&lt;br/&gt;&lt;br/&gt;Am I right in summarizing your point here as &amp;#34;This approach cannot&lt;br/&gt;hurt, because if it were insecure, people can choose to not use it.&amp;#34;?&lt;br/&gt;I&amp;#39;m not sure I agree with that, as network effects or misinformation&lt;br/&gt;may push users beyond what is reasonable.&lt;br/&gt;&lt;br/&gt;Cheers,&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter
    </content>
    <updated>2023-06-07T20:04:13&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsxdf42d7fp5rgs2cy64pptva96pg4ez0mdz5dapxw7us0j4wl7qcczypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvz6gx37</id>
    
      <title type="html">📅 Original date posted:2017-07-11 📝 Original message:On Jul ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsxdf42d7fp5rgs2cy64pptva96pg4ez0mdz5dapxw7us0j4wl7qcczypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvz6gx37" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs9zeudx6uv8tyjfl3gq9z3az99g9feaaxtwmtker7qumxgvn600wcdj88me&#39;&gt;nevent1q…88me&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2017-07-11&lt;br/&gt;📝 Original message:On Jul 11, 2017 09:18, &amp;#34;Chris Stewart via bitcoin-dev&amp;#34; &amp;lt;&lt;br/&gt;bitcoin-dev at lists.linuxfoundation.org&amp;gt; wrote:&lt;br/&gt;&lt;br/&gt;Concept ACK.&lt;br/&gt;&lt;br/&gt;If drivechains are successful they should be viewed as the way we scale&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;I strongly disagree with that statement.&lt;br/&gt;&lt;br/&gt;Drivechains, and several earlier sidechains ideas, are not a scalability&lt;br/&gt;improvement, but merely enabling users to opt-in for another security model.&lt;br/&gt;&lt;br/&gt;While obviously any future with wider adoption will need different&lt;br/&gt;technologies that have different trade-offs, and anyone is free to choose&lt;br/&gt;their security model, I don&amp;#39;t think this particular one is interesting. In&lt;br/&gt;terms of validation cost to auditors, it is as bad as just a capacity&lt;br/&gt;increase on chain, while simultaneously adding the extra risk of miners&lt;br/&gt;being able to vote to steal your money.&lt;br/&gt;&lt;br/&gt;Cheers,&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter&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/20170711/6c7b8145/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20170711/6c7b8145/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T20:04:12&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsq6wccnegwvjku47pgxwe826kdprlhwvn5ztjrxgpu5w947mljtqgzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvx7ud7u</id>
    
      <title type="html">📅 Original date posted:2017-03-28 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsq6wccnegwvjku47pgxwe826kdprlhwvn5ztjrxgpu5w947mljtqgzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvx7ud7u" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqspk0tcsec0xu8m2rrztnf7et8hnqjskexyqgsh9yfs30fmjtclvwqc3wne8&#39;&gt;nevent1q…wne8&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2017-03-28&lt;br/&gt;📝 Original message:On Tue, Mar 28, 2017 at 12:56 PM, Paul Iverson via bitcoin-dev&lt;br/&gt;&amp;lt;bitcoin-dev at lists.linuxfoundation.org&amp;gt; wrote:&lt;br/&gt;&amp;gt; So I think Core can&amp;#39;t decide on hard forks like this. It must be left up to&lt;br/&gt;&amp;gt; the users. I think only choice is for Core to add a run-time option to allow&lt;br/&gt;&amp;gt; node operators to increase block size limit, so that this very controversial&lt;br/&gt;&amp;gt; decision is not coming from Core. It must come from the community.&lt;br/&gt;&lt;br/&gt;Bitcoin Core&amp;#39;s (nor any other software&amp;#39;s) maintainers can already not&lt;br/&gt;decide on a hard fork, and I keep being confused by the focus on Core&lt;br/&gt;in this topic. Even if a hard forking change (or lack thereof) was&lt;br/&gt;included into a new release, it is still up to the community to choose&lt;br/&gt;to run the new software. Bitcoin Core has very intentionally no&lt;br/&gt;auto-update feature, as the choice for what network rules to implement&lt;br/&gt;must come from node operators, not developers. Ask yourself this: if a&lt;br/&gt;new Bitcoin Core release would include a new rule that blacklists&lt;br/&gt;&amp;lt;random famous person&amp;gt;&amp;#39;s coins. What do you think would happen? I hope&lt;br/&gt;that people would refuse to update, and choose to run different full&lt;br/&gt;node software.&lt;br/&gt;&lt;br/&gt;Core is not special. It is one of many pieces of software that&lt;br/&gt;implement today&amp;#39;s Bitcoin consensus rules. If a hardfork is to take&lt;br/&gt;place in a way that does not result in two currencies, it must be&lt;br/&gt;clear that the entire ecosystem will adopt it. Bitcoin Core will not&lt;br/&gt;merge any consensus changes that do not clearly satisfy that&lt;br/&gt;criterion.&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter
    </content>
    <updated>2023-06-07T19:58:13&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsvsddfdlw32rs4ak7lu9n4eanhlxyc7juufgudwc7mlcnrh9er7lczypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvslxs6n</id>
    
      <title type="html">📅 Original date posted:2017-02-26 📝 Original message:On Feb ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsvsddfdlw32rs4ak7lu9n4eanhlxyc7juufgudwc7mlcnrh9er7lczypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvslxs6n" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqswhrgkkrx66zmu6lw6n9cfwf7caxrxxjx7rgp5xprrhvrdwut8a3cw7z9dh&#39;&gt;nevent1q…z9dh&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2017-02-26&lt;br/&gt;📝 Original message:On Feb 25, 2017 22:26, &amp;#34;Steve Davis&amp;#34; &amp;lt;steven.charles.davis at gmail.com&amp;gt; wrote:&lt;br/&gt;&lt;br/&gt;Hi Pieter,&lt;br/&gt;&lt;br/&gt;&amp;gt; On Feb 25, 2017, at 4:14 PM, Pieter Wuille &amp;lt;pieter.wuille at gmail.com&amp;gt;&lt;br/&gt;wrote:&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Any alternative to move us away from RIPEMD160 would require:&lt;br/&gt;&lt;br/&gt;&amp;gt; &amp;lt;snipped&amp;gt;&lt;br/&gt;&lt;br/&gt;“Any alternative”? What about reverting to:&lt;br/&gt;&lt;br/&gt;[&amp;lt;public_key&amp;gt;, OP_CHECKSIG]&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;snip&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Could that be the alternative?&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Ok, fair enough, that is an alternative that avoids the 160-bit hash&lt;br/&gt;function, but not where it matters. The 80-bit collision attack only&lt;br/&gt;applies to jointly constructed addresses like multisig P2SH, not single-key&lt;br/&gt;ones. As far as I know for those we only rely preimage security, and&lt;br/&gt;RIPEMD160 has 160 bit security there, which is even more than our ECDSA&lt;br/&gt;signatures offer.&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter&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/20170225/6f7d3907/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20170225/6f7d3907/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T19:56:47&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsy45c97m98rnhydtqrwaxtjwsufkg6um50d0pg32303qpcwmfg6fgzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvszwzdw</id>
    
      <title type="html">📅 Original date posted:2017-02-25 📝 Original message:On Feb ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsy45c97m98rnhydtqrwaxtjwsufkg6um50d0pg32303qpcwmfg6fgzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvszwzdw" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsw9mmmntdy2ucxkxz5mnklsxm88pd4re4nkyzsu230cv5ywyq0zpg2qnwu6&#39;&gt;nevent1q…nwu6&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2017-02-25&lt;br/&gt;📝 Original message:On Feb 25, 2017 14:09, &amp;#34;Steve Davis via bitcoin-dev&amp;#34; &amp;lt;&lt;br/&gt;bitcoin-dev at lists.linuxfoundation.org&amp;gt; wrote:&lt;br/&gt;&lt;br/&gt;Hi Peter,&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;I really, really don’t want to get into it but segwit has many aspects that&lt;br/&gt;are less appealing, not least of which being the amount of time it would&lt;br/&gt;take to reach the critical mass.&lt;br/&gt;&lt;br/&gt;Surely there&amp;#39;s a number of alternative approaches which could be explored,&lt;br/&gt;even if only to make a fair assessment of a best response?&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Any alternative to move us away from RIPEMD160 would require:&lt;br/&gt;* A drafting of a softfork proposal, implementation, testing, review.&lt;br/&gt;* A new address format&lt;br/&gt;* Miners accepting the new consensus rules&lt;br/&gt;* Wallets adopting the new address format, both on the sender side and&lt;br/&gt;receiver side (which requires new signatures).&lt;br/&gt;&lt;br/&gt;I.e., exactly the same as segwit, for which most of these are already done.&lt;br/&gt;And it would still only apply to wallets adopting it.&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter&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/20170225/e3856947/attachment-0001.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20170225/e3856947/attachment-0001.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T19:56:46&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqswptxgaqc7sflrunp3m604a2d6sxnwarm6h7vk5e3s44mp234xn4gzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvsqzkcd</id>
    
      <title type="html">📅 Original date posted:2016-12-10 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqswptxgaqc7sflrunp3m604a2d6sxnwarm6h7vk5e3s44mp234xn4gzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvsqzkcd" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsfqw9zmr6vsynw5ks4t2zdn557q40ludtrqpgyvpus4atvqx7wyaqc5d3a8&#39;&gt;nevent1q…d3a8&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2016-12-10&lt;br/&gt;📝 Original message:On Sat, Dec 10, 2016 at 4:23 AM, Daniele Pinna 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; We have models for estimating the probability that a block is orphaned&lt;br/&gt;&amp;gt; given average network bandwidth and block size.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; The question is, do we have objective measures of these two quantities?&lt;br/&gt;&amp;gt; Couldn&amp;#39;t we target an orphan_rate &amp;lt; max_rate?&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;Models can predict orphan rate given block size and network/hashrate&lt;br/&gt;topology, but you can&amp;#39;t control the topology (and things like FIBRE hide&lt;br/&gt;the effect of block size on this as well). The result is that if you&amp;#39;re&lt;br/&gt;purely optimizing for minimal orphan rate, you can end up with a single&lt;br/&gt;(conglomerate of) pools producing all the blocks. Such a setup has no&lt;br/&gt;propagation delay at all, and as a result can always achieve 0 orphans.&lt;br/&gt;&lt;br/&gt;Cheers,&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter&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/20161210/edca6d6b/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20161210/edca6d6b/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T19:54:54&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs8d5qq5k4q0kmuwdsxqhc5eh3wvlk2v0jf8dmttnw3v6ydpxejgxczypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvnc6083</id>
    
      <title type="html">📅 Original date posted:2016-10-16 📝 Original message:Hello ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs8d5qq5k4q0kmuwdsxqhc5eh3wvlk2v0jf8dmttnw3v6ydpxejgxczypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvnc6083" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsqzwz3je8qqpk538dv5cswznrud33ntzmehle5vg8ewq7rr0xuwcgj4wfe0&#39;&gt;nevent1q…wfe0&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2016-10-16&lt;br/&gt;📝 Original message:Hello all,&lt;br/&gt;&lt;br/&gt;We&amp;#39;re getting ready for Bitcoin Core&amp;#39;s 0.13.1 release - the first one&lt;br/&gt;to include segregated witness (BIP 141, 143, 144, 145) for Bitcoin&lt;br/&gt;mainnet, after being extensively tested on testnet and in other&lt;br/&gt;software. Following the BIP9 recommendation [1] to set the versionbits&lt;br/&gt;start time a month in the future and discussion in the last IRC&lt;br/&gt;meeting [2], I propose we set BIP 141&amp;#39;s start time to November 15,&lt;br/&gt;2016, 0:00 UTC (unix time 1479168000).&lt;br/&gt;&lt;br/&gt;Note that this is just a lower bound on the time when the versionbits&lt;br/&gt;signalling can begin. Activation on the network requires:&lt;br/&gt;(1) This date to pass&lt;br/&gt;(2) A full retarget window of 2016 blocks with 95% signalling the&lt;br/&gt;version bit (bit 1 for BIP141)&lt;br/&gt;(3) A fallow period consisting of another 2016 blocks.&lt;br/&gt;&lt;br/&gt;  [1] &lt;a href=&#34;https://github.com/bitcoin/bips/blob/master/bip-0009.mediawiki&#34;&gt;https://github.com/bitcoin/bips/blob/master/bip-0009.mediawiki&lt;/a&gt;&lt;br/&gt;  [2] &lt;a href=&#34;http://www.erisian.com.au/meetbot/bitcoin-core-dev/2016/bitcoin-core-dev.2016-10-13-19.04.log.html&#34;&gt;http://www.erisian.com.au/meetbot/bitcoin-core-dev/2016/bitcoin-core-dev.2016-10-13-19.04.log.html&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Cheers,&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter
    </content>
    <updated>2023-06-07T19:54:00&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs9c2z5a9kxm3rkd7ssm287z8fdsrexkgf695kgk5u39t8jtka3zvszypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvqka5gn</id>
    
      <title type="html">📅 Original date posted:2016-06-23 📝 Original message:On Jun ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs9c2z5a9kxm3rkd7ssm287z8fdsrexkgf695kgk5u39t8jtka3zvszypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvqka5gn" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsdzjh3f2m7wccclnke2p7ct9s9vt6t7zzgaqfwk50l0nz43zadg7cyx8h6g&#39;&gt;nevent1q…8h6g&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2016-06-23&lt;br/&gt;📝 Original message:On Jun 23, 2016 14:10, &amp;#34;Peter Todd&amp;#34; &amp;lt;pete at petertodd.org&amp;gt; wrote:&lt;br/&gt;&lt;br/&gt;&amp;gt; Right, so you accept that we&amp;#39;ll exert some degree of editorial control;&lt;br/&gt;the&lt;br/&gt;&amp;gt; question now is what editorial policies should we exert?&lt;br/&gt;&lt;br/&gt;No, I do not. I am saying that some degree of editorial control will&lt;br/&gt;inevitably exist, simply because there is some human making the choice of&lt;br/&gt;assigning a BIP number and merging. My opinion is that we should try to&lt;br/&gt;restrict that editorial control to only be subject to objective process,&lt;br/&gt;and not be dependent on personal opinions.&lt;br/&gt;&lt;br/&gt;&amp;gt; My argument is that rejecting BIP75 is something we should do on&lt;br/&gt;&amp;gt; ethical/strategic grounds. You may disagree with that, but please don&amp;#39;t&lt;br/&gt;troll&lt;br/&gt;&amp;gt; and call that &amp;#34;advocating censorship&amp;#34;&lt;br/&gt;&lt;br/&gt;I think that you are free to express dislike of BIP75. Suggesting to remove&lt;br/&gt;it for that reason is utterly ridiculous to me, whatever you want to call&lt;br/&gt;it.&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter&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/20160623/ba7a229f/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20160623/ba7a229f/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T19:51:23&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsqdfxwgzu458lj2p0q24sjfrax8kd2txfcl67ad3ksg8cussftcaczypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvj5r5mn</id>
    
      <title type="html">📅 Original date posted:2016-06-23 📝 Original message:On Jun ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsqdfxwgzu458lj2p0q24sjfrax8kd2txfcl67ad3ksg8cussftcaczypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvj5r5mn" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsd6680f5ajlg2mpl6s68c6wqn34uenu0ur4yklmkhwrdjy6s7dxhsx7x8ln&#39;&gt;nevent1q…x8ln&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2016-06-23&lt;br/&gt;📝 Original message:On Jun 23, 2016 12:56, &amp;#34;Peter Todd via bitcoin-dev&amp;#34; &amp;lt;&lt;br/&gt;bitcoin-dev at lists.linuxfoundation.org&amp;gt; wrote:&lt;br/&gt;&lt;br/&gt;&amp;gt; In any case, I&amp;#39;d strongly argue that we remove BIP75 from the bips&lt;br/&gt;repository,&lt;br/&gt;&amp;gt; and boycott wallets that implement it. It&amp;#39;s bad strategy for Bitcoin&lt;br/&gt;developers&lt;br/&gt;&amp;gt; to willingly participate in AML/KYC, just the same way as it&amp;#39;s bad for&lt;br/&gt;Tor to&lt;br/&gt;&amp;gt; add wiretapping functionality, and W3C to support DRM tech. The minor&lt;br/&gt;tactical&lt;br/&gt;&amp;gt; wins you&amp;#39;ll get our of this aren&amp;#39;t worth it.&lt;br/&gt;&lt;br/&gt;I hope you&amp;#39;re not seriously suggesting to censor a BIP because you feel it&lt;br/&gt;is a bad idea.&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter&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/20160623/b6c34061/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20160623/b6c34061/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T19:51:22&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs8r5ya2wlx8ylsgvvlsrsnph4gtlhrd0635l207xrcv256me7qxxgzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dv46rnw4</id>
    
      <title type="html">📅 Original date posted:2016-05-09 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs8r5ya2wlx8ylsgvvlsrsnph4gtlhrd0635l207xrcv256me7qxxgzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dv46rnw4" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs8heegfnggg7lay7puhu093jculspvypev9658645cxpw8f3re4yqdddskn&#39;&gt;nevent1q…dskn&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2016-05-09&lt;br/&gt;📝 Original message:On 05/03/2016 12:13 AM, lf-lists at mattcorallo.com (Matt Corallo) wrote:&lt;br/&gt;&amp;gt; Hi all,&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; The following is a BIP-formatted design spec for compact block relay&lt;br/&gt;&amp;gt; designed to limit on wire bytes during block relay. You can find the&lt;br/&gt;&amp;gt; latest version of this document at&lt;br/&gt;&amp;gt; &lt;a href=&#34;https://github.com/TheBlueMatt/bips/blob/master/bip-TODO.mediawiki&#34;&gt;https://github.com/TheBlueMatt/bips/blob/master/bip-TODO.mediawiki&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;Hi Matt,&lt;br/&gt;&lt;br/&gt;thank you for working on this!&lt;br/&gt;&lt;br/&gt;&amp;gt; ===New data structures===&lt;br/&gt;&amp;gt; Several new data structures are added to the P2P network to relay&lt;br/&gt;&amp;gt; compact blocks: PrefilledTransaction, HeaderAndShortIDs,&lt;br/&gt;&amp;gt; BlockTransactionsRequest, and BlockTransactions. Additionally, we&lt;br/&gt;&amp;gt; introduce a new variable-length integer encoding for use in these data&lt;br/&gt;&amp;gt; structures.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; For the purposes of this section, CompactSize refers to the&lt;br/&gt;&amp;gt; variable-length integer encoding used across the existing P2P protocol&lt;br/&gt;&amp;gt; to encode array lengths, among other things, in 1, 3, 5 or 9 bytes.&lt;br/&gt;&lt;br/&gt;This is a not, but I think it&amp;#39;s a bit strange to have two separate&lt;br/&gt;variable length integers in the same specification. I understand is one&lt;br/&gt;is already the default for variable-length integers currently, and there&lt;br/&gt;are reasons to use the other one for efficiency reasons in some places,&lt;br/&gt;but perhaps we should aim to get everything using the latter?&lt;br/&gt;&lt;br/&gt;&amp;gt; ====New VarInt====&lt;br/&gt;&amp;gt; Variable-length integers: bytes are a MSB base-128 encoding of the number.&lt;br/&gt;&amp;gt; The high bit in each byte signifies whether another digit follows. To make&lt;br/&gt;&amp;gt; sure the encoding is one-to-one, one is subtracted from all but the last&lt;br/&gt;&amp;gt; digit.&lt;br/&gt;&lt;br/&gt;Maybe it&amp;#39;s worth mentioning that it is based on ASN.1 BER&amp;#39;s compressed&lt;br/&gt;integer format (see&lt;br/&gt;&lt;a href=&#34;https://www.itu.int/ITU-T/studygroups/com17/languages/X.690-0207.pdf&#34;&gt;https://www.itu.int/ITU-T/studygroups/com17/languages/X.690-0207.pdf&lt;/a&gt;&lt;br/&gt;section 8.1.3.5), though with a small modification to make every integer&lt;br/&gt;have a single unique encoding.&lt;br/&gt;&lt;br/&gt;&amp;gt; ====HeaderAndShortIDs====&lt;br/&gt;&amp;gt; A HeaderAndShortIDs structure is used to relay a block header, the short&lt;br/&gt;&amp;gt; transactions IDs used for matching already-available transactions, and a&lt;br/&gt;&amp;gt; select few transactions which we expect a peer may be missing.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; |shortids||List of uint64_ts||8*shortids_length bytes||Little&lt;br/&gt;&amp;gt; Endian||The short transaction IDs calculated from the transactions which&lt;br/&gt;&amp;gt; were not provided explicitly in prefilledtxn&lt;br/&gt;&lt;br/&gt;I tried to derive what length of short ids is actually necessary (some&lt;br/&gt;write-up is on&lt;br/&gt;&lt;a href=&#34;https://gist.github.com/sipa/b2eb2e486156b5509ac711edd16153ed&#34;&gt;https://gist.github.com/sipa/b2eb2e486156b5509ac711edd16153ed&lt;/a&gt; but it&amp;#39;s&lt;br/&gt;incomplete).&lt;br/&gt;&lt;br/&gt;For any reasonable numbers I can come up with (in a very wide range),&lt;br/&gt;the number of bits needed is very well approximated by:&lt;br/&gt;&lt;br/&gt;  log2(#receiver_mempool_txn * #block_txn_not_in_receiver_mempool /&lt;br/&gt;acceptable_per_block_failure_rate)&lt;br/&gt;&lt;br/&gt;For example, with 20000 mempool transactions, 2500 transactions in a&lt;br/&gt;block, 95% hitrate, and a chance of 1 in 10000 blocks to fail to&lt;br/&gt;reconstruct, needed_bits = log2(20000 * 2500 * (1 - 0.95) / 0.0001) =&lt;br/&gt;34.54, or 5 byte txids would suffice.&lt;br/&gt;&lt;br/&gt;Note that 1 in 10000 failures may sound like a lot, but this is for each&lt;br/&gt;individual connection, and since every transmission uses separately&lt;br/&gt;salted identifiers, occasional failures should not affect global&lt;br/&gt;propagation. Given that transmission failures due to timeouts, network&lt;br/&gt;connectivity, ... already occur much more frequently than once every few&lt;br/&gt;gigabytes (what 10000 blocks corresponds to), that&amp;#39;s probably already&lt;br/&gt;more than enough.&lt;br/&gt;&lt;br/&gt;In short: I believe 5 or 6 byte txids should be enough, but perhaps it&lt;br/&gt;makes sense to allow the sender to choose (so he can weigh trying&lt;br/&gt;multiple nonces against increasing the short txid length).&lt;br/&gt;&lt;br/&gt;&amp;gt; ====Short transaction IDs====&lt;br/&gt;&amp;gt; Short transaction IDs are used to represent a transaction without&lt;br/&gt;&amp;gt; sending a full 256-bit hash. They are calculated by:&lt;br/&gt;&amp;gt; # single-SHA256 hashing the block header with the nonce appended (in&lt;br/&gt;&amp;gt; little-endian)&lt;br/&gt;&amp;gt; # XORing each 8-byte chunk of the double-SHA256 transaction hash with&lt;br/&gt;&amp;gt; each corresponding 8-byte chunk of the hash from the previous step&lt;br/&gt;&amp;gt; # Adding each of the XORed 8-byte chunks together (in little-endian)&lt;br/&gt;&amp;gt; iteratively to find the short transaction ID&lt;br/&gt;&lt;br/&gt;An alternative would be using SipHash-1-3 (a form of SipHash with&lt;br/&gt;reduced iteration counts; the default is SipHash-2-4). SipHash was&lt;br/&gt;designed as a Message Authentication Code, where the security&lt;br/&gt;requirements are much stronger than in our case (in particular, we don&amp;#39;t&lt;br/&gt;care about observers being able to finding the key, as the key is just&lt;br/&gt;public knowledge here). One of the designers of SipHash has commented&lt;br/&gt;that SipHash-1-3 for collision resistance in hash tables may be enough:&lt;br/&gt;&lt;a href=&#34;https://github.com/rust-lang/rust/issues/29754#issuecomment-156073946&#34;&gt;https://github.com/rust-lang/rust/issues/29754#issuecomment-156073946&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Using SipHash-1-3 on modern hardware would take ~32 CPU cycles per txid.&lt;br/&gt;&lt;br/&gt;&amp;gt; ===Implementation Notes===&lt;br/&gt;&lt;br/&gt;There are a few more heuristics that MAY be used to improve performance:&lt;br/&gt;&lt;br/&gt;* Receivers should treat short txids in blocks that match multiple&lt;br/&gt;mempool transactions as non-matches, and request the transactions. This&lt;br/&gt;significantly reduces the failure to reconstruct.&lt;br/&gt;&lt;br/&gt;* When constructing a compact block to send, the sender can verify it&lt;br/&gt;against its own mempool to check for collisions, and if so, choose to&lt;br/&gt;either try another nonce, or increase the short txid length.&lt;br/&gt;&lt;br/&gt;Cheers,&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter
    </content>
    <updated>2023-06-07T19:50:20&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsrs6lkyjxpq456f75hdem6me56nk9e5grqhslqp5cw3dfml6dcclqzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvry5q5k</id>
    
      <title type="html">📅 Original date posted:2016-01-07 📝 Original message:&amp;gt; ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsrs6lkyjxpq456f75hdem6me56nk9e5grqhslqp5cw3dfml6dcclqzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvry5q5k" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs20qrgk3d8f0cagaq6s5ks2496p69vtl23tcprvdwu3fgtd0dx3mghuksqt&#39;&gt;nevent1q…ksqt&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2016-01-07&lt;br/&gt;📝 Original message:&amp;gt; &amp;#34;The problem case is where someone in a contract setup shows you a&lt;br/&gt;script, which you accept as being a payment to yourself. An attacker could&lt;br/&gt;use a collision attack to construct scripts with identical hashes, only one&lt;br/&gt;of which does have the property you want, and steal coins.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; So you really want collision security, and I don&amp;#39;t think 80 bits is&lt;br/&gt;something we should encourage for that. Normal pubkey hashes don&amp;#39;t have&lt;br/&gt;that problem, as they can&amp;#39;t be constructed to pay to you.&amp;#34;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; ... but I&amp;#39;m unconvinced:&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;#34;But it is trivial for contract wallets to protect against collision&lt;br/&gt;attacks-- if you give me a script that is &amp;#34;gavin_pubkey CHECKSIG&lt;br/&gt;arbitrary_data OP_DROP&amp;#34; with &amp;#34;I promise I&amp;#39;m not trying to rip you off, just&lt;br/&gt;ignore that arbitrary data&amp;#34; a wallet can just refuse. Even more likely, a&lt;br/&gt;contract wallet won&amp;#39;t even recognize that as a pay-to-gavin transaction.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; I suppose it could be looking for some form of &amp;#34;gavin_pubkey&lt;br/&gt;somebody_else_pubkey CHECKMULTISIG ... with the attacker using&lt;br/&gt;somebody_else_pubkey to force the collision, but, again, trivial contract&lt;br/&gt;protocol tweaks (&amp;#34;send along a proof you have the private key corresponding&lt;br/&gt;to the public key&amp;#34; or &amp;#34;everybody pre-commits pubkeys they&amp;#39;ll use at&lt;br/&gt;protocol start&amp;#34;) would protect against that.&lt;br/&gt;&lt;br/&gt;Yes, this is what I worry about. We&amp;#39;re constructing a 2-of-2 multisig&lt;br/&gt;escrow in a contract. I reveal my public key A, you do a 80-bit search for&lt;br/&gt;B and C such that H(A and B) = H(B and C). You tell me your keys B, and I&lt;br/&gt;happily send to H(A and B), which you steal with H(B and C).&lt;br/&gt;&lt;br/&gt;Sending along a proof does not help, you can&amp;#39;t prove that you do not know&lt;br/&gt;of a collision. Pre-committing does help, but is a very non-obvious&lt;br/&gt;security requirement, something I strongly believe is far riskier in&lt;br/&gt;practice.&lt;br/&gt;&lt;br/&gt;Bitcoin does have parts that rely on economic arguments for security or&lt;br/&gt;privacy, but can we please stick to using cryptography that is up to par&lt;br/&gt;for parts where we can? It&amp;#39;s a small constant factor of data, and it&lt;br/&gt;categorically removes the worry about security levels.&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter&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/20160108/e2e921fb/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20160108/e2e921fb/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T19:47:42&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqszqdyes4pymsxwql822j9f9h9n0snmvml3pp8dstvywarzu5mvggczypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dv2scjk7</id>
    
      <title type="html">📅 Original date posted:2016-01-08 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqszqdyes4pymsxwql822j9f9h9n0snmvml3pp8dstvywarzu5mvggczypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dv2scjk7" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsw8qrmmdhcxsusnpuflv63euqa3fq7l0amdc5utv6vg4n53lnpt0qx8l5xf&#39;&gt;nevent1q…l5xf&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2016-01-08&lt;br/&gt;📝 Original message:On Fri, Jan 8, 2016 at 2:54 AM, Gavin Andresen via bitcoin-dev &amp;lt;&lt;br/&gt;bitcoin-dev at lists.linuxfoundation.org&amp;gt; wrote:&lt;br/&gt;&amp;gt; I&amp;#39;m saying we can eliminate one somewhat unlikely attack (that there is a&lt;br/&gt;&amp;gt; bug in the code or test cases, today or some future version, that has to&lt;br/&gt;&amp;gt; decide what to do with &amp;#34;version 0&amp;#34; versus &amp;#34;version 1&amp;#34; witness programs) by&lt;br/&gt;&amp;gt; accepting the risk of another insanely, extremely unlikely attack.&lt;br/&gt;&lt;br/&gt;Ok, just having one witness program version now is a somewhat different&lt;br/&gt;proposal. It would be simpler for sure. The reasoning was that you&amp;#39;d need&lt;br/&gt;this to not add significant overhead to small scripts, but that may not be&lt;br/&gt;the case anymore. I wouldn&amp;#39;t mind seeing numbers.&lt;br/&gt;&lt;br/&gt;&amp;gt; My proposal would be to just do a version 0 witness program now, that is&lt;br/&gt;&amp;gt; RIPEMD160(SHA256(script)).&lt;br/&gt;&lt;br/&gt;I don&amp;#39;t think that is wise. Bitcoin has a 128-bit security target for&lt;br/&gt;everything else. We did not know that P2SH and similar constructs were&lt;br/&gt;vulnerable to a collision attack at the time, but now we do, so the obvious&lt;br/&gt;choice is to pick a size that is sufficiently large to maintain the 128-bit&lt;br/&gt;security target. This is a no brainer to me; we&amp;#39;re not proposing switching&lt;br/&gt;to a 160-bit EC curve either, right?&lt;br/&gt;&lt;br/&gt;&amp;gt; I&amp;#39;m really disappointed with the &amp;#34;Here&amp;#39;s the spec, take it or leave it&amp;#34;&lt;br/&gt;&amp;gt; attitude. What&amp;#39;s the point of having a BIP process if the discussion just&lt;br/&gt;&amp;gt; comes down to &amp;#34;We think more is better. We don&amp;#39;t care what you think.&amp;#34;&lt;br/&gt;&lt;br/&gt;It is a proposal and we are discussing it. You first brought up some&lt;br/&gt;criticisms in private, and I agreed with several things you said.&lt;br/&gt;&lt;br/&gt;But it remains the proposal of a few people including me, and I do not&lt;br/&gt;agree with the specific suggestion of reducing the security target for&lt;br/&gt;witness scripts to 80 bits.&lt;br/&gt;&lt;br/&gt;We are not deciding what the system will be. We&amp;#39;re making a proposal, and&lt;br/&gt;hope that due to its technical merit, the ecosystem will adopt it. You&amp;#39;re&lt;br/&gt;free to participate in that discussion.&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter&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/20160108/2420393c/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20160108/2420393c/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T19:47:41&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsg5z3udhzyj4vzv2e9ajlu6shzktfss33z7fmuhmf5jhpcw5mut6czypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dv7wjck4</id>
    
      <title type="html">📅 Original date posted:2015-12-18 📝 Original message:Hello ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsg5z3udhzyj4vzv2e9ajlu6shzktfss33z7fmuhmf5jhpcw5mut6czypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dv7wjck4" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsf3newxkpclgf54eh34cpg2m48cntdt2hzlxj6vfer0yrnlr3j2xgs8f5l4&#39;&gt;nevent1q…f5l4&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2015-12-18&lt;br/&gt;📝 Original message:Hello all,&lt;br/&gt;&lt;br/&gt;For a long time, I was personally of the opinion that soft forks&lt;br/&gt;constituted a mild security reduction for old full nodes, albeit one&lt;br/&gt;that was preferable to hard forks due to being far less risky, easier,&lt;br/&gt;and less forceful to deploy.&lt;br/&gt;&lt;br/&gt;After thinking more about this, I&amp;#39;m not convinced that it is even that anymore.&lt;br/&gt;&lt;br/&gt;Let&amp;#39;s analyze all failure modes (and feel free to let me know whether&lt;br/&gt;I&amp;#39;ve missed any specific ones):&lt;br/&gt;&lt;br/&gt;1) The risk of an old full node wallet accepting a transaction that is&lt;br/&gt;invalid to the new rules.&lt;br/&gt;&lt;br/&gt;The receiver wallet chooses what address/script to accept coins on.&lt;br/&gt;They&amp;#39;ll upgrade to the new softfork rules before creating an address&lt;br/&gt;that depends on the softfork&amp;#39;s features.&lt;br/&gt;&lt;br/&gt;So, not a problem.&lt;br/&gt;&lt;br/&gt;2) The risk of an old full node wallet accepting a transaction whose&lt;br/&gt;coins passed through a script that depends on the softforked rules.&lt;br/&gt;&lt;br/&gt;It is reasonable that the receiver of a transaction places some trust&lt;br/&gt;in the sender, and on the basis of that, decides to reduce the number&lt;br/&gt;of confirmations before acceptance. In case the transaction indirectly&lt;br/&gt;depends on a low-confirmation transaction using softforked rules, it&lt;br/&gt;may be treated as an anyone-can-spend transaction. Obviously, no trust&lt;br/&gt;can be placed in such a transactions not being reorged out and&lt;br/&gt;replaced with an incompatible one.&lt;br/&gt;&lt;br/&gt;However, this problem is common for all anyonecanspend transactions,&lt;br/&gt;which are perfectly legal today in the blockchain. So, if this is a&lt;br/&gt;worry, we can solve it by marking incoming transactions as &amp;#34;uncertain&lt;br/&gt;history&amp;#34; in the wallet if they have an anyonecanspend transaction with&lt;br/&gt;less than 6 confirmations in its history. In fact, the same problem to&lt;br/&gt;a lesser extent exists if coins pass through a 1-of-N multisig or so,&lt;br/&gt;because you&amp;#39;re not only trusting the (indirect) senders, but also&lt;br/&gt;their potential cosigners.&lt;br/&gt;&lt;br/&gt;3) The risk of an SPV node wallet accepting an unconfirmed transaction&lt;br/&gt;which is invalid to new nodes.&lt;br/&gt;&lt;br/&gt;Defrauding an SPV wallet with an invalid unconfirmed transaction&lt;br/&gt;doesn&amp;#39;t change with the introduction of new consensus rules, as they&lt;br/&gt;don&amp;#39;t validate them anyway.&lt;br/&gt;&lt;br/&gt;In the case the client trusts the full node peer(s) it is connected to&lt;br/&gt;to do validation before relay, nodes can either indicate (service bit&lt;br/&gt;or new p2p message) which softforks are accepted (as it only matters&lt;br/&gt;to SPV wallets that wish to accept transactions using new style script&lt;br/&gt;anyway), or wallets can rely on the new rules being non-standard even&lt;br/&gt;to old full nodes (which is typically aimed for in softforks).&lt;br/&gt;&lt;br/&gt;4) The risk of an SPV node wallet accepting a confirmed transaction&lt;br/&gt;which is invalid to new nodes&lt;br/&gt;&lt;br/&gt;Miners can of course construct an invalid block purely for defrauding&lt;br/&gt;SPV nodes, without intending to get that block accepted by full nodes.&lt;br/&gt;That is expensive (no subsidy/fee income for those blocks) and more&lt;br/&gt;importantly it isn&amp;#39;t in any way affected by softforks.&lt;br/&gt;&lt;br/&gt;So the only place where this matters is where miners create a block&lt;br/&gt;chain that violates the new rules, and still get it accepted. This&lt;br/&gt;requires a hash rate majority, and sufficiently few economically&lt;br/&gt;important full nodes that forking them off is a viable approach.&lt;br/&gt;&lt;br/&gt;It&amp;#39;s interesting that even though it requires forking off full nodes&lt;br/&gt;(who will notice, there will be an invalid majority hash rate chain to&lt;br/&gt;them), the attack only allows defrauding SPV nodes. It can&amp;#39;t be used&lt;br/&gt;to bypass any of the economic properties of the system (as subsidy and&lt;br/&gt;other resource limits are still enforced by old nodes, and invalid&lt;br/&gt;scripts will either not be accepted by old full nodes wallets, or are&lt;br/&gt;as vulnerable as unrelated anyonecanspends).&lt;br/&gt;&lt;br/&gt;Furthermore, it&amp;#39;s easily preventable by not using the feature in SPV&lt;br/&gt;wallets until a sufficient amount of economically relevant full nodes&lt;br/&gt;are known to have upgraded, or by just waiting for enough&lt;br/&gt;confirmations.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;So, we&amp;#39;d of course prefer to have all full nodes enforce all rules,&lt;br/&gt;but the security reduction is not large. On the other hand, there are&lt;br/&gt;also security advantages that softforks offer:&lt;br/&gt;&lt;br/&gt;A) Softforks do not require the pervasive consensus that hardforks&lt;br/&gt;need. Soft forks can be deployed without knowing when all full nodes&lt;br/&gt;will adopt the rule, or even whether they will ever adopt it at all.&lt;br/&gt;&lt;br/&gt;B) Keeping up with hard forking changes puts load on full node&lt;br/&gt;operators, who may choose to instead switch to delegating full&lt;br/&gt;validation to third parties, which is worse than just validating the&lt;br/&gt;old rules.&lt;br/&gt;&lt;br/&gt;C) Hardfork coordination has a centralizing effect on development. As&lt;br/&gt;hardforks can only be deployed with sufficient node deployment, they&lt;br/&gt;can&amp;#39;t just be triggered by miner votes. This requires central&lt;br/&gt;coordination to determine flag times, which is incompatible with&lt;br/&gt;having multiple independent consensus changes being proposed. For&lt;br/&gt;softforks, something like BIP9 supports having multiple independent&lt;br/&gt;softforks in flight, that nodes can individually chose to accept or&lt;br/&gt;not, only requiring coordination to not choose clashing bit numbers.&lt;br/&gt;For hardforks, there is effectively no choice but having every&lt;br/&gt;codebase deployed at a particular point in time to support every&lt;br/&gt;possible hard forks (there can still be an additional hashpower based&lt;br/&gt;trigger conditions for hardforks, but all nodes need to support the&lt;br/&gt;fork at the earliest time it can happen, or risk being forked off).&lt;br/&gt;&lt;br/&gt;D) If you are concerned about the security degradation a soft fork&lt;br/&gt;might bring, you can always configure your node to treat a (signalled)&lt;br/&gt;softfork as a hardfork, and stop processing blocks if a sortfork&lt;br/&gt;condition is detected. The other direction is not possible.&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter
    </content>
    <updated>2023-06-07T19:46:45&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsthxzts5qksuuj89pglyqmwzus8w7w8sdmf43v7wvpsuufw335yaszypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvzvfrz0</id>
    
      <title type="html">📅 Original date posted:2015-12-16 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsthxzts5qksuuj89pglyqmwzus8w7w8sdmf43v7wvpsuufw335yaszypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvzvfrz0" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsxkyzp9ym23epg0n4fqpytxxcrjrsw809nz5460rd0h8wxrlzacdq7w885h&#39;&gt;nevent1q…885h&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2015-12-16&lt;br/&gt;📝 Original message:On Wed, Dec 16, 2015 at 10:08 PM, Jeff Garzik &amp;lt;jgarzik at gmail.com&amp;gt; wrote:&lt;br/&gt;&amp;gt;&amp;gt; You present this as if the Bitcoin Core development team is in charge&lt;br/&gt;&amp;gt;&amp;gt; of deciding the network consensus rules, and is responsible for making&lt;br/&gt;&amp;gt;&amp;gt; changes to it in order to satisfy economic demand. If that is the&lt;br/&gt;&amp;gt;&amp;gt; case, Bitcoin has failed, in my opinion.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; This circles back to Problem #1:   Avoidance of a choice is a still a choice&lt;br/&gt;&amp;gt; - failing to ACK a MAX_BLOCK_SIZE increase still creates very real Economic&lt;br/&gt;&amp;gt; Change Event risk.&lt;br/&gt;&lt;br/&gt;We are not avoiding a choice. We don&amp;#39;t have the authority to make a choice.&lt;br/&gt;&lt;br/&gt;&amp;gt; And #3:  If the likely predicted course is that Bitcoin Core will not accept&lt;br/&gt;&amp;gt; a protocol change changing MAX_BLOCK_SIZE via hard fork in the short term,&lt;br/&gt;&amp;gt; the core dev team should communicate that position clearly to users and&lt;br/&gt;&amp;gt; media.&lt;br/&gt;&lt;br/&gt;I indeed think we can communicate much better that deciding consensus&lt;br/&gt;rules is not within our power.&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter
    </content>
    <updated>2023-06-07T19:46:20&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsxjrc6f9eccj8eqng6euqve6mm0luddmtn0qq3p74jxteaxry2f9gzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dv86pz3p</id>
    
      <title type="html">📅 Original date posted:2015-12-16 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsxjrc6f9eccj8eqng6euqve6mm0luddmtn0qq3p74jxteaxry2f9gzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dv86pz3p" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs2kysm6uwe3wjqslsu3huctjmpkscuxvujr4kgm0ue097kg2kezyq2jg8wk&#39;&gt;nevent1q…g8wk&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2015-12-16&lt;br/&gt;📝 Original message:On Wed, Dec 16, 2015 at 3:53 PM, Jeff Garzik via bitcoin-dev&lt;br/&gt;&amp;lt;bitcoin-dev at lists.linuxfoundation.org&amp;gt; wrote:&lt;br/&gt;&amp;gt; 2) If block size stays at 1M, the Bitcoin Core developer team should sign a&lt;br/&gt;&amp;gt; collective note stating their desire to transition to a new economic policy,&lt;br/&gt;&amp;gt; that of &amp;#34;healthy fee market&amp;#34; and strongly urge users to examine their fee&lt;br/&gt;&amp;gt; policies, wallet software, transaction volumes and other possible User&lt;br/&gt;&amp;gt; impacting outcomes.&lt;br/&gt;&lt;br/&gt;You present this as if the Bitcoin Core development team is in charge&lt;br/&gt;of deciding the network consensus rules, and is responsible for making&lt;br/&gt;changes to it in order to satisfy economic demand. If that is the&lt;br/&gt;case, Bitcoin has failed, in my opinion.&lt;br/&gt;&lt;br/&gt;What the Bitcoin Core team should do, in my opinion, is merge any&lt;br/&gt;consensus change that is uncontroversial. We can certainly -&lt;br/&gt;individually or not - propose solutions, and express opinions, but as&lt;br/&gt;far as maintainers of the software goes our responsibility is keeping&lt;br/&gt;the system running, and risking either a fork or establishing&lt;br/&gt;ourselves as the de-facto central bank that can make any change to the&lt;br/&gt;system would greatly undermine the system&amp;#39;s value.&lt;br/&gt;&lt;br/&gt;Hard forking changes require that ultimately every participant in the&lt;br/&gt;system adopts the new rules. I find it immoral and dangerous to merge&lt;br/&gt;such a change without extremely widespread agreement. I am personally&lt;br/&gt;fine with a short-term small block size bump to kick the can down the&lt;br/&gt;road if that is what the ecosystem desires, but I can only agree with&lt;br/&gt;merging it in Core if I&amp;#39;m convinced that there is no strong opposition&lt;br/&gt;to it from others.&lt;br/&gt;&lt;br/&gt;Soft forks on the other hand only require a majority of miners to&lt;br/&gt;accept them, and everyone else can upgrade at their leisure or not at&lt;br/&gt;all. Yes, old full nodes after a soft fork are not able to fully&lt;br/&gt;validate the rules new miners enforce anymore, but they do still&lt;br/&gt;verify the rules that their operators opted to enforce. Furthermore,&lt;br/&gt;they can&amp;#39;t be prevented. For that reason, I&amp;#39;ve proposed, and am&lt;br/&gt;working hard, on an approach that includes Segregated Witness as a&lt;br/&gt;first step. It shows the ecosystem that something is being done, it&lt;br/&gt;kicks the can down the road, it solves/issues half a dozen other&lt;br/&gt;issues at the same time, and it does not require the degree of&lt;br/&gt;certainty needed for a hardfork.&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter
    </content>
    <updated>2023-06-07T19:46:19&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqszvxr47as5ruuxy5qpg2c7nhs5gse359cc7wzvmsjz4cv8r4zg3sgzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvc3w2lh</id>
    
      <title type="html">📅 Original date posted:2015-12-13 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqszvxr47as5ruuxy5qpg2c7nhs5gse359cc7wzvmsjz4cv8r4zg3sgzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvc3w2lh" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsrknn4wl4wv8nep9k4p4jrcmunehyywnjnyv9jlek25gnrpqx4n0s07g4jl&#39;&gt;nevent1q…g4jl&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2015-12-13&lt;br/&gt;📝 Original message:On Sun, Dec 13, 2015 at 4:25 PM, jl2012--- via bitcoin-dev&lt;br/&gt;&amp;lt;bitcoin-dev at lists.linuxfoundation.org&amp;gt; wrote:&lt;br/&gt;&amp;gt; I&amp;#39;m trying to list the minimal consensus rule changes needed for segwit&lt;br/&gt;&amp;gt; softfork. The list does not cover the changes in non-consensus critical&lt;br/&gt;&amp;gt; behaviors, such as relay of witness data.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; 1. OP_NOP4 is renamed as OP_SEGWIT&lt;br/&gt;&amp;gt; 2. A script with OP_SEGWIT must fail if the scriptSig is not completely&lt;br/&gt;&amp;gt; empty&lt;br/&gt;&amp;gt; 3. If OP_SEGWIT is used in the scriptPubKey, it must be the only and the&lt;br/&gt;&amp;gt; last OP code in the scriptPubKey, or the script must fail&lt;br/&gt;&amp;gt; 4. The OP_SEGWIT must be preceded by exactly one data push (the &amp;#34;serialized&lt;br/&gt;&amp;gt; script&amp;#34;) with at least one byte, or the script must fail&lt;br/&gt;&lt;br/&gt;The use of a NOP opcode to indicate a witness script was something I&lt;br/&gt;considered at first too, but it&amp;#39;s not really needed. You wouldn&amp;#39;t be&lt;br/&gt;able to use that opcode in any place a normal opcode could occur, as&lt;br/&gt;it needs to be able to inspect the full scriptSig (rather than just&lt;br/&gt;its resulting stack) anyway. So both in practice and conceptually it&lt;br/&gt;is only really working as a template that gets assigned a special&lt;br/&gt;meaning (like P2SH did). We don&amp;#39;t need an opcode for that, and instead&lt;br/&gt;we could say that any scriptPubKey (or redeemscript) that consists of&lt;br/&gt;a single push is a witness program.&lt;br/&gt;&lt;br/&gt;&amp;gt; 5. The most significant byte of serialized script is the version byte, an&lt;br/&gt;&amp;gt; unsigned number&lt;br/&gt;&amp;gt; 6. If the version byte is 0x00, the script must fail&lt;br/&gt;&lt;br/&gt;What is that good for?&lt;br/&gt;&lt;br/&gt;&amp;gt; 7. If the version byte is 0x02 to 0xff, the rest of the serialized script is&lt;br/&gt;&amp;gt; ignored and the output is spendable with any form of witness (even if the&lt;br/&gt;&amp;gt; witness contains something invalid in the current script system, e.g.&lt;br/&gt;&amp;gt; OP_RETURN)&lt;br/&gt;&lt;br/&gt;Do you mean the scriptPubKey itself, or the script that follows after&lt;br/&gt;the version byte?&lt;br/&gt;* The scriptPubKey itself: that&amp;#39;s in contradiction with your rule 4,&lt;br/&gt;as segwit scripts are by definition only a push (&#43; opcode), so they&lt;br/&gt;can&amp;#39;t be an OP_RETURN.&lt;br/&gt;* The script after the version byte: agree - though it doesn&amp;#39;t&lt;br/&gt;actually need to be a script at all even (see further).&lt;br/&gt;&lt;br/&gt;&amp;gt; 8. If the version byte is 0x01,&lt;br/&gt;&amp;gt; 8a. rest of the serialized script is deserialized, and be interpreted as the&lt;br/&gt;&amp;gt; scriptPubKey.&lt;br/&gt;&amp;gt; 8b. the witness is interpreted as the scriptSig.&lt;br/&gt;&amp;gt; 8c. the script runs with existing rules (including P2SH)&lt;br/&gt;&lt;br/&gt;I don&amp;#39;t think it&amp;#39;s very useful to allow P2SH inside segwit, as we can&lt;br/&gt;actually do better and allow segwit scripts to push the (perhaps 256&lt;br/&gt;bit) hash of the redeemscript in the scriptPubKey, and have the full&lt;br/&gt;redeemscript in the witness. See further for details. The numbers I&lt;br/&gt;showed in the presentation were created using a simulation that used&lt;br/&gt;that model already.&lt;br/&gt;&lt;br/&gt;It is useful however to allow segwit inside P2SH (so the witness&lt;br/&gt;program including version byte goes into the redeemscript, inside the&lt;br/&gt;scriptSig). This allows old clients to send to new wallets without any&lt;br/&gt;modifications (at slightly lower efficiency). The rules in this case&lt;br/&gt;must say that the scriptSig is exactly a push of the redeemscript&lt;br/&gt;(which itself contains the witness program), to provide both&lt;br/&gt;compatibility with old consensus rules and malleability protection.&lt;br/&gt;&lt;br/&gt;So let me summarize by giving an equivalent to your list above,&lt;br/&gt;reflecting how my current prototype works:&lt;br/&gt;A) A scriptPubKey or P2SH redeemscript that consists of a single push&lt;br/&gt;of 2 to 41 bytes gets a new special meaning, and the byte vector&lt;br/&gt;pushed by it is called the witness program.&lt;br/&gt;A.1) In case the scriptPubKey pushes a witness program directly, the&lt;br/&gt;scriptSig must be exactly empty.&lt;br/&gt;A.2) In case the redeemscript pushes a witness program, the scriptSig&lt;br/&gt;must be exactly the single push of the redeemscript.&lt;br/&gt;B) The first byte of a witness program is the version byte.&lt;br/&gt;B.1) If the witness version byte is 0, the rest of the witness program&lt;br/&gt;is the actual script, which is executed after normal script evaluation&lt;br/&gt;but with data from the witness rather than the scriptSig. The program&lt;br/&gt;must not fail and result in a single TRUE on the stack, and nothing&lt;br/&gt;else (to prevent stuffing the witness with pointless data during relay&lt;br/&gt;of transactions).&lt;br/&gt;B.2) if the witness version byte is 1, the rest of the witness program&lt;br/&gt;must be 32 bytes, and a SHA256 hash of the actual script. The witness&lt;br/&gt;must consist of an input stack to feed to the program, followed by the&lt;br/&gt;serialized program itself (whose hash must match the hash pushed in&lt;br/&gt;the witness program). It is executed after normal script evluation,&lt;br/&gt;and must not fail and result in a single TRUE on the stack, and&lt;br/&gt;nothing else.&lt;br/&gt;B.3) if the witness version byte is 2 or higher, no further&lt;br/&gt;interpretation of the data happens, but can be softforked in.&lt;br/&gt;&lt;br/&gt;I&amp;#39;ll write a separate mail on the block commitment structure.&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter
    </content>
    <updated>2023-06-07T19:46:08&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsdfqmk88fkj4e97saw4s3pae6zf9gsunrqkjzgkj64lhv8qxj2n7qzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dv467sut</id>
    
      <title type="html">📅 Original date posted:2015-08-10 📝 Original message:On Aug ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsdfqmk88fkj4e97saw4s3pae6zf9gsunrqkjzgkj64lhv8qxj2n7qzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dv467sut" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsra5heackv83n23zvnftld8y3y4nv3h8l8ct2vcerwxz776843njcf6zjk5&#39;&gt;nevent1q…zjk5&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2015-08-10&lt;br/&gt;📝 Original message:On Aug 11, 2015 12:52 AM, &amp;#34;Pieter Wuille&amp;#34; &amp;lt;pieter.wuille at gmail.com&amp;gt; wrote:&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; On Aug 11, 2015 12:18 AM, &amp;#34;Thomas Zander via bitcoin-dev&amp;#34; &amp;lt;&lt;br/&gt;bitcoin-dev at lists.linuxfoundation.org&amp;gt; wrote:&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; Have you ever been to a concert that was far away from public&lt;br/&gt;transport? They&lt;br/&gt;&amp;gt; &amp;gt; typically set up bus shuttles, or taxis to get people back into town&lt;br/&gt;&amp;gt; &amp;gt; afterwards.&lt;br/&gt;&amp;gt; &amp;gt; The result there is always you end up waiting forever and it actually&lt;br/&gt;may be&lt;br/&gt;&amp;gt; &amp;gt; easier to just walk instead of wait.&lt;br/&gt;&amp;gt; &amp;gt; The amount you pay is irrelevant if everyone is paying it. There still&lt;br/&gt;is more&lt;br/&gt;&amp;gt; &amp;gt; demand than there is capacity.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; That&amp;#39;s an incorrect analogy. You choose the rate you pay, and get higher&lt;br/&gt;priority when you pay more. Taxi drivers can&amp;#39;t pick out higher-paying&lt;br/&gt;customers in advance.&lt;br/&gt;&lt;br/&gt;I&amp;#39;m sorry, I missed your &amp;#34;if everyone is paying it&amp;#34;. This changes a lot. I&lt;br/&gt;agree with you: if everyone wants to pay much then it becomes unreliable.&lt;br/&gt;&lt;br/&gt;But I don&amp;#39;t think that is something we can avoid with a small constant&lt;br/&gt;factor block size increase, and we don&amp;#39;t do the world a service by making&lt;br/&gt;it look like it works for longer.&lt;br/&gt;&lt;br/&gt;Let&amp;#39;s grow within bounderies set by technology and centralization pressure&lt;br/&gt;that we can agree on. Let the market decide whether how they will that will&lt;br/&gt;low volume reliable transactions and/or high volume unreliable ones.&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter&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/20150811/59b198e8/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20150811/59b198e8/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T19:33:59&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsra5heackv83n23zvnftld8y3y4nv3h8l8ct2vcerwxz776843njczypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvw4z708</id>
    
      <title type="html">📅 Original date posted:2015-08-10 📝 Original message:On Aug ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsra5heackv83n23zvnftld8y3y4nv3h8l8ct2vcerwxz776843njczypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvw4z708" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs22uwmxgs79k382qf00r9q4ejsesx6lvs8e6mmr48nn7wwnufmacq6wgz9u&#39;&gt;nevent1q…gz9u&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2015-08-10&lt;br/&gt;📝 Original message:On Aug 11, 2015 12:18 AM, &amp;#34;Thomas Zander via bitcoin-dev&amp;#34; &amp;lt;&lt;br/&gt;bitcoin-dev at lists.linuxfoundation.org&amp;gt; wrote:&lt;br/&gt;&lt;br/&gt;&amp;gt; Have you ever been to a concert that was far away from public transport?&lt;br/&gt;They&lt;br/&gt;&amp;gt; typically set up bus shuttles, or taxis to get people back into town&lt;br/&gt;&amp;gt; afterwards.&lt;br/&gt;&amp;gt; The result there is always you end up waiting forever and it actually may&lt;br/&gt;be&lt;br/&gt;&amp;gt; easier to just walk instead of wait.&lt;br/&gt;&amp;gt; The amount you pay is irrelevant if everyone is paying it. There still is&lt;br/&gt;more&lt;br/&gt;&amp;gt; demand than there is capacity.&lt;br/&gt;&lt;br/&gt;That&amp;#39;s an incorrect analogy. You choose the rate you pay, and get higher&lt;br/&gt;priority when you pay more. Taxi drivers can&amp;#39;t pick out higher-paying&lt;br/&gt;customers in advance.&lt;br/&gt;&lt;br/&gt;A better comparison is Uber, which charges more in places with high demand,&lt;br/&gt;and you can accept or refuse in advance. And yes, it remains reliable if&lt;br/&gt;you&amp;#39;re among those with the highest willingness to pay.&lt;br/&gt;&lt;br/&gt;&amp;gt; So, no, its not unreliable for cheap free transactions.&lt;br/&gt;&amp;gt; Its unreliable for all types of transactions.&lt;br/&gt;&lt;br/&gt;If 2500 transactions fit in the block chain per day (assuming constant&lt;br/&gt;size) and there are less than 2500 per hour that pay at least 0.001 BTC in&lt;br/&gt;fee, then any transaction which pays more than 0.001 BTC will have a very&lt;br/&gt;high chance of getting in a small multiple of one hour, since miners&lt;br/&gt;prioritize by feerate.&lt;br/&gt;&lt;br/&gt;If there are in addition to that 5000 transactions per hour which pay less,&lt;br/&gt;then yes, they need to compete for the remaiming space and their&lt;br/&gt;confirmation will be unreliable.&lt;br/&gt;&lt;br/&gt;The whole point is that whether confirmation at a particular price point is&lt;br/&gt;reliable depends on how much demand there is at that price point. And&lt;br/&gt;increasing the block size out of fear of what might happen is failing to&lt;br/&gt;recognize that it can always happen that there is a sudden change in demand&lt;br/&gt;that outcompetes the rest.&lt;br/&gt;&lt;br/&gt;The point is not that evolution towards a specific higher feerate needs to&lt;br/&gt;happen, but an evolution to an ecosystem that accepts that there is never a&lt;br/&gt;guarantee for reliability, unless you&amp;#39;re willing to pay more than everyone&lt;br/&gt;else - whatever that number is.&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter&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/20150811/b117bc74/attachment-0001.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20150811/b117bc74/attachment-0001.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T19:33:59&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs0cann43gn85fq8gfq3qaa5d63qs7z7cc0s6gd9zr6j3h94cjpz8czypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvnc7u9c</id>
    
      <title type="html">📅 Original date posted:2015-08-11 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs0cann43gn85fq8gfq3qaa5d63qs7z7cc0s6gd9zr6j3h94cjpz8czypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvnc7u9c" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs9vkj7zsygj0saxme3zk0zjcwgcdca87q2jhmvmctwp3auyp7jg4cw9vj4a&#39;&gt;nevent1q…vj4a&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2015-08-11&lt;br/&gt;📝 Original message:On Tue, Aug 11, 2015 at 11:35 PM, Michael Naber &amp;lt;mickeybob at gmail.com&amp;gt; wrote:&lt;br/&gt;&lt;br/&gt;&amp;gt; Bitcoin would be better money than current money even if it were a bit&lt;br/&gt;&amp;gt; more expensive to transact, simply because of its other great&lt;br/&gt;&amp;gt; characteristics (trustlessness, limited supply, etc). However... it is not&lt;br/&gt;&amp;gt; better than something else sharing all those same characteristics but which&lt;br/&gt;&amp;gt; is also less expensive. The best money will win, and if Bitcoin doesn&amp;#39;t&lt;br/&gt;&amp;gt; increase capacity then it won&amp;#39;t remain the best.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;If it is less expensive, it is harder to be reliable (because it&amp;#39;s easier&lt;br/&gt;for a sudden new use case to outbid the available space), which is less&lt;br/&gt;useful for a payment mechanism.&lt;br/&gt;&lt;br/&gt;If it has better scale (with the same technology), it will have higher&lt;br/&gt;centralization pressure. The higher price you potentially pay (in fees) to&lt;br/&gt;get your transactions on a smaller block chain is the price of higher&lt;br/&gt;security and independence. Perhaps the compromise is not at the optimal&lt;br/&gt;place, but please stop saying &amp;#34;below what the technology can do&amp;#34;. The&lt;br/&gt;technology can &amp;#34;do&amp;#34; gigabyte blocks I&amp;#39;m sure, If you accept that you need a&lt;br/&gt;small cluster to keep up with validation, and all blocks are produced by a&lt;br/&gt;single miner cartel.&lt;br/&gt;&lt;br/&gt;IMHO, Bitcoin (or any cryptocurrency) on-chain as a payment system is:&lt;br/&gt;* Expensive: there is a (known in advance and agreed upon) inflation that&lt;br/&gt;we&amp;#39;re using to pay miners. But by holding Bitcoin you&amp;#39;re paying for the&lt;br/&gt;security of the system, even if it is not in fees.&lt;br/&gt;* Unreliable: you never know when suddenly there will be more higher-fee&lt;br/&gt;transactions that outbid you.&lt;br/&gt;* Slow, unless you already trust the sender to not double spend (in which&lt;br/&gt;case you don&amp;#39;t actually need the security of the blockchain).&lt;br/&gt;&lt;br/&gt;I don&amp;#39;t know the future, and I don&amp;#39;t know what use cases will develop and&lt;br/&gt;what they&amp;#39;ll want to pay or what reliability they need. But let&amp;#39;s please&lt;br/&gt;not throw out the one quality that Bitcoin is still good at: lack of&lt;br/&gt;centralized parties to trust.&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter&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/20150811/a9e6e3a9/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20150811/a9e6e3a9/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T19:33:51&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsvtz45ly5cach6743kdldgp0c0574pleckaeajyjkv8y72sxtnh0qzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dv2d24gr</id>
    
      <title type="html">📅 Original date posted:2015-08-11 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsvtz45ly5cach6743kdldgp0c0574pleckaeajyjkv8y72sxtnh0qzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dv2d24gr" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs0h5pusm9ulaqdkn7avv8tgmf5pzzd844cndkgftd3qwrr9lqmxhscsxmhf&#39;&gt;nevent1q…xmhf&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2015-08-11&lt;br/&gt;📝 Original message:On Tue, Aug 11, 2015 at 11:30 PM, Angel Leon 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; tell that to people in poor countries, or even in first world countries.&lt;br/&gt;&amp;gt; The competitive thing here is a deal breaker for a lot of people who have&lt;br/&gt;&amp;gt; no clue/don&amp;#39;t care for decentralization,&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;Then they also don&amp;#39;t need their transactions to be on the blockchain, right?&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter&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/20150811/f3e65461/attachment-0001.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20150811/f3e65461/attachment-0001.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T19:33:47&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsw4wyvyex2fprvm2ztuhsvpx8vsahn0esssrda3assdul4ntgc3qqzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dv5p465h</id>
    
      <title type="html">📅 Original date posted:2015-08-11 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsw4wyvyex2fprvm2ztuhsvpx8vsahn0esssrda3assdul4ntgc3qqzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dv5p465h" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqswfrmfzzaaddgttv9u6vna5uyf6668n8hxhahcgg8e6q7wuxfdnusanzrkm&#39;&gt;nevent1q…zrkm&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2015-08-11&lt;br/&gt;📝 Original message:On Tue, Aug 11, 2015 at 9:37 PM, Michael Naber 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; Hitting the limit in and of itself is not necessarily a bad thing. The&lt;br/&gt;&amp;gt; question at hand is whether we should constrain that limit below what&lt;br/&gt;&amp;gt; technology is capable of delivering. I&amp;#39;m arguing that not only we should&lt;br/&gt;&amp;gt; not, but that we could not even if we wanted to, since competition will&lt;br/&gt;&amp;gt; deliver capacity for global consensus whether it&amp;#39;s in Bitcoin or in some&lt;br/&gt;&amp;gt; other product / fork.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;The question is not what the technology can deliver. The question is what&lt;br/&gt;price we&amp;#39;re willing to pay for that. It is not a boolean &amp;#34;at this size,&lt;br/&gt;things break, and below it, they work&amp;#34;. A small constant factor increase&lt;br/&gt;will unlikely break anything in the short term, but it will come with&lt;br/&gt;higher centralization pressure of various forms. There is discussion about&lt;br/&gt;whether these centralization pressures are significant, but citing that&lt;br/&gt;it&amp;#39;s artificially constrained under the limit is IMHO a misrepresentation.&lt;br/&gt;It is constrained to aim for a certain balance between utility and risk,&lt;br/&gt;and neither extreme is interesting, while possibly still &amp;#34;working&amp;#34;.&lt;br/&gt;&lt;br/&gt;Consensus rules are what keeps the system together. You can&amp;#39;t simply switch&lt;br/&gt;to new rules on your own, because the rest of the system will end up&lt;br/&gt;ignoring you. These rules are there for a reason. You and I may agree about&lt;br/&gt;whether the 21M limit is necessary, and disagree about whether we need a&lt;br/&gt;block size limit, but we should be extremely careful with change. My&lt;br/&gt;position as Bitcoin Core developer is that we should merge consensus&lt;br/&gt;changes only when they are uncontroversial. Even when you believe a more&lt;br/&gt;invasive change is worth it, others may disagree, and the risk from&lt;br/&gt;disagreement is likely larger than the effect of a small block size&lt;br/&gt;increase by itself: the risk that suddenly every transaction can be spent&lt;br/&gt;twice (once on each side of the fork), the very thing that the block chain&lt;br/&gt;was designed to prevent.&lt;br/&gt;&lt;br/&gt;My personal opinion is that we should aim to do a block size increase for&lt;br/&gt;the right reasons. I don&amp;#39;t think fear of rising fees or unreliability&lt;br/&gt;should be an issue: if fees are being paid, it means someone is willing to&lt;br/&gt;pay them. If people are doing transactions despite being unreliable, there&lt;br/&gt;must be a use for them. That may mean that some use cases don&amp;#39;t fit&lt;br/&gt;anymore, but that is already the case.&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter&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/20150811/851e0acb/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20150811/851e0acb/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T19:33:45&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqswcmfmyxkqzgy7fjdakqaq47mukeqpanatn9s064gngfppsq8thhqzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvsjjntg</id>
    
      <title type="html">📅 Original date posted:2015-08-07 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqswcmfmyxkqzgy7fjdakqaq47mukeqpanatn9s064gngfppsq8thhqzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvsjjntg" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsvh5jsr4f7xlp734l49cgkkdve53d39fyz9sqg8m9kgwrq4ff9sqqlfv3k5&#39;&gt;nevent1q…v3k5&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2015-08-07&lt;br/&gt;📝 Original message:On Fri, Aug 7, 2015 at 5:55 PM, Gavin Andresen &amp;lt;gavinandresen at gmail.com&amp;gt;&lt;br/&gt;wrote:&lt;br/&gt;&lt;br/&gt;&amp;gt; On Fri, Aug 7, 2015 at 11:16 AM, Pieter Wuille &amp;lt;pieter.wuille at gmail.com&amp;gt;&lt;br/&gt;&amp;gt; wrote:&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; I guess my question (and perhaps that&amp;#39;s what Jorge is after): do you feel&lt;br/&gt;&amp;gt;&amp;gt; that blocks should be increased in response to (or for fear of) such a&lt;br/&gt;&amp;gt;&amp;gt; scenario.&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; I think there are multiple reasons to raise the maximum block size, and&lt;br/&gt;&amp;gt; yes, fear of Bad Things Happening as we run up against the 1MB limit is one&lt;br/&gt;&amp;gt; of the reasons.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; I take the opinion of smart engineers who actually do resource planning&lt;br/&gt;&amp;gt; and have seen what happens when networks run out of capacity very seriously.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;This is a fundamental disagreement then. I believe that the demand is&lt;br/&gt;infinite if you don&amp;#39;t set a fee minimum (and I don&amp;#39;t think we should), and&lt;br/&gt;it just takes time for the market to find a way to fill whatever is&lt;br/&gt;available - the rest goes into off-chain systems anyway. You will run out&lt;br/&gt;of capacity at any size, and acting out of fear of that reality does not&lt;br/&gt;improve the system. Whatever size blocks are actually produced, I believe&lt;br/&gt;the result will either be something people consider too small to be&lt;br/&gt;competitive (&amp;#34;you mean Bitcoin can only do 24 transactions per second?&amp;#34;&lt;br/&gt;sounds almost the same as &amp;#34;you mean Bitcoin can only do 3 transactions per&lt;br/&gt;second?&amp;#34;), or something that is very centralized in practice, and likely&lt;br/&gt;both.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;gt; And if so, if that is a reason for increase now, won&amp;#39;t it be a reason for&lt;br/&gt;&amp;gt;&amp;gt; an increase later as well? It is my impression that your answer is yes,&lt;br/&gt;&amp;gt;&amp;gt; that this is why you want to increase the block size quickly and&lt;br/&gt;&amp;gt;&amp;gt; significantly, but correct me if I&amp;#39;m wrong.&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Sure, it might be a reason for an increase later. Here&amp;#39;s my message to&lt;br/&gt;&amp;gt; in-the-future Bitcoin engineers:  you should consider raising the maximum&lt;br/&gt;&amp;gt; block size if needed and you think the benefits of doing so (like increased&lt;br/&gt;&amp;gt; adoption or lower transaction fees or increased reliability) outweigh the&lt;br/&gt;&amp;gt; costs (like higher operating costs for full-nodes or the disruption caused&lt;br/&gt;&amp;gt; by ANY consensus rule change).&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;In general that sounds reasonable, but it&amp;#39;s a dangerous precedent to make&lt;br/&gt;technical decisions based on a fear of change of economics...&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter&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/20150807/8322a671/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20150807/8322a671/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T19:33:32&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs976ualmn3f8m559fcjp3g0rnd6vcgnz79zmnznnaycmyr2k52z5gzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dv236nkl</id>
    
      <title type="html">📅 Original date posted:2015-08-07 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs976ualmn3f8m559fcjp3g0rnd6vcgnz79zmnznnaycmyr2k52z5gzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dv236nkl" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsqrq30850nsueys7najps0v8f4yv5rn7rv6hn3w6tn2v0jz4dnk5c7k6lr4&#39;&gt;nevent1q…6lr4&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2015-08-07&lt;br/&gt;📝 Original message:On Fri, Aug 7, 2015 at 4:57 PM, Gavin Andresen 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; Every once in a while the network will get lucky and we&amp;#39;ll find six blocks&lt;br/&gt;&amp;gt; in ten minutes. If you are deciding what transaction fee to put on your&lt;br/&gt;&amp;gt; transaction, and you&amp;#39;re willing to wait until that&lt;br/&gt;&amp;gt; six-blocks-in-ten-minutes once-a-week event, submit your transaction with a&lt;br/&gt;&amp;gt; low fee.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; All the higher-fee transactions waiting to be confirmed will get confirmed&lt;br/&gt;&amp;gt; in the first five blocks and, if miners don&amp;#39;t have any floor on the fee&lt;br/&gt;&amp;gt; they&amp;#39;ll accept (they will, but lets pretend they won&amp;#39;t) then your&lt;br/&gt;&amp;gt; very-low-fee transaction will get confirmed.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; In the limit, that logic becomes &amp;#34;wait an infinite amount of time, pay&lt;br/&gt;&amp;gt; zero fee.&amp;#34;&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;That&amp;#39;s only the case when the actual rate of transactions with a non-zero&lt;br/&gt;fee is below what fits in blocks. If the total production rate is higher,&lt;br/&gt;even without configured floor by miners, a free transaction won&amp;#39;t ever be&lt;br/&gt;mined, as there will always be some backlog of non-free transaction. Not&lt;br/&gt;saying that this is a likely outcome - it would inevitably mean that people&lt;br/&gt;are creating transactions without any guarantee that they&amp;#39;ll be mined,&lt;br/&gt;which may not be what anyone is interested in. But perhaps there is some&lt;br/&gt;&amp;#34;use&amp;#34; for ultra-low-priority unreliable transactions (... despite DoS&lt;br/&gt;attacks).&lt;br/&gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; So... I have no idea what the &amp;#39;market minimum fee&amp;#39; will be, because I have&lt;br/&gt;&amp;gt; no idea how long people will be willing to wait, how many times they&amp;#39;ll be&lt;br/&gt;&amp;gt; willing to retransmit a low-fee transaction that gets evicted from&lt;br/&gt;&amp;gt; memory-limited memory pools, or how much memory miners will be willing to&lt;br/&gt;&amp;gt; dedicate to storing transactions that won&amp;#39;t confirm for a long time because&lt;br/&gt;&amp;gt; they&amp;#39;re waiting for a flurry of blocks to be found.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;Fair enough, I don&amp;#39;t think anyone knows.&lt;br/&gt;&lt;br/&gt;I guess my question (and perhaps that&amp;#39;s what Jorge is after): do you feel&lt;br/&gt;that blocks should be increased in response to (or for fear of) such a&lt;br/&gt;scenario. And if so, if that is a reason for increase now, won&amp;#39;t it be a&lt;br/&gt;reason for an increase later as well? It is my impression that your answer&lt;br/&gt;is yes, that this is why you want to increase the block size quickly and&lt;br/&gt;significantly, but correct me if I&amp;#39;m wrong.&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter&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/20150807/a3e40340/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20150807/a3e40340/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T19:33:31&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsg7p0xpg0v35tvegtylplkd2926756cu3mewamxpcrtgthkfl6mrgzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvy29wpe</id>
    
      <title type="html">📅 Original date posted:2015-08-07 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsg7p0xpg0v35tvegtylplkd2926756cu3mewamxpcrtgthkfl6mrgzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvy29wpe" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsv8qcfjxzwy6vsrs8xn28a3shvkqw0ds40wmfz5972k9p2dp4u9mskz6raw&#39;&gt;nevent1q…6raw&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2015-08-07&lt;br/&gt;📝 Original message:On Fri, Aug 7, 2015 at 7:00 PM, Thomas Zander 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; &amp;gt; If the incentives for running a node don&amp;#39;t weight up against the&lt;br/&gt;&amp;gt; &amp;gt; cost/difficulty using a full node yourself for a majority of people in&lt;br/&gt;&amp;gt; the&lt;br/&gt;&amp;gt; &amp;gt; ecosystem, I would argue that there is a problem. As Bitcoin&amp;#39;s&lt;br/&gt;&amp;gt; fundamental&lt;br/&gt;&amp;gt; &amp;gt; improvement over other systems is the lack of need for trust, I believe&lt;br/&gt;&amp;gt; &amp;gt; that with increased adoption should also come an increased (in absolute&lt;br/&gt;&amp;gt; &amp;gt; terms) incentive for people to use a full node. I&amp;#39;m seeing the opposite&lt;br/&gt;&amp;gt; &amp;gt; trend, and that is worrying IMHO.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; And you do the same thing again; you dismiss the need factor.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;Of course there is a need. It&amp;#39;s the primary mechanism that keeps Bitcoin&lt;br/&gt;secure and immune from malicious influence.&lt;br/&gt;&lt;br/&gt;Of course not everyone needs to run a node. But that leaves the&lt;br/&gt;responsibility on us - the community - to help the situation by not making&lt;br/&gt;it too hard to run a node. And I see the block size as the primary way&lt;br/&gt;through which we do that.&lt;br/&gt;&lt;br/&gt;If the impact of the system goes us, so should the - joint - incentives to&lt;br/&gt;keep it secure. And I think we&amp;#39;re (slowly) failing at that.&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter&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/20150807/96f446eb/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20150807/96f446eb/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T19:33:25&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsdvwu9tdf60fqsquwfpahgdcqvnfv7ssep0xu3w0nnxccc5q5ydhszypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dv7tmj28</id>
    
      <title type="html">📅 Original date posted:2015-08-07 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsdvwu9tdf60fqsquwfpahgdcqvnfv7ssep0xu3w0nnxccc5q5ydhszypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dv7tmj28" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsxks9gn69qxm0kur0g8gz4u54uz5sr37fmm8ammgv92vwjkr3d23qm2ryrf&#39;&gt;nevent1q…ryrf&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2015-08-07&lt;br/&gt;📝 Original message:On Fri, Aug 7, 2015 at 6:06 PM, Thomas Zander 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; You make a logical fallacy;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; I would agree that nodes are there for people to stop trusting someone that&lt;br/&gt;&amp;gt; they have no trust-relationship with.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;Yay, trust!&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;gt; But your conclusion that low node count is an indication that its hard to&lt;br/&gt;&amp;gt; run&lt;br/&gt;&amp;gt; one discards your own point.  You forget the point that running a node is&lt;br/&gt;&amp;gt; only&lt;br/&gt;&amp;gt; needed if you don&amp;#39;t know anyone you can trust to run it for you.  I&amp;#39;m&lt;br/&gt;&amp;gt; pretty&lt;br/&gt;&amp;gt; darn sure that this will have a bigger effect on nodecount than how hard it&lt;br/&gt;&amp;gt; is.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;I never said it is the only factor that influences node count.&lt;br/&gt;&lt;br/&gt;Or, in other words, without a need to run a node you can&amp;#39;t judge the&lt;br/&gt;&amp;gt; difficulty of why there aren&amp;#39;t more running.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;If the incentives for running a node don&amp;#39;t weight up against the&lt;br/&gt;cost/difficulty using a full node yourself for a majority of people in the&lt;br/&gt;ecosystem, I would argue that there is a problem. As Bitcoin&amp;#39;s fundamental&lt;br/&gt;improvement over other systems is the lack of need for trust, I believe&lt;br/&gt;that with increased adoption should also come an increased (in absolute&lt;br/&gt;terms) incentive for people to use a full node. I&amp;#39;m seeing the opposite&lt;br/&gt;trend, and that is worrying IMHO.&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter&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/20150807/76c1ddc9/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20150807/76c1ddc9/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T19:33:24&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsrc6nl4vkthdp9kuqxmjce0gkpgtd94hgfr7v5m4xzhs7jgs25hegzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvp90tc5</id>
    
      <title type="html">📅 Original date posted:2015-08-06 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsrc6nl4vkthdp9kuqxmjce0gkpgtd94hgfr7v5m4xzhs7jgs25hegzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvp90tc5" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsxdlmpf4e3vdymvrfjnzuf8dh2ehrtnpclpc383e48nfz33fjrkgge7q87h&#39;&gt;nevent1q…q87h&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2015-08-06&lt;br/&gt;📝 Original message:On Thu, Aug 6, 2015 at 8:43 PM, Michael Naber &amp;lt;mickeybob at gmail.com&amp;gt; wrote:&lt;br/&gt;&lt;br/&gt;&amp;gt; How many nodes are necessary to ensure sufficient network reliability?&lt;br/&gt;&amp;gt; Ten, a hundred, a thousand? At what point do we hit the point of&lt;br/&gt;&amp;gt; diminishing returns, where adding extra nodes starts to have negligible&lt;br/&gt;&amp;gt; impact on the overall reliability of the system?&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;It&amp;#39;s not about reliability. There are plenty of nodes currently for&lt;br/&gt;synchronization and other network functions.&lt;br/&gt;&lt;br/&gt;It&amp;#39;s about reduction of trust. Running a full node and using it verify your&lt;br/&gt;transactions is how you get personal assurance that everyone on the network&lt;br/&gt;is following the rules. And if you don&amp;#39;t do so yourself, the knowledge that&lt;br/&gt;others are using full nodes and relying on them is valuable. Someone just&lt;br/&gt;running 1000 nodes in a data center and not using them for anything does&lt;br/&gt;not do anything for this, it&amp;#39;s adding network capacity without use.&lt;br/&gt;&lt;br/&gt;That doesn&amp;#39;t mean that the full node count (or the reachable full node&lt;br/&gt;count even) are meaningless numbers. They are an indication of how hard it&lt;br/&gt;is (for various reasons) to run/use a full node, and thus provide feedback.&lt;br/&gt;But they are not the goal, just an indicator.&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter&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/20150806/5c5defdf/attachment-0001.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20150806/5c5defdf/attachment-0001.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T19:33:24&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsy3s3fap68eqtlh6x9w5dcuygc02yqxdjml08jmqjz5p4rjef6kdqzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dv7w4y6x</id>
    
      <title type="html">📅 Original date posted:2015-08-06 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsy3s3fap68eqtlh6x9w5dcuygc02yqxdjml08jmqjz5p4rjef6kdqzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dv7w4y6x" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsym647j5cd4jg6kwzmqcw7qakl2rh0z6j5fmr46dsxuffwmcm0esq40cslg&#39;&gt;nevent1q…cslg&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2015-08-06&lt;br/&gt;📝 Original message:On Thu, Aug 6, 2015 at 5:06 PM, Gavin Andresen &amp;lt;gavinandresen at gmail.com&amp;gt;&lt;br/&gt;wrote:&lt;br/&gt;&lt;br/&gt;&amp;gt; On Thu, Aug 6, 2015 at 10:53 AM, Pieter Wuille &amp;lt;pieter.wuille at gmail.com&amp;gt;&lt;br/&gt;&amp;gt; wrote:&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; So if we would have 8 MB blocks, and there is a sudden influx of users&lt;br/&gt;&amp;gt;&amp;gt; (or settlement systems, who serve much more users) who want to pay high&lt;br/&gt;&amp;gt;&amp;gt; fees (let&amp;#39;s say 20 transactions per second) making the block chain&lt;br/&gt;&amp;gt;&amp;gt; inaccessible for low fee transactions, and unreliable for medium fee&lt;br/&gt;&amp;gt;&amp;gt; transactions (for any value of low, medium, and high), would you be ok with&lt;br/&gt;&amp;gt;&amp;gt; that?&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Yes, that&amp;#39;s fine. If the network cannot handle the transaction volume that&lt;br/&gt;&amp;gt; people want to pay for, then the marginal transactions are priced out. That&lt;br/&gt;&amp;gt; is true today (otherwise ChangeTip would be operating on-blockchain), and&lt;br/&gt;&amp;gt; will be true forever.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;The network can &amp;#34;handle&amp;#34; any size. I believe that if a majority of miners&lt;br/&gt;forms SPV mining agreements, then they are no longer affected by the block&lt;br/&gt;size, and benefit from making their blocks slow to validate for others (as&lt;br/&gt;long as the fee is negligable compared to the subsidy). I&amp;#39;ll try to find&lt;br/&gt;the time to implement that in my simulator. Some hardware for full nodes&lt;br/&gt;will always be able to validate and index the chain, so nobody needs to run&lt;br/&gt;a pesky full node anymore and they can just use a web API to validate&lt;br/&gt;payments.&lt;br/&gt;&lt;br/&gt;Being able the &amp;#34;handle&amp;#34; a particular rate is not a boolean question. It&amp;#39;s a&lt;br/&gt;question of how much security, centralization, and risk for systemic error&lt;br/&gt;we&amp;#39;re willing to tolerate. These are not things you can just observe, so&lt;br/&gt;let&amp;#39;s keep talking about the risks, and find a solution that we agree on.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; If so, why is 8 MB good but 1 MB not? To me, they&amp;#39;re a small constant&lt;br/&gt;&amp;gt;&amp;gt; factor that does not fundamentally improve the scale of the system.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;#34;better is better&amp;#34; -- I applaud efforts to fundamentally improve the&lt;br/&gt;&amp;gt; scalability of the system, but I am an old, cranky, pragmatic engineer who&lt;br/&gt;&amp;gt; has seen that successful companies tackle problems that arise and are&lt;br/&gt;&amp;gt; willing to deploy not-so-perfect solutions if they help whatever short-term&lt;br/&gt;&amp;gt; problem they&amp;#39;re facing.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;I don&amp;#39;t believe there is a short-term problem. If there is one now, there&lt;br/&gt;will be one too at 8 MB blocks (or whatever actual size blocks are&lt;br/&gt;produced).&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; I dislike the outlook of &amp;#34;being forever locked at the same scale&amp;#34; while&lt;br/&gt;&amp;gt;&amp;gt; technology evolves, so my proposal tries to address that part. It&lt;br/&gt;&amp;gt;&amp;gt; intentionally does not try to improve a small factor, because I don&amp;#39;t think&lt;br/&gt;&amp;gt;&amp;gt; it is valuable.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; I think consensus is against you on that point.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;Maybe. But I believe that it is essential to not take unnecessary risks,&lt;br/&gt;and find a non-controversial solution.&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter&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/20150806/895a1775/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20150806/895a1775/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T19:33:23&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsgwycl3x4w2nf0kygf2xuhw6gfkzauu27arxxfeugjwdn2ne4jyngzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvl0ke5v</id>
    
      <title type="html">📅 Original date posted:2015-08-06 📝 Original message:On Aug ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsgwycl3x4w2nf0kygf2xuhw6gfkzauu27arxxfeugjwdn2ne4jyngzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvl0ke5v" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsqwrmm90n9a8g4kxxqwtusp5dmv43stpjs46aj7xwxv37ff9mhafq839a7r&#39;&gt;nevent1q…9a7r&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2015-08-06&lt;br/&gt;📝 Original message:On Aug 6, 2015 9:42 PM, &amp;#34;Gavin Andresen via bitcoin-dev&amp;#34; &amp;lt;&lt;br/&gt;bitcoin-dev at lists.linuxfoundation.org&amp;gt; wrote:&lt;br/&gt;2. The &amp;#34;market minimum fee&amp;#34; should be determined by the market. It should&lt;br/&gt;not be up to us to decide &amp;#34;when is a good time.&amp;#34;&lt;br/&gt;&lt;br/&gt;I partially agree. The community should decide what risks it is willing to&lt;br/&gt;take, and set limits accordingly. Let the market decide how that space is&lt;br/&gt;best used.&lt;br/&gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; Would you agree that blocksize increase proposals should have such a&lt;br/&gt;&amp;gt;&amp;gt; criterion/test?&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Although I&amp;#39;ve been very clear with my criterion, no, I don&amp;#39;t think all&lt;br/&gt;blocksize increase proposals should have to justify &amp;#34;why this size&amp;#34; or &amp;#34;why&lt;br/&gt;this rate of increase.&amp;#34; Part of my frustration with this whole debate is&lt;br/&gt;we&amp;#39;re talking about a sanity-check upper-limit; as long as it doesn&amp;#39;t open&lt;br/&gt;up some terrible new DoS possibility I don&amp;#39;t think it really matters much&lt;br/&gt;what the exact number is.&lt;br/&gt;&lt;br/&gt;It is only a DoS protection limit if you want to rely on trusting miners. I&lt;br/&gt;prefer a system where I don&amp;#39;t have to do that.&lt;br/&gt;&lt;br/&gt;But I agree the numbers don&amp;#39;t matter much, for a different reason: the&lt;br/&gt;market will fill up whatever space is available, and we&amp;#39;ll have the same&lt;br/&gt;discussion when the new limit doesn&amp;#39;t seem enough anymore.&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter&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/20150806/7e4c45e8/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20150806/7e4c45e8/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T19:32:36&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs26shth8yp9n4ney5nesxzu7we9fwf95pp5zx2mjfeyzlh7cz25uszypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dv5vn89m</id>
    
      <title type="html">📅 Original date posted:2015-08-06 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs26shth8yp9n4ney5nesxzu7we9fwf95pp5zx2mjfeyzlh7cz25uszypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dv5vn89m" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsxspm245xpzv24tufr5504l3jpdkva362j0yer87c4kv2c44c893g7khqca&#39;&gt;nevent1q…hqca&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2015-08-06&lt;br/&gt;📝 Original message:On Thu, Aug 6, 2015 at 3:40 PM, Gavin Andresen 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 Wed, Aug 5, 2015 at 9:26 PM, Jorge Timón &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; This is a much more reasonable position. I wish this had been starting&lt;br/&gt;&amp;gt;&amp;gt; point of this discussion instead of &amp;#34;the block size limit must be&lt;br/&gt;&amp;gt;&amp;gt; increased as soon as possible or bitcoin will fail&amp;#34;.&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; It REALLY doesn&amp;#39;t help the debate when you say patently false statements&lt;br/&gt;&amp;gt; like that.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; My first blog post on this issue is here:&lt;br/&gt;&amp;gt;   &lt;a href=&#34;http://gavinandresen.ninja/why-increasing-the-max-block-size-is-urgent&#34;&gt;http://gavinandresen.ninja/why-increasing-the-max-block-size-is-urgent&lt;/a&gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; ... and I NEVER say &amp;#34;Bitcoin will fail&amp;#34;.  I say:&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;#34;If the number of transactions waiting gets large enough, the end result&lt;br/&gt;&amp;gt; will be an over-saturated network, busy doing nothing productive. I don’t&lt;br/&gt;&amp;gt; think that is likely– it is more likely people just stop using Bitcoin&lt;br/&gt;&amp;gt; because transaction confirmation becomes increasingly unreliable.&amp;#34;&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;But you seem to consider that a bad thing. Maybe saying that you&amp;#39;re&lt;br/&gt;claiming that this equals Bitcoin failing is an exaggeration, but you do&lt;br/&gt;believe that evolving towards an ecosystem where there is competition for&lt;br/&gt;block space is a bad thing, right?&lt;br/&gt;&lt;br/&gt;I don&amp;#39;t agree that &amp;#34;Not everyone is able to use the block chain for every&lt;br/&gt;use case&amp;#34; is the same thing as &amp;#34;People stop using Bitcoin&amp;#34;. People are&lt;br/&gt;already not using it for every use case.&lt;br/&gt;&lt;br/&gt;Here is what my proposed BIP says: &amp;#34;No hard forking change that relaxes the&lt;br/&gt;block size limit can be guaranteed to provide enough space for every&lt;br/&gt;possible demand - or even any particular demand - unless strong&lt;br/&gt;centralization of the mining ecosystem is expected. Because of that, the&lt;br/&gt;development of a fee market and the evolution towards an ecosystem that is&lt;br/&gt;able to cope with block space competition should be considered healthy.&amp;#34;&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter&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/20150806/aff56c38/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20150806/aff56c38/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T19:32:33&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsgl0wm5sjuked68ys6e8ylyr3kuq06hy0a5sv9g78jdduct5ynkcszypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dv3v5vk4</id>
    
      <title type="html">📅 Original date posted:2015-08-06 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsgl0wm5sjuked68ys6e8ylyr3kuq06hy0a5sv9g78jdduct5ynkcszypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dv3v5vk4" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsvvxs3hwdfgf7un7wq7fjyyhxy6qu8w6rp2xr3n570cq2yd3lp2acqdnna2&#39;&gt;nevent1q…nna2&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2015-08-06&lt;br/&gt;📝 Original message:On Thu, Aug 6, 2015 at 4:21 PM, Gavin Andresen &amp;lt;gavinandresen at gmail.com&amp;gt;&lt;br/&gt;wrote:&lt;br/&gt;&lt;br/&gt;&amp;gt; On Thu, Aug 6, 2015 at 10:06 AM, Pieter Wuille &amp;lt;pieter.wuille at gmail.com&amp;gt;&lt;br/&gt;&amp;gt; wrote:&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; But you seem to consider that a bad thing. Maybe saying that you&amp;#39;re&lt;br/&gt;&amp;gt;&amp;gt; claiming that this equals Bitcoin failing is an exaggeration, but you do&lt;br/&gt;&amp;gt;&amp;gt; believe that evolving towards an ecosystem where there is competition for&lt;br/&gt;&amp;gt;&amp;gt; block space is a bad thing, right?&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; No, competition for block space is good.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;So if we would have 8 MB blocks, and there is a sudden influx of users (or&lt;br/&gt;settlement systems, who serve much more users) who want to pay high fees&lt;br/&gt;(let&amp;#39;s say 20 transactions per second) making the block chain inaccessible&lt;br/&gt;for low fee transactions, and unreliable for medium fee transactions (for&lt;br/&gt;any value of low, medium, and high), would you be ok with that? If so, why&lt;br/&gt;is 8 MB good but 1 MB not? To me, they&amp;#39;re a small constant factor that does&lt;br/&gt;not fundamentally improve the scale of the system. I dislike the outlook of&lt;br/&gt;&amp;#34;being forever locked at the same scale&amp;#34; while technology evolves, so my&lt;br/&gt;proposal tries to address that part. It intentionally does not try to&lt;br/&gt;improve a small factor, because I don&amp;#39;t think it is valuable.&lt;br/&gt;&lt;br/&gt;What is bad is artificially limiting or centrally controlling the supply of&lt;br/&gt;&amp;gt; that space.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;It&amp;#39;s exactly as centrally limited as the finite supply of BTC - by&lt;br/&gt;consensus. You and I may agree that a finite supply is a good thing, and&lt;br/&gt;may disagree about whether a consensus rule about the block size is a good&lt;br/&gt;idea (and if so, at what level), but it&amp;#39;s a choice we make as a community&lt;br/&gt;about the rules of the system we want to use.&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter&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/20150806/d69b8f33/attachment-0001.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20150806/d69b8f33/attachment-0001.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T19:32:33&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsrrj0rhpqnm5d5d0kgegctsgvc7ak0gjp6xhvfhh00u2lqnm2m7sszypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvucqd07</id>
    
      <title type="html">📅 Original date posted:2015-08-04 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsrrj0rhpqnm5d5d0kgegctsgvc7ak0gjp6xhvfhh00u2lqnm2m7sszypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvucqd07" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsrnuje04hgwcj04k94wg2er2xzl2ateq6m5l0escykuauayrw6gxcnv0e4l&#39;&gt;nevent1q…0e4l&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2015-08-04&lt;br/&gt;📝 Original message:On Tue, Aug 4, 2015 at 3:12 PM, Gavin Andresen &amp;lt;gavinandresen at gmail.com&amp;gt;&lt;br/&gt;wrote:&lt;br/&gt;&lt;br/&gt;&amp;gt; On Tue, Aug 4, 2015 at 7:27 AM, Pieter Wuille 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; I would say that things already demonstrately got terrible. The mining&lt;br/&gt;&amp;gt;&amp;gt; landscape is very centralized, with apparently a majority depending on&lt;br/&gt;&amp;gt;&amp;gt; agreements to trust each other&amp;#39;s announced blocks without validation.&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; And that is a problem... why?&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;If miners need to form alliances of trusting each other&amp;#39;s blocks without&lt;br/&gt;validation to overcome the inefficiencies of slow block propagation, I&lt;br/&gt;think we have a system that is in direct conflict with the word&lt;br/&gt;&amp;#34;permissionless&amp;#34; that you use later.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;gt; As Bitcoin grows, pieces of the ecosystem will specialize. Satoshi&amp;#39;s&lt;br/&gt;&amp;gt; original code did everything: hashing, block assembly, wallet, consensus,&lt;br/&gt;&amp;gt; network. That is changing, and that is OK.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;Specialization is perfectly fine.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; I believe that if the above would have happened overnight, people would&lt;br/&gt;&amp;gt; have cried wolf. But somehow it happened slow enough, and &amp;#34;things kept&lt;br/&gt;&amp;gt; working&amp;#34;.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; I don&amp;#39;t think that this is a good criterion. Bitcoin can &amp;#34;work&amp;#34; with&lt;br/&gt;&amp;gt; gigabyte blocks today, if everyone uses the same few blockchain validation&lt;br/&gt;&amp;gt; services, the same few online wallets, and mining is done by a cartel that&lt;br/&gt;&amp;gt; only allows joining after signing a contract so they can sue you if you&lt;br/&gt;&amp;gt; create an invalid block. Do you think people will then agree that &amp;#34;things&lt;br/&gt;&amp;gt; got demonstratebly worse&amp;#34;?&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Don&amp;#39;t turn Bitcoin into something uninteresting, please.&lt;br/&gt;&amp;gt;&lt;br/&gt;Why is what you, personally, find interesting relevant?&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;I find it interesting to build a system that has potential to bring about&lt;br/&gt;innovation.&lt;br/&gt;&lt;br/&gt;I understand you want to build an extremely decentralized system, where&lt;br/&gt;&amp;gt; everybody participating trusts nothing except the genesis block hash.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;That is not true, I&amp;#39;m sorry if that is the impression I gave.&lt;br/&gt;&lt;br/&gt;I see centralization and scalability as a trade-off, and for better or for&lt;br/&gt;worse, the block chain only offers one trade-off. I want to see technology&lt;br/&gt;built on top that introduces lower levels of trust than typical fully&lt;br/&gt;centralized systems, while offering increased convenience, speed,&lt;br/&gt;reliability, and scale. I just don&amp;#39;t think that all of that can happen on&lt;br/&gt;the lowest layer without hurting everything built on top. We need different&lt;br/&gt;trade-offs, and the blockchain is just one, but a very fundamental one.&lt;br/&gt;&lt;br/&gt;I think it is more interesting to build a system that works for hundreds of&lt;br/&gt;&amp;gt; millions of people, with no central point of control and the opportunity&lt;br/&gt;&amp;gt; for ANYBODY to participate at any level. Permission-less innovation is what&lt;br/&gt;&amp;gt; I find interesting.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;That sounds amazing, but do you think that Bitcoin, as it exists today, can&lt;br/&gt;scale to hundreds of millions of users, while retaining any glimpse of&lt;br/&gt;permission-lessness and decentralization? I think we need low-trust&lt;br/&gt;off-chain systems and other innovations to make that happen.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;gt; And I think the current &amp;#34;demonstrably terrible&amp;#34; Bitcoin system is still&lt;br/&gt;&amp;gt; INCREDIBLY interesting.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;I&amp;#39;m happy for you, then.&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter&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/20150804/1128ad92/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20150804/1128ad92/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T19:32:27&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs2rzjnv4m8qk50gs5ylggwyvsu8yqmlmv5zzjae6wzupg58fg7zcszypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvqjrf4e</id>
    
      <title type="html">📅 Original date posted:2015-08-04 📝 Original message:I ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs2rzjnv4m8qk50gs5ylggwyvsu8yqmlmv5zzjae6wzupg58fg7zcszypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvqjrf4e" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs95aklyez0pet27vmcqxj7v2v8pe2pfapwd5mftreunhcpfu7hl4c8f5lvz&#39;&gt;nevent1q…5lvz&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2015-08-04&lt;br/&gt;📝 Original message:I would say that things already demonstrately got terrible. The mining&lt;br/&gt;landscape is very centralized, with apparently a majority depending on&lt;br/&gt;agreements to trust each other&amp;#39;s announced blocks without validation. Full&lt;br/&gt;node count is at its historically lowest value in years, and outsourcing of&lt;br/&gt;full validation keeps growing.&lt;br/&gt;&lt;br/&gt;I believe that if the above would have happened overnight, people would&lt;br/&gt;have cried wolf. But somehow it happened slow enough, and &amp;#34;things kept&lt;br/&gt;working&amp;#34;.&lt;br/&gt;&lt;br/&gt;I don&amp;#39;t think that this is a good criterion. Bitcoin can &amp;#34;work&amp;#34; with&lt;br/&gt;gigabyte blocks today, if everyone uses the same few blockchain validation&lt;br/&gt;services, the same few online wallets, and mining is done by a cartel that&lt;br/&gt;only allows joining after signing a contract so they can sue you if you&lt;br/&gt;create an invalid block. Do you think people will then agree that &amp;#34;things&lt;br/&gt;got demonstratebly worse&amp;#34;?&lt;br/&gt;&lt;br/&gt;Don&amp;#39;t turn Bitcoin into something uninteresting, please.&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter&lt;br/&gt;On Aug 4, 2015 1:04 PM, &amp;#34;Hector Chu via bitcoin-dev&amp;#34; &amp;lt;&lt;br/&gt;bitcoin-dev at lists.linuxfoundation.org&amp;gt; wrote:&lt;br/&gt;&lt;br/&gt;&amp;gt; Mike&amp;#39;s position is that he wants the block size limit&lt;br/&gt;&amp;gt; to eventually be removed. That is of course an extreme view. Meanwhile,&lt;br/&gt;&amp;gt; your view that the block size should be artificially constrained below the&lt;br/&gt;&amp;gt; organic growth curve (in a way that will penalize a majority of existing&lt;br/&gt;&amp;gt; and future users) lies at the other extreme. The majority position lies&lt;br/&gt;&amp;gt; somewhere in between (i.e. a one-time increase to 8MB). This is the&lt;br/&gt;&amp;gt; position that ultimately matters.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; If the block size is increased to 8MB and things get demonstrably a whole&lt;br/&gt;&amp;gt; lot worse, then you will have a solid leg to stand on. In that case we can&lt;br/&gt;&amp;gt; always do another hard fork later to reduce the block size back to&lt;br/&gt;&amp;gt; something smaller, and henceforth the block size will never be touched&lt;br/&gt;&amp;gt; again.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; On 4 August 2015 at 11:35, Jorge Timón &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 Fri, Jul 31, 2015 at 4:58 PM, Mike Hearn &amp;lt;hearn at vinumeris.com&amp;gt; wrote:&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; How more users or more nodes can bring more miners, or more&lt;br/&gt;&amp;gt;&amp;gt; importantly,&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; improve mining decentralization?&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; Because the bigger the ecosystem is the more interest there is in taking&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; part?&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; As explained by Venzen, this is a non-sequitur.&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; I mean, I guess I don&amp;#39;t know how to answer your question.&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; I don&amp;#39;t know the answer either, that&amp;#39;s fine. It&amp;#39;s the opposite&lt;br/&gt;&amp;gt;&amp;gt; question that I&amp;#39;ve been insistently repeating and you&amp;#39;ve been&lt;br/&gt;&amp;gt;&amp;gt; (consciously or not) consistently evading.&lt;br/&gt;&amp;gt;&amp;gt; But that&amp;#39;s also fine because I believe you finally answer it a few lines&lt;br/&gt;&amp;gt;&amp;gt; below.&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; When Bitcoin was&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; new it had almost no users and almost no miners. Now there are millions&lt;br/&gt;&amp;gt;&amp;gt; of&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; users and factories producing ASICs just for Bitcoin.&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; The emergence of a btc price enabled the emergence of professional&lt;br/&gt;&amp;gt;&amp;gt; miners, which in turn enabled the emergence of sha256d-specialized&lt;br/&gt;&amp;gt;&amp;gt; hardware production companies.&lt;br/&gt;&amp;gt;&amp;gt; Nothing surprising there.&lt;br/&gt;&amp;gt;&amp;gt; By no means it consitutes an example of how a bigger consensus sizes&lt;br/&gt;&amp;gt;&amp;gt; can cause less mining centralization.&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; Surely the correlation is obvious?&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; Correlation does not imply causation. I will better leave it at that...&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; I&amp;#39;m sorry, but until there&amp;#39;s a simulation that I can run with different&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; sizes&amp;#39; testchains (for example using #6382) to somehow compare them, I&lt;br/&gt;&amp;gt;&amp;gt; will&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; consider any value arbitrary.&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; Gavin did run simulations. 20mb isn&amp;#39;t arbitrary, the process behind it&lt;br/&gt;&amp;gt;&amp;gt; was&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; well documented here:&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &lt;a href=&#34;http://gavinandresen.ninja/does-more-transactions-necessarily-mean-more-centralized&#34;&gt;http://gavinandresen.ninja/does-more-transactions-necessarily-mean-more-centralized&lt;/a&gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; I chose 20MB as a reasonable block size to target because 170 gigabytes&lt;br/&gt;&amp;gt;&amp;gt; per&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; month comfortably fits into the typical 250-300 gigabytes per month data&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; cap– so you can run a full node from home on a “pretty good” broadband&lt;br/&gt;&amp;gt;&amp;gt; plan.&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; Did you think 20mb was picked randomly?&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; No, I think 20 MB was chosen very optimistically, considering 3rd&lt;br/&gt;&amp;gt;&amp;gt; party services rates (not the same service as self-hosting) in the&lt;br/&gt;&amp;gt;&amp;gt; so-called &amp;#34;first world&amp;#34;. And then 20 MB goes to 20 GB, again with&lt;br/&gt;&amp;gt;&amp;gt; optimistic and by no means scientific expectations.&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; But where the number comes from it&amp;#39;s not really what I&amp;#39;m demaning,&lt;br/&gt;&amp;gt;&amp;gt; what I want is some criterion that can tell you that a given size&lt;br/&gt;&amp;gt;&amp;gt; would be &amp;#34;too centralized&amp;#34; but another one isn&amp;#39;t.&lt;br/&gt;&amp;gt;&amp;gt; I haven&amp;#39;t read any analysis on why 8GB is a better option than 7GB and&lt;br/&gt;&amp;gt;&amp;gt; 9GB for a given criterion (nor one declaring 20 GB a winner over 19 GB&lt;br/&gt;&amp;gt;&amp;gt; or 21 GB).&lt;br/&gt;&amp;gt;&amp;gt; A simulation test passing 20 GB but not 21 GB would make it far less&lt;br/&gt;&amp;gt;&amp;gt; arbitrary.&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; Agreed on the first sentence, I&amp;#39;m just saying that the influence of&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; the blocksize in that function is monotonic: with bigger sizes, equal&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; or worse mining centralization.&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; I have a hard time agreeing with this because I&amp;#39;ve seen Bitcoin go from&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; blocks that were often empty to blocks that are often full, and in this&lt;br/&gt;&amp;gt;&amp;gt; time&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; the number of miners and hash power on the network has gone up a huge&lt;br/&gt;&amp;gt;&amp;gt; amount&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; too.&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; I&amp;#39;m of course talking about consensus maximum blocksize, not about&lt;br/&gt;&amp;gt;&amp;gt; actual blocksize.&lt;br/&gt;&amp;gt;&amp;gt; Yes, again, when mining becomes profitable, economic actors tend to&lt;br/&gt;&amp;gt;&amp;gt; appear and get those profits.&lt;br/&gt;&amp;gt;&amp;gt; But don&amp;#39;t confuse total hashrate improvements with an &amp;#34;increase in the&lt;br/&gt;&amp;gt;&amp;gt; number of miners&amp;#34; or with mining decentralization.&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; You can argue that a miner doesn&amp;#39;t count if they pool mine. But if a&lt;br/&gt;&amp;gt;&amp;gt; miner&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; mines on a pool that uses exactly the same software and settings as the&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; miner would have done anyway, then it makes no difference. Miners can&lt;br/&gt;&amp;gt;&amp;gt; switch&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; between pools to find one that works the way they like, so whilst less&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; pooling or more decentralised pools would be nice (e.g.&lt;br/&gt;&amp;gt;&amp;gt; getblocktemplate),&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; and I&amp;#39;ve written about how to push it forward before, I still say there&lt;br/&gt;&amp;gt;&amp;gt; are&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; many more miners than in the past.&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; If I had to pick between two changes to improve mining decentralisation:&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; 1) Lower block size&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; Finally, I think you finally answered my repetitive question here.&lt;br/&gt;&amp;gt;&amp;gt; If I say &amp;#34;Mike Hearn understands that the consensus block size maximum&lt;br/&gt;&amp;gt;&amp;gt; rule is a tool for limitting mining centralization&amp;#34; I&amp;#39;m not putting&lt;br/&gt;&amp;gt;&amp;gt; words in your mouth, right?&lt;br/&gt;&amp;gt;&amp;gt; I think many users advocating for an increase in the consensus limit&lt;br/&gt;&amp;gt;&amp;gt; don&amp;#39;t understand this, which is extremely unfortunate for the debate.&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; 2) Finishing, documenting, and making the UX really slick for a&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; getblocktemplate based decentralised mining pool&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; then I&amp;#39;d pick (2) in a heartbeat. I think it&amp;#39;d be a lot more effective.&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; Great! Maybe after 2 mining centralization improves so much that we&amp;#39;re&lt;br/&gt;&amp;gt;&amp;gt; confortable not only not lowering it but rather increasing it.&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; you should be consequently advocating for full removal of the limit&lt;br/&gt;&amp;gt;&amp;gt; rather&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; than changes towards bigger arbitrary values.&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; I did toy with that idea a while ago. Of course there can not really be&lt;br/&gt;&amp;gt;&amp;gt; no&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; limit at all because the code assumes blocks fit into RAM/swap, and&lt;br/&gt;&amp;gt;&amp;gt; nodes&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; would just end up ignoring blocks they couldn&amp;#39;t download in time anyway.&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; There is obviously a physical limit somewhere.&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; Did the fact that you &amp;#34;understand that the consensus block size&lt;br/&gt;&amp;gt;&amp;gt; maximum rule is a tool for limitting mining centralization&amp;#34; influenced&lt;br/&gt;&amp;gt;&amp;gt; your rejection of that idea at all?&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; But it is easier to find common ground with others by compromising. Is&lt;br/&gt;&amp;gt;&amp;gt; 8mb&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; better than no limit? I don&amp;#39;t know and I don&amp;#39;t care much:  I think&lt;br/&gt;&amp;gt;&amp;gt; Bitcoin&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; adoption is a slow, hard process and we&amp;#39;ll be lucky to increase average&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; usage 8x over the next couple of years. So if 8mb&#43; is better for others,&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; that&amp;#39;s OK by me.&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; The only way that &amp;#34;not caring much whther we have a consensus limit or&lt;br/&gt;&amp;gt;&amp;gt; not&amp;#34; and &amp;#34;understand that the consensus block size maximum rule is a&lt;br/&gt;&amp;gt;&amp;gt; tool for limitting mining centralization&amp;#34; at the same time is by not&lt;br/&gt;&amp;gt;&amp;gt; caring about mining centralization at all.&lt;br/&gt;&amp;gt;&amp;gt; Is that your position?&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; If you don&amp;#39;t care about having a limit but you don&amp;#39;t want to limit&lt;br/&gt;&amp;gt;&amp;gt; transaction volume, then &#43;&#43;current_size will ALWAYs be your&lt;br/&gt;&amp;gt;&amp;gt; &amp;#34;compromise position&amp;#34; and no blocksize increase will ever be enough&lt;br/&gt;&amp;gt;&amp;gt; until the limit is completely removed.&lt;br/&gt;&amp;gt;&amp;gt; Is that your position?&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; Re: exchange profit. You can pick some other useful service provider if&lt;br/&gt;&amp;gt;&amp;gt; you&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; like. Payment processors or cold storage providers or the TREZOR&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; manufacturers or whoever.&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; Yes, and I believe the same points stand.&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; My point is you can&amp;#39;t have a tiny high-value-transactions only currency&lt;br/&gt;&amp;gt;&amp;gt; AND&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; all the useful infrastructure that the Bitcoin community is making.&lt;br/&gt;&amp;gt;&amp;gt; It&amp;#39;s a&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; contradiction. And without the infrastructure bitcoin ceases to be&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; interesting even to people who are willing to pay huge sums to use it.&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; You keep talking about &amp;#34;high-value-transactions-only&amp;#34; like if&lt;br/&gt;&amp;gt;&amp;gt; non-urgent transaction fees rising from zero to, say, 1 satoshi, would&lt;br/&gt;&amp;gt;&amp;gt; automatically result in that &amp;#34;high-value-transactions-only&amp;#34; Bitcoin.&lt;br/&gt;&amp;gt;&amp;gt; Please, stop talking as if someone was proposing a&lt;br/&gt;&amp;gt;&amp;gt; &amp;#34;high-value-transactions-only&amp;#34; Bitcoin. That may happen but nobody&lt;br/&gt;&amp;gt;&amp;gt; really knows. If it happens it may not be bad thing necessarily (ie&lt;br/&gt;&amp;gt;&amp;gt; bitcoin microtransactions can still happen using trustless payment&lt;br/&gt;&amp;gt;&amp;gt; channels and x is still cheaper than x% for any transacted value&lt;br/&gt;&amp;gt;&amp;gt; higher than 100) but that&amp;#39;s really not what we&amp;#39;re talking about here&lt;br/&gt;&amp;gt;&amp;gt; so it seems distraction that can only help further polirizing this&lt;br/&gt;&amp;gt;&amp;gt; discussion.&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; What we&amp;#39;re talking about here is that hitting the limit would&lt;br/&gt;&amp;gt;&amp;gt; (hopefully) make miners start caring about fees. Enough that they stop&lt;br/&gt;&amp;gt;&amp;gt; being irrational about free transactions. If both things happen,&lt;br/&gt;&amp;gt;&amp;gt; non-urgent transaction fees will likely rise (as said, above zero).&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; You think that would be a catastrophe for adoption and I disagree.&lt;br/&gt;&amp;gt;&amp;gt; But (as Pieter has repeatedly explained) for any size there will be&lt;br/&gt;&amp;gt;&amp;gt; use cases that will be eventually priced out.&lt;br/&gt;&amp;gt;&amp;gt; So when rising this consensus limit, not increasing centralization&lt;br/&gt;&amp;gt;&amp;gt; should be the priority and the potential impact in market fees a much&lt;br/&gt;&amp;gt;&amp;gt; more secondary concern.&lt;br/&gt;&amp;gt;&amp;gt; Do you agree with this?&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; I&amp;#39;m sure there are many intermediate positions between &amp;#34;caring more&lt;br/&gt;&amp;gt;&amp;gt; about mining centralization than market fees when deciding about a&lt;br/&gt;&amp;gt;&amp;gt; consensus rule that limits mining centralization&amp;#34; and &amp;#34;not caring&lt;br/&gt;&amp;gt;&amp;gt; about mining centralization at all&amp;#34;.&lt;br/&gt;&amp;gt;&amp;gt; I really don&amp;#39;t want to put words in your mouth, but I honestly don&amp;#39;t&lt;br/&gt;&amp;gt;&amp;gt; know what your position is.&lt;br/&gt;&amp;gt;&amp;gt; I don&amp;#39;t really know how else can I ask the same question: you don&amp;#39;t&lt;br/&gt;&amp;gt;&amp;gt; care the consensus maximum blocksize rule being here at all or not&lt;br/&gt;&amp;gt;&amp;gt; (you just said that).&lt;br/&gt;&amp;gt;&amp;gt; Is it because you don&amp;#39;t think it limits mining centralization or&lt;br/&gt;&amp;gt;&amp;gt; because you don&amp;#39;t care about limiting mining centralization with&lt;br/&gt;&amp;gt;&amp;gt; consensus rules at all?&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;&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/20150804/2b6fdfa3/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20150804/2b6fdfa3/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T19:32:23&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsthz9zclvr7kvfpu079g722quy4rq9t8hgrdxv989vgwz4n3g6gaczypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dv6zuew6</id>
    
      <title type="html">📅 Original date posted:2016-01-07 📝 Original message:&amp;gt; ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsthz9zclvr7kvfpu079g722quy4rq9t8hgrdxv989vgwz4n3g6gaczypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dv6zuew6" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqswdrgcnt034p6tuuryf352c5zlq57e0thhurj23m6y9xn4j2kpg9q8rssee&#39;&gt;nevent1q…ssee&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2016-01-07&lt;br/&gt;📝 Original message:&amp;gt; &amp;#34;The problem case is where someone in a contract setup shows you a&lt;br/&gt;script, which you accept as being a payment to yourself. An attacker could&lt;br/&gt;use a collision attack to construct scripts with identical hashes, only one&lt;br/&gt;of which does have the property you want, and steal coins.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; So you really want collision security, and I don&amp;#39;t think 80 bits is&lt;br/&gt;something we should encourage for that. Normal pubkey hashes don&amp;#39;t have&lt;br/&gt;that problem, as they can&amp;#39;t be constructed to pay to you.&amp;#34;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; ... but I&amp;#39;m unconvinced:&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;#34;But it is trivial for contract wallets to protect against collision&lt;br/&gt;attacks-- if you give me a script that is &amp;#34;gavin_pubkey CHECKSIG&lt;br/&gt;arbitrary_data OP_DROP&amp;#34; with &amp;#34;I promise I&amp;#39;m not trying to rip you off, just&lt;br/&gt;ignore that arbitrary data&amp;#34; a wallet can just refuse. Even more likely, a&lt;br/&gt;contract wallet won&amp;#39;t even recognize that as a pay-to-gavin transaction.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; I suppose it could be looking for some form of &amp;#34;gavin_pubkey&lt;br/&gt;somebody_else_pubkey CHECKMULTISIG ... with the attacker using&lt;br/&gt;somebody_else_pubkey to force the collision, but, again, trivial contract&lt;br/&gt;protocol tweaks (&amp;#34;send along a proof you have the private key corresponding&lt;br/&gt;to the public key&amp;#34; or &amp;#34;everybody pre-commits pubkeys they&amp;#39;ll use at&lt;br/&gt;protocol start&amp;#34;) would protect against that.&lt;br/&gt;&lt;br/&gt;Yes, this is what I worry about. We&amp;#39;re constructing a 2-of-2 multisig&lt;br/&gt;escrow in a contract. I reveal my public key A, you do a 80-bit search for&lt;br/&gt;B and C such that H(A and B) = H(B and C). You tell me your keys B, and I&lt;br/&gt;happily send to H(A and B), which you steal with H(B and C).&lt;br/&gt;&lt;br/&gt;Sending along a proof does not help, you can&amp;#39;t prove that you do not know&lt;br/&gt;of a collision. Pre-committing does help, but is a very non-obvious&lt;br/&gt;security requirement, something I strongly believe is far riskier in&lt;br/&gt;practice.&lt;br/&gt;&lt;br/&gt;Bitcoin does have parts that rely on economic arguments for security or&lt;br/&gt;privacy, but can we please stick to using cryptography that is up to par&lt;br/&gt;for parts where we can? It&amp;#39;s a small constant factor of data, and it&lt;br/&gt;categorically removes the worry about security levels.&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter&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/20160108/e2e921fb/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20160108/e2e921fb/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T19:31:33&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsvpqf6ceu9ewn9z5tfsqw2zk760cqsc2gma88xmv8xthh7s659xzqzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dv6esfju</id>
    
      <title type="html">📅 Original date posted:2015-08-10 📝 Original message:On Aug ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsvpqf6ceu9ewn9z5tfsqw2zk760cqsc2gma88xmv8xthh7s659xzqzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dv6esfju" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsvy4kyqkj707vm2tflfma6759rvpsxta8tkz5lqlnc4x8gy04fhhsskwl3u&#39;&gt;nevent1q…wl3u&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2015-08-10&lt;br/&gt;📝 Original message:On Aug 11, 2015 12:18 AM, &amp;#34;Thomas Zander via bitcoin-dev&amp;#34; &amp;lt;&lt;br/&gt;bitcoin-dev at lists.linuxfoundation.org&amp;gt; wrote:&lt;br/&gt;&lt;br/&gt;&amp;gt; Have you ever been to a concert that was far away from public transport?&lt;br/&gt;They&lt;br/&gt;&amp;gt; typically set up bus shuttles, or taxis to get people back into town&lt;br/&gt;&amp;gt; afterwards.&lt;br/&gt;&amp;gt; The result there is always you end up waiting forever and it actually may&lt;br/&gt;be&lt;br/&gt;&amp;gt; easier to just walk instead of wait.&lt;br/&gt;&amp;gt; The amount you pay is irrelevant if everyone is paying it. There still is&lt;br/&gt;more&lt;br/&gt;&amp;gt; demand than there is capacity.&lt;br/&gt;&lt;br/&gt;That&amp;#39;s an incorrect analogy. You choose the rate you pay, and get higher&lt;br/&gt;priority when you pay more. Taxi drivers can&amp;#39;t pick out higher-paying&lt;br/&gt;customers in advance.&lt;br/&gt;&lt;br/&gt;A better comparison is Uber, which charges more in places with high demand,&lt;br/&gt;and you can accept or refuse in advance. And yes, it remains reliable if&lt;br/&gt;you&amp;#39;re among those with the highest willingness to pay.&lt;br/&gt;&lt;br/&gt;&amp;gt; So, no, its not unreliable for cheap free transactions.&lt;br/&gt;&amp;gt; Its unreliable for all types of transactions.&lt;br/&gt;&lt;br/&gt;If 2500 transactions fit in the block chain per day (assuming constant&lt;br/&gt;size) and there are less than 2500 per hour that pay at least 0.001 BTC in&lt;br/&gt;fee, then any transaction which pays more than 0.001 BTC will have a very&lt;br/&gt;high chance of getting in a small multiple of one hour, since miners&lt;br/&gt;prioritize by feerate.&lt;br/&gt;&lt;br/&gt;If there are in addition to that 5000 transactions per hour which pay less,&lt;br/&gt;then yes, they need to compete for the remaiming space and their&lt;br/&gt;confirmation will be unreliable.&lt;br/&gt;&lt;br/&gt;The whole point is that whether confirmation at a particular price point is&lt;br/&gt;reliable depends on how much demand there is at that price point. And&lt;br/&gt;increasing the block size out of fear of what might happen is failing to&lt;br/&gt;recognize that it can always happen that there is a sudden change in demand&lt;br/&gt;that outcompetes the rest.&lt;br/&gt;&lt;br/&gt;The point is not that evolution towards a specific higher feerate needs to&lt;br/&gt;happen, but an evolution to an ecosystem that accepts that there is never a&lt;br/&gt;guarantee for reliability, unless you&amp;#39;re willing to pay more than everyone&lt;br/&gt;else - whatever that number is.&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter&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/20150811/b117bc74/attachment-0001.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20150811/b117bc74/attachment-0001.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T17:46:03&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs2ry4c8ey37wy7thqf2zkckfw0jzaunrrdv33htzdxstvhtnjqezqzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvrx66m5</id>
    
      <title type="html">📅 Original date posted:2015-08-10 📝 Original message:On Aug ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs2ry4c8ey37wy7thqf2zkckfw0jzaunrrdv33htzdxstvhtnjqezqzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvrx66m5" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsvpqf6ceu9ewn9z5tfsqw2zk760cqsc2gma88xmv8xthh7s659xzqruq9qu&#39;&gt;nevent1q…q9qu&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2015-08-10&lt;br/&gt;📝 Original message:On Aug 11, 2015 12:52 AM, &amp;#34;Pieter Wuille&amp;#34; &amp;lt;pieter.wuille at gmail.com&amp;gt; wrote:&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; On Aug 11, 2015 12:18 AM, &amp;#34;Thomas Zander via bitcoin-dev&amp;#34; &amp;lt;&lt;br/&gt;bitcoin-dev at lists.linuxfoundation.org&amp;gt; wrote:&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; Have you ever been to a concert that was far away from public&lt;br/&gt;transport? They&lt;br/&gt;&amp;gt; &amp;gt; typically set up bus shuttles, or taxis to get people back into town&lt;br/&gt;&amp;gt; &amp;gt; afterwards.&lt;br/&gt;&amp;gt; &amp;gt; The result there is always you end up waiting forever and it actually&lt;br/&gt;may be&lt;br/&gt;&amp;gt; &amp;gt; easier to just walk instead of wait.&lt;br/&gt;&amp;gt; &amp;gt; The amount you pay is irrelevant if everyone is paying it. There still&lt;br/&gt;is more&lt;br/&gt;&amp;gt; &amp;gt; demand than there is capacity.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; That&amp;#39;s an incorrect analogy. You choose the rate you pay, and get higher&lt;br/&gt;priority when you pay more. Taxi drivers can&amp;#39;t pick out higher-paying&lt;br/&gt;customers in advance.&lt;br/&gt;&lt;br/&gt;I&amp;#39;m sorry, I missed your &amp;#34;if everyone is paying it&amp;#34;. This changes a lot. I&lt;br/&gt;agree with you: if everyone wants to pay much then it becomes unreliable.&lt;br/&gt;&lt;br/&gt;But I don&amp;#39;t think that is something we can avoid with a small constant&lt;br/&gt;factor block size increase, and we don&amp;#39;t do the world a service by making&lt;br/&gt;it look like it works for longer.&lt;br/&gt;&lt;br/&gt;Let&amp;#39;s grow within bounderies set by technology and centralization pressure&lt;br/&gt;that we can agree on. Let the market decide whether how they will that will&lt;br/&gt;low volume reliable transactions and/or high volume unreliable ones.&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter&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/20150811/59b198e8/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20150811/59b198e8/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T17:46:03&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsgkqytaagcjmd04sa5zza9djkjv573ekgdypzxqpzzx2f9alduqhqzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvpptt9n</id>
    
      <title type="html">📅 Original date posted:2015-08-11 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsgkqytaagcjmd04sa5zza9djkjv573ekgdypzxqpzzx2f9alduqhqzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvpptt9n" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsq9c9upqt9dw3sremrj5htsf8h7525zdhw6cqsa0r3t3glm2839qs9p9e8z&#39;&gt;nevent1q…9e8z&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2015-08-11&lt;br/&gt;📝 Original message:On Tue, Aug 11, 2015 at 11:35 PM, Michael Naber &amp;lt;mickeybob at gmail.com&amp;gt; wrote:&lt;br/&gt;&lt;br/&gt;&amp;gt; Bitcoin would be better money than current money even if it were a bit&lt;br/&gt;&amp;gt; more expensive to transact, simply because of its other great&lt;br/&gt;&amp;gt; characteristics (trustlessness, limited supply, etc). However... it is not&lt;br/&gt;&amp;gt; better than something else sharing all those same characteristics but which&lt;br/&gt;&amp;gt; is also less expensive. The best money will win, and if Bitcoin doesn&amp;#39;t&lt;br/&gt;&amp;gt; increase capacity then it won&amp;#39;t remain the best.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;If it is less expensive, it is harder to be reliable (because it&amp;#39;s easier&lt;br/&gt;for a sudden new use case to outbid the available space), which is less&lt;br/&gt;useful for a payment mechanism.&lt;br/&gt;&lt;br/&gt;If it has better scale (with the same technology), it will have higher&lt;br/&gt;centralization pressure. The higher price you potentially pay (in fees) to&lt;br/&gt;get your transactions on a smaller block chain is the price of higher&lt;br/&gt;security and independence. Perhaps the compromise is not at the optimal&lt;br/&gt;place, but please stop saying &amp;#34;below what the technology can do&amp;#34;. The&lt;br/&gt;technology can &amp;#34;do&amp;#34; gigabyte blocks I&amp;#39;m sure, If you accept that you need a&lt;br/&gt;small cluster to keep up with validation, and all blocks are produced by a&lt;br/&gt;single miner cartel.&lt;br/&gt;&lt;br/&gt;IMHO, Bitcoin (or any cryptocurrency) on-chain as a payment system is:&lt;br/&gt;* Expensive: there is a (known in advance and agreed upon) inflation that&lt;br/&gt;we&amp;#39;re using to pay miners. But by holding Bitcoin you&amp;#39;re paying for the&lt;br/&gt;security of the system, even if it is not in fees.&lt;br/&gt;* Unreliable: you never know when suddenly there will be more higher-fee&lt;br/&gt;transactions that outbid you.&lt;br/&gt;* Slow, unless you already trust the sender to not double spend (in which&lt;br/&gt;case you don&amp;#39;t actually need the security of the blockchain).&lt;br/&gt;&lt;br/&gt;I don&amp;#39;t know the future, and I don&amp;#39;t know what use cases will develop and&lt;br/&gt;what they&amp;#39;ll want to pay or what reliability they need. But let&amp;#39;s please&lt;br/&gt;not throw out the one quality that Bitcoin is still good at: lack of&lt;br/&gt;centralized parties to trust.&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter&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/20150811/a9e6e3a9/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20150811/a9e6e3a9/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T17:45:57&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs0qh30485j0jpnvwzytfvpjfl5t6ncusnw6ur53f8t3eyms5xassqzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvme6d6h</id>
    
      <title type="html">📅 Original date posted:2015-08-11 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs0qh30485j0jpnvwzytfvpjfl5t6ncusnw6ur53f8t3eyms5xassqzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvme6d6h" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs9vkaya5ka5hrzzk56c72tla9rkxeaf53ytljnfjkv92h6h3dpn3ccpnp42&#39;&gt;nevent1q…np42&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2015-08-11&lt;br/&gt;📝 Original message:On Tue, Aug 11, 2015 at 11:30 PM, Angel Leon 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; tell that to people in poor countries, or even in first world countries.&lt;br/&gt;&amp;gt; The competitive thing here is a deal breaker for a lot of people who have&lt;br/&gt;&amp;gt; no clue/don&amp;#39;t care for decentralization,&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;Then they also don&amp;#39;t need their transactions to be on the blockchain, right?&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter&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/20150811/f3e65461/attachment-0001.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20150811/f3e65461/attachment-0001.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T17:45:53&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsz0kjljd8r8kkuedme9a46fkhuptd5tjjfzwt9g8jpw02h2x46x7qzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvcds7pv</id>
    
      <title type="html">📅 Original date posted:2015-08-11 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsz0kjljd8r8kkuedme9a46fkhuptd5tjjfzwt9g8jpw02h2x46x7qzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvcds7pv" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsqhclcd0azrc90q098kc8uy3gcrgxme589wlgvnwfetycgnc8w5tgnmr77x&#39;&gt;nevent1q…r77x&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2015-08-11&lt;br/&gt;📝 Original message:On Tue, Aug 11, 2015 at 9:37 PM, Michael Naber 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; Hitting the limit in and of itself is not necessarily a bad thing. The&lt;br/&gt;&amp;gt; question at hand is whether we should constrain that limit below what&lt;br/&gt;&amp;gt; technology is capable of delivering. I&amp;#39;m arguing that not only we should&lt;br/&gt;&amp;gt; not, but that we could not even if we wanted to, since competition will&lt;br/&gt;&amp;gt; deliver capacity for global consensus whether it&amp;#39;s in Bitcoin or in some&lt;br/&gt;&amp;gt; other product / fork.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;The question is not what the technology can deliver. The question is what&lt;br/&gt;price we&amp;#39;re willing to pay for that. It is not a boolean &amp;#34;at this size,&lt;br/&gt;things break, and below it, they work&amp;#34;. A small constant factor increase&lt;br/&gt;will unlikely break anything in the short term, but it will come with&lt;br/&gt;higher centralization pressure of various forms. There is discussion about&lt;br/&gt;whether these centralization pressures are significant, but citing that&lt;br/&gt;it&amp;#39;s artificially constrained under the limit is IMHO a misrepresentation.&lt;br/&gt;It is constrained to aim for a certain balance between utility and risk,&lt;br/&gt;and neither extreme is interesting, while possibly still &amp;#34;working&amp;#34;.&lt;br/&gt;&lt;br/&gt;Consensus rules are what keeps the system together. You can&amp;#39;t simply switch&lt;br/&gt;to new rules on your own, because the rest of the system will end up&lt;br/&gt;ignoring you. These rules are there for a reason. You and I may agree about&lt;br/&gt;whether the 21M limit is necessary, and disagree about whether we need a&lt;br/&gt;block size limit, but we should be extremely careful with change. My&lt;br/&gt;position as Bitcoin Core developer is that we should merge consensus&lt;br/&gt;changes only when they are uncontroversial. Even when you believe a more&lt;br/&gt;invasive change is worth it, others may disagree, and the risk from&lt;br/&gt;disagreement is likely larger than the effect of a small block size&lt;br/&gt;increase by itself: the risk that suddenly every transaction can be spent&lt;br/&gt;twice (once on each side of the fork), the very thing that the block chain&lt;br/&gt;was designed to prevent.&lt;br/&gt;&lt;br/&gt;My personal opinion is that we should aim to do a block size increase for&lt;br/&gt;the right reasons. I don&amp;#39;t think fear of rising fees or unreliability&lt;br/&gt;should be an issue: if fees are being paid, it means someone is willing to&lt;br/&gt;pay them. If people are doing transactions despite being unreliable, there&lt;br/&gt;must be a use for them. That may mean that some use cases don&amp;#39;t fit&lt;br/&gt;anymore, but that is already the case.&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter&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/20150811/851e0acb/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20150811/851e0acb/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T17:45:52&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsqqqra7gamyjp5weakuas63eghpdmuxxcuu8g744xpcesllrm38fczypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvckrn7j</id>
    
      <title type="html">📅 Original date posted:2015-08-07 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsqqqra7gamyjp5weakuas63eghpdmuxxcuu8g744xpcesllrm38fczypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvckrn7j" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsds0twtt2xtean5muaa88dphjlnxvlfmg5askk0f5ynyt2wnv8l2qsqh06c&#39;&gt;nevent1q…h06c&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2015-08-07&lt;br/&gt;📝 Original message:On Fri, Aug 7, 2015 at 5:55 PM, Gavin Andresen &amp;lt;gavinandresen at gmail.com&amp;gt;&lt;br/&gt;wrote:&lt;br/&gt;&lt;br/&gt;&amp;gt; On Fri, Aug 7, 2015 at 11:16 AM, Pieter Wuille &amp;lt;pieter.wuille at gmail.com&amp;gt;&lt;br/&gt;&amp;gt; wrote:&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; I guess my question (and perhaps that&amp;#39;s what Jorge is after): do you feel&lt;br/&gt;&amp;gt;&amp;gt; that blocks should be increased in response to (or for fear of) such a&lt;br/&gt;&amp;gt;&amp;gt; scenario.&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; I think there are multiple reasons to raise the maximum block size, and&lt;br/&gt;&amp;gt; yes, fear of Bad Things Happening as we run up against the 1MB limit is one&lt;br/&gt;&amp;gt; of the reasons.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; I take the opinion of smart engineers who actually do resource planning&lt;br/&gt;&amp;gt; and have seen what happens when networks run out of capacity very seriously.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;This is a fundamental disagreement then. I believe that the demand is&lt;br/&gt;infinite if you don&amp;#39;t set a fee minimum (and I don&amp;#39;t think we should), and&lt;br/&gt;it just takes time for the market to find a way to fill whatever is&lt;br/&gt;available - the rest goes into off-chain systems anyway. You will run out&lt;br/&gt;of capacity at any size, and acting out of fear of that reality does not&lt;br/&gt;improve the system. Whatever size blocks are actually produced, I believe&lt;br/&gt;the result will either be something people consider too small to be&lt;br/&gt;competitive (&amp;#34;you mean Bitcoin can only do 24 transactions per second?&amp;#34;&lt;br/&gt;sounds almost the same as &amp;#34;you mean Bitcoin can only do 3 transactions per&lt;br/&gt;second?&amp;#34;), or something that is very centralized in practice, and likely&lt;br/&gt;both.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;gt; And if so, if that is a reason for increase now, won&amp;#39;t it be a reason for&lt;br/&gt;&amp;gt;&amp;gt; an increase later as well? It is my impression that your answer is yes,&lt;br/&gt;&amp;gt;&amp;gt; that this is why you want to increase the block size quickly and&lt;br/&gt;&amp;gt;&amp;gt; significantly, but correct me if I&amp;#39;m wrong.&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Sure, it might be a reason for an increase later. Here&amp;#39;s my message to&lt;br/&gt;&amp;gt; in-the-future Bitcoin engineers:  you should consider raising the maximum&lt;br/&gt;&amp;gt; block size if needed and you think the benefits of doing so (like increased&lt;br/&gt;&amp;gt; adoption or lower transaction fees or increased reliability) outweigh the&lt;br/&gt;&amp;gt; costs (like higher operating costs for full-nodes or the disruption caused&lt;br/&gt;&amp;gt; by ANY consensus rule change).&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;In general that sounds reasonable, but it&amp;#39;s a dangerous precedent to make&lt;br/&gt;technical decisions based on a fear of change of economics...&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter&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/20150807/8322a671/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20150807/8322a671/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T17:45:40&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqspyqe89l7ehewf86xm3054q3gdgqd89am90hcaz3ganavepmjn8agzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvg8xh0n</id>
    
      <title type="html">📅 Original date posted:2015-08-07 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqspyqe89l7ehewf86xm3054q3gdgqd89am90hcaz3ganavepmjn8agzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvg8xh0n" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs2tt6enwuda29jmg7dsf7zrhkqqwn9tarwr72t378ggjdjdzcxn6ca8ywyj&#39;&gt;nevent1q…ywyj&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2015-08-07&lt;br/&gt;📝 Original message:On Fri, Aug 7, 2015 at 4:57 PM, Gavin Andresen 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; Every once in a while the network will get lucky and we&amp;#39;ll find six blocks&lt;br/&gt;&amp;gt; in ten minutes. If you are deciding what transaction fee to put on your&lt;br/&gt;&amp;gt; transaction, and you&amp;#39;re willing to wait until that&lt;br/&gt;&amp;gt; six-blocks-in-ten-minutes once-a-week event, submit your transaction with a&lt;br/&gt;&amp;gt; low fee.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; All the higher-fee transactions waiting to be confirmed will get confirmed&lt;br/&gt;&amp;gt; in the first five blocks and, if miners don&amp;#39;t have any floor on the fee&lt;br/&gt;&amp;gt; they&amp;#39;ll accept (they will, but lets pretend they won&amp;#39;t) then your&lt;br/&gt;&amp;gt; very-low-fee transaction will get confirmed.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; In the limit, that logic becomes &amp;#34;wait an infinite amount of time, pay&lt;br/&gt;&amp;gt; zero fee.&amp;#34;&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;That&amp;#39;s only the case when the actual rate of transactions with a non-zero&lt;br/&gt;fee is below what fits in blocks. If the total production rate is higher,&lt;br/&gt;even without configured floor by miners, a free transaction won&amp;#39;t ever be&lt;br/&gt;mined, as there will always be some backlog of non-free transaction. Not&lt;br/&gt;saying that this is a likely outcome - it would inevitably mean that people&lt;br/&gt;are creating transactions without any guarantee that they&amp;#39;ll be mined,&lt;br/&gt;which may not be what anyone is interested in. But perhaps there is some&lt;br/&gt;&amp;#34;use&amp;#34; for ultra-low-priority unreliable transactions (... despite DoS&lt;br/&gt;attacks).&lt;br/&gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; So... I have no idea what the &amp;#39;market minimum fee&amp;#39; will be, because I have&lt;br/&gt;&amp;gt; no idea how long people will be willing to wait, how many times they&amp;#39;ll be&lt;br/&gt;&amp;gt; willing to retransmit a low-fee transaction that gets evicted from&lt;br/&gt;&amp;gt; memory-limited memory pools, or how much memory miners will be willing to&lt;br/&gt;&amp;gt; dedicate to storing transactions that won&amp;#39;t confirm for a long time because&lt;br/&gt;&amp;gt; they&amp;#39;re waiting for a flurry of blocks to be found.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;Fair enough, I don&amp;#39;t think anyone knows.&lt;br/&gt;&lt;br/&gt;I guess my question (and perhaps that&amp;#39;s what Jorge is after): do you feel&lt;br/&gt;that blocks should be increased in response to (or for fear of) such a&lt;br/&gt;scenario. And if so, if that is a reason for increase now, won&amp;#39;t it be a&lt;br/&gt;reason for an increase later as well? It is my impression that your answer&lt;br/&gt;is yes, that this is why you want to increase the block size quickly and&lt;br/&gt;significantly, but correct me if I&amp;#39;m wrong.&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter&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/20150807/a3e40340/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20150807/a3e40340/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T17:45:39&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsfxh7ak9fju7md530u5m2pjryanfprz02mq6swwypuv5x3rd20dcqzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvu6zara</id>
    
      <title type="html">📅 Original date posted:2015-08-07 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsfxh7ak9fju7md530u5m2pjryanfprz02mq6swwypuv5x3rd20dcqzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvu6zara" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsy0pd2kmjyssjf8t2mz98ywk77u4t3a40njh5xjdjgg763ep8x8pc865t56&#39;&gt;nevent1q…5t56&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2015-08-07&lt;br/&gt;📝 Original message:On Fri, Aug 7, 2015 at 7:00 PM, Thomas Zander 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; &amp;gt; If the incentives for running a node don&amp;#39;t weight up against the&lt;br/&gt;&amp;gt; &amp;gt; cost/difficulty using a full node yourself for a majority of people in&lt;br/&gt;&amp;gt; the&lt;br/&gt;&amp;gt; &amp;gt; ecosystem, I would argue that there is a problem. As Bitcoin&amp;#39;s&lt;br/&gt;&amp;gt; fundamental&lt;br/&gt;&amp;gt; &amp;gt; improvement over other systems is the lack of need for trust, I believe&lt;br/&gt;&amp;gt; &amp;gt; that with increased adoption should also come an increased (in absolute&lt;br/&gt;&amp;gt; &amp;gt; terms) incentive for people to use a full node. I&amp;#39;m seeing the opposite&lt;br/&gt;&amp;gt; &amp;gt; trend, and that is worrying IMHO.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; And you do the same thing again; you dismiss the need factor.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;Of course there is a need. It&amp;#39;s the primary mechanism that keeps Bitcoin&lt;br/&gt;secure and immune from malicious influence.&lt;br/&gt;&lt;br/&gt;Of course not everyone needs to run a node. But that leaves the&lt;br/&gt;responsibility on us - the community - to help the situation by not making&lt;br/&gt;it too hard to run a node. And I see the block size as the primary way&lt;br/&gt;through which we do that.&lt;br/&gt;&lt;br/&gt;If the impact of the system goes us, so should the - joint - incentives to&lt;br/&gt;keep it secure. And I think we&amp;#39;re (slowly) failing at that.&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter&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/20150807/96f446eb/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20150807/96f446eb/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T17:45:33&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsfq5nnsc7ve54366fvnug3qp4xc2vrtvl6pv6vg0lfrhxwr0fq6cszypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dv5wr5z6</id>
    
      <title type="html">📅 Original date posted:2015-08-07 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsfq5nnsc7ve54366fvnug3qp4xc2vrtvl6pv6vg0lfrhxwr0fq6cszypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dv5wr5z6" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsx2r7fccv4m546nzt8a70vccl6v79zzhm46lfe7aps9ww3d0m265gehcly2&#39;&gt;nevent1q…cly2&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2015-08-07&lt;br/&gt;📝 Original message:On Fri, Aug 7, 2015 at 6:06 PM, Thomas Zander 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; You make a logical fallacy;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; I would agree that nodes are there for people to stop trusting someone that&lt;br/&gt;&amp;gt; they have no trust-relationship with.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;Yay, trust!&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;gt; But your conclusion that low node count is an indication that its hard to&lt;br/&gt;&amp;gt; run&lt;br/&gt;&amp;gt; one discards your own point.  You forget the point that running a node is&lt;br/&gt;&amp;gt; only&lt;br/&gt;&amp;gt; needed if you don&amp;#39;t know anyone you can trust to run it for you.  I&amp;#39;m&lt;br/&gt;&amp;gt; pretty&lt;br/&gt;&amp;gt; darn sure that this will have a bigger effect on nodecount than how hard it&lt;br/&gt;&amp;gt; is.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;I never said it is the only factor that influences node count.&lt;br/&gt;&lt;br/&gt;Or, in other words, without a need to run a node you can&amp;#39;t judge the&lt;br/&gt;&amp;gt; difficulty of why there aren&amp;#39;t more running.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;If the incentives for running a node don&amp;#39;t weight up against the&lt;br/&gt;cost/difficulty using a full node yourself for a majority of people in the&lt;br/&gt;ecosystem, I would argue that there is a problem. As Bitcoin&amp;#39;s fundamental&lt;br/&gt;improvement over other systems is the lack of need for trust, I believe&lt;br/&gt;that with increased adoption should also come an increased (in absolute&lt;br/&gt;terms) incentive for people to use a full node. I&amp;#39;m seeing the opposite&lt;br/&gt;trend, and that is worrying IMHO.&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter&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/20150807/76c1ddc9/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20150807/76c1ddc9/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T17:45:33&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqspylj6a3fmvzk859cazgrt4pv5ktczp897rz33rkwuzmx6zggavsgzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvs4m76n</id>
    
      <title type="html">📅 Original date posted:2015-08-06 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqspylj6a3fmvzk859cazgrt4pv5ktczp897rz33rkwuzmx6zggavsgzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvs4m76n" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsq97vk0wmqyqtg909aapq65kcgtsnl0ndmvk7mk0vrp2zkmfdaxkg7gmlq9&#39;&gt;nevent1q…mlq9&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2015-08-06&lt;br/&gt;📝 Original message:On Thu, Aug 6, 2015 at 8:43 PM, Michael Naber &amp;lt;mickeybob at gmail.com&amp;gt; wrote:&lt;br/&gt;&lt;br/&gt;&amp;gt; How many nodes are necessary to ensure sufficient network reliability?&lt;br/&gt;&amp;gt; Ten, a hundred, a thousand? At what point do we hit the point of&lt;br/&gt;&amp;gt; diminishing returns, where adding extra nodes starts to have negligible&lt;br/&gt;&amp;gt; impact on the overall reliability of the system?&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;It&amp;#39;s not about reliability. There are plenty of nodes currently for&lt;br/&gt;synchronization and other network functions.&lt;br/&gt;&lt;br/&gt;It&amp;#39;s about reduction of trust. Running a full node and using it verify your&lt;br/&gt;transactions is how you get personal assurance that everyone on the network&lt;br/&gt;is following the rules. And if you don&amp;#39;t do so yourself, the knowledge that&lt;br/&gt;others are using full nodes and relying on them is valuable. Someone just&lt;br/&gt;running 1000 nodes in a data center and not using them for anything does&lt;br/&gt;not do anything for this, it&amp;#39;s adding network capacity without use.&lt;br/&gt;&lt;br/&gt;That doesn&amp;#39;t mean that the full node count (or the reachable full node&lt;br/&gt;count even) are meaningless numbers. They are an indication of how hard it&lt;br/&gt;is (for various reasons) to run/use a full node, and thus provide feedback.&lt;br/&gt;But they are not the goal, just an indicator.&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter&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/20150806/5c5defdf/attachment-0001.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20150806/5c5defdf/attachment-0001.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T17:45:32&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs8gss6hx8mp00afs3jcfsv6xkqs55fyqdyw9ca3g24r3duru502cszypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvvzh0ev</id>
    
      <title type="html">📅 Original date posted:2015-08-06 📝 Original message:On Aug ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs8gss6hx8mp00afs3jcfsv6xkqs55fyqdyw9ca3g24r3duru502cszypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvvzh0ev" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsw2ml68vq0nhctq3mjt5pfkfe077r409nsg3acqjfe27ldyfc9vmqcs90e8&#39;&gt;nevent1q…90e8&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2015-08-06&lt;br/&gt;📝 Original message:On Aug 6, 2015 9:42 PM, &amp;#34;Gavin Andresen via bitcoin-dev&amp;#34; &amp;lt;&lt;br/&gt;bitcoin-dev at lists.linuxfoundation.org&amp;gt; wrote:&lt;br/&gt;2. The &amp;#34;market minimum fee&amp;#34; should be determined by the market. It should&lt;br/&gt;not be up to us to decide &amp;#34;when is a good time.&amp;#34;&lt;br/&gt;&lt;br/&gt;I partially agree. The community should decide what risks it is willing to&lt;br/&gt;take, and set limits accordingly. Let the market decide how that space is&lt;br/&gt;best used.&lt;br/&gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; Would you agree that blocksize increase proposals should have such a&lt;br/&gt;&amp;gt;&amp;gt; criterion/test?&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Although I&amp;#39;ve been very clear with my criterion, no, I don&amp;#39;t think all&lt;br/&gt;blocksize increase proposals should have to justify &amp;#34;why this size&amp;#34; or &amp;#34;why&lt;br/&gt;this rate of increase.&amp;#34; Part of my frustration with this whole debate is&lt;br/&gt;we&amp;#39;re talking about a sanity-check upper-limit; as long as it doesn&amp;#39;t open&lt;br/&gt;up some terrible new DoS possibility I don&amp;#39;t think it really matters much&lt;br/&gt;what the exact number is.&lt;br/&gt;&lt;br/&gt;It is only a DoS protection limit if you want to rely on trusting miners. I&lt;br/&gt;prefer a system where I don&amp;#39;t have to do that.&lt;br/&gt;&lt;br/&gt;But I agree the numbers don&amp;#39;t matter much, for a different reason: the&lt;br/&gt;market will fill up whatever space is available, and we&amp;#39;ll have the same&lt;br/&gt;discussion when the new limit doesn&amp;#39;t seem enough anymore.&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter&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/20150806/7e4c45e8/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20150806/7e4c45e8/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T17:44:54&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsxtfenaq7pykjsh5v4s4wjfkpwfsdyva87967r78gvyr68w964mfqzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvd4ppj2</id>
    
      <title type="html">📅 Original date posted:2015-08-06 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsxtfenaq7pykjsh5v4s4wjfkpwfsdyva87967r78gvyr68w964mfqzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvd4ppj2" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsq3rv06l88pe9sp2nqusfshlvj7xkmacrlpvhf4vud0pgpn572mngt4ffzr&#39;&gt;nevent1q…ffzr&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2015-08-06&lt;br/&gt;📝 Original message:On Thu, Aug 6, 2015 at 4:21 PM, Gavin Andresen &amp;lt;gavinandresen at gmail.com&amp;gt;&lt;br/&gt;wrote:&lt;br/&gt;&lt;br/&gt;&amp;gt; On Thu, Aug 6, 2015 at 10:06 AM, Pieter Wuille &amp;lt;pieter.wuille at gmail.com&amp;gt;&lt;br/&gt;&amp;gt; wrote:&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; But you seem to consider that a bad thing. Maybe saying that you&amp;#39;re&lt;br/&gt;&amp;gt;&amp;gt; claiming that this equals Bitcoin failing is an exaggeration, but you do&lt;br/&gt;&amp;gt;&amp;gt; believe that evolving towards an ecosystem where there is competition for&lt;br/&gt;&amp;gt;&amp;gt; block space is a bad thing, right?&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; No, competition for block space is good.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;So if we would have 8 MB blocks, and there is a sudden influx of users (or&lt;br/&gt;settlement systems, who serve much more users) who want to pay high fees&lt;br/&gt;(let&amp;#39;s say 20 transactions per second) making the block chain inaccessible&lt;br/&gt;for low fee transactions, and unreliable for medium fee transactions (for&lt;br/&gt;any value of low, medium, and high), would you be ok with that? If so, why&lt;br/&gt;is 8 MB good but 1 MB not? To me, they&amp;#39;re a small constant factor that does&lt;br/&gt;not fundamentally improve the scale of the system. I dislike the outlook of&lt;br/&gt;&amp;#34;being forever locked at the same scale&amp;#34; while technology evolves, so my&lt;br/&gt;proposal tries to address that part. It intentionally does not try to&lt;br/&gt;improve a small factor, because I don&amp;#39;t think it is valuable.&lt;br/&gt;&lt;br/&gt;What is bad is artificially limiting or centrally controlling the supply of&lt;br/&gt;&amp;gt; that space.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;It&amp;#39;s exactly as centrally limited as the finite supply of BTC - by&lt;br/&gt;consensus. You and I may agree that a finite supply is a good thing, and&lt;br/&gt;may disagree about whether a consensus rule about the block size is a good&lt;br/&gt;idea (and if so, at what level), but it&amp;#39;s a choice we make as a community&lt;br/&gt;about the rules of the system we want to use.&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter&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/20150806/d69b8f33/attachment-0001.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20150806/d69b8f33/attachment-0001.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T17:44:52&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqspjc02flc357y2pclntgejwejgxwnu8dk7u49tl9u26yr2d32zr2qzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvdajgye</id>
    
      <title type="html">📅 Original date posted:2015-08-06 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqspjc02flc357y2pclntgejwejgxwnu8dk7u49tl9u26yr2d32zr2qzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvdajgye" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs9cw9kv68xfmc4hayt5kttlgdvzndqnqd3za8lcgvcjp3alqndp6qzmqqym&#39;&gt;nevent1q…qqym&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2015-08-06&lt;br/&gt;📝 Original message:On Thu, Aug 6, 2015 at 3:40 PM, Gavin Andresen 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 Wed, Aug 5, 2015 at 9:26 PM, Jorge Timón &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; This is a much more reasonable position. I wish this had been starting&lt;br/&gt;&amp;gt;&amp;gt; point of this discussion instead of &amp;#34;the block size limit must be&lt;br/&gt;&amp;gt;&amp;gt; increased as soon as possible or bitcoin will fail&amp;#34;.&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; It REALLY doesn&amp;#39;t help the debate when you say patently false statements&lt;br/&gt;&amp;gt; like that.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; My first blog post on this issue is here:&lt;br/&gt;&amp;gt;   &lt;a href=&#34;http://gavinandresen.ninja/why-increasing-the-max-block-size-is-urgent&#34;&gt;http://gavinandresen.ninja/why-increasing-the-max-block-size-is-urgent&lt;/a&gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; ... and I NEVER say &amp;#34;Bitcoin will fail&amp;#34;.  I say:&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;#34;If the number of transactions waiting gets large enough, the end result&lt;br/&gt;&amp;gt; will be an over-saturated network, busy doing nothing productive. I don’t&lt;br/&gt;&amp;gt; think that is likely– it is more likely people just stop using Bitcoin&lt;br/&gt;&amp;gt; because transaction confirmation becomes increasingly unreliable.&amp;#34;&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;But you seem to consider that a bad thing. Maybe saying that you&amp;#39;re&lt;br/&gt;claiming that this equals Bitcoin failing is an exaggeration, but you do&lt;br/&gt;believe that evolving towards an ecosystem where there is competition for&lt;br/&gt;block space is a bad thing, right?&lt;br/&gt;&lt;br/&gt;I don&amp;#39;t agree that &amp;#34;Not everyone is able to use the block chain for every&lt;br/&gt;use case&amp;#34; is the same thing as &amp;#34;People stop using Bitcoin&amp;#34;. People are&lt;br/&gt;already not using it for every use case.&lt;br/&gt;&lt;br/&gt;Here is what my proposed BIP says: &amp;#34;No hard forking change that relaxes the&lt;br/&gt;block size limit can be guaranteed to provide enough space for every&lt;br/&gt;possible demand - or even any particular demand - unless strong&lt;br/&gt;centralization of the mining ecosystem is expected. Because of that, the&lt;br/&gt;development of a fee market and the evolution towards an ecosystem that is&lt;br/&gt;able to cope with block space competition should be considered healthy.&amp;#34;&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter&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/20150806/aff56c38/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20150806/aff56c38/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T17:44:52&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsp3ruz4pwzuwn46cgvhvhznyz562q3zqct96j0lhjmgnh3k8qtscqzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvvuh3wm</id>
    
      <title type="html">📅 Original date posted:2015-08-04 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsp3ruz4pwzuwn46cgvhvhznyz562q3zqct96j0lhjmgnh3k8qtscqzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvvuh3wm" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsrmvfcnjlk3qa6rsncucr2pn9fwwpnleefealvvuy6ccl8wr5rvyq6k507m&#39;&gt;nevent1q…507m&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2015-08-04&lt;br/&gt;📝 Original message:On Tue, Aug 4, 2015 at 3:12 PM, Gavin Andresen &amp;lt;gavinandresen at gmail.com&amp;gt;&lt;br/&gt;wrote:&lt;br/&gt;&lt;br/&gt;&amp;gt; On Tue, Aug 4, 2015 at 7:27 AM, Pieter Wuille 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; I would say that things already demonstrately got terrible. The mining&lt;br/&gt;&amp;gt;&amp;gt; landscape is very centralized, with apparently a majority depending on&lt;br/&gt;&amp;gt;&amp;gt; agreements to trust each other&amp;#39;s announced blocks without validation.&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; And that is a problem... why?&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;If miners need to form alliances of trusting each other&amp;#39;s blocks without&lt;br/&gt;validation to overcome the inefficiencies of slow block propagation, I&lt;br/&gt;think we have a system that is in direct conflict with the word&lt;br/&gt;&amp;#34;permissionless&amp;#34; that you use later.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;gt; As Bitcoin grows, pieces of the ecosystem will specialize. Satoshi&amp;#39;s&lt;br/&gt;&amp;gt; original code did everything: hashing, block assembly, wallet, consensus,&lt;br/&gt;&amp;gt; network. That is changing, and that is OK.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;Specialization is perfectly fine.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; I believe that if the above would have happened overnight, people would&lt;br/&gt;&amp;gt; have cried wolf. But somehow it happened slow enough, and &amp;#34;things kept&lt;br/&gt;&amp;gt; working&amp;#34;.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; I don&amp;#39;t think that this is a good criterion. Bitcoin can &amp;#34;work&amp;#34; with&lt;br/&gt;&amp;gt; gigabyte blocks today, if everyone uses the same few blockchain validation&lt;br/&gt;&amp;gt; services, the same few online wallets, and mining is done by a cartel that&lt;br/&gt;&amp;gt; only allows joining after signing a contract so they can sue you if you&lt;br/&gt;&amp;gt; create an invalid block. Do you think people will then agree that &amp;#34;things&lt;br/&gt;&amp;gt; got demonstratebly worse&amp;#34;?&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Don&amp;#39;t turn Bitcoin into something uninteresting, please.&lt;br/&gt;&amp;gt;&lt;br/&gt;Why is what you, personally, find interesting relevant?&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;I find it interesting to build a system that has potential to bring about&lt;br/&gt;innovation.&lt;br/&gt;&lt;br/&gt;I understand you want to build an extremely decentralized system, where&lt;br/&gt;&amp;gt; everybody participating trusts nothing except the genesis block hash.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;That is not true, I&amp;#39;m sorry if that is the impression I gave.&lt;br/&gt;&lt;br/&gt;I see centralization and scalability as a trade-off, and for better or for&lt;br/&gt;worse, the block chain only offers one trade-off. I want to see technology&lt;br/&gt;built on top that introduces lower levels of trust than typical fully&lt;br/&gt;centralized systems, while offering increased convenience, speed,&lt;br/&gt;reliability, and scale. I just don&amp;#39;t think that all of that can happen on&lt;br/&gt;the lowest layer without hurting everything built on top. We need different&lt;br/&gt;trade-offs, and the blockchain is just one, but a very fundamental one.&lt;br/&gt;&lt;br/&gt;I think it is more interesting to build a system that works for hundreds of&lt;br/&gt;&amp;gt; millions of people, with no central point of control and the opportunity&lt;br/&gt;&amp;gt; for ANYBODY to participate at any level. Permission-less innovation is what&lt;br/&gt;&amp;gt; I find interesting.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;That sounds amazing, but do you think that Bitcoin, as it exists today, can&lt;br/&gt;scale to hundreds of millions of users, while retaining any glimpse of&lt;br/&gt;permission-lessness and decentralization? I think we need low-trust&lt;br/&gt;off-chain systems and other innovations to make that happen.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;gt; And I think the current &amp;#34;demonstrably terrible&amp;#34; Bitcoin system is still&lt;br/&gt;&amp;gt; INCREDIBLY interesting.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;I&amp;#39;m happy for you, then.&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter&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/20150804/1128ad92/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20150804/1128ad92/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T17:44:47&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsdpwspf7xch5tplwlrj62hud44y2fygt758qv9tkfluplf2cgtyzqzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dv3asrd0</id>
    
      <title type="html">📅 Original date posted:2015-07-30 📝 Original message:Hello ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsdpwspf7xch5tplwlrj62hud44y2fygt758qv9tkfluplf2cgtyzqzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dv3asrd0" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs22zya3ny59q9ssfvkrtd7zmfgk6dp963akn2fr9szvgj2rnmqdzg54jfhq&#39;&gt;nevent1q…jfhq&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2015-07-30&lt;br/&gt;📝 Original message:Hello all,&lt;br/&gt;&lt;br/&gt;here is a proposal for long-term scalability I&amp;#39;ve been working on:&lt;br/&gt;&lt;a href=&#34;https://gist.github.com/sipa/c65665fc360ca7a176a6&#34;&gt;https://gist.github.com/sipa/c65665fc360ca7a176a6&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Some things are not included yet, such as a testnet whose size runs ahead&lt;br/&gt;of the main chain, and the inclusion of Gavin&amp;#39;s more accurate sigop&lt;br/&gt;checking after the hard fork.&lt;br/&gt;&lt;br/&gt;Comments?&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter&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/20150730/99e5886b/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20150730/99e5886b/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T17:44:14&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsv8rgnk5n3ex42ufk5zcak90r7ll6rnljxajdmc6wvzhzt4756mhczypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvvheavd</id>
    
      <title type="html">📅 Original date posted:2015-07-30 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsv8rgnk5n3ex42ufk5zcak90r7ll6rnljxajdmc6wvzhzt4756mhczypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvvheavd" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsqv6sexhkaa2fp0qe06zj2g68y0cfu43mlde6ty4zw6up273h9lhcxafq6j&#39;&gt;nevent1q…fq6j&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2015-07-30&lt;br/&gt;📝 Original message:On Thu, Jul 30, 2015 at 4:05 PM, Gavin Andresen &amp;lt;gavinandresen at gmail.com&amp;gt;&lt;br/&gt;wrote:&lt;br/&gt;&lt;br/&gt;&amp;gt; On Thu, Jul 30, 2015 at 8:50 AM, Pieter Wuille &amp;lt;pieter.wuille at gmail.com&amp;gt;&lt;br/&gt;&amp;gt; wrote:&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; Let&amp;#39;s scale the block size gradually over time, according to&lt;br/&gt;&amp;gt;&amp;gt; technological growth.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Yes, lets do that-- that is EXACTLY what BIP101 intends to do.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;Oh come on. Immediately increasing to 8 MB while miners currently don&amp;#39;t&lt;br/&gt;even seem to bother validating blocks?&lt;br/&gt;&lt;br/&gt;With the added belt&amp;amp;suspenders reality check of miners, who won&amp;#39;t produce&lt;br/&gt;&amp;gt; blocks too big for whatever technology they&amp;#39;re using.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;Or a future where miners are even more centralized than now, which avoids&lt;br/&gt;all problems relay and propagation speed has?&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;gt; So what do you think the scalability road map should look like? Should we&lt;br/&gt;&amp;gt; wait to hard fork until Blockstream Elements is ready for deploying on the&lt;br/&gt;&amp;gt; main network, and then have One Grand Hardfork that introduces all the&lt;br/&gt;&amp;gt; scalability work you guys have been working on (like Segregated Witness and&lt;br/&gt;&amp;gt; Lightning)?&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;Lightning does not require a hard fork, except that larger blocks would be&lt;br/&gt;very useful for its bulk settlements.&lt;br/&gt;&lt;br/&gt;Or is the plan to avoid controversy by people voluntarily moving their&lt;br/&gt;&amp;gt; bitcoin to a sidechain where all this scaling-up innovation happens?&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;As I have said a dozen times now: sidechains are a mechanism for&lt;br/&gt;experimentation. Maybe through them we will discover technology that allows&lt;br/&gt;better on-chain and/or off-chain scalability, but people moving their coins&lt;br/&gt;to a sidechain has far worse security tradeoffs than just increasing the&lt;br/&gt;Bitcoin blockchain.&lt;br/&gt;&lt;br/&gt;No plan for how to scale up is the worst of all possible worlds, and the&lt;br/&gt;&amp;gt; lack of a direction or plan(s) is my main objection to the current status&lt;br/&gt;&amp;gt; quo.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;Ok, here is a proposal I was working on. I&amp;#39;d like to have had more time,&lt;br/&gt;but I agree a direction/plan are needed to align expectations for the&lt;br/&gt;future:  &lt;a href=&#34;https://gist.github.com/sipa/c65665fc360ca7a176a6&#34;&gt;https://gist.github.com/sipa/c65665fc360ca7a176a6&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;gt; And any plan that requires inventing brand-new technology is going to be&lt;br/&gt;&amp;gt; riskier than scaling up what we already have and understand, which is why I&lt;br/&gt;&amp;gt; think it is worthwhile to scale up what we have IN ADDITION TO working on&lt;br/&gt;&amp;gt; great projects like Segregated Witness and Lightning.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;And I think that the reason that so many people care about this suddenly is&lt;br/&gt;because of a fear that somehow the current block size &amp;#34;won&amp;#39;t be enough&amp;#34;.&lt;br/&gt;Bitcoin has utility at any block size, and perhaps more at some values for&lt;br/&gt;it than others. Talking about &amp;#34;not enough&amp;#34; is acknowledging that we really&lt;br/&gt;believe the block size should scale to demand, while it is the other way&lt;br/&gt;around.&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter&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/20150730/db66bf01/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20150730/db66bf01/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T17:43:48&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsgpn4evk0xvrj3y4us5vzuvds8ztcwchya4rhzkpwcqcg8zrwhskczypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvp4vvvj</id>
    
      <title type="html">📅 Original date posted:2015-07-30 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsgpn4evk0xvrj3y4us5vzuvds8ztcwchya4rhzkpwcqcg8zrwhskczypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvp4vvvj" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs0zqnzvx9v3z9xkdjs0ph5z3xlkz828n2m2axumc6820tktht72fc6mjqky&#39;&gt;nevent1q…jqky&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2015-07-30&lt;br/&gt;📝 Original message:On Thu, Jul 30, 2015 at 2:29 PM, Gavin 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;&lt;br/&gt;&amp;gt; &amp;gt; On Jul 30, 2015, at 4:21 AM, Eric Lombrozo wrote:&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; and a number of the people most intimately familiar with the inner&lt;br/&gt;&amp;gt; workings of the system (some of whom are in this thread) think that given&lt;br/&gt;&amp;gt; what we now today about the Bitcoin network, increasing block size&lt;br/&gt;&amp;gt; externalizes costs in dangerous ways. Remember that total cost includes not&lt;br/&gt;&amp;gt; just equipment costs but also things like block propagation latency and&lt;br/&gt;&amp;gt; specifically identified security risks. Some of these security risks were&lt;br/&gt;&amp;gt; only appreciated relatively recently and were completely unknown in 2009.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; I would like (and have been asking) those people to take the time to&lt;br/&gt;&amp;gt; quantify those costs and write up those risks in a careful way.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; I believe the costs and risks of 8MB blocks are minimal, and that the&lt;br/&gt;&amp;gt; benefits of supporting more transaction FAR outweigh those costs and risks,&lt;br/&gt;&amp;gt; but it is hard to have a rational conversation about that when even simple&lt;br/&gt;&amp;gt; questions like &amp;#39;what is s reasonable cost to run a full node&amp;#39; are met with&lt;br/&gt;&amp;gt; silence.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;I think the benefit of an 8 MB over a 1 MB in terms of utility is marginal&lt;br/&gt;(even assuming miners actually produce 8 MB blocks). There are very few use&lt;br/&gt;cases that Bitcoin on-chain can support with a small extra factor. I think&lt;br/&gt;the market will grow to adapt to whatever is offered anyway.&lt;br/&gt;&lt;br/&gt;Bitcoin&amp;#39;s advantage over other systems does not lie in scalability.&lt;br/&gt;Well-designed centralized systems can trivially compete with Bitcoin&amp;#39;s&lt;br/&gt;on-chain transactions in terms of cost, speed, reliability, convenience,&lt;br/&gt;and scale. Its power lies in transparency, lack of need for trust in&lt;br/&gt;network peers, miners, and those who influence or control the system.&lt;br/&gt;Wanting to increase the scale of the system is in conflict with all of&lt;br/&gt;those. Attempting to buy time with a fast increase is not wanting to face&lt;br/&gt;that reality, and treating the system as something whose scale trumps all&lt;br/&gt;other concerns. A long term scalability plan should aim on decreasing the&lt;br/&gt;need for trust required in off-chain systems, rather than increasing the&lt;br/&gt;need for trust in Bitcoin.&lt;br/&gt;&lt;br/&gt;Making controversial changes to the network, and not wanting to face the&lt;br/&gt;reality that block chain space is a finite resource - whether enforced by a&lt;br/&gt;consensus rule or by miner&amp;#39;s capacity to process transactions - is a huge&lt;br/&gt;treat to Bitcoin&amp;#39;s usefulness in the long term.&lt;br/&gt;&lt;br/&gt;I think the risks of trying to make a controversial change to the network&lt;br/&gt;FAR outweighs the benefits of a small constant factor that &amp;#34;kicks the can&lt;br/&gt;down the road&amp;#34;.&lt;br/&gt;&lt;br/&gt;Let&amp;#39;s scale the block size gradually over time, according to technological&lt;br/&gt;growth.&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter&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/20150730/fcd26023/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20150730/fcd26023/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T17:43:48&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsgggnd8j4k7nahy82ysm8zm973n5l3x5p0clg8nmqtk6a7ee6gqxczypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvqetn90</id>
    
      <title type="html">📅 Original date posted:2015-07-28 📝 Original ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsgggnd8j4k7nahy82ysm8zm973n5l3x5p0clg8nmqtk6a7ee6gqxczypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvqetn90" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsg4fftn738u6uvj5zd5twerdqf27yp9h7429yrs6vhk9lgmd36emgxl3sz9&#39;&gt;nevent1q…3sz9&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2015-07-28&lt;br/&gt;📝 Original message:-----BEGIN PGP SIGNED MESSAGE-----&lt;br/&gt;Hash: SHA1&lt;br/&gt;&lt;br/&gt;Hello all,&lt;br/&gt;&lt;br/&gt;I&amp;#39;d like to disclose a vulnerability I discovered in September 2014,&lt;br/&gt;which became unexploitable when BIP66&amp;#39;s 95% threshold was reached&lt;br/&gt;earlier this month.&lt;br/&gt;&lt;br/&gt;## Short description:&lt;br/&gt;&lt;br/&gt;A specially-crafted transaction could have forked the blockchain&lt;br/&gt;between nodes:&lt;br/&gt;* using OpenSSL on a 32-bit systems and on 64-bit Windows systems&lt;br/&gt;* using OpenSSL on non-Windows 64-bit systems (Linux, OSX, ...)&lt;br/&gt;* using some non-OpenSSL codebases for parsing signatures&lt;br/&gt;&lt;br/&gt;## Upgrade instructions:&lt;br/&gt;&lt;br/&gt;None. Transactions that could trigger this problem have become invalid&lt;br/&gt;on the network since BIP66&amp;#39;s deployment of version 3 blocks reached 95%&lt;br/&gt;on July 4th, 2015.&lt;br/&gt;&lt;br/&gt;## Long description:&lt;br/&gt;&lt;br/&gt;The problem is related to the signature encoding rules.&lt;br/&gt;&lt;br/&gt;Bitcoin&amp;#39;s signatures are ASN.1 BER encoded. BER is a complex standard&lt;br/&gt;that allows many different encodings for the same data. Since Bitcoin&lt;br/&gt;Core 0.8, a standardness rule has been in effect that only allowed&lt;br/&gt;subset of encodings (DER) for relay and mining, even though any BER&lt;br/&gt;remained valid in the blockchain - at least in theory.&lt;br/&gt;&lt;br/&gt;In practice, BER has many weird edge cases, and I have not found a&lt;br/&gt;single cryptographic codebase that can parse all of them correctly.&lt;br/&gt;This includes OpenSSL, Crypto&#43;&#43;, BouncyCastle, btcec, and our own&lt;br/&gt;libsecp256k1 library.&lt;br/&gt;&lt;br/&gt;This on itself would not be a problem, as full nodes on the network&lt;br/&gt;currently use OpenSSL. However, while researching what was needed to&lt;br/&gt;make libsecp256k1 compatible with it, I discovered that OpenSSL is even&lt;br/&gt;inconsistent with itself across different platforms.&lt;br/&gt;&lt;br/&gt;One of the features of BER is the ability for internal structures to&lt;br/&gt;have a length descriptor whose size itself is up to 126 bytes (see&lt;br/&gt;X.690-0207 8.1.3.5). A 1 terabyte data structure would for example use&lt;br/&gt;a 5-byte length descriptor. However, there is no requirement to use the&lt;br/&gt;shortest possible descriptor, so even a 70-byte ECDSA signature could&lt;br/&gt;use a 5-byte length descriptor and be valid. Unfortunately, OpenSSL&lt;br/&gt;supports length descriptors only as long as their size is at most that&lt;br/&gt;of a C &amp;#39;long int&amp;#39;, a type whose size depends on the platform (Windows&lt;br/&gt;and 32-bit Linux/OSX have a 4-byte long int, 64-bit Linux/OSX have an&lt;br/&gt;8-byte long int). See&lt;br/&gt;&lt;a href=&#34;https://github.com/openssl/openssl/blob/bfa34f551c2d38e826deb44a269cb0f720f9f63b/crypto/asn1/asn1_lib.c#L178&#34;&gt;https://github.com/openssl/openssl/blob/bfa34f551c2d38e826deb44a269cb0f720f9f63b/crypto/asn1/asn1_lib.c#L178&lt;/a&gt;.&lt;br/&gt;Some non-OpenSSL based signature validation&lt;br/&gt;systems don&amp;#39;t support such length descriptors at all, resulting in an&lt;br/&gt;extra forking risk on top for them if used for blockchain validation.&lt;br/&gt;&lt;br/&gt;This effectively means that a block chain containing a transaction with&lt;br/&gt;a valid signature using such a 5-byte length descriptor would be&lt;br/&gt;accepted by some systems and not by others, resulting in a fork if it&lt;br/&gt;were mined into a block.&lt;br/&gt;&lt;br/&gt;## Timeline:&lt;br/&gt;&lt;br/&gt;* 2013-Feb-19: Bitcoin Core 0.8.0 was released, which made non-DER&lt;br/&gt;signatures non-standard. No release since then would relay or mine&lt;br/&gt;transactions that could trigger the vulnerability. However, such a&lt;br/&gt;transaction was still valid inside blocks.&lt;br/&gt;&lt;br/&gt;* 2014-Feb-10: I proposed BIP62 to deal with transaction malleability.&lt;br/&gt;The BIP62 draft includes a rule that would make version 2 transactions&lt;br/&gt;with non-DER signatures invalid.&lt;br/&gt;&lt;br/&gt;* 2014-Jul-18: In order to make Bitcoin&amp;#39;s signature encoding rules not&lt;br/&gt;depend on OpenSSL&amp;#39;s specific parser, I modified the BIP62 proposal to&lt;br/&gt;have its strict DER signatures requirement also apply to version 1&lt;br/&gt;transactions. No non-DER signatures were being mined into blocks&lt;br/&gt;anymore at the time, so this was assumed to not have any impact. See&lt;br/&gt;&lt;a href=&#34;https://github.com/bitcoin/bips/pull/90&#34;&gt;https://github.com/bitcoin/bips/pull/90&lt;/a&gt; and&lt;br/&gt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/2014-July/006299.html&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/2014-July/006299.html&lt;/a&gt;.&lt;br/&gt;Unknown at the time, but if deployed this would have solved the&lt;br/&gt;vulnerability.&lt;br/&gt;&lt;br/&gt;* 2014-Sep-01: While analysing OpenSSL&amp;#39;s source code for BER parsing, I&lt;br/&gt;discovered the architecture dependency listed above and the associated&lt;br/&gt;vulnerability. The best means to fix it at the time was by getting&lt;br/&gt;BIP62 adopted.&lt;br/&gt;&lt;br/&gt;* 2014-Sep-07, 2014-Oct-17, 2014-Oct-26, 2014-Dec-06, 2015-Jan-09:&lt;br/&gt;Several proposed changes to BIP62. See&lt;br/&gt;&lt;a href=&#34;https://github.com/bitcoin/bips/pulls?utf8=%E2%9C%93&amp;amp;q=is%3Apr&#43;is%3Aclosed&#43;bip62&#34;&gt;https://github.com/bitcoin/bips/pulls?utf8=%E2%9C%93&amp;amp;q=is%3Apr&#43;is%3Aclosed&#43;bip62&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;* 2015-Jan-10: OpenSSL releases versions 1.0.0p and 1.0.1k, with a fix&lt;br/&gt;for CVE-2014-8275. The fix introduced a restriction on ECDSA signatures&lt;br/&gt;to be strict DER, which would have solved all problems related to&lt;br/&gt;signature encodings, except Bitcoin&amp;#39;s consensus-critical nature&lt;br/&gt;requires bug-for-bug compatibility between nodes. Worse, it seemed that&lt;br/&gt;there was again a small (1%) number of blocks being created with&lt;br/&gt;non-DER signatures in it, resulting in actual forks. The only immediate&lt;br/&gt;solution that did not introduce more risk for forks was parsing and&lt;br/&gt;re-encoding signatures using OpenSSL itself before verification to&lt;br/&gt;bypass the restriction, making the problem persist. See&lt;br/&gt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/2015-January/007097.html&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/2015-January/007097.html&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;* 2015-Jan-21: The new attention to signature encoding might have&lt;br/&gt;revealed the vulnerability, and the presence of miners not enforcing&lt;br/&gt;strict DER might have made the vulnerability actually exploitable.&lt;br/&gt;BIP62 was still a moving target, so we wanted a faster means to solve&lt;br/&gt;this. Therefore, a new BIP was proposed with just the strict DER&lt;br/&gt;requirement, numbered BIP66. This would both allow non-OpenSSL&lt;br/&gt;verification, and solve the vulnerability, without needing to fix the&lt;br/&gt;less urgent malleability problem that BIP62 wanted to address. See&lt;br/&gt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/2015-January/007156.html&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/2015-January/007156.html&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;* 2015-Feb-17: Bitcoin Core 0.10.0 was released, with support for&lt;br/&gt;BIP66. See&lt;br/&gt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/2015-February/007480.html&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/2015-February/007480.html&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;* 2015-Jul-04: BIP66&amp;#39;s 95% threshold was reached, enabling a consensus&lt;br/&gt;rule for strict DER signatures in the blockchain. This solved the&lt;br/&gt;vulnerability, and opens the door to using non-OpenSSL signature&lt;br/&gt;verification in the near future.&lt;br/&gt;&lt;br/&gt;- -- &lt;br/&gt;Pieter Wuille&lt;br/&gt;&lt;br/&gt;-----BEGIN PGP SIGNATURE-----&lt;br/&gt;Version: GnuPG v1&lt;br/&gt;&lt;br/&gt;iQGcBAEBAgAGBQJVt5FGAAoJEFeJbS/48LZX3ccMAJdPrpa8ggcYEyy8naqc7ewL&lt;br/&gt;1Mwv24p/6Q8&#43;T7Q6EWmgoApY1jljF&#43;AzgSpfaf310QZf9yuC/JC&#43;&#43;AmHfUaa9UQG&lt;br/&gt;Mq1&#43;duX64uDWIeNKTfuCwZvU0ataARZKmFUpp60UF&#43;VtiJyLo9tpHTVajM0lv9Oq&lt;br/&gt;OX40qHVC/iBogRLNREC1ggWH1JPMTbEch50YX1bgNi3gE5gtMggSQ2OXrGCCtrvR&lt;br/&gt;7cVFlIyOhlLtvSAnxzmHyY8Iol&#43;qVhIZi4mCmDgOoQKVaiYm1cODQ&#43;nrMHx02DKC&lt;br/&gt;Wqstwb/mET/vbCX4qxSNQ2B&#43;mQk0WO/gSrWiQkBLi/AfLBh/8A/kL1RpKxVQzoaP&lt;br/&gt;O165LbXye42w8Js/sE/zT6d4CIbYaW0GpF6m4agwDYgPLomhdk/elPRojKYsEab&#43;&lt;br/&gt;oFWPVagqKI9e/pjFBxqfIv3iyx1hHB6YIaX5TfFRVjsWzag5Qi2ssQYOQymyjg4J&lt;br/&gt;UHNR/xW0PMPAOg5KS/uFja4OWxstHhTW9G&#43;rslEK9g==&lt;br/&gt;=7F3K&lt;br/&gt;-----END PGP SIGNATURE-----
    </content>
    <updated>2023-06-07T17:43:39&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqstkdunh436zy9uqgphchzgjelf2ag4sz68np8sy9a4m5rucynyj7qzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dv367s4t</id>
    
      <title type="html">📅 Original date posted:2015-07-22 📝 Original message:Hello ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqstkdunh436zy9uqgphchzgjelf2ag4sz68np8sy9a4m5rucynyj7qzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dv367s4t" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsftgmd0rtt7x85hrk7wd0sgn6ue93s460skyvc6qygx4mhl7zwahsz75cxq&#39;&gt;nevent1q…5cxq&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2015-07-22&lt;br/&gt;📝 Original message:Hello all,&lt;br/&gt;&lt;br/&gt;I&amp;#39;d like to talk a bit about my view on the relation between the Bitcoin&lt;br/&gt;Core project, and the consensus rules of Bitcoin.&lt;br/&gt;&lt;br/&gt;I believe it is the responsibility of the maintainers/developers of Bitcoin&lt;br/&gt;Core to create software which helps guarantee the security and operation of&lt;br/&gt;the Bitcoin network.&lt;br/&gt;&lt;br/&gt;In addition to normal software maintenance, bug fixes and performance&lt;br/&gt;improvements, this includes DoS protection mechanism deemed necessary to&lt;br/&gt;keep the network operational. Sometimes, such (per-node configurable)&lt;br/&gt;policies have had economic impact, for example the dust rule.&lt;br/&gt;&lt;br/&gt;This also includes participating in discussions about consensus changes,&lt;br/&gt;but not the responsibility to decide on them - only to implement them when&lt;br/&gt;agreed upon. It would be irresponsible and dangerous to the network and&lt;br/&gt;thus the users of the software to risk forks, or to take a leading role in&lt;br/&gt;pushing dramatic changes. Bitcoin Core developers obviously have the&lt;br/&gt;ability to make any changes to the codebase or its releases, but it is&lt;br/&gt;still up to the community to choose to run that code.&lt;br/&gt;&lt;br/&gt;Some people have called the prospect of limited block space and the&lt;br/&gt;development of a fee market a change in policy compared to the past. I&lt;br/&gt;respectfully disagree with that. Bitcoin Core is not running the Bitcoin&lt;br/&gt;economy, and its developers have no authority to set its rules. Change in&lt;br/&gt;economics is always happening, and should be expected. Worse, intervening&lt;br/&gt;in consensus changes would make the ecosystem more dependent on the group&lt;br/&gt;taking that decision, not less.&lt;br/&gt;&lt;br/&gt;So to point out what I consider obvious: if Bitcoin requires central&lt;br/&gt;control over its rules by a group of developers, it is completely&lt;br/&gt;uninteresting to me. Consensus changes should be done using consensus, and&lt;br/&gt;the default in case of controversy is no change.&lt;br/&gt;&lt;br/&gt;===&lt;br/&gt;&lt;br/&gt;My personal opinion is that we - as a community - should indeed let a fee&lt;br/&gt;market develop, and rather sooner than later, and that &amp;#34;kicking the can&lt;br/&gt;down the road&amp;#34; is an incredibly dangerous precedent: if we are willing to&lt;br/&gt;go through the risk of a hard fork because of a fear of change of&lt;br/&gt;economics, then I believe that community is not ready to deal with change&lt;br/&gt;at all. And some change is inevitable, at any block size. Again, this does&lt;br/&gt;not mean the block size needs to be fixed forever, but its intent should be&lt;br/&gt;growing with the evolution of technology, not a panic reaction because a&lt;br/&gt;fear of change.&lt;br/&gt;&lt;br/&gt;But I am not in any position to force this view. I only hope that people&lt;br/&gt;don&amp;#39;t think a fear of economic change is reason to give up consensus.&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter&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/20150722/0a8c7519/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20150722/0a8c7519/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T17:42:48&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs9qjrdhs5j6wtjhyg8slf0xt0qhrlhhcvpq4mk99r0kp9ghwlm9hgzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dv47tayy</id>
    
      <title type="html">📅 Original date posted:2015-07-15 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs9qjrdhs5j6wtjhyg8slf0xt0qhrlhhcvpq4mk99r0kp9ghwlm9hgzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dv47tayy" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsr2g2akt8qqz6575c95cd3mrkj3tjpg8eq5njaxrzgf2ysepz7knse08vln&#39;&gt;nevent1q…8vln&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2015-07-15&lt;br/&gt;📝 Original message:On Wed, Jul 15, 2015 at 12:06 PM, Me 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; Have you talk to them? If not, how can you be sure they don’t run large&lt;br/&gt;&amp;gt; number of standard nodes and actually make the network stronger? Personally&lt;br/&gt;&amp;gt; I never bring claims like this if I just assume. A lot of people in the&lt;br/&gt;&amp;gt; community really trust you, do you realize you potentially hurt them for no&lt;br/&gt;&amp;gt; reason?&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;Running normal full nodes only provides extra service to nodes&lt;br/&gt;synchronizing and lightweight clients. It does not &amp;#34;make the network&lt;br/&gt;stronger&amp;#34; in the sense that it does not reduce the trust the participants&lt;br/&gt;need to have in each other.&lt;br/&gt;&lt;br/&gt;It&amp;#39;s such a misconception that running many nodes somehow helps. It&amp;#39;s much&lt;br/&gt;better that you run and control one or a few full nodes which you actually&lt;br/&gt;use to validate your transactions, than to run 1000s of nodes in third&lt;br/&gt;party datacenters. The latter only looks more decentralized.&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter&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/20150715/1b2a1d26/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20150715/1b2a1d26/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T17:42:21&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs2xqqnjgl65jxpdfpe4khtddf9lvj24xt2tarpdapq0pwnh0ps77qzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvp9wfhl</id>
    
      <title type="html">📅 Original date posted:2015-06-26 📝 Original message:I am ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs2xqqnjgl65jxpdfpe4khtddf9lvj24xt2tarpdapq0pwnh0ps77qzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvp9wfhl" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsfl6c322ch6607lfexuvt48324x9zqrc3q6endp3flfmvz8fjppes4hch4w&#39;&gt;nevent1q…ch4w&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2015-06-26&lt;br/&gt;📝 Original message:I am not saying that economic change is what we want. Only that it is&lt;br/&gt;inevitable, independent of whether larger blocks happen or not.&lt;br/&gt;&lt;br/&gt;I am saying that acting because of fear of economic change is a bad reason.&lt;br/&gt;The reason for increase should be because of the higher utility. We need it&lt;br/&gt;at some point, but there should be no rush.&lt;br/&gt;&lt;br/&gt;I do understand that we want to avoid a *sudden* change in economic policy,&lt;br/&gt;but I&amp;#39;m generally not too worried. Either fees increase and they get paid,&lt;br/&gt;and we&amp;#39;re good. But more likely is that some uses just move off-chain&lt;br/&gt;because the block chain does not offer what they need. That&amp;#39;s sad, but it&lt;br/&gt;is inevitable at any size: some uses fit, some don&amp;#39;t.&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter&lt;br/&gt; On Jun 26, 2015 7:57 PM, &amp;#34;Jeff Garzik&amp;#34; &amp;lt;jgarzik at gmail.com&amp;gt; wrote:&lt;br/&gt;&lt;br/&gt;&amp;gt; It is not &amp;#34;fear&amp;#34; of fee pressure.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; 1) Blocks are mostly not-full on average.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; 2) Absent long blocks and stress tests, there is little fee pressure above&lt;br/&gt;&amp;gt; the anti-spam relay fee metric, because of #1.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; 3) As such, inducing fee pressure is a delta, a change from years-long&lt;br/&gt;&amp;gt; bitcoin economic policy.  Each time we approach the soft limit, Bitcoin&lt;br/&gt;&amp;gt; Core increases the soft limit to prevent &amp;#34;full&amp;#34; blocks.  Mike Hearn et. al.&lt;br/&gt;&amp;gt; lobbies miners to upgrade.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; (note - this is not an endorsement of these actions - it is a neutral&lt;br/&gt;&amp;gt; observation)&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; 4) Inaction leads to consistent fee pressure as the months tick on and&lt;br/&gt;&amp;gt; system volume grows; thus, inaction leads to economic policy change.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; 5) Economic policy change leads to market and software disruption.  The&lt;br/&gt;&amp;gt; market and software - notably wallets - is not prepared for this.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; 6) If you want to change economic policy, that&amp;#39;s fine.  But be honest and&lt;br/&gt;&amp;gt; admit you are arguing for a change, a delta from current market&lt;br/&gt;&amp;gt; expectations and behavior.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; 7) It is critical to first deal with what _is_, not what you wish the&lt;br/&gt;&amp;gt; world to be.  You want a fee market to develop.  There is nothing wrong&lt;br/&gt;&amp;gt; with that desire.  It remains a delta from where we are today, and that is&lt;br/&gt;&amp;gt; critically relevant in a $3b&#43; market.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; On Fri, Jun 26, 2015 at 7:09 AM, Pieter Wuille &amp;lt;pieter.wuille at gmail.com&amp;gt;&lt;br/&gt;&amp;gt; wrote:&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; Hello all,&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; here I&amp;#39;m going to try to address a part of the block size debate which&lt;br/&gt;&amp;gt;&amp;gt; has been troubling me since the beginning: the reason why people seem to&lt;br/&gt;&amp;gt;&amp;gt; want it.&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; People say that larger blocks are necessary. In the long term, I agree -&lt;br/&gt;&amp;gt;&amp;gt; in the sense that systems that do not evolve tend to be replaced by other&lt;br/&gt;&amp;gt;&amp;gt; systems. This evolution can come in terms of layers on top of Bitcoin&amp;#39;s&lt;br/&gt;&amp;gt;&amp;gt; blockchain, in terms of the technology underlying various aspects of the&lt;br/&gt;&amp;gt;&amp;gt; blockchain itself, and also in the scale that this technology supports.&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; I do, however, fundamentally disagree that a fear for a change in&lt;br/&gt;&amp;gt;&amp;gt; economics should be considered to necessitate larger blocks. If it is, and&lt;br/&gt;&amp;gt;&amp;gt; there is consensus that we should adapt to it, then there is effectively no&lt;br/&gt;&amp;gt;&amp;gt; limit going forward. This is similar to how Congress voting to increase the&lt;br/&gt;&amp;gt;&amp;gt; copyright term retroactively from time to time is really no different from&lt;br/&gt;&amp;gt;&amp;gt; having an infinite copyright term in the first place. This scares me.&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; Here is how Gavin summarizes the future without increasing block sizes in&lt;br/&gt;&amp;gt;&amp;gt; PR 6341:&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; 1. Transaction confirmation times for transactions with a given fee&lt;br/&gt;&amp;gt;&amp;gt; will rise; very-low-fee transactions will fail to get confirmed at all.&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; 2. Average transaction fee paid will rise&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; 3. People or applications unwilling or unable to pay the rising fees&lt;br/&gt;&amp;gt;&amp;gt; will stop submitting transactions&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; 4. People and businesses will shelve plans to use Bitcoin, stunting&lt;br/&gt;&amp;gt;&amp;gt; growth and adoption&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; Is it fair to summarize this as &amp;#34;Some use cases won&amp;#39;t fit any more,&lt;br/&gt;&amp;gt;&amp;gt; people will decide to no longer use the blockchain for these purposes, and&lt;br/&gt;&amp;gt;&amp;gt; the fees will adapt.&amp;#34;?&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; I think that is already happening, and will happen at any scale. I&lt;br/&gt;&amp;gt;&amp;gt; believe demand for payments in general is nearly infinite, and only a small&lt;br/&gt;&amp;gt;&amp;gt; portion of it will eventually fit on a block chain (independent of whether&lt;br/&gt;&amp;gt;&amp;gt; its size is limited by consensus rules or economic or technological means).&lt;br/&gt;&amp;gt;&amp;gt; Furthermore, systems that compete with Bitcoin in this space already offer&lt;br/&gt;&amp;gt;&amp;gt; orders of magnitude more capacity than we can reasonably achieve with any&lt;br/&gt;&amp;gt;&amp;gt; blockchain technology at this point.&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; I don&amp;#39;t know what subset of use cases Bitcoin will cater to in the long&lt;br/&gt;&amp;gt;&amp;gt; term. They have already changed - you see way less betting transactions&lt;br/&gt;&amp;gt;&amp;gt; these days than a few years ago for example - and they will keep changing,&lt;br/&gt;&amp;gt;&amp;gt; independent of what effective block sizes we end up with. I don&amp;#39;t think we&lt;br/&gt;&amp;gt;&amp;gt; should be afraid of this change or try to stop it.&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; If you look at graphs of block sizes over time (for example,&lt;br/&gt;&amp;gt;&amp;gt; &lt;a href=&#34;http://rusty.ozlabs.org/?p=498&#34;&gt;http://rusty.ozlabs.org/?p=498&lt;/a&gt;), it seems to me that there is very&lt;br/&gt;&amp;gt;&amp;gt; little &amp;#34;organic&amp;#34; growth, and a lot of sudden changes (which could&lt;br/&gt;&amp;gt;&amp;gt; correspond to changing defaults in miner software, introduction of popular&lt;br/&gt;&amp;gt;&amp;gt; sites/services, changes in the economy). I think these can be seen as the&lt;br/&gt;&amp;gt;&amp;gt; economy changing to full up the available space, and I believe these will&lt;br/&gt;&amp;gt;&amp;gt; keep happening at any size effectively available.&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; None of this is a reason why the size can&amp;#39;t increase. However, in my&lt;br/&gt;&amp;gt;&amp;gt; opinion, we should do it because we believe it increases utility and&lt;br/&gt;&amp;gt;&amp;gt; understand the risks; not because we&amp;#39;re afraid of what might happen if we&lt;br/&gt;&amp;gt;&amp;gt; don&amp;#39;t hurry up. And from that point of view, it seems silly to make a huge&lt;br/&gt;&amp;gt;&amp;gt; increase at once...&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; --&lt;br/&gt;&amp;gt;&amp;gt; Pieter&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;&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/20150626/f54b9275/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20150626/f54b9275/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T17:40:29&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs2z9d7jx675zypyya9gksrnr85clx20e0t797g5ru4xyl4c7c0yxszypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dv7wxtff</id>
    
      <title type="html">📅 Original date posted:2015-06-26 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs2z9d7jx675zypyya9gksrnr85clx20e0t797g5ru4xyl4c7c0yxszypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dv7wxtff" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsp8tkta8k8wxfupa9qeajpgpupwv8rkzmf5xy9hu08hxpugmky7lq83sexx&#39;&gt;nevent1q…sexx&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2015-06-26&lt;br/&gt;📝 Original message:On Fri, Jun 26, 2015 at 5:22 PM, Milly Bitcoin &amp;lt;milly at bitcoins.info&amp;gt; wrote:&lt;br/&gt;&lt;br/&gt;&amp;gt; &amp;gt;None of this is a reason why the size can&amp;#39;t increase. However, in my&lt;br/&gt;&amp;gt; opinion, we should do it because we believe it increases utility and&lt;br/&gt;&amp;gt; understand the risks; not because we&amp;#39;re afraid of what might happen if we&lt;br/&gt;&amp;gt; don&amp;#39;t hurry up. And from that point of view, it seems silly to make a huge&lt;br/&gt;&amp;gt; increase at once...&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Yes.  I think people/businesses want some kind of assurance that there is&lt;br/&gt;&amp;gt; a path to get things done when needed rather than immediate changes.  Since&lt;br/&gt;&amp;gt; there is currently no clear path/schedule to get any changes accomplished&lt;br/&gt;&amp;gt; they gets anxious.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;I think you just proved my point by saying &amp;#34;when needed&amp;#34;.&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter&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/20150626/cc04ed8a/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20150626/cc04ed8a/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T17:40:27&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsdnhxmy4elw0akm87a5e7r7u7spggfx36qw969e9yqjf9kg4lsayqzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvstvgxh</id>
    
      <title type="html">📅 Original date posted:2015-06-26 📝 Original message:Hello ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsdnhxmy4elw0akm87a5e7r7u7spggfx36qw969e9yqjf9kg4lsayqzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvstvgxh" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsxh9acwuhyc0q0t6m4zarqvw6zzuvh504he2e05wckyeqg9t2h83qsulcyd&#39;&gt;nevent1q…lcyd&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2015-06-26&lt;br/&gt;📝 Original message:Hello all,&lt;br/&gt;&lt;br/&gt;here I&amp;#39;m going to try to address a part of the block size debate which has&lt;br/&gt;been troubling me since the beginning: the reason why people seem to want&lt;br/&gt;it.&lt;br/&gt;&lt;br/&gt;People say that larger blocks are necessary. In the long term, I agree - in&lt;br/&gt;the sense that systems that do not evolve tend to be replaced by other&lt;br/&gt;systems. This evolution can come in terms of layers on top of Bitcoin&amp;#39;s&lt;br/&gt;blockchain, in terms of the technology underlying various aspects of the&lt;br/&gt;blockchain itself, and also in the scale that this technology supports.&lt;br/&gt;&lt;br/&gt;I do, however, fundamentally disagree that a fear for a change in economics&lt;br/&gt;should be considered to necessitate larger blocks. If it is, and there is&lt;br/&gt;consensus that we should adapt to it, then there is effectively no limit&lt;br/&gt;going forward. This is similar to how Congress voting to increase the&lt;br/&gt;copyright term retroactively from time to time is really no different from&lt;br/&gt;having an infinite copyright term in the first place. This scares me.&lt;br/&gt;&lt;br/&gt;Here is how Gavin summarizes the future without increasing block sizes in&lt;br/&gt;PR 6341:&lt;br/&gt;&lt;br/&gt;&amp;gt; 1. Transaction confirmation times for transactions with a given fee will&lt;br/&gt;rise; very-low-fee transactions will fail to get confirmed at all.&lt;br/&gt;&amp;gt; 2. Average transaction fee paid will rise&lt;br/&gt;&amp;gt; 3. People or applications unwilling or unable to pay the rising fees will&lt;br/&gt;stop submitting transactions&lt;br/&gt;&amp;gt; 4. People and businesses will shelve plans to use Bitcoin, stunting&lt;br/&gt;growth and adoption&lt;br/&gt;&lt;br/&gt;Is it fair to summarize this as &amp;#34;Some use cases won&amp;#39;t fit any more, people&lt;br/&gt;will decide to no longer use the blockchain for these purposes, and the&lt;br/&gt;fees will adapt.&amp;#34;?&lt;br/&gt;&lt;br/&gt;I think that is already happening, and will happen at any scale. I believe&lt;br/&gt;demand for payments in general is nearly infinite, and only a small portion&lt;br/&gt;of it will eventually fit on a block chain (independent of whether its size&lt;br/&gt;is limited by consensus rules or economic or technological means).&lt;br/&gt;Furthermore, systems that compete with Bitcoin in this space already offer&lt;br/&gt;orders of magnitude more capacity than we can reasonably achieve with any&lt;br/&gt;blockchain technology at this point.&lt;br/&gt;&lt;br/&gt;I don&amp;#39;t know what subset of use cases Bitcoin will cater to in the long&lt;br/&gt;term. They have already changed - you see way less betting transactions&lt;br/&gt;these days than a few years ago for example - and they will keep changing,&lt;br/&gt;independent of what effective block sizes we end up with. I don&amp;#39;t think we&lt;br/&gt;should be afraid of this change or try to stop it.&lt;br/&gt;&lt;br/&gt;If you look at graphs of block sizes over time (for example,&lt;br/&gt;&lt;a href=&#34;http://rusty.ozlabs.org/?p=498&#34;&gt;http://rusty.ozlabs.org/?p=498&lt;/a&gt;), it seems to me that there is very little&lt;br/&gt;&amp;#34;organic&amp;#34; growth, and a lot of sudden changes (which could correspond to&lt;br/&gt;changing defaults in miner software, introduction of popular&lt;br/&gt;sites/services, changes in the economy). I think these can be seen as the&lt;br/&gt;economy changing to full up the available space, and I believe these will&lt;br/&gt;keep happening at any size effectively available.&lt;br/&gt;&lt;br/&gt;None of this is a reason why the size can&amp;#39;t increase. However, in my&lt;br/&gt;opinion, we should do it because we believe it increases utility and&lt;br/&gt;understand the risks; not because we&amp;#39;re afraid of what might happen if we&lt;br/&gt;don&amp;#39;t hurry up. And from that point of view, it seems silly to make a huge&lt;br/&gt;increase at once...&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter&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/20150626/69d0ee83/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20150626/69d0ee83/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T17:40:26&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs8evtezg897pg76kjzs7snknw0vkcj22yzwq7y8urns2dtjtph4mqzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvy72cyk</id>
    
      <title type="html">📅 Original date posted:2015-06-23 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs8evtezg897pg76kjzs7snknw0vkcj22yzwq7y8urns2dtjtph4mqzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvy72cyk" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsvqlk4nc30kure5nyqn5p4d8kwusya5e87rgqhs8whwhtc4dvsl4ga9mmcd&#39;&gt;nevent1q…mmcd&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2015-06-23&lt;br/&gt;📝 Original message:On Tue, Jun 23, 2015 at 10:12 PM, Gavin Andresen &amp;lt;gavinandresen at gmail.com&amp;gt;&lt;br/&gt;wrote:&lt;br/&gt;&lt;br/&gt;&amp;gt; On Tue, Jun 23, 2015 at 3:28 PM, Peter Todd &amp;lt;pete at petertodd.org&amp;gt; wrote:&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; Wladimir noted that &amp;#39;The original presented intention of block size&lt;br/&gt;&amp;gt;&amp;gt; increase was a one-time &amp;#34;scaling&amp;#34; to grant time for more decentralizing&lt;br/&gt;&amp;gt;&amp;gt; solutions to develop&amp;#39;&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; Comments?&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Consensus is that this process is too painful to go through once a year.&lt;br/&gt;&amp;gt; I agree.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;If you believe we will need to go through this process once a year, we are&lt;br/&gt;not talking about a one-time scaling to grant time for more decentralizing&lt;br/&gt;solutions. It means you think we should keep scaling. I don&amp;#39;t disagree&lt;br/&gt;there - as long as we&amp;#39;re talking about scaling as availability of&lt;br/&gt;bandwidth, storage and processing power increase, there is no reason&lt;br/&gt;Bitcoin&amp;#39;s blockchain can&amp;#39;t grow proportionally.&lt;br/&gt;&lt;br/&gt;However, an initial bump 8 MB and the growth rate afterwards seem more like&lt;br/&gt;a no-effectively-limit-ever to me.&lt;br/&gt;&lt;br/&gt;I fear that the wish of not wanting to deal with - admittedly - a very hard&lt;br/&gt;problem, resulted here in throwing away several protections we currently&lt;br/&gt;have. And yes, I know you believe 8 MB won&amp;#39;t be created immediately. I&lt;br/&gt;truly, honestly, do not think so either. But I prefer a system where I&lt;br/&gt;don&amp;#39;t need to rely on anyone&amp;#39;s guesses for the future.&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter&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/20150623/a2560dc8/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20150623/a2560dc8/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T17:39:45&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsypv9mh9tclj3sf52qsl0flpun707pc5qg5sc3q0mpp8mxv5c9c8czypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dv8j48jz</id>
    
      <title type="html">📅 Original date posted:2015-06-18 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsypv9mh9tclj3sf52qsl0flpun707pc5qg5sc3q0mpp8mxv5c9c8czypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dv8j48jz" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsvauyvsft4ztsx7xuq3yc64afeng07vss9kkm3n0kr2h0mp3scqas3g37ff&#39;&gt;nevent1q…37ff&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2015-06-18&lt;br/&gt;📝 Original message:On Thu, Jun 18, 2015 at 3:31 PM, Mike Hearn &amp;lt;mike at plan99.net&amp;gt; wrote:&lt;br/&gt;&lt;br/&gt;&amp;gt; OK, let&amp;#39;s agree to unpack the two things.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; The first issue is how are decisions made in Bitcoin Core? I struggle to&lt;br/&gt;&amp;gt; explain this to others because I don&amp;#39;t understand it myself. Is it a vote&lt;br/&gt;&amp;gt; of people with commit access? Is it a 100% agreement of &amp;#34;core developers&amp;#34;&lt;br/&gt;&amp;gt; and if so, who are these people? Is it &amp;#34;whoever reverts the change last&amp;#34;?&lt;br/&gt;&amp;gt; Could I write down in a document a precise description of how decisions are&lt;br/&gt;&amp;gt; made? No, and that&amp;#39;s been a fairly frustrating problem for a long time.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; But let&amp;#39;s leave it to one side for a moment.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Let&amp;#39;s focus on the other issue:   what happens if the Bitcoin Core&lt;br/&gt;&amp;gt; decision making process goes wrong?&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;Why do you keep talking about Bitcoin Core maintainers? The means for doing&lt;br/&gt;a hard fork is convincing the network to run modified code, whether that is&lt;br/&gt;a new version of Bitcoin Core or a fork of it, or something else entirely.&lt;br/&gt;&lt;br/&gt;If I see consensus about a proposed network change, I will be in favor of&lt;br/&gt;implementing it in Bitcoin Core. But we&amp;#39;re not at that point. There is no&lt;br/&gt;network change proposed with consensus. There is not even a patch to be&lt;br/&gt;discussed. There are working proposals, and people are talking about them.&lt;br/&gt;This is good.&lt;br/&gt;&lt;br/&gt;I think maintainers of particular software should not be, and are not those&lt;br/&gt;who decide the network&amp;#39;s rules. People running the code are. Of course&lt;br/&gt;maintainers have a large influence, but so do other people - like you.&lt;br/&gt;&lt;br/&gt;&amp;gt; This was a reference to a post by Gregory on Reddit where he said if&lt;br/&gt;Gavin were to do a pull request for the block size change and then merge&lt;br/&gt;it, he would revert it. And I fully believe he would do so!&lt;br/&gt;&lt;br/&gt;I believe so too, and I would do the same. Because I believe implementing a&lt;br/&gt;consensus rule change without having very good expectations that the&lt;br/&gt;network will adopt it, is reckless from the point of view of maintainers,&lt;br/&gt;for all reasons I have mentioned before.&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter&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/20150618/d8c40122/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20150618/d8c40122/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T17:38:41&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqste57ktr4vheu86zahu8qk7pyqm9t0uuaxpy7mvlwqwaxgstq4x3czypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dve2zmfq</id>
    
      <title type="html">📅 Original date posted:2015-06-18 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqste57ktr4vheu86zahu8qk7pyqm9t0uuaxpy7mvlwqwaxgstq4x3czypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dve2zmfq" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsfgl30dw0e744sv5rcwxnrkpdplh3ktkp9vsuk3tjy69ykdpc8ars9unkyn&#39;&gt;nevent1q…nkyn&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2015-06-18&lt;br/&gt;📝 Original message:On Thu, Jun 18, 2015 at 1:14 PM, Wladimir J. van der Laan &amp;lt;laanwj at gmail.com&amp;gt;&lt;br/&gt;wrote:&lt;br/&gt;&lt;br/&gt;&amp;gt; Like in any open source project there is lots of decision making ability&lt;br/&gt;&amp;gt; for code changes. I&amp;#39;d say look at the changelog for e.g. 0.11&lt;br/&gt;&amp;gt; &lt;a href=&#34;https://github.com/bitcoin/bitcoin/blob/0.11/doc/release-notes.md#0110-change-log&#34;&gt;https://github.com/bitcoin/bitcoin/blob/0.11/doc/release-notes.md#0110-change-log&lt;/a&gt;,&lt;br/&gt;&amp;gt; or follow pull requests for a while, to see how many decisions about&lt;br/&gt;&amp;gt; changes are made from day to day. No, I&amp;#39;m not sitting on my hands, and so&lt;br/&gt;&amp;gt; is none of the other contributors that you&amp;#39;d like to get rid of.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;The analogy goes further even. Even though I disagree with some of the&lt;br/&gt;changes you&amp;#39;re making, I respect Mike&amp;#39;s (and anyone&amp;#39;s) right to make a fork&lt;br/&gt;of Bitcoin Core. That&amp;#39;s how open source works: if people disagree with&lt;br/&gt;changes made or not made, they can maintain their own version. However:&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;gt; Consensus changes are *much* more difficult, on the other hand. Even&lt;br/&gt;&amp;gt; relatively straightforward softforks come with a long discussion process&lt;br/&gt;&amp;gt; (see BIP62, BIP66). A hardfork is hard to do at the best of times (everyone&lt;br/&gt;&amp;gt; needs to upgrade their software!), and simply not possible if almost the&lt;br/&gt;&amp;gt; entire technical community disagrees with you.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;Consensus changes - in particular hardforks - are not about making a change&lt;br/&gt;to the software. You are effectively asking users of the system to migrate&lt;br/&gt;to a new system. Perhaps one which is a philosophical successor to the old&lt;br/&gt;one, but a different system, with new rules that are incompatible with the&lt;br/&gt;old one.&lt;br/&gt;&lt;br/&gt;I believe this is something that can only be done if there is no&lt;br/&gt;controversy about the change, for different reasons:&lt;br/&gt;&lt;br/&gt;* Risk: no matter how you determine the switchover date, there is no way of&lt;br/&gt;knowing when (and whether at all) everyone changes their full nodes (and&lt;br/&gt;perhaps other software), and even very high hash power votes cannot prevent&lt;br/&gt;an actual fork from appearing afterwards. At best, people lose the&lt;br/&gt;guarantee that their confirmations are meaningful (because at some point it&lt;br/&gt;becomes clear that the other side will get adopted, and they need to&lt;br/&gt;switch). At worst, a fork persists, and two partitions appear, in each of&lt;br/&gt;which you can spend every pre-existing coin. This defeats the primary&lt;br/&gt;purpose Bitcoin was designed for: double spend protection.&lt;br/&gt;&lt;br/&gt;* Philosophy: Bitcoin is not a democracy. The full node security model is&lt;br/&gt;designed to minimize trust in other parties in the system. This works by&lt;br/&gt;validating as much as possible according to the consensus rules. In&lt;br/&gt;particular, there is no &amp;#34;majority vote&amp;#34; that can override things (contrary&lt;br/&gt;to what some people think, it is not &amp;#34;longest chain wins, and a majority of&lt;br/&gt;miners decide&amp;#34;; even a majority of miners cannot steal your coins or&lt;br/&gt;produce more than the allowed subsidy, unless they convince others to&lt;br/&gt;change their software). Changing the rules should be possible if there is&lt;br/&gt;wide consensus, but nobody should feel forced to change their code against&lt;br/&gt;their will.&lt;br/&gt;&lt;br/&gt;* Governance: being able to push for a controversial change to the system&lt;br/&gt;sets an incredibly dangerous precedent about who is in charge of the&lt;br/&gt;system&amp;#39;s rules. What if next time it is a change demanded by parties with&lt;br/&gt;less good intentions (and yes, I believe people in this discussions all&lt;br/&gt;have good intentions to improve the system in a way they think is most&lt;br/&gt;useful)? I can promise you that I will say anything in mail to this list if&lt;br/&gt;someone points a gun at me, and I think you should make the same assumption&lt;br/&gt;about other people here. By avoiding controversial changes, you avoid&lt;br/&gt;external and potentially invisible manipulation.&lt;br/&gt;&lt;br/&gt;Of course, sometimes changes to the consensus rules may be wanted. The&lt;br/&gt;presence of a bug is a good reason, and widespread agreement about one of&lt;br/&gt;the system&amp;#39;s limitation is too. As I said before, I think technological&lt;br/&gt;growth in network bandwidth, processing power, and storage, are a good&lt;br/&gt;reason why the system should be able to scale proportionally. I think there&lt;br/&gt;are good technical and economic reasons why we should be cautious about&lt;br/&gt;this, but the primary requirement is consensus, and aligning people&amp;#39;s&lt;br/&gt;expectation about what they can expect from network&amp;#39;s evolution.&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter&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/20150618/306edc65/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20150618/306edc65/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T17:38:28&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs2ljtkfzv3wskumz2zrrezc2y5drhvlvgzvsmy26zsgsfwj0uhh4qzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dv36h37x</id>
    
      <title type="html">📅 Original date posted:2015-06-12 📝 Original message:Hello ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs2ljtkfzv3wskumz2zrrezc2y5drhvlvgzvsmy26zsgsfwj0uhh4qzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dv36h37x" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsxraxqff0eekd8nzvt0hfurn0clmcdwnp4343xjnevgm0pfpu04dqra628r&#39;&gt;nevent1q…628r&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2015-06-12&lt;br/&gt;📝 Original message:Hello all,&lt;br/&gt;&lt;br/&gt;I&amp;#39;ve created a simulator for Bitcoin mining which goes a bit further than&lt;br/&gt;the one Gavin used for his blog post a while ago. The main difference is&lt;br/&gt;support for links with different latency and bandwidth, because of the&lt;br/&gt;clustered configuration described below. In addition, it supports different&lt;br/&gt;block sizes, takes fees into account, does difficulty adjustments, and&lt;br/&gt;takes processing and mining delays into account. It also simulates longer&lt;br/&gt;periods of time, and averages the result of many simulations running in&lt;br/&gt;parallel until the variance on the result is low enough.&lt;br/&gt;&lt;br/&gt;The code is here: &lt;a href=&#34;https://github.com/sipa/bitcoin-net-simul&#34;&gt;https://github.com/sipa/bitcoin-net-simul&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;The configuration used in the code right now simulates two groups of miners&lt;br/&gt;(one 80%=25%&#43;25%&#43;30%, one 20%=5%&#43;5%&#43;5%&#43;5%), which are well-connected&lt;br/&gt;internally, but are only connected to each other through a slow 2 Mbit/s&lt;br/&gt;link.&lt;br/&gt;&lt;br/&gt;Here are some results.&lt;br/&gt;&lt;br/&gt;This shows how the group of smaller miners loses around 8% of their&lt;br/&gt;relative income (if they create larger blocks, their loss percentage goes&lt;br/&gt;up slightly further):&lt;br/&gt;&lt;br/&gt;Configuration:&lt;br/&gt;  * Miner group 0: 80.000000% hashrate, blocksize 20000000.000000&lt;br/&gt;  * Miner group 1: 20.000000% hashrate, blocksize 1000000.000000&lt;br/&gt;  * Expected average block size: 16200000.000000&lt;br/&gt;  * Average fee per block: 0.250000&lt;br/&gt;  * Fee per byte: 0.0000000154&lt;br/&gt;Result:&lt;br/&gt;  * Miner group 0: 81.648985% income (factor 1.020612 with hashrate)&lt;br/&gt;  * Miner group 1: 18.351015% income (factor 0.917551 with hashrate)&lt;br/&gt;&lt;br/&gt;When fees become more important however, and half of a block&amp;#39;s income is&lt;br/&gt;due to fees, the effect becomes even stronger (a 15% loss), and the optimal&lt;br/&gt;way to compete for small miners is to create larger blocks as well (smaller&lt;br/&gt;blocks for them result in even less income):&lt;br/&gt;&lt;br/&gt;Configuration:&lt;br/&gt;  * Miner group 0: 80.000000% hashrate, blocksize 20000000.000000&lt;br/&gt;  * Miner group 1: 20.000000% hashrate, blocksize 20000000.000000&lt;br/&gt;  * Expected average block size: 20000000.000000&lt;br/&gt;  * Average fee per block: 25.000000&lt;br/&gt;  * Fee per byte: 0.0000012500&lt;br/&gt;Result:&lt;br/&gt;  * Miner group 0: 83.063545% income (factor 1.038294 with hashrate)&lt;br/&gt;  * Miner group 1: 16.936455% income (factor 0.846823 with hashrate)&lt;br/&gt;&lt;br/&gt;The simulator is not perfect. It doesn&amp;#39;t take into account that multiple&lt;br/&gt;blocks/relays can compete for the same bandwidth, or that nodes cannot&lt;br/&gt;process multiple blocks at once.&lt;br/&gt;&lt;br/&gt;The numbers used may be unrealistic, and I don&amp;#39;t mean this as a prediction&lt;br/&gt;for real-world events. However, it does very clearly show the effects of&lt;br/&gt;larger blocks on centralization pressure of the system. Note that this also&lt;br/&gt;does not make any assumption of destructive behavior on the network - just&lt;br/&gt;simple profit maximalization.&lt;br/&gt;&lt;br/&gt;Lastly, the code may be buggy; I only did some small sanity tests with&lt;br/&gt;simple networks.&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter&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/20150612/e8c2f530/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20150612/e8c2f530/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T17:37:23&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs2vaf28rnj9yvhuapczee9tdgfqmeggmwnl2g6pk9r08t6a47zn5czypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvnpe2yw</id>
    
      <title type="html">📅 Original date posted:2015-06-12 📝 Original message:If ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs2vaf28rnj9yvhuapczee9tdgfqmeggmwnl2g6pk9r08t6a47zn5czypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvnpe2yw" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs2p69gpja2ufll555f6w39af28glvlp6u2ll3ln0gevhntqf3yndggznees&#39;&gt;nevent1q…nees&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2015-06-12&lt;br/&gt;📝 Original message:If there is a benefit in producing larger more-fee blocks if they propagate&lt;br/&gt;slowly, then there is also a benefit in including high-fee transactions&lt;br/&gt;that are unlikely to propagate quickly through optimized relay protocols&lt;br/&gt;(for example: very recent transactions, or out-of-band receoved ones). This&lt;br/&gt;effect is likely an order of magnitude less important still, but the effect&lt;br/&gt;is likely the same.&lt;br/&gt;On Jun 12, 2015 8:31 PM, &amp;#34;Peter Todd&amp;#34; &amp;lt;pete at petertodd.org&amp;gt; wrote:&lt;br/&gt;&lt;br/&gt;&amp;gt; On Fri, Jun 12, 2015 at 01:21:46PM -0400, Gavin Andresen wrote:&lt;br/&gt;&amp;gt; &amp;gt; Nice work, Pieter. You&amp;#39;re right that my simulation assumed bandwidth for&lt;br/&gt;&amp;gt; &amp;gt; &amp;#39;block&amp;#39; messages isn&amp;#39;t the bottleneck.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; But doesn&amp;#39;t Matt&amp;#39;s fast relay network (and the work I believe we&amp;#39;re both&lt;br/&gt;&amp;gt; &amp;gt; planning on doing in the near future to further optimize block&lt;br/&gt;&amp;gt; propagation)&lt;br/&gt;&amp;gt; &amp;gt; make both of our simulations irrelevant in the long-run?&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Then simulate first the relay network assuming 100% of txs use it, and&lt;br/&gt;&amp;gt; secondly, assuming 100%-x use it.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; For instance, is it in miners&amp;#39; advantage in some cases to sabotage the&lt;br/&gt;&amp;gt; relay network? The analyse say yes, so lets simulate that. Equally even&lt;br/&gt;&amp;gt; the relay network isn&amp;#39;t instant.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; --&lt;br/&gt;&amp;gt; &amp;#39;peter&amp;#39;[:-1]@petertodd.org&lt;br/&gt;&amp;gt; 0000000000000000127ab1d576dc851f374424f1269c4700ccaba2c42d97e778&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/20150612/ba1f8c93/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20150612/ba1f8c93/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T17:37:23&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsyuylhyku6vu9zumldtd3nhzkrsgvm2vm8a527v9xwk0kz5echu0czypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dv0j7gql</id>
    
      <title type="html">📅 Original date posted:2015-06-16 📝 Original message:You ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsyuylhyku6vu9zumldtd3nhzkrsgvm2vm8a527v9xwk0kz5echu0czypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dv0j7gql" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsrsf7hv78xtlueqlaukm9ry4gwcx25q8pk4yaezzsywlh43adkjtcnwhwms&#39;&gt;nevent1q…hwms&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2015-06-16&lt;br/&gt;📝 Original message:You can&amp;#39;t avoid sharing the token, and you can&amp;#39;t avoid sharing the private&lt;br/&gt;keys used for signing either. If they are single use, you don&amp;#39;t lose&lt;br/&gt;anything by sharing them.&lt;br/&gt;&lt;br/&gt;Also you are not creating a real transaction. Why does the OP_RETURN&lt;br/&gt;limitation matter?&lt;br/&gt;On Jun 16, 2015 9:22 PM, &amp;#34;Kalle Rosenbaum&amp;#34; &amp;lt;kalle at rosenbaum.se&amp;gt; wrote:&lt;br/&gt;&lt;br/&gt;&amp;gt; Thank you for your comments Pieter! Please find my answers below.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; 2015-06-16 16:31 GMT&#43;02:00 Pieter Wuille &amp;lt;pieter.wuille at gmail.com&amp;gt;:&lt;br/&gt;&amp;gt; &amp;gt; On Mon, Jun 15, 2015 at 1:59 PM, Kalle Rosenbaum &amp;lt;kalle at rosenbaum.se&amp;gt;&lt;br/&gt;&amp;gt; wrote:&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; 2015-06-15 12:00 GMT&#43;02:00 Pieter Wuille &amp;lt;pieter.wuille at gmail.com&amp;gt;:&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; I&amp;#39;m not sure if we will be able to support PoP with CoinJoin. Maybe&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; someone with more insight into CoinJoin have some input?&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; Not really. The problem is that you assume a transaction corresponds to a&lt;br/&gt;&amp;gt; &amp;gt; single payment. This is true for simple wallet use cases, but not&lt;br/&gt;&amp;gt; compatible&lt;br/&gt;&amp;gt; &amp;gt; with CoinJoin, or with systems that for example would want to combine&lt;br/&gt;&amp;gt; &amp;gt; multiple payments in a single transaction.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Yes, you are right. It&amp;#39;s not compatible with CoinJoin and the likes.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; 48 bits seems low to me, but it does indeed solve the problem. Why not&lt;br/&gt;&amp;gt; 128&lt;br/&gt;&amp;gt; &amp;gt; or 256 bits?&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; The nonce is limited because of the OP_RETURN output being limited to&lt;br/&gt;&amp;gt; 40 bytes of data: 2 bytes version, 32 bytes txid, 6 bytes nonce.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; Why does anyone care who paid? This is like walking into a coffeshop,&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; noticing I don&amp;#39;t have money with me, let me friend pay for me, and&lt;br/&gt;&amp;gt; then&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; have&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; the shop insist that I can&amp;#39;t drink it because I&amp;#39;m not the buyer.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; If you pay as you use the service (ie pay for coffee upfront), there&amp;#39;s&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; no need for PoP. Please see the Motivation section. But you are right&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; that you must have the wallet(s) that paid at hand when you issue a&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; PoP.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; Track payments, don&amp;#39;t try to assign identities to payers.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; Please elaborate, I don&amp;#39;t understand what you mean here.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; I think that is a mistake. You should not assume that the wallet who held&lt;br/&gt;&amp;gt; &amp;gt; the coins is the payer/buyer. That&amp;#39;s what I said earlier; you&amp;#39;re&lt;br/&gt;&amp;gt; implicitly&lt;br/&gt;&amp;gt; &amp;gt; creating an identity (the one who holds these keys) based on the&lt;br/&gt;&amp;gt; &amp;gt; transaction. This seems fundamentally wrong to me, and not necessary. The&lt;br/&gt;&amp;gt; &amp;gt; receiver should not care who paid or how, he should care what was payed&lt;br/&gt;&amp;gt; for.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; You are saying that it&amp;#39;s a problem that the wallet used to pay, must&lt;br/&gt;&amp;gt; also be used to issue the PoP? That may very well be a problem in some&lt;br/&gt;&amp;gt; cases. People using PoP should of course be aware of it&amp;#39;s limitations&lt;br/&gt;&amp;gt; and act accordingly, i.e. don&amp;#39;t pay for concert tickets for a friend&lt;br/&gt;&amp;gt; and expect your friend to be able to enter the arena with her wallet.&lt;br/&gt;&amp;gt; As Tom Harding noted, it is possible to transfer keys to your friend&amp;#39;s&lt;br/&gt;&amp;gt; wallet, but that might not be desirable if those keys are also used&lt;br/&gt;&amp;gt; for other payments. Also that would weaken the security of an HD&lt;br/&gt;&amp;gt; wallet, since a chain code along with a private key would reveal all&lt;br/&gt;&amp;gt; keys in that tree. Another solution is that your friend forwards the&lt;br/&gt;&amp;gt; PoP request to your wallet, through twitter or SMS, and you send the&lt;br/&gt;&amp;gt; PoP for her. Maybe that forwarding mechanism can be built into wallets&lt;br/&gt;&amp;gt; and automated so that the wallet automatically suggests to sign the&lt;br/&gt;&amp;gt; PoP for your friend. This is probably something to investigate&lt;br/&gt;&amp;gt; further, but not within the scope of this BIP.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Of course the simplest solution would be to send money to your friend&lt;br/&gt;&amp;gt; first so that she can pay for the ticket from her own wallet, but&lt;br/&gt;&amp;gt; that&amp;#39;s not always feasible.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; The easiest solution to this IMHO would be an extension to the payment&lt;br/&gt;&amp;gt; &amp;gt; protocol that gives you (or your wallet) a token in return for paying,&lt;br/&gt;&amp;gt; and&lt;br/&gt;&amp;gt; &amp;gt; that knowledge of that token is used to gain access to the services you&lt;br/&gt;&amp;gt; &amp;gt; provide.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; That token would then be reusable. Someone stealing it would be able&lt;br/&gt;&amp;gt; to use it as much as she wants. That is what I want to avoid with PoP.&lt;br/&gt;&amp;gt; The BIP proposal briefly mentions something like this in the&lt;br/&gt;&amp;gt; rationale. I also had a discussion about this with Mike Hearn on this&lt;br/&gt;&amp;gt; list on Mars 13 that I think covers most pros and cons of the&lt;br/&gt;&amp;gt; different approaches.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; While your suggestion does indeed separate the transaction from the&lt;br/&gt;&amp;gt; proof of payment, it also assumes that the token is held in the wallet&lt;br/&gt;&amp;gt; that pays. Otherwise you would need to keep it in another safe place,&lt;br/&gt;&amp;gt; remember it&amp;#39;s reusable. Where would that be? How would you transfer&lt;br/&gt;&amp;gt; that token to your friend?&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Thank you again for your comments. I appreciate it.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Best regards,&lt;br/&gt;&amp;gt; Kalle&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; --&lt;br/&gt;&amp;gt; &amp;gt; Pieter&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/20150616/e854b9db/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20150616/e854b9db/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T17:36:55&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs9g07j9dnwxdcp550mjyzg47n2uw5dfynxtpk3wqqye50pk77p27qzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dv9w76t5</id>
    
      <title type="html">📅 Original date posted:2015-06-16 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs9g07j9dnwxdcp550mjyzg47n2uw5dfynxtpk3wqqye50pk77p27qzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dv9w76t5" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsdn7sn2x3mpttrw9awurwn450rp7lm5jxfe5k0hsugdsazmtx7v2gk32x78&#39;&gt;nevent1q…2x78&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2015-06-16&lt;br/&gt;📝 Original message:On Mon, Jun 15, 2015 at 1:59 PM, Kalle Rosenbaum &amp;lt;kalle at rosenbaum.se&amp;gt; wrote:&lt;br/&gt;&lt;br/&gt;&amp;gt; 2015-06-15 12:00 GMT&#43;02:00 Pieter Wuille &amp;lt;pieter.wuille at gmail.com&amp;gt;:&lt;br/&gt;&amp;gt; I&amp;#39;m not sure if we will be able to support PoP with CoinJoin. Maybe&lt;br/&gt;&amp;gt; someone with more insight into CoinJoin have some input?&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;Not really. The problem is that you assume a transaction corresponds to a&lt;br/&gt;single payment. This is true for simple wallet use cases, but not&lt;br/&gt;compatible with CoinJoin, or with systems that for example would want to&lt;br/&gt;combine multiple payments in a single transaction.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;gt; &amp;gt; Also, if I understand correctly, there is no commitment to anything&lt;br/&gt;&amp;gt; you&amp;#39;re&lt;br/&gt;&amp;gt; &amp;gt; trying to say about the sender? So once I obtain a proof-of-payment from&lt;br/&gt;&amp;gt; you&lt;br/&gt;&amp;gt; &amp;gt; about something you paid, I can go claim that it&amp;#39;s mine?&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; I don&amp;#39;t understand this. The pop includes a nonce randomly generated&lt;br/&gt;&amp;gt; by the server. If you&amp;#39;re very lucky, 1/(2^48) per try, you can reuse a&lt;br/&gt;&amp;gt; pop.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;I owe you an apology here, for judging based on the summary you posted&lt;br/&gt;rather than reading the actual text.&lt;br/&gt;&lt;br/&gt;48 bits seems low to me, but it does indeed solve the problem. Why not 128&lt;br/&gt;or 256 bits?&lt;br/&gt;&lt;br/&gt;&amp;gt; Why does anyone care who paid? This is like walking into a coffeshop,&lt;br/&gt;&amp;gt; &amp;gt; noticing I don&amp;#39;t have money with me, let me friend pay for me, and then&lt;br/&gt;&amp;gt; have&lt;br/&gt;&amp;gt; &amp;gt; the shop insist that I can&amp;#39;t drink it because I&amp;#39;m not the buyer.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; If you pay as you use the service (ie pay for coffee upfront), there&amp;#39;s&lt;br/&gt;&amp;gt; no need for PoP. Please see the Motivation section. But you are right&lt;br/&gt;&amp;gt; that you must have the wallet(s) that paid at hand when you issue a&lt;br/&gt;&amp;gt; PoP.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; Track payments, don&amp;#39;t try to assign identities to payers.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Please elaborate, I don&amp;#39;t understand what you mean here.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;I think that is a mistake. You should not assume that the wallet who held&lt;br/&gt;the coins is the payer/buyer. That&amp;#39;s what I said earlier; you&amp;#39;re implicitly&lt;br/&gt;creating an identity (the one who holds these keys) based on the&lt;br/&gt;transaction. This seems fundamentally wrong to me, and not necessary. The&lt;br/&gt;receiver should not care who paid or how, he should care what was payed for.&lt;br/&gt;&lt;br/&gt;The easiest solution to this IMHO would be an extension to the payment&lt;br/&gt;protocol that gives you (or your wallet) a token in return for paying, and&lt;br/&gt;that knowledge of that token is used to gain access to the services you&lt;br/&gt;provide.&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter&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/20150616/75813f1f/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20150616/75813f1f/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T17:36:54&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsve4pvy9fjyz8s6pyqm78k7l7c3xpfz698j4tx9tuq5agj6qzeu3gzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvp8zrsz</id>
    
      <title type="html">📅 Original date posted:2015-06-15 📝 Original message:I did ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsve4pvy9fjyz8s6pyqm78k7l7c3xpfz698j4tx9tuq5agj6qzeu3gzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvp8zrsz" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs0h29pkf5fq58y8f2qs2pnlyuckwecphy28vw28ntnk67mc8uvscgcgz4rd&#39;&gt;nevent1q…z4rd&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2015-06-15&lt;br/&gt;📝 Original message:I did misunderstand that. That changes things significantly.&lt;br/&gt;&lt;br/&gt;However, having paid is not the same as having had access to the input&lt;br/&gt;coins. What about shared wallets or coinjoin?&lt;br/&gt;&lt;br/&gt;Also, if I understand correctly, there is no commitment to anything you&amp;#39;re&lt;br/&gt;trying to say about the sender? So once I obtain a proof-of-payment from&lt;br/&gt;you about something you paid, I can go claim that it&amp;#39;s mine?&lt;br/&gt;&lt;br/&gt;Why does anyone care who paid? This is like walking into a coffeshop,&lt;br/&gt;noticing I don&amp;#39;t have money with me, let me friend pay for me, and then&lt;br/&gt;have the shop insist that I can&amp;#39;t drink it because I&amp;#39;m not the buyer.&lt;br/&gt;&lt;br/&gt;Track payments, don&amp;#39;t try to assign identities to payers.&lt;br/&gt;On Jun 15, 2015 11:35 AM, &amp;#34;Kalle Rosenbaum&amp;#34; &amp;lt;kalle at rosenbaum.se&amp;gt; wrote:&lt;br/&gt;&lt;br/&gt;&amp;gt; Hi Pieter!&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; It is intended to be a proof that you *have paid* for something. Not&lt;br/&gt;&amp;gt; that you have the intent to pay for something. You cannot use PoP&lt;br/&gt;&amp;gt; without a transaction to prove.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; So, yes, it&amp;#39;s just a proof of access to certain coins that you no longer&lt;br/&gt;&amp;gt; have.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Maybe I don&amp;#39;t understand you correctly?&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; /Kalle&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; 2015-06-15 11:27 GMT&#43;02:00 Pieter Wuille &amp;lt;pieter.wuille at gmail.com&amp;gt;:&lt;br/&gt;&amp;gt; &amp;gt; Now that you have removed the outputs, I don&amp;#39;t think it&amp;#39;s even a intent&lt;br/&gt;&amp;gt; of&lt;br/&gt;&amp;gt; &amp;gt; payment, but just a proof of access to certain coins.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; On Jun 15, 2015 11:24 AM, &amp;#34;Kalle Rosenbaum&amp;#34; &amp;lt;kalle at rosenbaum.se&amp;gt; wrote:&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; Hi all!&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; I have made the discussed changes and updated my implementation&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; (&lt;a href=&#34;https://github.com/kallerosenbaum/poppoc&#34;&gt;https://github.com/kallerosenbaum/poppoc&lt;/a&gt;) accordingly. These are the&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; changes:&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; * There is now only one output, the &amp;#34;pop output&amp;#34;, of value 0.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; * The sequence number of all inputs of the PoP must be set to 0. I&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; chose to set it to 0 for all inputs for simplicity.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; * The lock_time of the PoP must be set to 499999999 (max block height&lt;br/&gt;&amp;gt; lock&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; time).&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; The comments so far has been mainly positive or neutral. Are there any&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; major objections against any of the two proposals? If not, I will ask&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; Gregory Maxwell to assign them BIP numbers.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; The two BIP proposals can be found at&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; &lt;a href=&#34;https://github.com/kallerosenbaum/poppoc/wiki/Proof-of-Payment-BIP&#34;&gt;https://github.com/kallerosenbaum/poppoc/wiki/Proof-of-Payment-BIP&lt;/a&gt; and&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; &lt;a href=&#34;https://github.com/kallerosenbaum/poppoc/wiki/btcpop-scheme-BIP&#34;&gt;https://github.com/kallerosenbaum/poppoc/wiki/btcpop-scheme-BIP&lt;/a&gt;. The&lt;br/&gt;&amp;gt; source&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; for the Proof of Payment BIP proposal is also in-lined below.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; A number of alternative names have been proposed:&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; * Proof of Potential&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; * Proof of Control&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; * Proof of Signature&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; * Signatory Proof&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; * Popo: Proof of payment origin&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; * Pots: Proof of transaction signer&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; * proof of transaction intent&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; * Declaration of intent&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; * Asset-access-and-action-affirmation, AAaAA, or A5&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; * VeriBit&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; * CertiBTC&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; * VBit&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; * PayID&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; Given this list, I still think &amp;#34;Proof of Payment&amp;#34; is the most&lt;br/&gt;&amp;gt; descriptive&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; to non-technical people.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; Regards,&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; Kalle&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; #################################################&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; &amp;lt;pre&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;   BIP: &amp;lt;BIP number&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;   Title: Proof of Payment&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;   Author: Kalle Rosenbaum &amp;lt;kalle at rosenbaum.se&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;   Status: Draft&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;   Type: Standards Track&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;   Created: &amp;lt;date created on, in ISO 8601 (yyyy-mm-dd) format&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; &amp;lt;/pre&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; == Abstract ==&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; This BIP describes how a wallet can prove to a server that it has the&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; ability to sign a certain transaction.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; == Motivation ==&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; There are several scenarios in which it would be useful to prove that&lt;br/&gt;&amp;gt; you&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; have paid for something. For example:&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; * A pre-paid hotel room where your PoP functions as a key to the door.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; * An online video rental service where you pay for a video and watch it&lt;br/&gt;&amp;gt; on&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; any device.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; * An ad-sign where you pay in advance for e.g. 2 weeks exclusivity.&lt;br/&gt;&amp;gt; During&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; this period you can upload new content to the sign whenever you like&lt;br/&gt;&amp;gt; using&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; PoP.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; * Log in to a pay site using a PoP.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; * A parking lot you pay for monthly and the car authenticates itself&lt;br/&gt;&amp;gt; using&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; PoP.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; * A lottery where all participants pay to the same address, and the&lt;br/&gt;&amp;gt; winner&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; is selected among the transactions to that address. You exchange the&lt;br/&gt;&amp;gt; prize&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; for a PoP for the winning transaction.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; With Proof of Payment, these use cases can be achieved without any&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; personal information (user name, password, e-mail address, etc) being&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; involved.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; == Rationale ==&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; Desirable properties:&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; # A PoP should be generated on demand.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; # It should only be usable once to avoid issues due to theft.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; # It should be able to create a PoP for any payment, regardless of&lt;br/&gt;&amp;gt; script&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; type (P2SH, P2PKH, etc.).&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; # It should prove that you have enough credentials to unlock all the&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; inputs of the proven transaction.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; # It should be easy to implement by wallets and servers to ease&lt;br/&gt;&amp;gt; adoption.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; Current methods of proving a payment:&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; * In BIP0070, the PaymentRequest together with the transactions&lt;br/&gt;&amp;gt; fulfilling&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; the request makes some sort of proof. However, it does not meet 1, 2 or&lt;br/&gt;&amp;gt; 4&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; and it obviously only meets 3 if the payment is made through BIP0070.&lt;br/&gt;&amp;gt; Also,&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; there&amp;#39;s no standard way to request/provide the proof. If standardized it&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; would probably meet 5.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; * Signing messages, chosen by the server, with the private keys used to&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; sign the transaction. This could meet 1 and 2 but probably not 3. This&lt;br/&gt;&amp;gt; is&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; not standardized either. 4 Could be met if designed so.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; If an input script type is P2SH, any satisfying script should do, just&lt;br/&gt;&amp;gt; as&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; if it was a payment. For M-of-N multisig scripts, that would mean that&lt;br/&gt;&amp;gt; any&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; set of M keys should be sufficient, not neccesarily the same set of M&lt;br/&gt;&amp;gt; keys&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; that signed the transaction. This is important because strictly&lt;br/&gt;&amp;gt; demanding&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; the same set of M keys would defeat the purpose of a multisig address.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; == Specification ==&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; === Data structure ===&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; A proof of payment for a transaction T, here called PoP(T), is used to&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; prove that one has ownership of the credentials needed to unlock all the&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; inputs of T. It has the exact same structure as a bitcoin transaction&lt;br/&gt;&amp;gt; with&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; the same inputs as T and in the same order as in T, but with each&lt;br/&gt;&amp;gt; sequence&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; number set to 0. There is exactly one output, here called the pop&lt;br/&gt;&amp;gt; output,&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; with value 0. The pop output must have the following format:&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;  OP_RETURN &amp;lt;version&amp;gt; &amp;lt;txid&amp;gt; &amp;lt;nonce&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; {|&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; ! Field        !! Size [B] !! Description&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; |-&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; | &amp;amp;lt;version&amp;gt; || 2        || Version, little endian, currently 0x01&lt;br/&gt;&amp;gt; 0x00&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; |-&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; | &amp;amp;lt;txid&amp;gt;    || 32       || The transaction to prove&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; |-&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; | &amp;amp;lt;nonce&amp;gt;   || 6        || Random data&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; |}&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; The lock_time of the PoP must be set to 499999999 to prevent the PoP&lt;br/&gt;&amp;gt; from&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; being included in a block, should it appear on the bitcoin p2p network.&lt;br/&gt;&amp;gt; This&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; is also the reason for setting the sequence numbers to 0, since sequence&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; number of ffffffff would make lock_time ineffective. This specification&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; demands that all input sequence numbers are 0, not just one of them,&lt;br/&gt;&amp;gt; which&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; would be sufficient to make lock_time effective. This is for simplicity&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; reasons.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; An illustration of the PoP data structure and its original payment is&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; shown below.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; &amp;lt;pre&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;   T&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;  &#43;------------------------------------------------&#43;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;  |inputs                | outputs                 |&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;  |       Value,Sequence | Value,Script            |&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;  &#43;------------------------------------------------&#43;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;  |input0 1,ffffffff     | 0,pay to A              |&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;  |input1 3,ffffffff     | 2,OP_RETURN &amp;lt;some data&amp;gt; |&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;  |input2 4,ffffffff     | 1,pay to B              |&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;  |                      | 4,pay to C              |&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;  &#43;------------------------------------------------&#43;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;   PoP(T)&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;  &#43;-------------------------------------------------------------&#43;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;  | inputs               | outputs                              |&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;  |       Value,Sequence | Value,Script                         |&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;  &#43;-------------------------------------------------------------&#43;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;  |input0 1,00000000     | 0,OP_RETURN &amp;lt;version&amp;gt; &amp;lt;txid&amp;gt; &amp;lt;nonce&amp;gt; |&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;  |input1 3,00000000     |                                      |&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;  |input2 4,00000000     |                                      |&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;  &#43;-------------------------------------------------------------&#43;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;  | lock_time=499999999                                         |&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;  &#43;-------------------------------------------------------------&#43;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; &amp;lt;/pre&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; The PoP is signed using the same signing process that is used for&lt;br/&gt;&amp;gt; bitcoin&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; transactions.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; The purpose of the nonce is to make it harder to use a stolen PoP; Once&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; the PoP has reached the server, that PoP is useless since the server&lt;br/&gt;&amp;gt; will&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; generate a new nonce for every PoP request.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; === Process ===&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; # A proof of payment request is sent from the server to the wallet. The&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; PoP request contains:&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; ## a random nonce&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; ## a destination where to send the PoP, for example a https URL&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; ## data hinting the wallet which transaction to create a proof for. For&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; example:&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; ##* txid, if known by the server&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; ##* PaymentRequest.PaymentDetails.merchant_data (in case of a BIP0070&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; payment)&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; ##* amount, label, message or other information from a BIP0021 URI&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; # The wallet identifies a transaction T, if possible. Otherwise it asks&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; the user to select among the ones that match the hints in 1.iii.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; # The wallet creates an unsigned PoP (UPoP) for T, and asks the user to&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; sign it.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; # The user confirms&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; # The UPoP(T) is signed by the wallet, creating PoP(T).&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; # The PoP is sent to the destination in 1.ii.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; # The server receiving the PoP validates it and responds with “valid” or&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; “invalid”.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; # The wallet displays the response in some way to the user.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; &amp;#39;&amp;#39;&amp;#39;Remarks:&amp;#39;&amp;#39;&amp;#39;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; * The method of transferring the PoP request at step 1 is not specified&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; here. Instead that is specified in separate specifications. See [btcpop&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; scheme BIP](btcpop scheme BIP).&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; * The nonce must be randomly generated by the server for every new PoP&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; request.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; === Validating a PoP ===&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; The server needs to validate the PoP and reply with &amp;#34;valid&amp;#34; or&lt;br/&gt;&amp;gt; &amp;#34;invalid&amp;#34;.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; That process is outlined below. If any step fails, the validation is&lt;br/&gt;&amp;gt; aborted&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; and &amp;#34;invalid&amp;#34; is returned:&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; # Check the format of the PoP. It must pass normal transaction checks,&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; except that the inputs may already be spent.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; # Check that lock_time is 499999999.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; # Check that there is exactly one output. This output must have value 0&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; and conform to the OP_RETURN output format outlined above.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; # Check that the nonce is the same as the one requested.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; # Check that the inputs of the PoP are exactly the same as in&lt;br/&gt;&amp;gt; transaction&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; T, except that the sequence numbers must all be 0. The ordering of the&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; inputs must also be the same as in T.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; # Run the scripts of all the inputs. All scipts must return true.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; # Check that the txid in the PoP output is the transaction you actually&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; want proof for. If you don’t know exactly what transaction you want&lt;br/&gt;&amp;gt; proof&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; for, check that the transaction actually pays for the product/service&lt;br/&gt;&amp;gt; you&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; deliver.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; # Return &amp;#34;valid&amp;#34;.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; == Security considerations ==&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; * Someone can intercept the PoP-request and change any parameter in it.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; These can be mitigated by using secure connections. For example:&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; ** Pop destination - Stealing your PoP.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; ** label - Trick you to sign an unintended pop or set a label that your&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; wallet doesn&amp;#39;t have any record for, resulting in a broken service.&lt;br/&gt;&amp;gt; Always&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; check the PoP before signing.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; ** nonce - Your pop will not validate on server.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; * Someone can steal a PoP, for example by tampering with the PoP&lt;br/&gt;&amp;gt; request,&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; and try to use the service hoping to get a matching nonce. Probability&lt;br/&gt;&amp;gt; per&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; try: 1/(2^48). The server should have a mechanism for detecting a brute&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; force attack of this kind, or at least slow down the process by&lt;br/&gt;&amp;gt; delaying the&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; PoP request by some 100 ms or so.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; * Even if a wallet has no funds it might still be valuable as a&lt;br/&gt;&amp;gt; generator&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; for PoPs. This makes it important to keep the security of the wallet&lt;br/&gt;&amp;gt; after&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; it has been emptied.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; * Transaction malleability may cause the server to have another&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; transaction id for a payment than the client&amp;#39;s wallet. In that case the&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; wallet will not be able to prove the transaction to the server. Wallets&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; should not rely on the transaction id of the outgoing transaction.&lt;br/&gt;&amp;gt; Instead&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; it should listen for the transaction on the network and put that in its&lt;br/&gt;&amp;gt; list&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; of transactions.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; == Reference implementation ==&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; [&lt;a href=&#34;https://github.com/kallerosenbaum/poppoc&#34;&gt;https://github.com/kallerosenbaum/poppoc&lt;/a&gt; poppoc on GitHub]&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; [&lt;a href=&#34;https://github.com/kallerosenbaum/wallet&#34;&gt;https://github.com/kallerosenbaum/wallet&lt;/a&gt; Mycelium fork on GitHub]&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; == References ==&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; [&lt;a href=&#34;https://github.com/bitcoin/bips/blob/master/bip-0021.mediawiki&#34;&gt;https://github.com/bitcoin/bips/blob/master/bip-0021.mediawiki&lt;/a&gt;&lt;br/&gt;&amp;gt; BIP0021]:&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; URI Scheme&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; [&lt;a href=&#34;https://github.com/bitcoin/bips/blob/master/bip-0070.mediawiki&#34;&gt;https://github.com/bitcoin/bips/blob/master/bip-0070.mediawiki&lt;/a&gt;&lt;br/&gt;&amp;gt; BIP0070]:&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; Payment Protocol&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; [[btcpop scheme BIP]]&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; #########################################################&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; 2015-06-06 23:25 GMT&#43;02:00 Kalle Rosenbaum &amp;lt;kalle at rosenbaum.se&amp;gt;:&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; Thank you all for the feedback.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; I will change the data structure as follows:&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; * There will be only one output, the &amp;#34;pop output&amp;#34;, and no outputs from&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; T will be copied to the PoP.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; * The pop output will have value 0.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; * The sequence number of all inputs of the PoP will be set to 0. I&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; chose to set it to 0 for all inputs for simplicity.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; * The lock_time of the PoP is always set to 499999999.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; Any comments on this?&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; /Kalle&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; 2015-06-06 19:00 GMT&#43;02:00 Kalle Rosenbaum &amp;lt;kalle at rosenbaum.se&amp;gt;:&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; 2015-06-06 18:10 GMT&#43;02:00 Tom Harding &amp;lt;tomh at thinlink.com&amp;gt;:&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; On Jun 6, 2015 8:05 AM, &amp;#34;Kalle Rosenbaum&amp;#34; &amp;lt;kalle at rosenbaum.se&amp;gt;&lt;br/&gt;&amp;gt; wrote:&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; I&amp;#39;m open to changes here.&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; I suggest:&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; - Don&amp;#39;t include any real outputs.   They are redundant because the&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; txid is&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; already referenced.&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; with the nLocktime solution, the copied outputs are not needed.&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;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; - Start the proof script, which should be invalid, with a magic&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; constant and&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; include space for future expansion.  This makes PoP&amp;#39;s easy to&lt;br/&gt;&amp;gt; identify&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; and&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; extend.&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; I did remore the constant (a &amp;#34;PoP&amp;#34; literal ascii encoded string)&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; because it didn&amp;#39;t add much. The recipient will expect a pop, so it&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; will simply treat it as one. I did add a 2 byte version field to make&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; it extendable.&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;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; - &amp;#34;Proof of Potential&amp;#34;&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; Noted :-)&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; Thank you&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; /Kalle&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; ------------------------------------------------------------------------------&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; _______________________________________________&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; Bitcoin-development mailing list&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; Bitcoin-development at lists.sourceforge.net&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt; &lt;a href=&#34;https://lists.sourceforge.net/lists/listinfo/bitcoin-development&#34;&gt;https://lists.sourceforge.net/lists/listinfo/bitcoin-development&lt;/a&gt;&lt;br/&gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;-------------- 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/20150615/eb18f534/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20150615/eb18f534/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T17:36:52&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqstyxydctjcy4595v4syxy2jla04a0c0kusj0necvl0u8ta6u83maqzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvs2gkjz</id>
    
      <title type="html">📅 Original date posted:2015-06-06 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqstyxydctjcy4595v4syxy2jla04a0c0kusj0necvl0u8ta6u83maqzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvs2gkjz" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsfe8j6nacpyhxw9h7gznqmqwfe09j5pfyz0awhc4lc6qq6mm636nc37ye0h&#39;&gt;nevent1q…ye0h&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2015-06-06&lt;br/&gt;📝 Original message:On Sat, Jun 6, 2015 at 5:18 PM, Luke Dashjr &amp;lt;luke at dashjr.org&amp;gt; wrote:&lt;br/&gt;&lt;br/&gt;&amp;gt; I also agree with Pieter, that this should *not* be so cleanly compatible&lt;br/&gt;&amp;gt; with Bitcoin transactions. If you wish to share code, perhaps using an&lt;br/&gt;&amp;gt; invalid opcode rather than OP_RETURN would be appropriate.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Using an invalid opcode would merely send funds into the void. It wouldn&amp;#39;t&lt;br/&gt;invalidate the transaction.&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter&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/20150606/e8ba6131/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20150606/e8ba6131/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T17:36:51&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqstlnt0fpq6hxnufvs3lw538cgk00edrc98gyxerg559gm0ktes9lqzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvffs3ye</id>
    
      <title type="html">📅 Original date posted:2015-06-06 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqstlnt0fpq6hxnufvs3lw538cgk00edrc98gyxerg559gm0ktes9lqzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvffs3ye" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsghpte66r7g9ky2df3v7resjzp4k3fh2rwssyzf6udjvk4jutcpvqpxrct7&#39;&gt;nevent1q…rct7&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2015-06-06&lt;br/&gt;📝 Original message:On Sat, Jun 6, 2015 at 5:05 PM, Kalle Rosenbaum &amp;lt;kalle at rosenbaum.se&amp;gt; wrote:&lt;br/&gt;&lt;br/&gt;&amp;gt; &amp;gt; What do you gain by making PoPs actually valid transactions? You could&lt;br/&gt;&amp;gt; for&lt;br/&gt;&amp;gt; &amp;gt; example change the signature hashing algorithm (prepend a constant&lt;br/&gt;&amp;gt; string,&lt;br/&gt;&amp;gt; &amp;gt; or add a second hashing step) for signing, rendering the signatures in a&lt;br/&gt;&amp;gt; PoP&lt;br/&gt;&amp;gt; &amp;gt; unusable for actual transaction, while still committing to the same&lt;br/&gt;&amp;gt; actual&lt;br/&gt;&amp;gt; &amp;gt; transaction. That would also remove the need for the OP_RETURN to catch&lt;br/&gt;&amp;gt; &amp;gt; fees.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; The idea is to simplify implementation. Existing software can be used&lt;br/&gt;&amp;gt; as is to sign and validate PoPs. But I do agree that it would be a&lt;br/&gt;&amp;gt; cleaner specification if we would make the PoP invalid as a&lt;br/&gt;&amp;gt; transaction. I&amp;#39;m open to changes here. I do like the idea to prepend a&lt;br/&gt;&amp;gt; constant string. But that would require changes in transaction signing&lt;br/&gt;&amp;gt; and validation code, wouldn&amp;#39;t it?&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;Yes, of course. An alternative is adding a 21M BTC output at the end, or&lt;br/&gt;bitflipping the txin prevout hashes, or another reversible transformation&lt;br/&gt;on the transaction data that is guaranteed to invalidate it.&lt;br/&gt;&lt;br/&gt;I think that the risk of asking people to sign something that is not an&lt;br/&gt;actual transaction, but could be used as one, is very scary.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;gt; &amp;gt; Also, I would call it &amp;#34;proof of transaction intent&amp;#34;, as it&amp;#39;s a&lt;br/&gt;&amp;gt; commitment to&lt;br/&gt;&amp;gt; &amp;gt; a transaction and proof of its validity, but not a proof that an actual&lt;br/&gt;&amp;gt; &amp;gt; transaction took place, nor a means to prevent it from being double&lt;br/&gt;&amp;gt; spent.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Naming is hard. I think a simpler name that explains what its main&lt;br/&gt;&amp;gt; purpose is (prove that you paid for something) is better than a name&lt;br/&gt;&amp;gt; that exactly tries to explain what it is.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;#34;Proof of Payment&amp;#34; indeed does make me think it&amp;#39;s something that proves you&lt;br/&gt;paid. But as described, that is not what a PoP does. It proves the ability&lt;br/&gt;to create a particular transaction, and committing to it. There is no&lt;br/&gt;actual payment involved (plus, payment makes me think you&amp;#39;re talking about&lt;br/&gt;BIP70 payments, not simple Bitcoin transactions).&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;gt; &amp;#34;Proof of transaction&lt;br/&gt;&amp;gt; intent&amp;#34; does not help me understand what this is about. But I would&lt;br/&gt;&amp;gt; like to see more name suggestions. The name does not prevent people&lt;br/&gt;&amp;gt; from using it for other purposes, ie internet over telephone network.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;I don&amp;#39;t understand why something like &amp;#34;Proof of Transaction Intent&amp;#34; would&lt;br/&gt;be incompatible with internet over telephone network either...&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter&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/20150606/f9b9daa2/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20150606/f9b9daa2/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T17:36:49&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsz0xnm2dt2pnt9zjx59v0fdqa9wyntwdnpt367kkzz4tcg5edsajczypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvu26hpm</id>
    
      <title type="html">📅 Original date posted:2015-06-06 📝 Original message:What ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsz0xnm2dt2pnt9zjx59v0fdqa9wyntwdnpt367kkzz4tcg5edsajczypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvu26hpm" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsq0rnsmswqd6xe5rascj4ehf052ml9dwcfjwhd7s7rcsvc6h4v3zgcnglna&#39;&gt;nevent1q…glna&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2015-06-06&lt;br/&gt;📝 Original message:What do you gain by making PoPs actually valid transactions? You could for&lt;br/&gt;example change the signature hashing algorithm (prepend a constant string,&lt;br/&gt;or add a second hashing step) for signing, rendering the signatures in a&lt;br/&gt;PoP unusable for actual transaction, while still committing to the same&lt;br/&gt;actual transaction. That would also remove the need for the OP_RETURN to&lt;br/&gt;catch fees.&lt;br/&gt;&lt;br/&gt;Also, I would call it &amp;#34;proof of transaction intent&amp;#34;, as it&amp;#39;s a commitment&lt;br/&gt;to a transaction and proof of its validity, but not a proof that an actual&lt;br/&gt;transaction took place, nor a means to prevent it from being double spent.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;On Sat, Jun 6, 2015 at 4:35 PM, Kalle Rosenbaum &amp;lt;kalle at rosenbaum.se&amp;gt; wrote:&lt;br/&gt;&lt;br/&gt;&amp;gt; Hi&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Following earlier posts on Proof of Payment I&amp;#39;m now proposing the&lt;br/&gt;&amp;gt; following BIP (To read it formatted instead, go to&lt;br/&gt;&amp;gt; &lt;a href=&#34;https://github.com/kallerosenbaum/poppoc/wiki/Proof-of-Payment-BIP&#34;&gt;https://github.com/kallerosenbaum/poppoc/wiki/Proof-of-Payment-BIP&lt;/a&gt;).&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Regards,&lt;br/&gt;&amp;gt; Kalle Rosenbaum&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;lt;pre&amp;gt;&lt;br/&gt;&amp;gt;   BIP: &amp;lt;BIP number&amp;gt;&lt;br/&gt;&amp;gt;   Title: Proof of Payment&lt;br/&gt;&amp;gt;   Author: Kalle Rosenbaum &amp;lt;kalle at rosenbaum.se&amp;gt;&lt;br/&gt;&amp;gt;   Status: Draft&lt;br/&gt;&amp;gt;   Type: Standards Track&lt;br/&gt;&amp;gt;   Created: &amp;lt;date created on, in ISO 8601 (yyyy-mm-dd) format&amp;gt;&lt;br/&gt;&amp;gt; &amp;lt;/pre&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; == Abstract ==&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; This BIP describes how a wallet can prove to a server that it has the&lt;br/&gt;&amp;gt; ability to sign a certain transaction.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; == Motivation ==&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; There are several scenarios in which it would be useful to prove that you&lt;br/&gt;&amp;gt; have paid for something. For example:&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; * A pre-paid hotel room where your PoP functions as a key to the door.&lt;br/&gt;&amp;gt; * An online video rental service where you pay for a video and watch it on&lt;br/&gt;&amp;gt; any device.&lt;br/&gt;&amp;gt; * An ad-sign where you pay in advance for e.g. 2 weeks exclusivity. During&lt;br/&gt;&amp;gt; this period you can upload new content to the sign whenever you like using&lt;br/&gt;&amp;gt; PoP.&lt;br/&gt;&amp;gt; * Log in to a pay site using a PoP.&lt;br/&gt;&amp;gt; * A parking lot you pay for monthly and the car authenticates itself using&lt;br/&gt;&amp;gt; PoP.&lt;br/&gt;&amp;gt; * A lottery where all participants pay to the same address, and the winner&lt;br/&gt;&amp;gt; is selected among the transactions to that address. You exchange the prize&lt;br/&gt;&amp;gt; for a PoP for the winning transaction.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; With Proof of Payment, these use cases can be achieved without any&lt;br/&gt;&amp;gt; personal information (user name, password, e-mail address, etc) being&lt;br/&gt;&amp;gt; involved.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; == Rationale ==&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Desirable properties:&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; # A PoP should be generated on demand.&lt;br/&gt;&amp;gt; # It should only be usable once to avoid issues due to theft.&lt;br/&gt;&amp;gt; # It should be able to create a PoP for any payment, regardless of script&lt;br/&gt;&amp;gt; type (P2SH, P2PKH, etc.).&lt;br/&gt;&amp;gt; # It should prove that you have enough credentials to unlock all the&lt;br/&gt;&amp;gt; inputs of the proven transaction.&lt;br/&gt;&amp;gt; # It should be easy to implement by wallets and servers to ease adoption.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Current methods of proving a payment:&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; * In BIP0070, the PaymentRequest together with the transactions fulfilling&lt;br/&gt;&amp;gt; the request makes some sort of proof. However, it does not meet 1, 2 or 4&lt;br/&gt;&amp;gt; and it obviously only meets 3 if the payment is made through BIP0070. Also,&lt;br/&gt;&amp;gt; there&amp;#39;s no standard way to request/provide the proof. If standardized it&lt;br/&gt;&amp;gt; would probably meet 5.&lt;br/&gt;&amp;gt; * Signing messages, chosen by the server, with the private keys used to&lt;br/&gt;&amp;gt; sign the transaction. This could meet 1 and 2 but probably not 3. This is&lt;br/&gt;&amp;gt; not standardized either. 4 Could be met if designed so.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; If the script type is P2SH, any satisfying script should do, just like for&lt;br/&gt;&amp;gt; a payment. For M-of-N multisig scripts, that would mean that any set of M&lt;br/&gt;&amp;gt; keys should be sufficient, not neccesarily the same set of M keys that&lt;br/&gt;&amp;gt; signed the transaction. This is important because strictly demanding the&lt;br/&gt;&amp;gt; same set of M keys would undermine the purpose of a multisig address.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; == Specification ==&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; === Data structure ===&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; A proof of payment for a transaction T, here called PoP(T), is used to&lt;br/&gt;&amp;gt; prove that one has ownership of the credentials needed to unlock all the&lt;br/&gt;&amp;gt; inputs of T. It has the exact same structure as a bitcoin transaction with&lt;br/&gt;&amp;gt; the same inputs and outputs as T and in the same order as in T. There is&lt;br/&gt;&amp;gt; also one OP_RETURN output inserted at index 0, here called the pop output.&lt;br/&gt;&amp;gt; This output must have the following format:&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;  OP_RETURN &amp;lt;version&amp;gt; &amp;lt;txid&amp;gt; &amp;lt;nonce&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; {|&lt;br/&gt;&amp;gt; ! Field        !! Size [B] !! Description&lt;br/&gt;&amp;gt; |-&lt;br/&gt;&amp;gt; | &amp;amp;lt;version&amp;gt; || 2        || Version, little endian, currently 0x01 0x00&lt;br/&gt;&amp;gt; |-&lt;br/&gt;&amp;gt; | &amp;amp;lt;txid&amp;gt;    || 32       || The transaction to prove&lt;br/&gt;&amp;gt; |-&lt;br/&gt;&amp;gt; | &amp;amp;lt;nonce&amp;gt;   || 6        || Random data&lt;br/&gt;&amp;gt; |}&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; The value of the pop output is set to the same value as the transaction&lt;br/&gt;&amp;gt; fee of T. Also, if the outputs of T contains an OP_RETURN output, that&lt;br/&gt;&amp;gt; output must not be included in the PoP because there can only be one&lt;br/&gt;&amp;gt; OP_RETURN output in a transaction. The value of that OP_RETURN output is&lt;br/&gt;&amp;gt; instead added to the value of the pop output.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; An illustration of the PoP data structure and its original payment is&lt;br/&gt;&amp;gt; shown below.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;lt;pre&amp;gt;&lt;br/&gt;&amp;gt;   T&lt;br/&gt;&amp;gt;  &#43;----------------------------------------------&#43;&lt;br/&gt;&amp;gt;  |inputs       | outputs                        |&lt;br/&gt;&amp;gt;  |       Value | Value   Script                 |&lt;br/&gt;&amp;gt;  &#43;----------------------------------------------&#43;&lt;br/&gt;&amp;gt;  |input0 1     |     0   pay to A               |&lt;br/&gt;&amp;gt;  |input1 3     |     2   OP_RETURN &amp;lt;some data&amp;gt;  |&lt;br/&gt;&amp;gt;  |input2 4     |     1   pay to B               |&lt;br/&gt;&amp;gt;  |             |     4   pay to C               |&lt;br/&gt;&amp;gt;  &#43;----------------------------------------------&#43;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;   PoP(T)&lt;br/&gt;&amp;gt;  &#43;----------------------------------------------------------&#43;&lt;br/&gt;&amp;gt;  |inputs       | outputs                                    |&lt;br/&gt;&amp;gt;  |       Value | Value   Script                             |&lt;br/&gt;&amp;gt;  &#43;----------------------------------------------------------&#43;&lt;br/&gt;&amp;gt;  |input0 1     |     3   OP_RETURN &amp;lt;version&amp;gt; &amp;lt;txid&amp;gt; &amp;lt;nonce&amp;gt; |&lt;br/&gt;&amp;gt;  |input1 3     |     0   pay to A                           |&lt;br/&gt;&amp;gt;  |input2 4     |     1   pay to B                           |&lt;br/&gt;&amp;gt;  |             |     4   pay to C                           |&lt;br/&gt;&amp;gt;  &#43;----------------------------------------------------------&#43;&lt;br/&gt;&amp;gt; &amp;lt;/pre&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; The PoP is signed using the same signing process that is used for bitcoin&lt;br/&gt;&amp;gt; transactions.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; The purpose of the nonce is to make it harder to use a stolen PoP; Once&lt;br/&gt;&amp;gt; the PoP has reached the server, that PoP is useless since the server will&lt;br/&gt;&amp;gt; generate a new nonce for every PoP request.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Since a PoP is indistinguishable from a bitcoin transaction, there is a&lt;br/&gt;&amp;gt; risk that it, accidently or maliciously, enters the bitcoin p2p network. If&lt;br/&gt;&amp;gt; T is still unconfirmed, or if a reorg takes place, chances are that PoP(T)&lt;br/&gt;&amp;gt; ends up in a block, invalidating T. Therefore it is important that the&lt;br/&gt;&amp;gt; outputs of the PoP are the same as in T. The zero transaction fee in PoP(T)&lt;br/&gt;&amp;gt; is to minimize the incentives for miners to select PoP(T) for inclusion.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; === Process ===&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; # A proof of payment request is sent from the server to the wallet. The&lt;br/&gt;&amp;gt; PoP request contains:&lt;br/&gt;&amp;gt; ## a random nonce&lt;br/&gt;&amp;gt; ## a destination where to send the PoP, for example a https URL&lt;br/&gt;&amp;gt; ## data hinting the wallet which transaction to create a proof for. For&lt;br/&gt;&amp;gt; example:&lt;br/&gt;&amp;gt; ##* txid, if known by the server&lt;br/&gt;&amp;gt; ##* PaymentRequest.PaymentDetails.merchant_data (in case of a BIP0070&lt;br/&gt;&amp;gt; payment)&lt;br/&gt;&amp;gt; ##* amount, label, message or other information from a BIP0021 URL&lt;br/&gt;&amp;gt; # The wallet identifies a transaction T, if possible. Otherwise it asks&lt;br/&gt;&amp;gt; the user to select among the ones that match the hints in 1.iii.&lt;br/&gt;&amp;gt; # The wallet creates an unsigned PoP (UPoP) for T, and asks the user to&lt;br/&gt;&amp;gt; sign it.&lt;br/&gt;&amp;gt; # The user confirms&lt;br/&gt;&amp;gt; # The UPoP(T) is signed by the wallet, creating PoP(T).&lt;br/&gt;&amp;gt; # The PoP is sent to the destination in 1.ii.&lt;br/&gt;&amp;gt; # The server receiving the PoP validates it and responds with “valid” or&lt;br/&gt;&amp;gt; “invalid”.&lt;br/&gt;&amp;gt; # The wallet displays the response in some way to the user.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; &amp;#39;&amp;#39;&amp;#39;Remarks:&amp;#39;&amp;#39;&amp;#39;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; * The method of transferring the PoP request at step 1 is not specified&lt;br/&gt;&amp;gt; here. Instead that is specified in separate specifications. See [btcpop&lt;br/&gt;&amp;gt; scheme BIP](btcpop scheme BIP).&lt;br/&gt;&amp;gt; * The nonce must be randomly generated by the server for every new PoP&lt;br/&gt;&amp;gt; request.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; === Validating a PoP ===&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; The server needs to validate the PoP and reply with &amp;#34;valid&amp;#34; or &amp;#34;invalid&amp;#34;.&lt;br/&gt;&amp;gt; That process is outlined below. If any step fails, the validation is&lt;br/&gt;&amp;gt; aborted and &amp;#34;invalid&amp;#34; is returned:&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; # Check the format of the PoP. It must pass normal transaction checks,&lt;br/&gt;&amp;gt; except that the inputs may already be spent.&lt;br/&gt;&amp;gt; # Check the PoP output at index 0. It must conform to the OP_RETURN output&lt;br/&gt;&amp;gt; format outlined above.&lt;br/&gt;&amp;gt; # Check that the rest of the outputs exactly corresponds to the outputs of&lt;br/&gt;&amp;gt; T and that they appear in the same order as in T. An exception to this is&lt;br/&gt;&amp;gt; that any OP_RETURN outputs of T must not be included in the PoP. All output&lt;br/&gt;&amp;gt; value from the OP_RETURN must instead be included in the PoP output.&lt;br/&gt;&amp;gt; # Check that the nonce is the same as the one you requested.&lt;br/&gt;&amp;gt; # Check that the inputs of the PoP are exactly the same as in transaction&lt;br/&gt;&amp;gt; T, and in the same order.&lt;br/&gt;&amp;gt; # Check the scripts of all the inputs, as would be done on a normal&lt;br/&gt;&amp;gt; transaction.&lt;br/&gt;&amp;gt; # Check that the txid in the PoP output is the transaction you actually&lt;br/&gt;&amp;gt; want proof for. If you don’t know exactly what transaction you want proof&lt;br/&gt;&amp;gt; for, check that the transaction actually pays for the product/service you&lt;br/&gt;&amp;gt; deliver.&lt;br/&gt;&amp;gt; # Return &amp;#34;valid&amp;#34;.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; == Security considerations ==&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; * Someone can intercept the PoP-request and change the PoP destination so&lt;br/&gt;&amp;gt; that the user sends the PoP to the bad actor.&lt;br/&gt;&amp;gt; * Someone can intercept the PoP-request and change for example the txid to&lt;br/&gt;&amp;gt; trick the user to sign a PoP for another transaction than the intended.&lt;br/&gt;&amp;gt; This can of course be avoided if the user is actually looking at the UPoP&lt;br/&gt;&amp;gt; before signing it. The bad actor could also set hints for a transaction,&lt;br/&gt;&amp;gt; existing or not, that the user didn’t make, resulting in a broken service.&lt;br/&gt;&amp;gt; * Someone can steal a PoP and try to use the service hoping to get a&lt;br/&gt;&amp;gt; matching nonce. Probability per try: 1/(2^48). The server should have a&lt;br/&gt;&amp;gt; mechanism for detecting a brute force attack of this kind, or at least slow&lt;br/&gt;&amp;gt; down the process by delaying the PoP request by some 100 ms or so.&lt;br/&gt;&amp;gt; * Even if a wallet has no funds it might still be valuable as a generator&lt;br/&gt;&amp;gt; for PoPs. This makes it important to keep the security of the wallet after&lt;br/&gt;&amp;gt; it has been emptied.&lt;br/&gt;&amp;gt; * Transaction malleability may cause the server to have another&lt;br/&gt;&amp;gt; transaction id than the wallet for the payment. In that case the wallet&lt;br/&gt;&amp;gt; will not be able to prove the transaction for the server. Wallets should&lt;br/&gt;&amp;gt; not rely on the transaction id of the outgoing transaction. Instead it&lt;br/&gt;&amp;gt; should listen for the transaction on the network and put that in its list&lt;br/&gt;&amp;gt; of transactions.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; The first two issues are the same attack vector as for traditional, ie&lt;br/&gt;&amp;gt; BIP0021, bitcoin payments. They could be mitigated by using secure&lt;br/&gt;&amp;gt; connections.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; == Reference implementation ==&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; [&lt;a href=&#34;https://github.com/kallerosenbaum/poppoc&#34;&gt;https://github.com/kallerosenbaum/poppoc&lt;/a&gt; poppoc on GitHub]&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; [&lt;a href=&#34;https://github.com/kallerosenbaum/wallet&#34;&gt;https://github.com/kallerosenbaum/wallet&lt;/a&gt; Mycelium fork on GitHub]&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; == References ==&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; [&lt;a href=&#34;https://github.com/bitcoin/bips/blob/master/bip-0021.mediawiki&#34;&gt;https://github.com/bitcoin/bips/blob/master/bip-0021.mediawiki&lt;/a&gt; BIP0021]:&lt;br/&gt;&amp;gt; URI Scheme&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; [&lt;a href=&#34;https://github.com/bitcoin/bips/blob/master/bip-0070.mediawiki&#34;&gt;https://github.com/bitcoin/bips/blob/master/bip-0070.mediawiki&lt;/a&gt; BIP0070]:&lt;br/&gt;&amp;gt; Payment Protocol&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; [[btcpop scheme BIP]]&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; ------------------------------------------------------------------------------&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; _______________________________________________&lt;br/&gt;&amp;gt; Bitcoin-development mailing list&lt;br/&gt;&amp;gt; Bitcoin-development at lists.sourceforge.net&lt;br/&gt;&amp;gt; &lt;a href=&#34;https://lists.sourceforge.net/lists/listinfo/bitcoin-development&#34;&gt;https://lists.sourceforge.net/lists/listinfo/bitcoin-development&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/20150606/f67abf67/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20150606/f67abf67/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T17:36:47&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsfrhaamt5kmsq9daxn78wlyt9323630zajy32hakad68fkqr5n7yszypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvg4uun9</id>
    
      <title type="html">📅 Original date posted:2015-05-28 📝 Original message:&amp;gt; ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsfrhaamt5kmsq9daxn78wlyt9323630zajy32hakad68fkqr5n7yszypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvg4uun9" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqszfvpmyan7su06x759y8ws0676h3772sc83c4czh0ry5q9y9myq7c75jlac&#39;&gt;nevent1q…jlac&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2015-05-28&lt;br/&gt;📝 Original message:&amp;gt; until we have size-independent new block propagation&lt;br/&gt;&lt;br/&gt;I don&amp;#39;t really believe that is possible. I&amp;#39;ll argue why below. To be clear,&lt;br/&gt;this is not an argument against increasing the block size, only against&lt;br/&gt;using the assumption of size-independent propagation.&lt;br/&gt;&lt;br/&gt;There are several significant improvements likely possible to various&lt;br/&gt;aspects of block propagation, but I don&amp;#39;t believe you can make any part&lt;br/&gt;completely size-independent. Perhaps the remaining aspects result in terms&lt;br/&gt;in the total time that vanish compared to the link latencies for 1 MB&lt;br/&gt;blocks, but there will be some block sizes for which this is no longer the&lt;br/&gt;case, and we need to know where that is the case.&lt;br/&gt;&lt;br/&gt;* You can&amp;#39;t assume that every transaction is pre-relayed and pre-validated.&lt;br/&gt;This can happen due to non-uniform relay policies (different codebases, and&lt;br/&gt;future things like size-limited mempools), double spend attempts, and&lt;br/&gt;transactions generated before a block had time to propagate. You&amp;#39;ve&lt;br/&gt;previously argued for a policy of not including too recent transactions,&lt;br/&gt;but that requires a bound on network diameter, and if these late&lt;br/&gt;transactions are profitable, it has exactly the same problem as making&lt;br/&gt;larger blocks non-proportionally more economic for larger pools groups if&lt;br/&gt;propagation time is size dependent).&lt;br/&gt;  * This results in extra bandwidth usage for efficient relay protocols,&lt;br/&gt;and if discrepancy estimation mispredicts the size of IBLT or error&lt;br/&gt;correction data needed, extra roundtrips.&lt;br/&gt;  * Signature validation for unrelayed transactions will be needed at block&lt;br/&gt;relay time.&lt;br/&gt;  * Database lookups for the inputs of unrelayed transactions cannot be&lt;br/&gt;cached in advance.&lt;br/&gt;&lt;br/&gt;* Block validation with 100% known and pre-validated transactions is not&lt;br/&gt;constant time, due to updates that need to be made to the UTXO set (and&lt;br/&gt;future ideas like UTXO commitments would make this effect an order of&lt;br/&gt;magnitude worse).&lt;br/&gt;&lt;br/&gt;* More efficient relay protocols also have higher CPU cost for&lt;br/&gt;encoding/decoding.&lt;br/&gt;&lt;br/&gt;Again, none of this is a reason why the block size can&amp;#39;t increase. If&lt;br/&gt;availability of hardware with higher bandwidth, faster disk/ram access&lt;br/&gt;times, and faster CPUs increases, we should be able to have larger blocks&lt;br/&gt;with the same propagation profile as smaller blocks with earlier technology.&lt;br/&gt;&lt;br/&gt;But we should know how technology scales with larger blocks, and I don&amp;#39;t&lt;br/&gt;believe we do, apart from microbenchmarks in laboratory conditions.&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter&lt;br/&gt; On Fri, May 8, 2015 at 3:20 AM, Matt Whitlock &amp;lt;bip at mattwhitlock.name&amp;gt;&lt;br/&gt;wrote:&lt;br/&gt;&lt;br/&gt;&amp;gt; Between all the flames on this list, several ideas were raised that did&lt;br/&gt;&amp;gt; not get much attention. I hereby resubmit these ideas for consideration and&lt;br/&gt;&amp;gt; discussion.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; - Perhaps the hard block size limit should be a function of the actual&lt;br/&gt;&amp;gt; block sizes over some trailing sampling period. For example, take the&lt;br/&gt;&amp;gt; median block size among the most recent 2016 blocks and multiply it by 1.5.&lt;br/&gt;&amp;gt; This allows Bitcoin to scale up gradually and organically, rather than&lt;br/&gt;&amp;gt; having human beings guessing at what is an appropriate limit.&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;A lot of people like this idea, or something like it. It is nice and&lt;br/&gt;simple, which is really important for consensus-critical code.&lt;br/&gt;&lt;br/&gt;With this rule in place, I believe there would be more &amp;#34;fee pressure&amp;#34;&lt;br/&gt;(miners would be creating smaller blocks) today. I created a couple of&lt;br/&gt;histograms of block sizes to infer what policy miners are ACTUALLY&lt;br/&gt;following today with respect to block size:&lt;br/&gt;&lt;br/&gt;Last 1,000 blocks:&lt;br/&gt;  &lt;a href=&#34;http://bitcoincore.org/~gavin/sizes_last1000.html&#34;&gt;http://bitcoincore.org/~gavin/sizes_last1000.html&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Notice a big spike at 750K -- the default size for Bitcoin Core.&lt;br/&gt;This graph might be misleading, because transaction volume or fees might&lt;br/&gt;not be high enough over the last few days to fill blocks to whatever limit&lt;br/&gt;miners are willing to mine.&lt;br/&gt;&lt;br/&gt;So I graphed a time when (according to statoshi.info) there WERE a lot of&lt;br/&gt;transactions waiting to be confirmed:&lt;br/&gt;   &lt;a href=&#34;http://bitcoincore.org/~gavin/sizes_357511.html&#34;&gt;http://bitcoincore.org/~gavin/sizes_357511.html&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;That might also be misleading, because it is possible there were a lot of&lt;br/&gt;transactions waiting to be confirmed because miners who choose to create&lt;br/&gt;small blocks got lucky and found more blocks than normal.  In fact, it&lt;br/&gt;looks like that is what happened: more smaller-than-normal blocks were&lt;br/&gt;found, and the memory pool backed up.&lt;br/&gt;&lt;br/&gt;So: what if we had a dynamic maximum size limit based on recent history?&lt;br/&gt;&lt;br/&gt;The average block size is about 400K, so a 1.5x rule would make the max&lt;br/&gt;block size 600K; miners would definitely be squeezing out transactions /&lt;br/&gt;putting pressure to increase transaction fees. Even a 2x rule (implying&lt;br/&gt;800K max blocks) would, today, be squeezing out transactions / putting&lt;br/&gt;pressure to increase fees.&lt;br/&gt;&lt;br/&gt;Using a median size instead of an average means the size can increase or&lt;br/&gt;decrease more quickly. For example, imagine the rule is &amp;#34;median of last&lt;br/&gt;2016 blocks&amp;#34; and 49% of miners are producing 0-size blocks and 51% are&lt;br/&gt;producing max-size blocks. The median is max-size, so the 51% have total&lt;br/&gt;control over making blocks bigger.  Swap the roles, and the median is&lt;br/&gt;min-size.&lt;br/&gt;&lt;br/&gt;Because of that, I think using an average is better-- it means the max size&lt;br/&gt;will change (up or down) more slowly.&lt;br/&gt;&lt;br/&gt;I also think 2016 blocks is too long, because transaction volumes change&lt;br/&gt;quicker than that. An average over 144 blocks (last 24 hours) would be&lt;br/&gt;better able to handle increased transaction volume around major holidays,&lt;br/&gt;and would also be able to react more quickly if an economically irrational&lt;br/&gt;attacker attempted to flood the network with fee-paying transactions.&lt;br/&gt;&lt;br/&gt;So my straw-man proposal would be:  max size 2x average size over last 144&lt;br/&gt;blocks, calculated at every block.&lt;br/&gt;&lt;br/&gt;There are a couple of other changes I&amp;#39;d pair with that consensus change:&lt;br/&gt;&lt;br/&gt;&#43; Make the default mining policy for Bitcoin Core neutral-- have its target&lt;br/&gt;block size be the average size, so miners that don&amp;#39;t care will &amp;#34;go along&lt;br/&gt;with the people who do care.&amp;#34;&lt;br/&gt;&lt;br/&gt;&#43; Use something like Greg&amp;#39;s formula for size instead of bytes-on-the-wire,&lt;br/&gt;to discourage bloating the UTXO set.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;---------&lt;br/&gt;&lt;br/&gt;When I&amp;#39;ve proposed (privately, to the other core committers) some dynamic&lt;br/&gt;algorithm the objection has been &amp;#34;but that gives miners complete control&lt;br/&gt;over the max block size.&amp;#34;&lt;br/&gt;&lt;br/&gt;I think that worry is unjustified right now-- certainly, until we have&lt;br/&gt;size-independent new block propagation there is an incentive for miners to&lt;br/&gt;keep their blocks small, and we see miners creating small blocks even when&lt;br/&gt;there are fee-paying transactions waiting to be confirmed.&lt;br/&gt;&lt;br/&gt;I don&amp;#39;t even think it will be a problem if/when we do have size-independent&lt;br/&gt;new block propagation, because I think the combination of the random timing&lt;br/&gt;of block-finding plus a dynamic limit as described above will create a&lt;br/&gt;healthy system.&lt;br/&gt;&lt;br/&gt;If I&amp;#39;m wrong, then it seems to me the miners will have a very strong&lt;br/&gt;incentive to, collectively, impose whatever rules are necessary (maybe a&lt;br/&gt;soft-fork to put a hard cap on block size) to make the system healthy again.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;--&lt;br/&gt;Gavin Andresen&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;------------------------------------------------------------------------------&lt;br/&gt;&lt;br/&gt;_______________________________________________&lt;br/&gt;Bitcoin-development mailing list&lt;br/&gt;Bitcoin-development at lists.sourceforge.net&lt;br/&gt;&lt;a href=&#34;https://lists.sourceforge.net/lists/listinfo/bitcoin-development&#34;&gt;https://lists.sourceforge.net/lists/listinfo/bitcoin-development&lt;/a&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/20150528/5c893428/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20150528/5c893428/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T17:34:10&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsyzmhhg4n4540slrw4f57862ymgct8am3y50hrhqhe64z7kykn76gzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvcg7gne</id>
    
      <title type="html">📅 Original date posted:2015-04-17 📝 Original message:&amp;gt; ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsyzmhhg4n4540slrw4f57862ymgct8am3y50hrhqhe64z7kykn76gzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvcg7gne" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs0jvj5kc0gk5axtxh2mfyrpvm0zlqjp657jju3n5wydxene8jvc7sg6ghqr&#39;&gt;nevent1q…ghqr&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2015-04-17&lt;br/&gt;📝 Original message:&amp;gt; Anyone can alter the txid - more details needed. The number of altered&lt;br/&gt;&amp;gt; txids in practice is not so high in order to make us believe anyone can&lt;br/&gt;&amp;gt; do it easily. It is obvious that all current bitcoin transactions are&lt;br/&gt;&amp;gt; malleable, but not by anyone and not that easy. At least I like to think&lt;br/&gt;so.&lt;br/&gt;&lt;br/&gt;Don&amp;#39;t assume that because it does not (frequently) happen, that it cannot&lt;br/&gt;happen. Large amounts of malleated transactions have happened in the past.&lt;br/&gt;Especially if you build a system depends on non-malleability for its&lt;br/&gt;security, you may at some point have an attacker who has financial gain&lt;br/&gt;from malleation.&lt;br/&gt;&lt;br/&gt;&amp;gt; &amp;gt;From your answer I understand that right now if I create a transaction&lt;br/&gt;&amp;gt; (tx1) and broadcast it, you can alter its txid at your will, without any&lt;br/&gt;&amp;gt; mining power and/or access to my private keys so I would end up not&lt;br/&gt;&amp;gt; recognizing my own transaction and probably my change too (if my systems&lt;br/&gt;&amp;gt; rely hardly on txid)?&lt;br/&gt;&lt;br/&gt;In theory, yes, anyone can alter the txid without invalidating it, without&lt;br/&gt;mining power and without access to the sender&amp;#39;s private keys.&lt;br/&gt;&lt;br/&gt;All it requires is seeing a transaction on the network, doing a trivial&lt;br/&gt;modification to it, and rebroadcasting it quickly. If the modifies version&lt;br/&gt;gets mined, you&amp;#39;re out of luck. Having mining power helps of course.&lt;br/&gt;&lt;br/&gt;After BIP62, you will, as a sender, optionally be able to protect others&lt;br/&gt;from malleating. You&amp;#39;re always able to re-sign yourself.&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter&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/20150417/0f221669/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20150417/0f221669/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T17:32:31&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs8rwfgpnxpprdsve7sar7pkr75x4cyjvwzkyjqm55w9tc82n2dnhqzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dv9g54fv</id>
    
      <title type="html">📅 Original date posted:2015-01-20 📝 Original message:Hello ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs8rwfgpnxpprdsve7sar7pkr75x4cyjvwzkyjqm55w9tc82n2dnhqzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dv9g54fv" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsyxjvfj740d8xz3sgg7c8j5z56rm4t23x0felean345ye6c9wtfsgs9lcsn&#39;&gt;nevent1q…lcsn&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2015-01-20&lt;br/&gt;📝 Original message:Hello everyone,&lt;br/&gt;&lt;br/&gt;We&amp;#39;ve been aware of the risk of depending on OpenSSL for consensus&lt;br/&gt;rules for a while, and were trying to get rid of this as part of BIP&lt;br/&gt;62 (malleability protection), which was however postponed due to&lt;br/&gt;unforeseen complexities. The recent evens (see the thread titled&lt;br/&gt;&amp;#34;OpenSSL 1.0.0p / 1.0.1k incompatible, causes blockchain rejection.&amp;#34;&lt;br/&gt;on this mailing list) have made it clear that the problem is very&lt;br/&gt;real, however, and I would prefer to have a fundamental solution for&lt;br/&gt;it sooner rather than later.&lt;br/&gt;&lt;br/&gt;I therefore propose a softfork to make non-DER signatures illegal&lt;br/&gt;(they&amp;#39;ve been non-standard since v0.8.0). A draft BIP text can be&lt;br/&gt;found on:&lt;br/&gt;&lt;br/&gt;    &lt;a href=&#34;https://gist.github.com/sipa/5d12c343746dad376c80&#34;&gt;https://gist.github.com/sipa/5d12c343746dad376c80&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;The document includes motivation and specification. In addition, an&lt;br/&gt;implementation (including unit tests derived from the BIP text) can be&lt;br/&gt;found on:&lt;br/&gt;&lt;br/&gt;    &lt;a href=&#34;https://github.com/sipa/bitcoin/commit/bipstrictder&#34;&gt;https://github.com/sipa/bitcoin/commit/bipstrictder&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Comments/criticisms are very welcome, but I&amp;#39;d prefer keeping the&lt;br/&gt;discussion here on the mailinglist (which is more accessible than on&lt;br/&gt;the gist).&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter
    </content>
    <updated>2023-06-07T17:28:51&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsqfye5u4hxxckrufc6akff0gggu4ysvfe5ca2erl6ut8crwuejzmszypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvhn3l4k</id>
    
      <title type="html">📅 Original date posted:2015-01-21 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsqfye5u4hxxckrufc6akff0gggu4ysvfe5ca2erl6ut8crwuejzmszypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvhn3l4k" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsrs8y58y72qa84g48k3rvh3whjkuvaq0c8xa3jtd4emltwgr6dmys9kjhjc&#39;&gt;nevent1q…jhjc&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2015-01-21&lt;br/&gt;📝 Original message:On Tue, Jan 20, 2015 at 11:45 PM, Rusty Russell &amp;lt;rusty at rustcorp.com.au&amp;gt; wrote:&lt;br/&gt;&amp;gt; // Null bytes at the start of R are not allowed, unless it would otherwise be&lt;br/&gt;&amp;gt; // interpreted as a negative number.&lt;br/&gt;&amp;gt;     if (lenS &amp;gt; 1 &amp;amp;&amp;amp; (sig[lenR &#43; 6] == 0x00) &amp;amp;&amp;amp; !(sig[lenR &#43; 7] &amp;amp; 0x80))&lt;br/&gt;&amp;gt;     return false;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; You mean &amp;#34;null bytes at the start of S&amp;#34;.&lt;br/&gt;&lt;br/&gt;Thanks, fixed.&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter
    </content>
    <updated>2023-06-07T17:28:51&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqswkr9kpu7v0wc06wr35qsmkh9srkv5keynevl9usskuqde7cqrqrgzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvlqpes4</id>
    
      <title type="html">📅 Original date posted:2014-09-15 📝 Original message:WoT is ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqswkr9kpu7v0wc06wr35qsmkh9srkv5keynevl9usskuqde7cqrqrgzypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvlqpes4" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs9grd97as4m6q54qpd69dhc4hyxgh2w62m2xsqke5y2gcy0x7d8ug05esem&#39;&gt;nevent1q…esem&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2014-09-15&lt;br/&gt;📝 Original message:WoT is a perfectly reasonable way to establish trust about the link between&lt;br/&gt;an online identity and a real world identity.&lt;br/&gt;&lt;br/&gt;In the case of a developer with an existing reputation for his online&lt;br/&gt;identity, that link is just irrelevant.&lt;br/&gt;On Sep 15, 2014 4:52 PM, &amp;#34;Brian Hoffman&amp;#34; &amp;lt;brianchoffman at gmail.com&amp;gt; wrote:&lt;br/&gt;&lt;br/&gt;&amp;gt; In the context of Bitcoin I will concede that perhaps it holds true for&lt;br/&gt;&amp;gt; now.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; I also never said the actual credential you receive from a government&lt;br/&gt;&amp;gt; agency is trustable. I completely agree that they are forgeable and not&lt;br/&gt;&amp;gt; necessarily reliable. That was not my point. I was referring to the vetting&lt;br/&gt;&amp;gt; process before issuance.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Just as you have behavioral characteristics online that contribute to&lt;br/&gt;&amp;gt; trusting an &amp;#34;identity&amp;#34; you also exhibit in person attributes, such as&lt;br/&gt;&amp;gt; physically being in a specific location at a certain time or blue eyes or&lt;br/&gt;&amp;gt; biometrics, that are valuable. You simply cannot capture those in an&lt;br/&gt;&amp;gt; online-only world. I don&amp;#39;t see how you can deny the value there.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; You are most certainly and undeniably the expert in the Bitcoin context&lt;br/&gt;&amp;gt; here so I will not even attempt to argue with you on that, but I just think&lt;br/&gt;&amp;gt; it&amp;#39;s not realistic to ignore the value of an in-person network in other&lt;br/&gt;&amp;gt; contexts. You called it &amp;#34;geek wanking&amp;#34; with no qualifier &amp;#34;in the Bitcoin&lt;br/&gt;&amp;gt; context&amp;#34; so excuse me if I misunderstood your intent.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; On Mon, Sep 15, 2014 at 10:33 AM, Jeff Garzik &amp;lt;jgarzik at bitpay.com&amp;gt; wrote:&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; It applies to OP, bitcoin community development and Satoshi.&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;#34;value of in person vetting of identity is undeniable&amp;#34;...  no it is&lt;br/&gt;&amp;gt;&amp;gt; quite deniable. Satoshi is the quintessential example. We value brain&lt;br/&gt;&amp;gt;&amp;gt; output, code.  The real world identity is irrelevant to whether or not&lt;br/&gt;&amp;gt;&amp;gt; bitcoin continues to function.&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; The currency of bitcoin development is code, and electronic messages&lt;br/&gt;&amp;gt;&amp;gt; describing cryptographic theses.  _That_ is the relevant fingerprint.&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; Governmental id is second class, can be forged or simply present a&lt;br/&gt;&amp;gt;&amp;gt; different individual from that who is online.  PGP WoT wanking does&lt;br/&gt;&amp;gt;&amp;gt; not solve that problem at all.&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;&lt;br/&gt;&amp;gt;&amp;gt; On Mon, Sep 15, 2014 at 9:32 AM, Brian Hoffman &amp;lt;brianchoffman at gmail.com&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; wrote:&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; I would agree that the in person aspect of the WoT is frustrating, but&lt;br/&gt;&amp;gt;&amp;gt; to dismiss this as &amp;#34;geek wanking&amp;#34; is the pot calling the kettle.&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; The value of in person vetting of identity is undeniable. Just because&lt;br/&gt;&amp;gt;&amp;gt; your risk acceptance is difference doesn&amp;#39;t make it wanking. Please go see&lt;br/&gt;&amp;gt;&amp;gt; if you can get any kind of governmental clearance of credential without&lt;br/&gt;&amp;gt;&amp;gt; in-person vetting. Ask them if they accept your behavioral signature.&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; I know there is a lot of PGP hating these days but this comment doesn&amp;#39;t&lt;br/&gt;&amp;gt;&amp;gt; necessarily apply to every situation.&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; On Sep 15, 2014, at 9:08 AM, Jeff Garzik &amp;lt;jgarzik at bitpay.com&amp;gt; wrote:&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; On Mon, Sep 15, 2014 at 3:23 AM, Thomas Zander &amp;lt;&lt;br/&gt;&amp;gt;&amp;gt; thomas at thomaszander.se&amp;gt; wrote:&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; Any and all PGP related howtos will tell you that you should not&lt;br/&gt;&amp;gt;&amp;gt; trust or sign&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; a formerly-untrusted PGP (or GPG for that matter) key without seeing&lt;br/&gt;&amp;gt;&amp;gt; that&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; person in real life, verifying their identity etc.&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; Such guidelines are a perfect example of why PGP WoT is useless and&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; stupid geek wanking.&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; A person&amp;#39;s behavioural signature is what is relevant.  We know how&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; Satoshi coded and wrote.  It was the online Satoshi with which we&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; interacted.  The online Satoshi&amp;#39;s PGP signature would be fine...&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; assuming he established a pattern of use.&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; As another example, I know the code contributions and PGP key signed&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; by the online entity known as &amp;#34;sipa.&amp;#34;  At a bitcoin conf I met a&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; person with photo id labelled &amp;#34;Pieter Wuille&amp;#34; who claimed to be sipa,&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; but that could have been an actor.  Absent a laborious and boring&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; signed challenge process, for all we know, &amp;#34;sipa&amp;#34; is a supercomputing&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; cluster of 500 gnomes.&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; The point is, the &amp;#34;online entity known as Satoshi&amp;#34; is the relevant&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; fingerprint.  That is easily established without any in-person&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; meetings.&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; --&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; Jeff Garzik&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; Bitcoin core developer and open source evangelist&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; BitPay, Inc.      &lt;a href=&#34;https://bitpay.com/&#34;&gt;https://bitpay.com/&lt;/a&gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; ------------------------------------------------------------------------------&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; Want excitement?&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; Manually upgrade your production database.&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; When you want reliability, choose Perforce&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; Perforce version control. Predictably reliable.&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &lt;a href=&#34;http://pubads.g.doubleclick.net/gampad/clk?id=157508191&amp;amp;iu=/4140/ostg.clktrk&#34;&gt;http://pubads.g.doubleclick.net/gampad/clk?id=157508191&amp;amp;iu=/4140/ostg.clktrk&lt;/a&gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; _______________________________________________&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; Bitcoin-development mailing list&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; Bitcoin-development at lists.sourceforge.net&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; &lt;a href=&#34;https://lists.sourceforge.net/lists/listinfo/bitcoin-development&#34;&gt;https://lists.sourceforge.net/lists/listinfo/bitcoin-development&lt;/a&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; Jeff Garzik&lt;br/&gt;&amp;gt;&amp;gt; Bitcoin core developer and open source evangelist&lt;br/&gt;&amp;gt;&amp;gt; BitPay, Inc.      &lt;a href=&#34;https://bitpay.com/&#34;&gt;https://bitpay.com/&lt;/a&gt;&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; ------------------------------------------------------------------------------&lt;br/&gt;&amp;gt; Want excitement?&lt;br/&gt;&amp;gt; Manually upgrade your production database.&lt;br/&gt;&amp;gt; When you want reliability, choose Perforce&lt;br/&gt;&amp;gt; Perforce version control. Predictably reliable.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; &lt;a href=&#34;http://pubads.g.doubleclick.net/gampad/clk?id=157508191&amp;amp;iu=/4140/ostg.clktrk&#34;&gt;http://pubads.g.doubleclick.net/gampad/clk?id=157508191&amp;amp;iu=/4140/ostg.clktrk&lt;/a&gt;&lt;br/&gt;&amp;gt; _______________________________________________&lt;br/&gt;&amp;gt; Bitcoin-development mailing list&lt;br/&gt;&amp;gt; Bitcoin-development at lists.sourceforge.net&lt;br/&gt;&amp;gt; &lt;a href=&#34;https://lists.sourceforge.net/lists/listinfo/bitcoin-development&#34;&gt;https://lists.sourceforge.net/lists/listinfo/bitcoin-development&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/20140915/1fda7d57/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20140915/1fda7d57/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T17:25:47&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsv0a0rhden4qf7tjm6uxy9erl5dxn0wm28vg2nqag5aj5r0dj9wmczypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dv8mmnk3</id>
    
      <title type="html">📅 Original date posted:2014-08-23 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsv0a0rhden4qf7tjm6uxy9erl5dxn0wm28vg2nqag5aj5r0dj9wmczypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dv8mmnk3" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsx9dqx9clrp3teqwwwe0rgzcy5et8va7s7xh6zdv5ahfpgkjscl2sjf89s9&#39;&gt;nevent1q…89s9&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2014-08-23&lt;br/&gt;📝 Original message:On Sat, Aug 23, 2014 at 8:17 AM, Troy Benjegerdes &amp;lt;hozer at hozed.org&amp;gt; wrote:&lt;br/&gt;&amp;gt; On Fri, Aug 22, 2014 at 09:20:11PM &#43;0200, xor wrote:&lt;br/&gt;&amp;gt;&amp;gt; On Tuesday, August 19, 2014 08:02:37 AM Jeff Garzik wrote:&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; It would be nice if the issues and git repo for Bitcoin Core were not&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; on such a centralized service as github, nice and convenient as it is.&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; Assuming there is a problem with that usually is caused by using Git the wrong&lt;br/&gt;&amp;gt;&amp;gt; way or not knowing its capabilities. Nobody can modify / insert a commit&lt;br/&gt;&amp;gt;&amp;gt; before a GnuPG signed commit / tag without breaking the signature.&lt;br/&gt;&amp;gt;&amp;gt; More detail at the bottom at [1], I am sparing you this here because I suspect&lt;br/&gt;&amp;gt;&amp;gt; you already know it and there is something more important I want to stress:&lt;br/&gt;&lt;br/&gt;Note that we&amp;#39;re generally aiming (though not yet enforcing) to have&lt;br/&gt;merges done through the github-merge tool, which performs the merge&lt;br/&gt;locally, shows the resulting diff, compares it with the merge done by&lt;br/&gt;github, and GnuPG signs it.&lt;br/&gt;&lt;br/&gt;That allows using github as easy-access mechanism for people to&lt;br/&gt;contribute and inspect, while having a higher security standard for&lt;br/&gt;the actual changes done to master.&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter
    </content>
    <updated>2023-06-07T17:25:31&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsva5dvxgml7pnesqu6urrq4stcruc6n38zaumujjeswgxzz05ms7szypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvvwt9r0</id>
    
      <title type="html">📅 Original date posted:2014-07-18 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsva5dvxgml7pnesqu6urrq4stcruc6n38zaumujjeswgxzz05ms7szypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvvwt9r0" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsrq8dmnyre74fytyzdk63ws530ju8grjeanpdfj6yx2av97yzcx4s4zmdx8&#39;&gt;nevent1q…mdx8&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2014-07-18&lt;br/&gt;📝 Original message:On Fri, Jul 18, 2014 at 5:45 PM, Pieter Wuille &amp;lt;pieter.wuille at gmail.com&amp;gt; wrote:&lt;br/&gt;&amp;gt; But perhaps we should investigate how many non-DER signatures still&lt;br/&gt;&amp;gt; make it into blocks first...&lt;br/&gt;&lt;br/&gt;In the last 11 blocks (4148 transactions), apparently none.&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter
    </content>
    <updated>2023-06-07T17:24:14&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqstg66m9jxa8r0grdusrf6xxx73md6mn9065ul2hezvqv94q474z8szypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvuf0phs</id>
    
      <title type="html">📅 Original date posted:2014-07-18 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqstg66m9jxa8r0grdusrf6xxx73md6mn9065ul2hezvqv94q474z8szypwtyxl46le9482xs7t38j7nysemhsgwgrhczw3u9rl8x405np2dvuf0phs" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsva5dvxgml7pnesqu6urrq4stcruc6n38zaumujjeswgxzz05ms7sahyuww&#39;&gt;nevent1q…yuww&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2014-07-18&lt;br/&gt;📝 Original message:On Fri, Jul 18, 2014 at 7:25 PM, Pieter Wuille &amp;lt;pieter.wuille at gmail.com&amp;gt; wrote:&lt;br/&gt;&amp;gt; On Fri, Jul 18, 2014 at 5:45 PM, Pieter Wuille &amp;lt;pieter.wuille at gmail.com&amp;gt; wrote:&lt;br/&gt;&amp;gt;&amp;gt; But perhaps we should investigate how many non-DER signatures still&lt;br/&gt;&amp;gt;&amp;gt; make it into blocks first...&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; In the last 11 blocks (4148 transactions), apparently none.&lt;br/&gt;&lt;br/&gt;Or even in the last 389 blocks (159466 transactions).&lt;br/&gt;&lt;br/&gt;-- &lt;br/&gt;Pieter
    </content>
    <updated>2023-06-07T17:24:14&#43;02:00</updated>
  </entry>

</feed>