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




  <entry>
    <id>https://nostr.ae/nevent1qqsvxm5lttr2vryp6pvvusprajpj5g25vza78gjkdhnavmytt8rsy6gzyzr56ssgueq8g7kmuhz3xkct7tj00mjng43p9n3ntgew0at5zrt2k38xwtt</id>
    
      <title type="html">📅 Original date posted:2023-05-24 🗒️ Summary of this ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsvxm5lttr2vryp6pvvusprajpj5g25vza78gjkdhnavmytt8rsy6gzyzr56ssgueq8g7kmuhz3xkct7tj00mjng43p9n3ntgew0at5zrt2k38xwtt" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsvue5ce9n4zml6c37cshcw2apgqnr3pxw0zjznss9gndnnag0k55ctpnyjt&#39;&gt;nevent1q…nyjt&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2023-05-24&lt;br/&gt;🗒️ Summary of this message: The Ark service providers create pool transactions every 5 seconds, but it&amp;#39;s unclear whether they replace, spend, or create separate transactions, and how they prevent ASPs from taking all the money.&lt;br/&gt;📝 Original message:Hi - thanks for the Ark write up; I have a bunch of questions but here&amp;#39;s 2:&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;Q1:&lt;br/&gt;&amp;#34;Pool transactions are created by ark service providers perpetually&lt;br/&gt;every 5 seconds&amp;#34;&lt;br/&gt;&lt;br/&gt;What exactly happens every 5 seconds?  From the 15.44.21-p-1080.png&lt;br/&gt;diagram [1], a pool transaction is a bitcoin transaction, with all the&lt;br/&gt;inputs coming from the ASP.  My understanding is that every 5 seconds,&lt;br/&gt;we progress from PoolTx(N) to PoolTx(N&#43;1).  Does the ASP sign a new&lt;br/&gt;transaction which spends the same ASP funding inputs as the previous&lt;br/&gt;pool transaction, which is a double spend or fee bump?  Or does it&lt;br/&gt;spend the outputs from the previous PoolTx?&lt;br/&gt;&lt;br/&gt;In other words, does PoolTx(2) replace PoolTx(1) RBF-style, spending&lt;br/&gt;the same inputs (call this method A), or does PoolTx(2) spend an&lt;br/&gt;output Of Pooltx(1) such that PoolTx(1) must be confirmed in order for&lt;br/&gt;PoolTx(2) to become valid (method B)?  Or are they completely separate&lt;br/&gt;transactions with unconflicting inputs (method C)?&lt;br/&gt;&lt;br/&gt;When the ASP creates a pool transaction, what do they do with it?  Do&lt;br/&gt;they broadcast it to the gossip network?  Or share it with other pool&lt;br/&gt;participants?&lt;br/&gt;&lt;br/&gt;With method A, if the ASP shares pool transactions with other people,&lt;br/&gt;there Doesn&amp;#39;t seem to be any way to ensure which PoolTx gets&lt;br/&gt;confirmed, invalidating all the other ones.  They&amp;#39;re all valid so&lt;br/&gt;whichever gets into a block first wins.&lt;br/&gt;&lt;br/&gt;With method B, there seems to be a large on-chain load, with ~120&lt;br/&gt;chained transactions trying to get in every block. This wouldn&amp;#39;t play&lt;br/&gt;nicely with mempool standardness and doesn&amp;#39;t seem like you could ever&lt;br/&gt;&amp;#34;catch up&amp;#34;.&lt;br/&gt;&lt;br/&gt;With method C, ASPs would need a pretty large number of inputs but&lt;br/&gt;could recycle them as blocks confirm.  It would cost a lot but maybe&lt;br/&gt;could work.&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;Q2:&lt;br/&gt;&lt;br/&gt;The other part I&amp;#39;m missing is: what prevents the ASP from taking all&lt;br/&gt;the money?  Before even getting to vTXOs and connector outputs, from&lt;br/&gt;the diagram there are only ASP inputs funding the pool transaction.&lt;br/&gt;If the pool transaction is confirmed, the vTXOs are locked in place,&lt;br/&gt;since the vTXO output cannot be changed and commits to all&lt;br/&gt;&amp;#34;constrained outs&amp;#34; via OP_CTV.  If the pool transaction is&lt;br/&gt;unconfirmed, the ASP can create &amp;amp; sign a transaction spending all ASP&lt;br/&gt;funding inputs sending the money back to the ASP, or anywhere else.&lt;br/&gt;In this case, users don&amp;#39;t have any assurance that their vTXO can ever&lt;br/&gt;turn into a real UTXO; the ASP can &amp;#34;rug-pull&amp;#34; at any time, taking all&lt;br/&gt;the money in the pool.  Adding other inputs not controlled by the ASP&lt;br/&gt;to the transaction wouldn&amp;#39;t seem to fix the problem, because then any&lt;br/&gt;user removing their inputs would cancel the whole transaction.&lt;br/&gt;&lt;br/&gt;More detail about how these transactions work would be appreciated, thanks!&lt;br/&gt;&lt;br/&gt;-Tadge&lt;br/&gt;&lt;br/&gt;[1]  &lt;img src=&#34;https://uploads-ssl.webflow.com/645ae2e299ba34372614141d/6467d1f1bf91e0bf2c2eddef_Screen%20Shot%202023-05-19%20at%2015.44.21-p-1080.png&#34;&gt; 
    </content>
    <updated>2023-06-08T01:21:54&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsyrrvnfyr3k25qyjkxafr7hektgyw34cruffswr6y50dkmtvc26cszyzr56ssgueq8g7kmuhz3xkct7tj00mjng43p9n3ntgew0at5zrt2ku6lcy6</id>
    
      <title type="html">📅 Original date posted:2017-05-10 📝 Original message:I ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsyrrvnfyr3k25qyjkxafr7hektgyw34cruffswr6y50dkmtvc26cszyzr56ssgueq8g7kmuhz3xkct7tj00mjng43p9n3ntgew0at5zrt2ku6lcy6" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs94nhr5s66wksrptq2uqgvemdc2npeeafe63lz54reffnwymwysfszekxf4&#39;&gt;nevent1q…kxf4&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2017-05-10&lt;br/&gt;📝 Original message:I messed up and only replied to Russel O&amp;#39;Connor; my response is copied below.&lt;br/&gt;And then there&amp;#39;s a bit more.&lt;br/&gt;&lt;br/&gt;-----&lt;br/&gt;Aha, Wagner&amp;#39;s generalized birthday attack, the bane of all clever tricks!&lt;br/&gt;I didn&amp;#39;t realize it applied in this case but looks like it in fact does.&lt;br/&gt; applies to this case.  It would have to be a miner performing the&lt;br/&gt;attack as the s-value would only be aggregated in the coinbase tx, but&lt;br/&gt;that&amp;#39;s hardly an impediment.&lt;br/&gt;&lt;br/&gt;In fact, sketching it out, it doesn&amp;#39;t look like the need to know m1,&lt;br/&gt;m2... m_n is a big problem.  Even if the m&amp;#39;s are fixed after being&lt;br/&gt;chosen based on the P1... Pn&amp;#39;s, (in bitcoin, m always commits to P so&lt;br/&gt;not sure why it&amp;#39;s needed in the hash) there is still freedom to&lt;br/&gt;collide the hashes.  The R values can be anything, so getting h(m1,&lt;br/&gt;R1, P1) &#43; h(m2, R2, P2)... to equal -h(m0, R0, P0) is doable with&lt;br/&gt;Wagner&amp;#39;s attack by varying R1, R2... to get different hashes.&lt;br/&gt;&lt;br/&gt;I *think* there is a viable defense against this attack, but it does&lt;br/&gt;make the whole aggregation setup less attractive.  The miner who&lt;br/&gt;calculates s-aggregate could also aggregate all the public keys from&lt;br/&gt;all the aggregated signatures in the block (P0, P1...), sort them and&lt;br/&gt;hash the concatenated list of pubkeys.  They could then multiply s by&lt;br/&gt;this combo-pubkey hash (call it h(c)).  Then when nodes verify the&lt;br/&gt;aggregate signature, they need to go through all the pubkeys in the&lt;br/&gt;block, create the same combo-pubkey hash, and multiply s by the&lt;br/&gt;multiplicative inverse of the h(c) they calculate, then verify s.  I&lt;br/&gt;believe this breaks the Wagner generalized birthday attack because&lt;br/&gt;every h(m_i, R_i, P_i)*h(c) included or omitted affects the c part of&lt;br/&gt;h(m0, R0, P0)*h(c).&lt;br/&gt;&lt;br/&gt;I&amp;#39;m not sure how badly this impacts the verification speed.  It might&lt;br/&gt;not be too bad for verification as it&amp;#39;s amortized over the whole&lt;br/&gt;block.  For the miner doing the aggregation it&amp;#39;s a bit slower as they&lt;br/&gt;need to re-sort and hash all the pubkeys every time a new signature is&lt;br/&gt;added.  Might not be too slow.&lt;br/&gt;&lt;br/&gt;I&amp;#39;m not super confident that this actually prevents the generalized&lt;br/&gt;birthday attack though.  I missed that attack in the previous post so&lt;br/&gt;I&amp;#39;m 0 for 1 against Wagner so far :)&lt;br/&gt;&lt;br/&gt;-----&lt;br/&gt;&lt;br/&gt;Andrew: Right, commiting to all the R values would also work; is there&lt;br/&gt;an advantage to using the R&amp;#39;s instead of the P&amp;#39;s?  At first glance it&lt;br/&gt;seems about the same.&lt;br/&gt;&lt;br/&gt;Another possible optimization: instead of sorting, concatenate all the&lt;br/&gt;R&amp;#39;s or P&amp;#39;s in the order they appear in the block.  Then have the miner&lt;br/&gt;commit to s*h(c)^1, the multiplicative inverse of the hash of all&lt;br/&gt;those values.  Then when nodes are verifying in IBD, they can just&lt;br/&gt;multiply by h(c) and they don&amp;#39;t have to compute the inverse.  A bit&lt;br/&gt;more work for the miner and a bit less for the nodes.&lt;br/&gt;&lt;br/&gt;-Tadge
    </content>
    <updated>2023-06-07T20:00:52&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqszvs24huj7ld9w8nvwvg3pl63tzdxhnx022fhhltga0uu7hamsnvgzyzr56ssgueq8g7kmuhz3xkct7tj00mjng43p9n3ntgew0at5zrt2krtfzu6</id>
    
      <title type="html">📅 Original date posted:2017-05-07 📝 Original message:If / ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqszvs24huj7ld9w8nvwvg3pl63tzdxhnx022fhhltga0uu7hamsnvgzyzr56ssgueq8g7kmuhz3xkct7tj00mjng43p9n3ntgew0at5zrt2krtfzu6" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqspae4srjumg42jl8588gma92308fezd3mt8nq5sfygvq7ywzgexaq7q7dkg&#39;&gt;nevent1q…7dkg&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2017-05-07&lt;br/&gt;📝 Original message:If / when Schnorr signatures are deployed in a future witness version, it&lt;br/&gt;may be possible to have non-interactive partial aggregation of the&lt;br/&gt;signatures on a per-block basis.  This could save quite a bit of space.  It&lt;br/&gt;*seems* not to have any security problems but this mailing list is very&lt;br/&gt;good at finding vulnerabilities so that type of feedback is the main reason&lt;br/&gt;I&amp;#39;m writing :) (A quick explanation of why this is horribly broken could&lt;br/&gt;save me lots of time!)&lt;br/&gt;(also sorry if this has been discussed; didn&amp;#39;t see anything)&lt;br/&gt;&lt;br/&gt;Quick recap / context of Schnorr sigs:&lt;br/&gt;&lt;br/&gt;There are a bunch of private keys x1, x2, x3...&lt;br/&gt;multiply by generator G to get x1G = P1, x2G = P2, x3G = P3&lt;br/&gt;&lt;br/&gt;Everyone makes their sighash m1, m2, m3, and their random nonces k1, k2, k3.&lt;br/&gt;&lt;br/&gt;To sign, people calculate s values:&lt;br/&gt;&lt;br/&gt;s1 = k1 - h(m1, R1, P1)x1&lt;br/&gt;s2 = k2 - h(m2, R2, P2)x2&lt;br/&gt;&lt;br/&gt;(adding the P2 into the e hash value is not in most literature /&lt;br/&gt;explanations but helps with some attacks; I beleive that&amp;#39;s the current&lt;br/&gt;thinking.  Anyway it doesn&amp;#39;t matter for this idea)&lt;br/&gt;&lt;br/&gt;Signature 1 is [R1, s1].  Verifiers check, given P1, m1, R1, s1:&lt;br/&gt;&lt;br/&gt;s1G =? R1 - h(m1, R1, P1)P1&lt;br/&gt;&lt;br/&gt;You can *interactively* make aggregate signatures, which requires&lt;br/&gt;co-signers to build an aggregate R value by coming up with their own k&lt;br/&gt;values, sharing their R with the co-signers, adding up the R&amp;#39;s to get a&lt;br/&gt;summed R, and using that to sign.&lt;br/&gt;&lt;br/&gt;Non-interactively though, it seems like you can aggregate half the&lt;br/&gt;signature.  The R values are unique to the [m, P] pair, but the s&amp;#39;s can be&lt;br/&gt;summed up:&lt;br/&gt;&lt;br/&gt;s1 &#43; s2 = k1 &#43; k2 - h(m1, R1, P1)x1 - h(m2, R2, P2)x2&lt;br/&gt;&lt;br/&gt;(s1 &#43; s2)G = R1 &#43; R2 - h(m1, R1, P1)P1 - h(m2, R2, P2)P2&lt;br/&gt;&lt;br/&gt;To use this property in Bitcoin, when making transactions, wallets can sign&lt;br/&gt;in the normal way, and the signature, consisting of [R, s] goes into the&lt;br/&gt;witness stack.  When miners generate a block, they remove the s-value from&lt;br/&gt;all compatible inputs, and commit to the aggregate s-value in the coinbase&lt;br/&gt;transaction (either in a new OP_RETURN or alongside the existing witness&lt;br/&gt;commitment structure).&lt;br/&gt;&lt;br/&gt;The obvious advatage is that signatures go down to 32 bytes each, so you&lt;br/&gt;can fit more of them in a block, and they take up less disk and network&lt;br/&gt;space.  (In IBD; if a node maintains a mempool they&amp;#39;ll need to receive all&lt;br/&gt;the separate s-values)&lt;br/&gt;&lt;br/&gt;Another advatage is that block verification is sped up.  For individual&lt;br/&gt;signatures, the computation involves:&lt;br/&gt;&lt;br/&gt;e = h(m1, R1, P1)           &amp;lt;- hash function, super fast&lt;br/&gt;e*P                         &amp;lt;- point multiplication, slowest&lt;br/&gt;R - e*P                     &amp;lt;- point addidion, pretty fast&lt;br/&gt;s*G                         &amp;lt;- base point multiplication, pretty slow&lt;br/&gt;&lt;br/&gt;with s-aggregate verification, the first three steps are still carried out&lt;br/&gt;on each signature, but the s*G operation only needs to be done once.&lt;br/&gt;Instead another point addition per signature is needed, where you have some&lt;br/&gt;accumulator and add in the left side:&lt;br/&gt;A &#43;= R - e*P&lt;br/&gt;this can be parallelized pretty well as it&amp;#39;s commutative.&lt;br/&gt;&lt;br/&gt;The main downside I can see (assuming this actually works) is that it&amp;#39;s&lt;br/&gt;hard to cache signatures and quickly validate a block after it has come&lt;br/&gt;in.  It might not be as bad as it first seems, as validation given chached&lt;br/&gt;signatures looks possible without any elliptic curve operations.  Keep an&lt;br/&gt;aggregate s-value (which is a scalar) for all the txs in your mempool.&lt;br/&gt;When a block comes in, subtract all the s-values for txs not included in&lt;br/&gt;the block.  If the block includes txs you weren&amp;#39;t aware of, request them in&lt;br/&gt;the same way compact blocks works, and get the full signature for those&lt;br/&gt;txs.  It could be several thousand operations, but those are all bigInt&lt;br/&gt;modular additions / subtractions which I believe are pretty quick in&lt;br/&gt;comparison with point additions / multiplications.&lt;br/&gt;&lt;br/&gt;There may be other complications due to the fact that the witness-txids&lt;br/&gt;change when building a block.  TXIDs don&amp;#39;t change though so should be&lt;br/&gt;possible to keep track of things OK.&lt;br/&gt;&lt;br/&gt;Also you can&amp;#39;t &amp;#34;fail fast&amp;#34; for the signature verification; you have to add&lt;br/&gt;everything up before you can tell if it&amp;#39;s correct.  Probably not a big deal&lt;br/&gt;as PoW check comes first, and invalid blocks are pretty uncommon and quite&lt;br/&gt;costly.&lt;br/&gt;&lt;br/&gt;Would be interested to hear if this idea looks promising.&lt;br/&gt;Andrew Polestra mentioned something like this in the context of CT /&lt;br/&gt;mimblewimble transactions a while ago, but it seems it may be applicable to&lt;br/&gt;regular bitcoin Schnorr txs.&lt;br/&gt;&lt;br/&gt;-Tadge&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/20170507/4f2f604d/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20170507/4f2f604d/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T20:00:51&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs9wnvjsjx9yu93y0gezrpdsdx43qgtudz3vphkz5fegwp09j82umszyzr56ssgueq8g7kmuhz3xkct7tj00mjng43p9n3ntgew0at5zrt2kt4pzl8</id>
    
      <title type="html">📅 Original date posted:2017-01-03 📝 Original ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs9wnvjsjx9yu93y0gezrpdsdx43qgtudz3vphkz5fegwp09j82umszyzr56ssgueq8g7kmuhz3xkct7tj00mjng43p9n3ntgew0at5zrt2kt4pzl8" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqstda0uvjzwjxdy83kuvrux40cqpn3jxypr47wyrkv48s9uy0kmedsdk5gqk&#39;&gt;nevent1q…5gqk&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2017-01-03&lt;br/&gt;📝 Original message:Mempool transactions have their place, but &amp;#34;unconfirmed&amp;#34; and &amp;#34;SPV&amp;#34; don&amp;#39;t&lt;br/&gt;belong together.  Only a full node can tell if a transaction may get&lt;br/&gt;confirmed, or is nonsense.  Unfortunately all the light / SPV wallets I&lt;br/&gt;know of show mempool transactions, which makes it hard to go back... (e.g.&lt;br/&gt;&amp;#34;why doesn&amp;#39;t your software show 0-conf! your wallet is broken!&amp;#34;, somewhat&lt;br/&gt;akin to people complaining about RBF)&lt;br/&gt;&lt;br/&gt;So, this is easy, just don&amp;#39;t worry about mempool filtering.  Why are light&lt;br/&gt;clients looking at the mempool anyway?  Maybe if there were some way to&lt;br/&gt;provide SPV proofs of all inputs, but that&amp;#39;s a bit of a mess for full nodes&lt;br/&gt;to do.&lt;br/&gt;&lt;br/&gt;Without mempool filtering, I think the committed bloom filters would be a&lt;br/&gt;great improvement over the current bloom filter setup, especially for&lt;br/&gt;lightning network use cases (with lightning, not finding out about a&lt;br/&gt;transaction can make you lose money).  I want to work on it and may be able&lt;br/&gt;to at some point as it&amp;#39;s somewhat related to lightning.&lt;br/&gt;&lt;br/&gt;Also, if you&amp;#39;re running a light client, and storing the filters the way you&lt;br/&gt;store block headers, there&amp;#39;s really no reason to go all the way back to&lt;br/&gt;height 0.  You can start grabbing headers at some point a while ago, before&lt;br/&gt;your set of keys was generated.  I think it&amp;#39;d be very worth it even with&lt;br/&gt;GB-scale disk usage.&lt;br/&gt;&lt;br/&gt;-Tadge&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;On Tue, Jan 3, 2017 at 5:18 PM, Aaron Voisine 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; Unconfirmed transactions are incredibly important for real world use.&lt;br/&gt;&amp;gt; Merchants for instance are willing to accept credit card payments of&lt;br/&gt;&amp;gt; thousands of dollars and ship the goods despite the fact that the&lt;br/&gt;&amp;gt; transaction can be reversed up to 60 days later. There is a very large cost&lt;br/&gt;&amp;gt; to losing the ability to have instant transactions in many or even most&lt;br/&gt;&amp;gt; situations. This cost is typically well above the fraud risk.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; It&amp;#39;s important to recognize that bitcoin serves a wide variety of use&lt;br/&gt;&amp;gt; cases with different profiles for time sensitivity and fraud risk.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Aaron&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; On Tue, Jan 3, 2017 at 12:41 PM bfd--- via bitcoin-dev &amp;lt;bitcoin-dev at lists.&lt;br/&gt;&amp;gt; linuxfoundation.org&amp;gt; wrote:&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; The concept combined with the weak blocks system where miners commit&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; to potential transaction inclusion with fractional difficulty blocks&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; is possible. I&amp;#39;m not personally convinced that unconfirmed transaction&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; display in a wallet is worth the privacy trade-off. The user has very&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; little to gain from this knowledge until the txn is in a block.&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 2017-01-01 13:01, Jonas Schnelli via bitcoin-dev wrote:&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; Hi&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; We introduce several concepts that rework the lightweight Bitcoin&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; client model in a manner which is secure, efficient and privacy&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; compatible.&lt;br/&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; The BFD can be used verbatim in replacement of BIP37, where the filter&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; can be cached between clients without needing to be recomputed. It can&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; also be used by normal pruned nodes to do re-scans locally of their&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; wallet without needing to have the block data available to scan, or&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; without reading the entire block chain from disk.&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; I started exploring the potential of BFD after this specification.&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; What would be the preferred/recommended way to handle 0-conf/mempool&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; filtering – if &amp;amp; once BDF would have been deployed (any type,&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; semi-trusted oracles or protocol-level/softfork)?&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; From the user-experience perspective, this is probably pretty important&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; (otherwise the experience will be that incoming funds can take serval&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; minutes to hours until they appear).&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; Using BIP37 bloom filters just for mempool filtering would obviously&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; result in the same unwanted privacy-setup.&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; &amp;lt;/jonas&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; _______________________________________________&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; bitcoin-dev mailing list&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; bitcoin-dev at lists.linuxfoundation.org&lt;br/&gt;&amp;gt;&amp;gt;&lt;br/&gt;&amp;gt;&amp;gt; &amp;gt; &lt;a href=&#34;https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&#34;&gt;https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&lt;/a&gt;&lt;br/&gt;&amp;gt;&amp;gt;&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;&lt;br/&gt;&amp;gt;&amp;gt; bitcoin-dev at lists.linuxfoundation.org&lt;br/&gt;&amp;gt;&amp;gt;&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;&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/20170103/399f0f9b/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20170103/399f0f9b/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T19:55:04&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs03elstj4y5cps8jtj8f22du37h0czgq9uec7axrf4hplm04ythygzyzr56ssgueq8g7kmuhz3xkct7tj00mjng43p9n3ntgew0at5zrt2k760mum</id>
    
      <title type="html">📅 Original date posted:2016-12-04 📝 Original ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs03elstj4y5cps8jtj8f22du37h0czgq9uec7axrf4hplm04ythygzyzr56ssgueq8g7kmuhz3xkct7tj00mjng43p9n3ntgew0at5zrt2k760mum" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqstyn62zg0wtmgnyd6a35tea0fj407ts93e0dz9j8ak77cxwhtg4pcc8m6yz&#39;&gt;nevent1q…m6yz&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2016-12-04&lt;br/&gt;📝 Original message:Interesting stuff! I have some comments, mostly about the header.&lt;br/&gt;&lt;br/&gt;The header of forcenet is mostly described in Luke’s BIP, but I have made&lt;br/&gt;&amp;gt; some amendments as I implemented it. The format is (size in parentheses;&lt;br/&gt;&amp;gt; little endian):&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Height (4), BIP9 signalling field (4), hardfork signalling field (3),&lt;br/&gt;&amp;gt; merge-mining hard fork signalling field (1), prev hash (32), timestamp (4),&lt;br/&gt;&amp;gt; nonce1 (4), nonce2 (4), nonce3 (compactSize &#43; variable), Hash TMR (32),&lt;br/&gt;&amp;gt; Hash WMR (32), total tx size (8) , total tx weight (8), total sigops (8),&lt;br/&gt;&amp;gt; number of tx (4), merkle branches leading to header C (compactSize &#43; 32 bit&lt;br/&gt;&amp;gt; hashes)&lt;br/&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;First, I&amp;#39;d really rather not have variable length fields in the header.&lt;br/&gt;It&amp;#39;s so much nicer to just have a fixed size.&lt;br/&gt;&lt;br/&gt;Is having both TMR and WMR really needed?  As segwit would be required with&lt;br/&gt;this header type, and the WMR covers a superset of the data that the TMR&lt;br/&gt;does, couldn&amp;#39;t you get rid of the TMR?  The only disadvantage I can see is&lt;br/&gt;that light clients may want a merkle proof of a transaction without having&lt;br/&gt;to download the witnesses for that transaction.  This seems pretty minor,&lt;br/&gt;especially as once they&amp;#39;re convinced of block inclusion they can discard&lt;br/&gt;the witness data, and also the tradeoff is that light clients will have to&lt;br/&gt;download and store and extra 32 bytes per block, likely offsetting any&lt;br/&gt;savings from omitting witness data.&lt;br/&gt;&lt;br/&gt;The other question is that there&amp;#39;s a bit that&amp;#39;s redundant: height is also&lt;br/&gt;committed to in the coinbase tx via bip 34 (speaking of which, if there&amp;#39;s a&lt;br/&gt;hard-fork, how about reverting bip 34 and committing to the height with&lt;br/&gt;coinbase tx nlocktime instead?)&lt;br/&gt;&lt;br/&gt;Total size / weight / number of txs also feels pretty redundant.  Not a lot&lt;br/&gt;of space but it&amp;#39;s hard to come up with a use for them.  Number of tx could&lt;br/&gt;be useful if you want to send all the leaves of a merkle tree, but you&lt;br/&gt;could also do that by committing to the depth of the merkle tree in the&lt;br/&gt;header, which is 1 byte.&lt;br/&gt;&lt;br/&gt;Also how about making timestamp 8 bytes?  2106 is coming up soon :)&lt;br/&gt;&lt;br/&gt;Maybe this is too nit-picky; maybe it&amp;#39;s better to put lots of stuff in for&lt;br/&gt;testing the forcenet and then take out all the stuff that wasn&amp;#39;t used or&lt;br/&gt;had issues as it progresses.&lt;br/&gt;&lt;br/&gt;Thanks and looking forward to trying out forcenet!&lt;br/&gt;&lt;br/&gt;-Tadge&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/20161204/43fe8311/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20161204/43fe8311/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T19:54:41&#43;02:00</updated>
  </entry>

</feed>