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




  <entry>
    <id>https://nostr.ae/nevent1qqszzsem5hqr6grcu4lpsmd7srpw40wjc2ge6qs2pz9sq656fcmh46qzyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmyjs2vhx</id>
    
      <title type="html">📅 Original date posted:2023-08-06 🗒️ Summary of this ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqszzsem5hqr6grcu4lpsmd7srpw40wjc2ge6qs2pz9sq656fcmh46qzyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmyjs2vhx" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsgveykw6hrluz6deccenemxq0yursqpsut37t7e74ssju9mv3utgcru5h63&#39;&gt;nevent1q…5h63&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2023-08-06&lt;br/&gt;🗒️ Summary of this message: Salvatore Ingala has created a proposal for the core opcodes of MATT, making them functionally complete and improving implementation.&lt;br/&gt;📝 Original message:&lt;br/&gt;On July 30, 2023 11:37:49 AM HST, Salvatore Ingala via bitcoin-dev&lt;br/&gt;&amp;gt;I have put together a first complete proposal for the core opcodes of&lt;br/&gt;&amp;gt;MATT [1][2].&lt;br/&gt;&amp;gt;The changes make the opcode functionally complete, and the&lt;br/&gt;&amp;gt;implementation is revised and improved.&lt;br/&gt;&amp;gt; [...]&lt;br/&gt;&amp;gt;[1] - &lt;a href=&#34;https://merkle.fun/&#34;&gt;https://merkle.fun/&lt;/a&gt;&lt;br/&gt;&amp;gt;[2] -&lt;br/&gt;&amp;gt;&lt;a href=&#34;https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2022-November/021182.html&#34;&gt;https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2022-November/021182.html&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Hi Salvatore,&lt;br/&gt;&lt;br/&gt;Where exactly is the proposal?  Merkle.fun links to a &amp;#34;WIP&amp;#34; comment that seems to specify OP_CHECKCONTRACTVERIFY but your text above says &amp;#34;core opcodes&amp;#34; (plural) so I feel like I&amp;#39;m missing something.  Also, it being &amp;#34;WIP&amp;#34; makes me wonder if that actually is the &amp;#34;complete proposal&amp;#34; I should be looking for.&lt;br/&gt;&lt;br/&gt;When I read &amp;#34;complete proposal&amp;#34;, I was expecting a draft BIP.&lt;br/&gt;&lt;br/&gt;-Dave
    </content>
    <updated>2023-08-07T01:37:36&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsgvzpm5ez5r3wxs92xh3axz20hd6s4uc6jmzdfp5tnvt29nne5k8qzyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmywlvrxx</id>
    
      <title type="html">📅 Original date posted:2023-06-10 🗒️ Summary of this ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsgvzpm5ez5r3wxs92xh3axz20hd6s4uc6jmzdfp5tnvt29nne5k8qzyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmywlvrxx" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsqudt675re408mkxxlkl0cc665p0psc2v2yzke90kr5th57ggmrqsk8p484&#39;&gt;nevent1q…p484&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2023-06-10&lt;br/&gt;🗒️ Summary of this message: A proposal has been made to improve the safety of time-locked vaults by using a scriptpath solution that avoids the circular reference problem. Additionally, a decentralized protocol could be used to store data without putting it on the blockchain.&lt;br/&gt;📝 Original message:&lt;br/&gt;On 2023-06-09 21:43, Joost Jager via bitcoin-dev wrote:&lt;br/&gt;&amp;gt; The most critical application in this category, for me, involves&lt;br/&gt;&amp;gt; time-locked vaults.&lt;br/&gt;&amp;gt; [...]&lt;br/&gt;&amp;gt; Backing up the ephemeral signatures of the pre-signed transactions on&lt;br/&gt;&amp;gt; the blockchain itself is an excellent way to ensure that the vault can&lt;br/&gt;&amp;gt; always be &amp;#39;opened&amp;#39;. However, without the annex, this is not as safe as&lt;br/&gt;&amp;gt; it could be. Due to the described circular reference problem, the&lt;br/&gt;&amp;gt; vault creation and signature backup can&amp;#39;t be executed in one atomic&lt;br/&gt;&amp;gt; operation.&lt;br/&gt;&lt;br/&gt;Hi Joost,&lt;br/&gt;&lt;br/&gt;For the purpose of experimenting with vaults, I don&amp;#39;t think you need the&lt;br/&gt;most efficient construction---instead, anything that works without too&lt;br/&gt;much overhead is probably ok.  In that case, I don&amp;#39;t think you need the&lt;br/&gt;annex at all:&lt;br/&gt;&lt;br/&gt;1. Alice can receive new payments to tr(&amp;lt;key&amp;gt;, raw(OP_DROP &amp;lt;key&amp;gt;&lt;br/&gt;    OP_CHECKSIG))&lt;br/&gt;&lt;br/&gt;2. Later, Alice creates tr(MuSig2(&amp;lt;key-from-HD-wallet&amp;gt;,&lt;br/&gt;    &amp;lt;ephemeral-key&amp;gt;))&lt;br/&gt;&lt;br/&gt;3. When paying the script in #2, Alice chooses the scriptpath spend from&lt;br/&gt;    #1 and pushes a serialized partial signature for the ephemeral key&lt;br/&gt;    from #2 onto the stack, where it&amp;#39;s immediately dropped by the&lt;br/&gt;    interpreter (but is permanently stored on the block chain).  She also&lt;br/&gt;    attaches a regular signature for the OP_CHECKSIG opcode.&lt;br/&gt;&lt;br/&gt;Alternatively, if Alice decides she doesn&amp;#39;t want to pay into a vault,&lt;br/&gt;she uses the keypath spend from #1 with no loss in efficiency.&lt;br/&gt;&lt;br/&gt;The scriptpath solution requires some extra preparation on Alice&amp;#39;s part&lt;br/&gt;and costs about a dozen vbytes extra over using the annex, which feels&lt;br/&gt;acceptable to me to avoid the problems identified with using the annex.&lt;br/&gt;&lt;br/&gt;Even better, I think you can achieve nearly the same safety without&lt;br/&gt;putting any data on the chain.  All you need is a widely used&lt;br/&gt;decentralized protocol that allows anyone who can prove ownership of a&lt;br/&gt;UTXO to store some data.  You can think of LN gossip as being a version&lt;br/&gt;of this: anyone who proves ownership of a P2WSH 2-of-2 script is allowed&lt;br/&gt;to store data in a certain format on every LN routing node.  Rusty&lt;br/&gt;Russell&amp;#39;s v2 gossip proposal makes this a bit more generic, but I think&lt;br/&gt;you could make it even more generic by creating a simple server that&lt;br/&gt;stores and forwards a single BIP322 signed message up to size x for any&lt;br/&gt;entry in the current UTXO set, with periodic replacement of the signed&lt;br/&gt;message allowed.  The signed data could be LN routing information or it&lt;br/&gt;could be arbitrary data like a signature from an ephemeral key (or it&lt;br/&gt;could even be a JPEG or other data irrelevant to processing payments).&lt;br/&gt;&lt;br/&gt;Any full node (including pruned and utreexo nodes) can trustlessly&lt;br/&gt;provide UTXO lookup for such a server and a decentralized network of&lt;br/&gt;such servers could be useful by a large number of protocols, encouraging&lt;br/&gt;hundreds or thousands of servers to be operated---providing similar data&lt;br/&gt;availability guarantees to committing data on the block chain, but&lt;br/&gt;without the permanent footprint (i.e., once a UTXO is spent, the&lt;br/&gt;associated data can be deleted).  Many vault designs already effectively&lt;br/&gt;require watchtowers, so it&amp;#39;d be easy to make this simple server part of&lt;br/&gt;the watchtower.&lt;br/&gt;&lt;br/&gt;&amp;gt; Regarding the potential payload extension attack, I believe that the&lt;br/&gt;&amp;gt; changes proposed in the [3] to allow tx replacement by smaller witness&lt;br/&gt;&amp;gt; would provide a viable solution?&lt;br/&gt;&amp;gt; [...]&lt;br/&gt;&amp;gt; [3] &lt;a href=&#34;https://github.com/bitcoin/bitcoin/pull/24007&#34;&gt;https://github.com/bitcoin/bitcoin/pull/24007&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;The two solutions identified above (OP_DROP and decentralized storage&lt;br/&gt;for UTXO owners) can be implemented immediately.  By comparison, rolling&lt;br/&gt;out relay of the annex and witness replacement may take months of review&lt;br/&gt;and years for &amp;gt;90% deployment among nodes, would allow an attacker to&lt;br/&gt;lower the feerate of coinjoin-style transactions by up to 4.99%, would&lt;br/&gt;allow an attacker to waste 8 million bytes of bandwidth per relay node&lt;br/&gt;for the same cost they&amp;#39;d have to pay to today to waste 400 thousand&lt;br/&gt;bytes, and might limit the flexibility and efficiency of future&lt;br/&gt;consensus changes that want to use the annex.&lt;br/&gt;&lt;br/&gt;-Dave
    </content>
    <updated>2023-06-19T20:19:54&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs28rx9gs08eu7l5w4c87q7gjhhwpn065vqmazmrtm3d5akqudzl5czyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmyxmlftf</id>
    
      <title type="html">📅 Original date posted:2023-06-02 🗒️ Summary of this ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs28rx9gs08eu7l5w4c87q7gjhhwpn065vqmazmrtm3d5akqudzl5czyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmyxmlftf" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqstm2w0794wnlj5zuwcs2fqfujqqk9mpmae25dc8rnt3axg2kjnhysy08vha&#39;&gt;nevent1q…8vha&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2023-06-02&lt;br/&gt;🗒️ Summary of this message: The taproot annex can be utilized by developers without delay, providing immediate benefits, including the ability to put arbitrary data into a witness.&lt;br/&gt;📝 Original message:&lt;br/&gt;On 2023-06-02 05:00, Joost Jager via bitcoin-dev wrote:&lt;br/&gt;&amp;gt; the benefits of making the annex available in a&lt;br/&gt;&amp;gt; non-structured form are both evident and immediate. By allowing&lt;br/&gt;&amp;gt; developers to utilize the taproot annex without delay, we can take&lt;br/&gt;&amp;gt; advantage of its features today,&lt;br/&gt;&lt;br/&gt;Hi Joost,&lt;br/&gt;&lt;br/&gt;Out of curiosity, what features and benefits are available today?  I &lt;br/&gt;know Greg Sanders wants to use annex data with LN-Symmetry[1], but &lt;br/&gt;that&amp;#39;s dependent on a soft fork of SIGHASH_ANYPREVOUT.  I also heard you &lt;br/&gt;mention that it could allow putting arbitrary data into a witness &lt;br/&gt;without having to commit to that data beforehand, but that would only &lt;br/&gt;increase the efficiency of witness stuffing like ordinal inscriptions by &lt;br/&gt;only 0.4% (~2 bytes saved per 520 bytes pushed) and it&amp;#39;d still be &lt;br/&gt;required to create an output in order to spend it.&lt;br/&gt;&lt;br/&gt;Is there some other way to use the annex today that would be beneficial &lt;br/&gt;to users of Bitcoin?&lt;br/&gt;&lt;br/&gt;-Dave&lt;br/&gt;&lt;br/&gt;[1] &lt;br/&gt;&lt;a href=&#34;https://github.com/lightning/bolts/compare/master...instagibbs:bolts:eltoo_draft#diff-156a655274046c49e6b1c2a22546ed66366d3b8d97b8e9b34b45fe5bd8800ae2R119&#34;&gt;https://github.com/lightning/bolts/compare/master...instagibbs:bolts:eltoo_draft#diff-156a655274046c49e6b1c2a22546ed66366d3b8d97b8e9b34b45fe5bd8800ae2R119&lt;/a&gt;
    </content>
    <updated>2023-06-19T20:19:50&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqstgmln97th407dakudwau6gafactcngm4dc2z4s6h7ezmcedfvm6czyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmy0rmuty</id>
    
      <title type="html">📅 Original date posted:2023-01-03 🗒️ Summary of this ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqstgmln97th407dakudwau6gafactcngm4dc2z4s6h7ezmcedfvm6czyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmy0rmuty" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqszz96uh8qq5knnvxhhswwndualyugfrl9m9pu22zj9kmadwjschdspr7lay&#39;&gt;nevent1q…7lay&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2023-01-03&lt;br/&gt;🗒️ Summary of this message: A proposal for a contract protocol between two parties, Alice and Bob, with two branches: on-chain/channel and timelock, for instant LN payments.&lt;br/&gt;📝 Original message:&lt;br/&gt;On 2023-01-03 03:57, ZmnSCPxj via Lightning-dev wrote:&lt;br/&gt;&amp;gt; The contract has two participants: Alice the funds owner, and&lt;br/&gt;&amp;gt; Bob its potential swap partner.&lt;br/&gt;&amp;gt; [...]&lt;br/&gt;&amp;gt; The contract has only 2 branches:&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; * Onchain/channel branch: Alice and Bob.&lt;br/&gt;&amp;gt; * Timelock branch: Alice plus a relative timelock (`OP_CSV`)&lt;br/&gt;&amp;gt;   measurable in weeks.&lt;br/&gt;&lt;br/&gt;Good morning Jesse and ZmnSCPxj,&lt;br/&gt;&lt;br/&gt;Is the following an accurate summary of the proposal&amp;#39;s benefits and &lt;br/&gt;costs? At some point x blocks before Alice expects she might want to &lt;br/&gt;spend her funds on LN (but also wants the option to quickly spend her &lt;br/&gt;funds onchain), she enters into a contract protocol with Bob.  At any &lt;br/&gt;time, with Bob&amp;#39;s cooperation, she can send an onchain transaction.  Or, &lt;br/&gt;after the contract protocol deposit transaction gets x confirmations, &lt;br/&gt;Alice can instantly fund a fully initialized LN channel with Bob&amp;#39;s &lt;br/&gt;cooperation, from which she can immediately send LN payments.&lt;br/&gt;&lt;br/&gt;If the above is accurate, how does that compare to splice outs?  For &lt;br/&gt;example: at some point x blocks before Alice expects she might want to &lt;br/&gt;spend her funds on LN (but also wants the option to quickly spend her &lt;br/&gt;funds onchain), she enters into a contract protocol with Bob by opening &lt;br/&gt;an LN channel.  At any time, with Bob&amp;#39;s cooperation, she can send an &lt;br/&gt;onchain transaction using a splice out.  Or, after the contract protocol &lt;br/&gt;(LN) deposit transaction gets x confirmations, Alice now has a funded &lt;br/&gt;fully initialized LN channel with Bob&amp;#39;s participation as counterparty, &lt;br/&gt;from which she can immediately send LN payments.&lt;br/&gt;&lt;br/&gt;If the value for x blocks is the same in both cases, those two scenarios &lt;br/&gt;look very similar to me.&lt;br/&gt;&lt;br/&gt;The only advantages I see of your proposal are:&lt;br/&gt;&lt;br/&gt;1. It allows Alice&amp;#39;s LN wallet to remain offline indefinitely---but only &lt;br/&gt;if Alice doesn&amp;#39;t have any other funds in open channels.&lt;br/&gt;2. It&amp;#39;s easier to implement than splice-outs (I would guess)---but it &lt;br/&gt;also only provides the benefits of sending onchain payments at the time &lt;br/&gt;before the first LN transaction is made, whereas actual splice out can &lt;br/&gt;be used any time in a channel&amp;#39;s lifetime to immediately send onchain &lt;br/&gt;payments.&lt;br/&gt;&lt;br/&gt;Am I missing something?&lt;br/&gt;&lt;br/&gt;-Dave
    </content>
    <updated>2023-06-09T15:12:25&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsvfvs8qat4svpty0h5vr474zwh9wzu2c930ufzvntjdfvf9x4wkmqzyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmy2x84ja</id>
    
      <title type="html">📅 Original date posted:2022-11-27 📝 Original message: On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsvfvs8qat4svpty0h5vr474zwh9wzu2c930ufzvntjdfvf9x4wkmqzyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmy2x84ja" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsqze6yx9ljdqk3tfevhlxresjnheq8zywvl8jlved9gg9dsxnnvfg5xueg8&#39;&gt;nevent1q…ueg8&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2022-11-27&lt;br/&gt;📝 Original message:&lt;br/&gt;On 2022-11-25 13:12, ZmnSCPxj via Lightning-dev wrote:&lt;br/&gt;&amp;gt; If I am an LSP, and I know my competitor LSP distributes their&lt;br/&gt;&amp;gt; credentials, then I can simply apply to be a spoke on my competitor&lt;br/&gt;&amp;gt; and then make several payments to my node, which I then jam up.&lt;br/&gt;&amp;gt; This reduces the reputation of my competitor LSP.&lt;br/&gt;&lt;br/&gt;I don&amp;#39;t think this how Riard&amp;#39;s credentials work.  The credential tokens &lt;br/&gt;are blinded, so forwarding nodes can&amp;#39;t use them to determine the origin &lt;br/&gt;of the payment---thus they can&amp;#39;t assign blame.&lt;br/&gt;&lt;br/&gt;As I understand them, credential tokens prevent DoS by each token only &lt;br/&gt;allowing the one-time creation of a single HTLC, so any failed payment &lt;br/&gt;reduces the sender&amp;#39;s supply of tokens.  That means, if Mallory becomes a &lt;br/&gt;client of Bob&amp;#39;s and Bob lets Mallory use some of his tokens, Mallory can &lt;br/&gt;destroy those tokens.  Although that&amp;#39;s bad for Bob, he can easily limit &lt;br/&gt;the damage by not giving Mallory more tokens after too many failures.  &lt;br/&gt;If Bob obtained his tokens at a low cost (e.g. by sending many payments &lt;br/&gt;that were successful and receiving back &amp;gt;100% of the tokens he used to &lt;br/&gt;make those payments) and if Alice has to pay a similar or greater cost &lt;br/&gt;to become a client of Bob&amp;#39;s (e.g. onchain channel open costs), then the &lt;br/&gt;attack should not be economically rational.&lt;br/&gt;&lt;br/&gt;&amp;gt; This is even worse if my competitor LSP attaches their credentials on&lt;br/&gt;&amp;gt; trampolines, I do not even need to apply to be a spoke on my&lt;br/&gt;&amp;gt; competitor that way.&lt;br/&gt;&lt;br/&gt;I think the analysis for trampolines is the same: as long as Bob only &lt;br/&gt;attaches credential tokens to trampoline payments where he knows the &lt;br/&gt;origin has paid a cost (or will need to pay a cost) to abuse his &lt;br/&gt;service, he can prevent any attack from becoming economically rational.&lt;br/&gt;&lt;br/&gt;&amp;gt; Thus all reputation still rests with ultimate senders, who have to&lt;br/&gt;&amp;gt; convince LSPs to sell their reputation to them, because they might&lt;br/&gt;&amp;gt; secretly be competitor LSPs who have incentive to drain their&lt;br/&gt;&amp;gt; reputation.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; If the price of sold reputation is too high, then it is no different&lt;br/&gt;&amp;gt; from upfront fees.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; If the price of sold reputation is too low, then I can drain the&lt;br/&gt;&amp;gt; reputation of competitor LSPs.&lt;br/&gt;&lt;br/&gt;I think the statement at the top about reputation resting with ultimate &lt;br/&gt;senders is true but two conditionals below it are not quite right.  If &lt;br/&gt;an LSP helps many clients make successful payments, those clients may &lt;br/&gt;(at no additional cost to them beyond the forwarding fees they already &lt;br/&gt;paid) receive more credential tokens than they&amp;#39;ll ever need.  By &lt;br/&gt;allowing the LSP to instead use those tokens for other clients &lt;br/&gt;(&amp;#34;harvesting&amp;#34; them), it&amp;#39;s possible for those later clients to avoid &lt;br/&gt;paying for credential tokens---this is equivalent to free upfront fees.  &lt;br/&gt;As long as the LSP can prevent a client from using too many tokens, and &lt;br/&gt;requires the client pay other inescapable costs, then it shouldn&amp;#39;t be &lt;br/&gt;possible for a competitor to substantially drain the token capital of a &lt;br/&gt;LSP without losing a substantial amount of its own money.&lt;br/&gt;&lt;br/&gt;-Dave
    </content>
    <updated>2023-06-09T15:07:27&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsdd6hhjx90qek3wuakfg4qmpqu32ee5ul8ypf3za7p2nfrjnnnweszyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmy7lufcj</id>
    
      <title type="html">📅 Original date posted:2022-11-26 📝 Original message: On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsdd6hhjx90qek3wuakfg4qmpqu32ee5ul8ypf3za7p2nfrjnnnweszyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmy7lufcj" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsg9fcugn2f6cka0y2c46vx7a00txqhfjqdkmtqel6rjwy2x3tcx7qg3telf&#39;&gt;nevent1q…telf&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2022-11-26&lt;br/&gt;📝 Original message:&lt;br/&gt;On 2022-11-21 14:26, Antoine Riard wrote:&lt;br/&gt;&amp;gt;&amp;gt; Clara Shikhelman wrote:&lt;br/&gt;&amp;gt;&amp;gt; 4. How would these tokens work with blinded paths and other&lt;br/&gt;&amp;gt;&amp;gt; privacy-preserving suggestions?&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Primarily, the tokens could use the new onion messages and blinded&lt;br/&gt;&amp;gt; paths for the dissemination and renewal rounds. Current design assumes&lt;br/&gt;&amp;gt; they&amp;#39;re attached to the HTLC during forward along the payment path,&lt;br/&gt;&amp;gt; though I think one design alternative could be completely detached,&lt;br/&gt;&amp;gt; and the HTLC onion just contains a ref to the tokens.&lt;br/&gt;&lt;br/&gt;I&amp;#39;m not sure I understand this answer, so I&amp;#39;ll explain in my own words &lt;br/&gt;and kindly ask that you tell me if I&amp;#39;m wrong or missing something &lt;br/&gt;important.&lt;br/&gt;&lt;br/&gt;If Alice wants to pay Zed using a blinded path where Zed chooses &lt;br/&gt;terminal channels W-&amp;gt;X-&amp;gt;Y-&amp;gt;Zed, then Zed will need to provide to Alice &lt;br/&gt;the encrypted credential tokens for X, and Y.  In theory, if Alice &lt;br/&gt;controls node Y, she can prevent the HTLC from settling and so waste the &lt;br/&gt;value of Zed&amp;#39;s provided tokens for node X.  However, Alice shouldn&amp;#39;t &lt;br/&gt;know where Zed&amp;#39;s node is in the LN topography and can&amp;#39;t be assured that &lt;br/&gt;he&amp;#39;ll forward through her secondary node, so the attack is uncertain to &lt;br/&gt;work.  The attack may also have a cost---Alice may need to buy &lt;br/&gt;credential tokens for node W and the hops leading to it from her primary &lt;br/&gt;node---with that cost mitigating the chance of the attack and the &lt;br/&gt;likelihood that it would be profitable.&lt;br/&gt;&lt;br/&gt;Thank you both for the interesting proposal and the insightful &lt;br/&gt;questions!,&lt;br/&gt;&lt;br/&gt;-Dave
    </content>
    <updated>2023-06-09T15:07:26&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsy5w32l9a6uwcfm4my8ahmuendt9a83q9mq8qjs0z09u3wseyj47qzyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmydzf7ss</id>
    
      <title type="html">📅 Original date posted:2022-09-23 📝 Original message: On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsy5w32l9a6uwcfm4my8ahmuendt9a83q9mq8qjs0z09u3wseyj47qzyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmydzf7ss" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqszgvra8v26v3et7jzj3tneeenrkjnw3ea7uf93smhdnpryezl9l6qqe4lgh&#39;&gt;nevent1q…4lgh&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2022-09-23&lt;br/&gt;📝 Original message:&lt;br/&gt;On 2022-09-22 16:08, ZmnSCPxj wrote:&lt;br/&gt;&amp;gt; Basically, you can model a rate card as four separate channels between&lt;br/&gt;&amp;gt; the same two nodes, with different costs each.&lt;br/&gt;&amp;gt; If the path at the lowest cost fails, you just try at another route&lt;br/&gt;&amp;gt; that may have more hops but lower effective cost, or else try the same&lt;br/&gt;&amp;gt; channel at a higher cost.&lt;br/&gt;&lt;br/&gt;That&amp;#39;s a very easy to understand explanation of how to use the system, &lt;br/&gt;thanks!&lt;br/&gt;&lt;br/&gt;&amp;gt; If your concern is valid, one wonders why it would not already exist&lt;br/&gt;&amp;gt; now in the current network where try-and-try-again is the standard&lt;br/&gt;&amp;gt; overall algorithm for payments.&lt;br/&gt;&lt;br/&gt;My concern is about pathfinding algorithms which depend on unscalable &lt;br/&gt;data collection (e.g. frequent whole network probing).  If such an &lt;br/&gt;algorithm performs much better than those algorithms which depend on &lt;br/&gt;scalable data collection (e.g. receiving gossip), then the network may &lt;br/&gt;grow to depend on the centralized entities performing the data &lt;br/&gt;collection to the detriment of its robustness and its participants&amp;#39; &lt;br/&gt;independence.&lt;br/&gt;&lt;br/&gt;Try-and-try-another-path is somewhat problematic in this regard since, &lt;br/&gt;even with no additional action like probing, entities which send many &lt;br/&gt;payments will likely perform significantly better than entities which &lt;br/&gt;send few payments owing to the high-frequency spenders gaining more &lt;br/&gt;knowledge about which channels and amounts recently worked or did not.  &lt;br/&gt;It seems to me that a more idealized system would only rarely have &lt;br/&gt;forwarding failures so that high frequency spenders wouldn&amp;#39;t receive &lt;br/&gt;much more information than low frequency spenders.  To that regard, fee &lt;br/&gt;ratecards feels like a small step in the wrong direction because &lt;br/&gt;modeling one channel as four separate channels further normalizes &lt;br/&gt;failure and so further moves the system towards centralized dependency.  &lt;br/&gt;That said, as you mentioned in a previous post[1], I agree ratecards is &lt;br/&gt;better than frequently issuing new channel updates with modified fees.&lt;br/&gt;&lt;br/&gt;Thanks,&lt;br/&gt;&lt;br/&gt;-Dave&lt;br/&gt;&lt;br/&gt;[1] &lt;br/&gt;&lt;a href=&#34;https://lists.linuxfoundation.org/pipermail/lightning-dev/2022-June/003598.html&#34;&gt;https://lists.linuxfoundation.org/pipermail/lightning-dev/2022-June/003598.html&lt;/a&gt;
    </content>
    <updated>2023-06-09T15:06:49&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsqpczutl6prrhnn3rsd3wzxrqw8zwz489amsv9vnc33kpueln2c4qzyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmy2fsqpa</id>
    
      <title type="html">📅 Original date posted:2020-12-13 📝 Original message: On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsqpczutl6prrhnn3rsd3wzxrqw8zwz489amsv9vnc33kpueln2c4qzyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmy2fsqpa" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs0xze3qzzzfzwh22ca2u5hmlvlsmuf4rz56wwfl78c3pder35sjqs2mvnja&#39;&gt;nevent1q…vnja&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2020-12-13&lt;br/&gt;📝 Original message:&lt;br/&gt;On Fri, Dec 11, 2020 at 01:02:04PM &#43;1100, Lloyd Fournier wrote:&lt;br/&gt;&amp;gt; If c = 1 (i.e. the node is fine and it wants to continue the channel) then&lt;br/&gt;&amp;gt; it checks `encrypted_signature_verify(X, settlement_tx, Y)`. If it passes&lt;br/&gt;&amp;gt; it sends the commitment blinding y back to prove that it doesn&amp;#39;t have the&lt;br/&gt;&amp;gt; signature (i.e. prove c = 1). If verification fails then the node is&lt;br/&gt;&amp;gt; malicious and it fails the channel. &lt;br/&gt;&lt;br/&gt;This is really cool!  However, I don&amp;#39;t understand why it&amp;#39;s needed.  Your&lt;br/&gt;goal seems to be for the sender to provide the commitment transaction&lt;br/&gt;and signatures before he learns whether the receiver actually needs&lt;br/&gt;them.  That&amp;#39;s just as easily accomplished by sending the data upfront in&lt;br/&gt;plain text.  For example, it seems to me that both of the following&lt;br/&gt;protocols provide identical utility:&lt;br/&gt;&lt;br/&gt;1. On every reconnection, request the plain text unsigned commitment&lt;br/&gt;   transaction, send a pedersen commitment, and receive the encrypted&lt;br/&gt;   signature(s).  If c=1, verify the encrypted signature(s) and (on&lt;br/&gt;   success) send the blinding factor or (on failure) fail the channel&lt;br/&gt;   and ban the peer.  If c=0, decrypt the signature(s), apply them to&lt;br/&gt;   the commitment transaction, and broadcast.&lt;br/&gt;&lt;br/&gt;2. On every reconnection, request the plain text unsigned commitment&lt;br/&gt;   transaction with all of its signatures, also in plain text.  If our&lt;br/&gt;   database is intact, verify the commitment transaction and its&lt;br/&gt;   signatures are valid and (on success) continue or (on failure) fail&lt;br/&gt;   and ban.  If we lost data, broadcast the commitment transaction.&lt;br/&gt;&lt;br/&gt;Unless I&amp;#39;m forgetting something, there&amp;#39;s no reason a node shouldn&amp;#39;t send&lt;br/&gt;its latest commitment transaction to its counterparty in plain text&lt;br/&gt;(over the regular BOLT8 P2P encrypted and authenticated link).&lt;br/&gt;&lt;br/&gt;I think the challenge in either protocol above is deciding which peer&lt;br/&gt;goes first, because whoever sends the commitment transaction reveals&lt;br/&gt;what they think the current state is.  Any node that refuses to go first&lt;br/&gt;can then be suspected of having lost data.  BOLT2&lt;br/&gt;option_static_remotekey has this same problem, which is reasonably&lt;br/&gt;mitigated IMO by LN&amp;#39;s penalty mechanism forcing any would-be thief to&lt;br/&gt;risk their own funds; this doesn&amp;#39;t work for basic eltoo, though.&lt;br/&gt;&lt;br/&gt;-Dave&lt;br/&gt;-------------- next part --------------&lt;br/&gt;A non-text attachment was scrubbed...&lt;br/&gt;Name: signature.asc&lt;br/&gt;Type: application/pgp-signature&lt;br/&gt;Size: 833 bytes&lt;br/&gt;Desc: not available&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/lightning-dev/attachments/20201213/778f3af7/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/lightning-dev/attachments/20201213/778f3af7/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-09T15:01:43&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqswny0sudgv2gd3l3mtdjs40hv64c6pvpcnw30spm9x883kj7n64rqzyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmytgrjz2</id>
    
      <title type="html">📅 Original date posted:2020-11-28 📝 Original message: On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqswny0sudgv2gd3l3mtdjs40hv64c6pvpcnw30spm9x883kj7n64rqzyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmytgrjz2" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs0s6mpyd4z8pxcnr2njrwzrw0tucdtcs98ka7j65fyfahvayf3szqpd5rxr&#39;&gt;nevent1q…5rxr&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2020-11-28&lt;br/&gt;📝 Original message:&lt;br/&gt;On Thu, Nov 26, 2020 at 11:40:46PM &#43;0200, Gleb Naumenko wrote:&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Hello list,&lt;br/&gt;&lt;br/&gt;Gleb and Antoine,&lt;br/&gt;&lt;br/&gt;This is an interesting idea!  Thank you for working on it.&lt;br/&gt;&lt;br/&gt;I had difficulty with one part of the proposal:&lt;br/&gt;&lt;br/&gt;&amp;gt; #### Should we allow holding *any* Bitcoins (not just LN channels) for Stake Certificates?&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; [...] we believe that allowing any UTXO would give an attacker more&lt;br/&gt;&amp;gt; opportunities to use their cold funds for this attack, or even have a&lt;br/&gt;&amp;gt; secondary market where holders sell their proofs (they have nothing to&lt;br/&gt;&amp;gt; loose).&lt;br/&gt;&lt;br/&gt;Can&amp;#39;t a malicious user get around this restriction by opening channels&lt;br/&gt;with themself?  (Also, aren&amp;#39;t current channel open outputs just P2WSH&lt;br/&gt;2-of-2 multisigs, and in the future won&amp;#39;t they be generic P2TR outputs?&lt;br/&gt;How would a stake certificate prove that the UTXO was generated for LN&lt;br/&gt;rather than just belonging to a user with a 2-of-2 multisig wallet or&lt;br/&gt;any key-path-spendable taproot wallet?)&lt;br/&gt;&lt;br/&gt;According to some random website, the current total channel balance of&lt;br/&gt;the public LN is about 1,000 BTC.  Although I&amp;#39;m sure this will grow with&lt;br/&gt;time, it seems to me that an attacker who can rent access to stake&lt;br/&gt;certificates for a one-week attack at, say, a 5% annual interest rate&lt;br/&gt;would only need to pay 1 BTC to acquire stake certificates equal to all&lt;br/&gt;honest users at present.  That cost doesn&amp;#39;t seem high enough to me to&lt;br/&gt;effectively prevent attacks.  Am I missing something?&lt;br/&gt;&lt;br/&gt;Thanks,&lt;br/&gt;&lt;br/&gt;-Dave&lt;br/&gt;-------------- next part --------------&lt;br/&gt;A non-text attachment was scrubbed...&lt;br/&gt;Name: signature.asc&lt;br/&gt;Type: application/pgp-signature&lt;br/&gt;Size: 833 bytes&lt;br/&gt;Desc: not available&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/lightning-dev/attachments/20201128/9e9c7884/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/lightning-dev/attachments/20201128/9e9c7884/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-09T15:01:35&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs8hhzp5x4cpysgmylgulc7qhkd0aaw5yvzjc4fa6xk3cgje25ct5szyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmyy5aapp</id>
    
      <title type="html">📅 Original date posted:2020-06-20 📝 Original message: On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs8hhzp5x4cpysgmylgulc7qhkd0aaw5yvzjc4fa6xk3cgje25ct5szyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmyy5aapp" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsv8ca88e2vzay0hqp69m3et6p87j6dzyevhw24m7glk8zgc3hjcnc66uxjt&#39;&gt;nevent1q…uxjt&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2020-06-20&lt;br/&gt;📝 Original message:&lt;br/&gt;On Sat, Jun 20, 2020 at 10:54:03AM &#43;0200, Bastien TEINTURIER wrote:&lt;br/&gt;&amp;gt; We&amp;#39;re simply missing information, so it looks like the only good&lt;br/&gt;&amp;gt; solution is to avoid being in that situation by having a foot in&lt;br/&gt;&amp;gt; miners&amp;#39; mempools.&lt;br/&gt;&lt;br/&gt;The problem I have with that approach is that the incentive is to&lt;br/&gt;connect to the highest hashrate pools and ignore the long tail of&lt;br/&gt;smaller pools and solo miners.  If miners realize people are doing this,&lt;br/&gt;they may begin to charge for information about their mempool and the&lt;br/&gt;largest miners will likely be able to charge more money per hashrate&lt;br/&gt;than smaller miners, creating a centralization force by increasing&lt;br/&gt;existing economies of scale.&lt;br/&gt;&lt;br/&gt;Worse, information about a node&amp;#39;s mempool is partly trusted.  A node can&lt;br/&gt;easily prove what transactions it has, but it can&amp;#39;t prove that it&lt;br/&gt;doesn&amp;#39;t have a certain transaction.  This implies incumbent pools with a&lt;br/&gt;long record of trustworthy behavior may be able to charge more per&lt;br/&gt;hashrate than a newer pools, creating a reputation-based centralizing&lt;br/&gt;force that pushes individual miners towards well-established pools.&lt;br/&gt;&lt;br/&gt;This is one reason I suggested using independent pay-to-preimage&lt;br/&gt;transactions[1].  Anyone who knows the preimage can mine the&lt;br/&gt;transaction, so it doesn&amp;#39;t provide reputational advantage or direct&lt;br/&gt;economies of scale---pay-to-preimage is incentive equivalent to paying&lt;br/&gt;normal onchain transaction fees.  There is an indirect economy of&lt;br/&gt;scale---attackers are most likely to send the low-feerate&lt;br/&gt;preimage-containing transaction to just the largest pools, so small&lt;br/&gt;miners are unlikely to learn the preimage and thus unlikely to be able&lt;br/&gt;to claim the payment.  However, if the defense is effective, the attack&lt;br/&gt;should rarely happen and so this should not have a significant effect on&lt;br/&gt;mining profitability---unlike monitoring miner mempools which would have&lt;br/&gt;to be done continuously and forever.&lt;br/&gt;&lt;br/&gt;ZmnSCPxj noted that pay-to-preimage doesn&amp;#39;t work with PTLCs.[2]  I was&lt;br/&gt;hoping one of Bitcoin&amp;#39;s several inventive cryptographers would come&lt;br/&gt;along and describe how someone with an adaptor signature could use that&lt;br/&gt;information to create a pubkey that could be put into a transaction with&lt;br/&gt;a second output that OP_RETURN included the serialized adaptor&lt;br/&gt;signature.  The pubkey would be designed to be spendable by anyone with&lt;br/&gt;the final signature in a way that revealed the hidden value to the&lt;br/&gt;pubkey&amp;#39;s creator, allowing them to resolve the PTLC.  But if that&amp;#39;s&lt;br/&gt;fundamentally not possible, I think we could advocate for making&lt;br/&gt;pay-to-revealed-adaptor-signature possible using something like&lt;br/&gt;OP_CHECKSIGFROMSTACK.[3]&lt;br/&gt;&lt;br/&gt;[1] &lt;a href=&#34;https://lists.linuxfoundation.org/pipermail/lightning-dev/2020-April/002664.html&#34;&gt;https://lists.linuxfoundation.org/pipermail/lightning-dev/2020-April/002664.html&lt;/a&gt;&lt;br/&gt;[2] &lt;a href=&#34;https://lists.linuxfoundation.org/pipermail/lightning-dev/2020-April/002667.html&#34;&gt;https://lists.linuxfoundation.org/pipermail/lightning-dev/2020-April/002667.html&lt;/a&gt;&lt;br/&gt;[3] &lt;a href=&#34;https://bitcoinops.org/en/topics/op_checksigfromstack/&#34;&gt;https://bitcoinops.org/en/topics/op_checksigfromstack/&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&amp;gt; Do you think it&amp;#39;s unreasonable to expect at least some LN nodes to&lt;br/&gt;&amp;gt; also invest in running nodes in mining pools, ensuring that they learn&lt;br/&gt;&amp;gt; about attackers&amp;#39; txs and can potentially share discovered preimages&lt;br/&gt;&amp;gt; with the network off-chain (by gossiping preimages found in the&lt;br/&gt;&amp;gt; mempool over LN)?&lt;br/&gt;&lt;br/&gt;Ignoring my concerns about mining centralization and from the&lt;br/&gt;perspective of just the Lightning Network, that doesn&amp;#39;t sound&lt;br/&gt;unreasonable to me.  But from the perspective of a single LN node, it&lt;br/&gt;might make more sense to get the information and *not* share it,&lt;br/&gt;increasing your security and allowing you to charge lower routing fees&lt;br/&gt;compared to your competitors.  This effect would only be enhanced if&lt;br/&gt;miners charged for their mempool contents (indeed, to maximize their&lt;br/&gt;revenue, miners might require that their mempool subscribers don&amp;#39;t share&lt;br/&gt;the information---which they could trivially enforce by occasionally&lt;br/&gt;sending subscribers a preimage specific to the subscriber and seeing if&lt;br/&gt;it propagated to the public network).&lt;br/&gt;&lt;br/&gt;&amp;gt; I think that these recent attacks show that we need (at least some)&lt;br/&gt;&amp;gt; off-chain nodes to be somewhat heavily invested in on-chain operations&lt;br/&gt;&amp;gt; (layers can&amp;#39;t be fully decoupled with the current security assumptions&lt;br/&gt;&amp;gt; - maybe Eltoo will help change that in the future?).&lt;br/&gt;&lt;br/&gt;I don&amp;#39;t see how eltoo helps.  Eltoo helps ensure you reach the final&lt;br/&gt;channel state, but this problem involves an abuse of that final state.&lt;br/&gt;&lt;br/&gt;-Dave&lt;br/&gt;-------------- next part --------------&lt;br/&gt;A non-text attachment was scrubbed...&lt;br/&gt;Name: signature.asc&lt;br/&gt;Type: application/pgp-signature&lt;br/&gt;Size: 833 bytes&lt;br/&gt;Desc: not available&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/lightning-dev/attachments/20200620/6085153a/attachment-0001.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/lightning-dev/attachments/20200620/6085153a/attachment-0001.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-09T15:00:30&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsd7yzdt3kr3q77m4a97yrr3vhxddjp8pvpujka82v9l0z700v8gdszyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmy2w9kdh</id>
    
      <title type="html">📅 Original date posted:2020-06-19 📝 Original message: On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsd7yzdt3kr3q77m4a97yrr3vhxddjp8pvpujka82v9l0z700v8gdszyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmy2w9kdh" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs96vk2vqkenfpljqwsvcu26nfrfq4nuhhndczw2fw7yeecr33vtec2g86t2&#39;&gt;nevent1q…86t2&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2020-06-19&lt;br/&gt;📝 Original message:&lt;br/&gt;On Fri, Jun 19, 2020 at 09:44:11AM &#43;0200, Bastien TEINTURIER via Lightning-dev wrote:&lt;br/&gt;&amp;gt; The gist is here, and I&amp;#39;d appreciate your feedback if I have wrongly&lt;br/&gt;&amp;gt; interpreted some of the ideas:&lt;br/&gt;&amp;gt; &lt;a href=&#34;https://gist.github.com/t-bast/22320336e0816ca5578fdca4ad824d12&#34;&gt;https://gist.github.com/t-bast/22320336e0816ca5578fdca4ad824d12&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Quoted text below is from the gist:&lt;br/&gt;&lt;br/&gt;&amp;gt; The trick to protect against a malicious participant that broadcasts a&lt;br/&gt;&amp;gt; low-fee HTLC-success or Remote-HTLC-success transaction is that we can&lt;br/&gt;&amp;gt; always blindly do a CPFP carve-out on them; we know their txid&lt;br/&gt;&lt;br/&gt;I think you&amp;#39;re assuming here that the attacker broadcast a particular&lt;br/&gt;state.  However, in a channel which potentially had thousands of state&lt;br/&gt;changes, you&amp;#39;d have to broadcast a blind child for each previous state&lt;br/&gt;(or at least each previous state that pays the attacker more than the&lt;br/&gt;latest state).  That&amp;#39;s potentially thousands of transactions times&lt;br/&gt;potentially dozens of peers---not impossible, but it seems messy.&lt;br/&gt;&lt;br/&gt;I think there&amp;#39;s a way to accomplish the same goal for less bandwidth and&lt;br/&gt;zero fees.  The only way your Bitcoin peer will relay your blind child&lt;br/&gt;is if it already has the parent transaction.  If it has the parent, you&lt;br/&gt;can just request it using P2P getdata(type=&amp;#39;tx&amp;#39;, id=$txid).[1]  You can&lt;br/&gt;batch multiple txid requests together (up to 50,000 IIRC) to minimize&lt;br/&gt;overhead, making the average cost per txid a tiny bit over 36 bytes.&lt;br/&gt;If you receive one of the transactions you request, you can extract the&lt;br/&gt;preimage at no cost to yourself (except bandwidth).  If you don&amp;#39;t&lt;br/&gt;receive a transaction, then sending a blind child is hopeless&lt;br/&gt;anyway---your peers won&amp;#39;t relay it.&lt;br/&gt;&lt;br/&gt;Overall, it&amp;#39;s hard for me to guess how effective your proposal would be&lt;br/&gt;at defeating the attack.  I think the strongman argument for the attack&lt;br/&gt;would be that the attacker will be able to perform a targeted relay of&lt;br/&gt;their outdated state to just miners---everyone else on the network&lt;br/&gt;will receive the counterparty&amp;#39;s honest final-state close.  Unless the&lt;br/&gt;counterparty happens to have a connection to a miner&amp;#39;s node, the&lt;br/&gt;counterparty will neither be able to CPFP fee bump nor use getdata to&lt;br/&gt;retrieve the preimage.&lt;br/&gt;&lt;br/&gt;It seems to me it&amp;#39;s practical for a motivated attacker to research which&lt;br/&gt;IP addresses belong to miners so that they can target them, whereas&lt;br/&gt;honest users won&amp;#39;t practically be able to do that research (and, even if&lt;br/&gt;they could, it would create a centralizing barrier to new miners&lt;br/&gt;entering the market if users focused on maintaining connections to&lt;br/&gt;previously-known miners).&lt;br/&gt;&lt;br/&gt;-Dave&lt;br/&gt;&lt;br/&gt;[1] You&amp;#39;d have to be careful to not attempt the getdata too soon after&lt;br/&gt;    you think the attacker broadcast their old state, but I think that&lt;br/&gt;    only means waiting a single block, which you have to do anyway to&lt;br/&gt;    see if the honest final-commitment transaction confirmed.  See&lt;br/&gt;    &lt;a href=&#34;https://github.com/bitcoin/bitcoin/pull/18861&#34;&gt;https://github.com/bitcoin/bitcoin/pull/18861&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;A non-text attachment was scrubbed...&lt;br/&gt;Name: signature.asc&lt;br/&gt;Type: application/pgp-signature&lt;br/&gt;Size: 833 bytes&lt;br/&gt;Desc: not available&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/lightning-dev/attachments/20200619/09974bd2/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/lightning-dev/attachments/20200619/09974bd2/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-09T15:00:29&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsp2ky9zlzfwmm2749jedtal7hkdj4mm5tk4lrlrv6ptr8ck6qznhczyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmyg754aj</id>
    
      <title type="html">📅 Original date posted:2020-06-19 📝 Original message: On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsp2ky9zlzfwmm2749jedtal7hkdj4mm5tk4lrlrv6ptr8ck6qznhczyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmyg754aj" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsd7yzdt3kr3q77m4a97yrr3vhxddjp8pvpujka82v9l0z700v8gdsrrs3xx&#39;&gt;nevent1q…s3xx&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2020-06-19&lt;br/&gt;📝 Original message:&lt;br/&gt;On Fri, Jun 19, 2020 at 03:58:46PM -0400, David A. Harding via bitcoin-dev wrote:&lt;br/&gt;&amp;gt; I think you&amp;#39;re assuming here that the attacker broadcast a particular&lt;br/&gt;&amp;gt; state.  &lt;br/&gt;&lt;br/&gt;Whoops, I managed to confuse myself despite looking at Bastien&amp;#39;s&lt;br/&gt;excellent explainer.  The attacker would be broadcasting the latest&lt;br/&gt;state, so the honest counterparty would only need to send one blind&lt;br/&gt;child.  However, the blind child will only be relayed by a Bitcoin peer&lt;br/&gt;if the peer also has the parent transaction (the latest state) and, if&lt;br/&gt;it has the parent transaction, you should be able to just getdata(&amp;#39;tx&amp;#39;,&lt;br/&gt;$txid) that transaction from the peer without CPFPing anything.  That&lt;br/&gt;will give you the preimage and so you can immediately resolve the HTLC&lt;br/&gt;with the upstream channel.&lt;br/&gt;&lt;br/&gt;Revising my conclusion from the previous post:&lt;br/&gt;&lt;br/&gt;I think the strongman argument for the attack would be that the attacker&lt;br/&gt;will be able to perform a targeted relay of the low-feerate&lt;br/&gt;preimage-containing transaction to just miners---everyone else on the&lt;br/&gt;network will receive the honest user&amp;#39;s higher-feerate expired-timelock&lt;br/&gt;transaction.  Unless the honest user happens to have a connection to a&lt;br/&gt;miner&amp;#39;s node, the user will neither be able to CPFP fee bump nor use&lt;br/&gt;getdata to retrieve the preimage.&lt;br/&gt;&lt;br/&gt;Sorry for the confusion.&lt;br/&gt;&lt;br/&gt;-Dave&lt;br/&gt;-------------- next part --------------&lt;br/&gt;A non-text attachment was scrubbed...&lt;br/&gt;Name: signature.asc&lt;br/&gt;Type: application/pgp-signature&lt;br/&gt;Size: 833 bytes&lt;br/&gt;Desc: not available&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/lightning-dev/attachments/20200619/917b77aa/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/lightning-dev/attachments/20200619/917b77aa/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-09T15:00:29&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqste4nkaf67xzlrux4czfkse6400n9zm2xmzgs98aktvdf36g89lmgzyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmy39lxns</id>
    
      <title type="html">📅 Original date posted:2020-06-22 📝 Original message: On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqste4nkaf67xzlrux4czfkse6400n9zm2xmzgs98aktvdf36g89lmgzyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmy39lxns" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsp3teqsf3yzpjuzljkxu3qp3wf4jl5phrttk89echr855gkr8c80cyxd637&#39;&gt;nevent1q…d637&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2020-06-22&lt;br/&gt;📝 Original message:&lt;br/&gt;On Sun, Jun 21, 2020 at 06:09:28PM -0700, Olaoluwa Osuntokun wrote:&lt;br/&gt;&amp;gt; IMO this is mostly mitigated by anchor commitments.  The impact of this&lt;br/&gt;&amp;gt; attack is predicated on the &amp;#34;victim&amp;#34; paying 5x on-chain fees (for their&lt;br/&gt;&amp;gt; confirmation target) to sweep all their HTLCs.  &lt;br/&gt;&lt;br/&gt;I think the attack is more clearly stated in absolute terms.  An&lt;br/&gt;attacker can force a victim to pay for 483 P2WSH outputs (each 43&lt;br/&gt;vbytes), or a total of about 20,000 vbytes (plus regular overhead).&lt;br/&gt;&lt;br/&gt;    20769 = 43 * 483&lt;br/&gt;&lt;br/&gt;During the post-halving feerate spike just a few weeks ago, paying 100&lt;br/&gt;base units (&amp;#34;satoshis&amp;#34;) per vbyte was plausible to ensure the commitment&lt;br/&gt;transaction confirmed quickly.  At $9,500 USD/BTC, that&amp;#39;s almost $200&lt;br/&gt;USD.&lt;br/&gt;&lt;br/&gt;    197.3055 = 20769 * 100 / 1e8 * 9500&lt;br/&gt;&lt;br/&gt;With a 5x multiplier, that&amp;#39;s horrible, but even with no multiplier, it&amp;#39;s&lt;br/&gt;not good.  Moreover, a patient attacker can wait for a fee spike and&lt;br/&gt;then attack multiple channels at once so that they compete against each&lt;br/&gt;other for block space, potentially raising feerates even higher.&lt;br/&gt;&lt;br/&gt;&amp;gt; In addition to being able to pay much lower fees (&amp;#34;just enough&amp;#34; to get into&lt;br/&gt;&amp;gt; the chain), anchor commitments allow second-level HTLC _aggregation_, This&lt;br/&gt;&amp;gt; means that for HTLCs with the same expiry height, a peer is able to _batch_&lt;br/&gt;&amp;gt; them all into a single transaction, further saving on fees.&lt;br/&gt;&lt;br/&gt;(I was initially confused by this, so for anyone else confused by this,&lt;br/&gt;the batching being described here is sort of the inverse of normal&lt;br/&gt;payment batching.  Normally when you batch together multiple payments,&lt;br/&gt;you use one input to pay more outputs than you would with separate&lt;br/&gt;transactions.  Here, you still need to use the same number of inputs you&lt;br/&gt;would to resolve HTLCs in separate ransactions (because each HTLC is a&lt;br/&gt;separate UTXO), but you pay a single output.  This works and is indeed a&lt;br/&gt;nice optimization.)&lt;br/&gt;&lt;br/&gt;&amp;gt; Alternatively, they could use something like Lightning Loop to gain the&lt;br/&gt;&amp;gt; _outbound_ bandwidth (Loop In) &lt;br/&gt;&lt;br/&gt;I don&amp;#39;t think the attacker needs outbound bandwidth.  As implied in&lt;br/&gt;René&amp;#39;s post (&amp;#34;achieved with circular onions&amp;#34;), if the attacker is&lt;br/&gt;Mallory and the victim is Bob, there just needs to be a circuit like:&lt;br/&gt;&lt;br/&gt;    Mallory → Alice → Bob → Mallory&lt;br/&gt;&lt;br/&gt;Mallory can always settle with Alice offchain after Bob&amp;#39;s timeout,&lt;br/&gt;preventing Mallory from losing any money in the attack or from having to&lt;br/&gt;pay for liquidity.  IIUC, Mallory&amp;#39;s only cost would be paying for LN&lt;br/&gt;routing fees and the time value of locking up her money until the&lt;br/&gt;settlement.&lt;br/&gt;&lt;br/&gt;&amp;gt; No, the attacker is the one that needs to sweep these HTLCs, since they&lt;br/&gt;&amp;gt; offered them. This adds to their costs.&lt;br/&gt;&lt;br/&gt;As described above, the attacker doesn&amp;#39;t need to offer the HTLCs, they&lt;br/&gt;can simply route a payment through any of the victim&amp;#39;s other channels.&lt;br/&gt;&lt;br/&gt;If the attacker does that, then the victim needs to pay onchain fees to&lt;br/&gt;recover any remaining value in those HTLCs, potentially making this&lt;br/&gt;attack two or three times more costly for the victim.&lt;br/&gt;&lt;br/&gt;&amp;gt; &amp;gt; 1. The current solution is to just not use up the max value of htlc&amp;#39;s.&lt;br/&gt;&amp;gt; &amp;gt; Eclaire and c-lightning by default only use up to 30 htlcs.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; IMO, this isn&amp;#39;t a solution. Lowering the max number of HTLCs in-flight just&lt;br/&gt;&amp;gt; makes it easier (lowers the capital costs) to jam a channel. &lt;br/&gt;&lt;br/&gt;It looks to me like an easy and effective solution to turn a ~$200&lt;br/&gt;downside into a ~$20 downside (at 100 base units/vbyte).  It&amp;#39;s certainly&lt;br/&gt;has other downsides too, but I&amp;#39;m personally more concerned about losing&lt;br/&gt;money than I am about having my channel jammed (and if jamming at 483&lt;br/&gt;HTLCs is an issue, then hopefully the mitigation for that (e.g. upfront&lt;br/&gt;fees) will make jamming at HTLCs a non-issue as well).&lt;br/&gt;&lt;br/&gt;-Dave&lt;br/&gt;-------------- next part --------------&lt;br/&gt;A non-text attachment was scrubbed...&lt;br/&gt;Name: signature.asc&lt;br/&gt;Type: application/pgp-signature&lt;br/&gt;Size: 833 bytes&lt;br/&gt;Desc: not available&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/lightning-dev/attachments/20200622/77824e91/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/lightning-dev/attachments/20200622/77824e91/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-09T15:00:28&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqspy4ucgwxkh88y62w9qz5ldw6stgapgy8qrpml7fnfy7kg0mce4aczyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmyzvw535</id>
    
      <title type="html">📅 Original date posted:2020-04-22 📝 Original message: On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqspy4ucgwxkh88y62w9qz5ldw6stgapgy8qrpml7fnfy7kg0mce4aczyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmyzvw535" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsgjwape52wm7wtswl553txmadr38tfpu7z680tlwvj0v4j486gh0c2jvytf&#39;&gt;nevent1q…vytf&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2020-04-22&lt;br/&gt;📝 Original message:&lt;br/&gt;On Tue, Apr 21, 2020 at 09:13:34PM -0700, Olaoluwa Osuntokun wrote:&lt;br/&gt;&amp;gt; On Mon, Apr 20, 2020 at 10:43:14PM -0400, Matt Corallo via Lightning-dev wrote:&lt;br/&gt;&amp;gt; &amp;gt; While this is somewhat unintuitive, there are any number of good anti-DoS&lt;br/&gt;&amp;gt; &amp;gt; reasons for this, eg:&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; None of these really strikes me as &amp;#34;good&amp;#34; reasons for this limitation&lt;br/&gt;&amp;gt; [...]&lt;br/&gt;&amp;gt; In the end, the simplest heuristic (accept the higher fee rate&lt;br/&gt;&amp;gt; package) side steps all these issues and is also the most economically&lt;br/&gt;&amp;gt; rationale from a miner&amp;#39;s perspective. &lt;br/&gt;&lt;br/&gt;I think it&amp;#39;s important to remember than mempool behavior affects not&lt;br/&gt;just miners but also relay nodes.  Miner costs, such as bandwidth usage,&lt;br/&gt;can be directly offset by their earned block rewards, so miners can be&lt;br/&gt;much more tolerant of wasted bandwidth than relay nodes who receive no&lt;br/&gt;direct financial compensation for the processing and relay of&lt;br/&gt;unconfirmed transactions.[1]&lt;br/&gt;&lt;br/&gt;&amp;gt; Why would one prefer a higher absolute fee package (which could be&lt;br/&gt;&amp;gt; very large) over another package with a higher total _fee rate_?&lt;br/&gt;&lt;br/&gt;To avoid the excessive wasting of bandwidth.  Bitcoin Core&amp;#39;s defaults&lt;br/&gt;require each replacement pay a feerate of 10 nBTC/vbyte over an existing&lt;br/&gt;transaction or package, and the defaults also allow transactions or&lt;br/&gt;packages up to 100,000 vbytes in size (~400,000 bytes).  So, without&lt;br/&gt;enforcement of BIP125 rule 3, an attacker starting at the minimum&lt;br/&gt;default relay fee also of 10 nBTC/vbyte could do the following:&lt;br/&gt;&lt;br/&gt;- Create a ~400,000 bytes tx with feerate of 10 nBTC/vbyte (1 mBTC total&lt;br/&gt;  fee)&lt;br/&gt;&lt;br/&gt;- Replace that transaction with 400,000 new bytes at a feerate of 20&lt;br/&gt;  nBTC/vbyte (2 mBTC total fee)&lt;br/&gt;&lt;br/&gt;- Perform 998 additional replacements, each increasing the feerate by 10&lt;br/&gt;  nBTC/vbyte and the total fee by 1 mBTC, using a total of 400 megabytes&lt;br/&gt;  (including the original transaction and first replacement) to&lt;br/&gt;  ultimately produce a transaction with a feerate of 10,000 nBTC/vbyte&lt;br/&gt;  (1 BTC total fee)&lt;br/&gt;&lt;br/&gt;- Perform one final replacement of the latest 400,000 byte transaction&lt;br/&gt;  with a ~200-byte (~150 vbyte) 1-in, 1-out P2WPKH transaction that pays&lt;br/&gt;  a feerate of 10,010 nBTC/vbyte (1.5 mBTC total fee)&lt;br/&gt;&lt;br/&gt;Assuming 50,000 active relay nodes and today&amp;#39;s BTC price of ~$7,000&lt;br/&gt;USD/BTC, the above scenario would allow an attacker to waste a&lt;br/&gt;collective 20 terabytes of network bandwidth for a total fee cost of&lt;br/&gt;$10.50.  And, of course, the attacker could run multiple attacks of this&lt;br/&gt;sort in parallel, quickly swamping the network.&lt;br/&gt;&lt;br/&gt;To use the above concrete example to repeat the point made at the&lt;br/&gt;beginning of this email: miners might be willing to accept the waste of&lt;br/&gt;400 MB of bandwidth in order to gain a $10.50 fee, but I think very few&lt;br/&gt;relay nodes could function for long under an onslaught of such behavior.&lt;br/&gt;&lt;br/&gt;-Dave&lt;br/&gt;&lt;br/&gt;[1] The reward to relay nodes of maintaining the public relay network is&lt;br/&gt;    that it helps protect against miner centralization.  If there was no&lt;br/&gt;    public relay network, users would need to submit transactions&lt;br/&gt;    directly to miners or via a privately-controlled relay network.&lt;br/&gt;    Users desiring timely confirmation (and operators of private relay&lt;br/&gt;    networks) would have a large incentive to get transactions to the&lt;br/&gt;    largest miners but only a small incentive to get the transaction to&lt;br/&gt;    the smaller miners, increasing the economies of scale in mining and&lt;br/&gt;    furthering centralization.&lt;br/&gt;&lt;br/&gt;    Although users of Bitcoin benefit by reducing mining centralization&lt;br/&gt;    pressure, I don&amp;#39;t think we can expect most users to be willing to&lt;br/&gt;    bear large costs in defense of benefits which are largely intangible&lt;br/&gt;    (until they&amp;#39;re gone), so we must try to keep the cost of operating a&lt;br/&gt;    relay node within a reasonable margin of the cost of operating a&lt;br/&gt;    minimal-bandwidth blocks-only node.&lt;br/&gt;-------------- next part --------------&lt;br/&gt;A non-text attachment was scrubbed...&lt;br/&gt;Name: signature.asc&lt;br/&gt;Type: application/pgp-signature&lt;br/&gt;Size: 833 bytes&lt;br/&gt;Desc: not available&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/lightning-dev/attachments/20200422/cbf63335/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/lightning-dev/attachments/20200422/cbf63335/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-09T14:59:38&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsvm7cjhu7w6dpe2uzkxzxac5p5repy7pp0vdjvz7tlh8j893p44zqzyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmyhfpm2c</id>
    
      <title type="html">📅 Original date posted:2020-04-04 📝 Original message: On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsvm7cjhu7w6dpe2uzkxzxac5p5repy7pp0vdjvz7tlh8j893p44zqzyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmyhfpm2c" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsqm6p9vpvdd50ehm7jcsgrecjlu25awrxq583xz45658567hgsgmc7u29md&#39;&gt;nevent1q…29md&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2020-04-04&lt;br/&gt;📝 Original message:&lt;br/&gt;On Fri, Apr 03, 2020 at 02:51:15AM &#43;0000, ZmnSCPxj via Lightning-dev wrote:&lt;br/&gt;&amp;gt; Ah, right, E knows the revocation for the unilateral close of EE,&lt;br/&gt;&amp;gt; because it is a self-channel, sigh.  And by this revocation clause it&lt;br/&gt;&amp;gt; can claim the money immediately and put it into a channel as well.&lt;br/&gt;&lt;br/&gt;If it&amp;#39;s a self channel, E can also just RBF replace the close&lt;br/&gt;transaction with a minimally-sized 1-input, 1-output transaction.&lt;br/&gt;&lt;br/&gt;In addition, if typical mempools are full and the closing transaction&lt;br/&gt;feerate is very low (i.e. because anchor outputs are meant to be used)&lt;br/&gt;E may also be able to create a close transaction that will be&lt;br/&gt;dropped from typical mempools in the near future and may never &lt;br/&gt;confirm, allowing E to continue using the channel in attacks against its&lt;br/&gt;other peers.&lt;br/&gt;&lt;br/&gt;-Dave&lt;br/&gt;-------------- next part --------------&lt;br/&gt;A non-text attachment was scrubbed...&lt;br/&gt;Name: signature.asc&lt;br/&gt;Type: application/pgp-signature&lt;br/&gt;Size: 833 bytes&lt;br/&gt;Desc: not available&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/lightning-dev/attachments/20200404/9350d3a0/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/lightning-dev/attachments/20200404/9350d3a0/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-09T14:59:24&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsqnevjqp4jpdr9ggxn4stjt5cpwfz6ee8w04gnmk0vug2q4e7lg6qzyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmyeyfvpq</id>
    
      <title type="html">📅 Original date posted:2020-01-05 📝 Original message: On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsqnevjqp4jpdr9ggxn4stjt5cpwfz6ee8w04gnmk0vug2q4e7lg6qzyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmyeyfvpq" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs9a3u4j4dvnj4a62fm70r89mwv3zmrd8ntgg8fzk0t0v4hrk9up2c0hq4ck&#39;&gt;nevent1q…q4ck&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2020-01-05&lt;br/&gt;📝 Original message:&lt;br/&gt;On Wed, Dec 18, 2019 at 02:51:56PM &#43;1100, Lloyd Fournier wrote:&lt;br/&gt;&amp;gt; Hi ZmnSCPxj and Aj,&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Thanks for starting this discussion ZmnSCPxj. Although transactions with&lt;br/&gt;&amp;gt; relative lock times are easily distinguishable today, couldn&amp;#39;t this&lt;br/&gt;&amp;gt; situation be improved? Even just a few wallets changing their behaviour to&lt;br/&gt;&amp;gt; set relative time locks on normal payments would weaken the heuristic. &lt;br/&gt;&lt;br/&gt;As mentioned in ZmnSCPxj&amp;#39;s post, some wallets (most notably Bitcoin&lt;br/&gt;Core) provide partial anti-fee-sniping protection by setting their&lt;br/&gt;nLockTime to the next-block height[1].  In line with your idea to do the&lt;br/&gt;same with nSequence, I think it would be possible to suggest to the&lt;br/&gt;Bitcoin Core project that they also set nSequence to the block age of&lt;br/&gt;the UTXO being spent (if possible[2]).  I think this could slightly&lt;br/&gt;enhance existing anti-fee-sniping by limiting a sniper&amp;#39;s ability to&lt;br/&gt;rearrange ancestor transactions.  For example, imagine we have two&lt;br/&gt;transactions both created by Bitcoin Core on the best block chain:&lt;br/&gt;&lt;br/&gt;                      tx0               tx1&lt;br/&gt;                       |                 |&lt;br/&gt;          [ ]---------[ ]-------[ ]-----[ ]----&lt;br/&gt;    Block 600,000    ..01      ..02    ..03&lt;br/&gt;&lt;br/&gt;Let&amp;#39;s assume tx0 and tx1 were both confirmed quickly, so their nLockTime&lt;br/&gt;equals their block height.  That means a fee sniper&amp;#39;s reorg can&amp;#39;t move&lt;br/&gt;either transaction further back in the chain, burying them under&lt;br/&gt;addition PoW.  Let&amp;#39;s also assume that tx1 is a child of tx0 and sets its&lt;br/&gt;nSequence to 2 blocks.  Now tx0 also can&amp;#39;t be moved further forward in&lt;br/&gt;the chain without also moving tx1 further forward, meaning any reduction&lt;br/&gt;in the amount of PoW covering one transaction would also reduce the&lt;br/&gt;amount of PoW covering any of its descendant transactions (if they&lt;br/&gt;opt-in to this scheme).&lt;br/&gt;&lt;br/&gt;Bitcoin Core obviously has the information necessary to add an&lt;br/&gt;appropriate nSequence to its transactions because it has a copy of the&lt;br/&gt;UTXO set, but *every* wallet should be keeping track of its transaction&amp;#39;s&lt;br/&gt;confirmation scores, so every wallet should know the nSequence delta to&lt;br/&gt;use to allow its transactions to be confirmed in the next block but no&lt;br/&gt;earlier block.&lt;br/&gt;&lt;br/&gt;My question here would be whether this change would be useful in providing&lt;br/&gt;privacy for the scheme ZmnSCPxj described.  IIUC, the pre-signed&lt;br/&gt;transactions Zmn described wouldn&amp;#39;t need to use both relative locktime&lt;br/&gt;(nSequence) and absolute locktime (nLockTime) at the same time, so it&lt;br/&gt;would be possible to set nLockTime to an appropriate value when using&lt;br/&gt;nSequence for security.  This might not blend in perfectly with&lt;br/&gt;anti-fee-sniping (especially to relay nodes) but perhaps Bitcoin Core&amp;#39;s&lt;br/&gt;fuzzing[1] could be increased to help compensate.&lt;br/&gt;&lt;br/&gt;-Dave&lt;br/&gt;&lt;br/&gt;[1] I think Bitcoin Core implements low-probability fuzzing of the&lt;br/&gt;nLockTime to help cover for wallets that send transactions while still&lt;br/&gt;syncing to the tip.  E.g. an instance fully synced to the current chain&lt;br/&gt;tip might set 1-in-100 of its transactions nLockTime to some past block&lt;br/&gt;height so that spy nodes can&amp;#39;t tell whether that transaction was&lt;br/&gt;transmitted by a fuzzing node or one of the nodes that just happened to&lt;br/&gt;be IBD syncing from them at that moment.&lt;br/&gt;&lt;br/&gt;[2] nSequence can only encode up to a max of 65,535 for the block&lt;br/&gt;distance; see BIP68.  Also, obviously, if the parent transaction is&lt;br/&gt;unconfirmed at the time one of its outputs is spent, the child can&amp;#39;t&lt;br/&gt;have a relative lock-height unless you want to delay its confirmation.&lt;br/&gt;-------------- next part --------------&lt;br/&gt;A non-text attachment was scrubbed...&lt;br/&gt;Name: signature.asc&lt;br/&gt;Type: application/pgp-signature&lt;br/&gt;Size: 833 bytes&lt;br/&gt;Desc: not available&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/lightning-dev/attachments/20200105/42a10c0d/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/lightning-dev/attachments/20200105/42a10c0d/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-09T14:57:55&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqspc7kcnk70ed4d04kxa4uc0y95j6xlt5ducwe90t6796zj2syca2szyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmyshvxnk</id>
    
      <title type="html">📅 Original date posted:2019-12-17 📝 Original message: On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqspc7kcnk70ed4d04kxa4uc0y95j6xlt5ducwe90t6796zj2syca2szyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmyshvxnk" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsxcqf9qkhy9r79cpr7qscd602atkmcdwlll34x8u25km9kpjpwphg9lfsdp&#39;&gt;nevent1q…fsdp&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2019-12-17&lt;br/&gt;📝 Original message:&lt;br/&gt;On Tue, Dec 17, 2019 at 09:34:07AM &#43;0100, Bastien TEINTURIER wrote:&lt;br/&gt;&amp;gt; With Phoenix [1], we&amp;#39;ve been experimenting with pay-to-open [2].&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; That works well in practice and provides a great UX for newcomers, but&lt;br/&gt;&amp;gt; it requires temporary trust between the user and our node (until the&lt;br/&gt;&amp;gt; funding tx confirms).&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; That trust relationship appears in two places:&lt;br/&gt;&amp;gt; [...]&lt;br/&gt;&amp;gt; b. The user trusts that we won&amp;#39;t double-spend the funding transaction&lt;br/&gt;&amp;gt; [...] &lt;br/&gt;&amp;gt; I&amp;#39;m more concerned about fixing (b). As long as the funding&lt;br/&gt;&amp;gt; transaction is unconfirmed, there&amp;#39;s a risk of double-spending by the&lt;br/&gt;&amp;gt; funder. &lt;br/&gt;&lt;br/&gt;The typical proposed solution for this type of problem is a single-show&lt;br/&gt;signature[1], a signature that will reveal the private key used to&lt;br/&gt;create it if it&amp;#39;s combined with another signature from the same private&lt;br/&gt;key.  In other words, if you sign two different spends of the same UTXO,&lt;br/&gt;someone who see both spends will be able to redirect all of that UTXO&amp;#39;s&lt;br/&gt;value to themselves.  In that case, your change output becomes a form of&lt;br/&gt;fidelity bond---you get to keep it if you act honestly; otherwise,&lt;br/&gt;someone else gets it (most likely whoever mines the next block).&lt;br/&gt;&lt;br/&gt;I&amp;#39;m not aware of any way to currently force single-show signatures in&lt;br/&gt;Bitcoin, so this is pretty theoretical.  Also, single-show signatures&lt;br/&gt;add a lot of fragility to any setup and make useful features like RBF&lt;br/&gt;fee bumping unavailable.&lt;br/&gt;&lt;br/&gt;As a less complete but more practical solution, you might want to&lt;br/&gt;consider a signing federation.  This doesn&amp;#39;t change the need for trust,&lt;br/&gt;but it does allow spreading that trust around.  E.g. if spending your&lt;br/&gt;funds requires three signatures each from one of five different&lt;br/&gt;respected companies helping pioneer LN (perhaps all in different legal&lt;br/&gt;jurisdictions), that might help mitigate user concerns about double&lt;br/&gt;spending.  Besides the extra communicating and signing, your existing&lt;br/&gt;workflow wouldn&amp;#39;t need to change. &lt;br/&gt;&lt;br/&gt;-Dave&lt;br/&gt;&lt;br/&gt;[1] Here&amp;#39;s some math for single show signatures in ECDSA:&lt;br/&gt;&lt;br/&gt;        &lt;a href=&#34;https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2014-December/007038.html&#34;&gt;https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2014-December/007038.html&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;    Probably a more practical way to enforce single-show in Bitcoin&lt;br/&gt;    would be something like OP_CHECKSIGFROMSTACK, e.g. as implemented in&lt;br/&gt;    Elements:&lt;br/&gt;&lt;br/&gt;        &lt;a href=&#34;https://elementsproject.org/features/opcodes&#34;&gt;https://elementsproject.org/features/opcodes&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;    Maybe SIGHASH_NOINPUT/SIGHASH_ANYPREVOUT could also be used to&lt;br/&gt;    enforce single-show with the right script?  I&amp;#39;m not so sure about&lt;br/&gt;    that.&lt;br/&gt;-------------- next part --------------&lt;br/&gt;A non-text attachment was scrubbed...&lt;br/&gt;Name: signature.asc&lt;br/&gt;Type: application/pgp-signature&lt;br/&gt;Size: 833 bytes&lt;br/&gt;Desc: not available&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/lightning-dev/attachments/20191217/dcd8987d/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/lightning-dev/attachments/20191217/dcd8987d/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-09T14:57:47&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs9x02h07q7vscy3fztmf3efnlzdmwm9eu4ueha7f7lgtnjeykesmczyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmy473lmq</id>
    
      <title type="html">📅 Original date posted:2019-12-14 📝 Original message: On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs9x02h07q7vscy3fztmf3efnlzdmwm9eu4ueha7f7lgtnjeykesmczyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmy473lmq" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsg3vvqf9smf7gcmjgyacslejr8veyvg44ds445ytwatwdn8pzd43c2rp704&#39;&gt;nevent1q…p704&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2019-12-14&lt;br/&gt;📝 Original message:&lt;br/&gt;On Mon, Dec 09, 2019 at 01:04:07PM -0500, Antoine Riard wrote:&lt;br/&gt;&amp;gt; Time-Dilation Attacks on Offchain Protocols&lt;br/&gt;&amp;gt; ===================================&lt;br/&gt;&lt;br/&gt;What is the advantage of these sophisticated attacks over the eclipse&lt;br/&gt;attacker simply not relaying the honest user&amp;#39;s commitment or penality&lt;br/&gt;transactions to miners?&lt;br/&gt;&lt;br/&gt;-Dave&lt;br/&gt;-------------- next part --------------&lt;br/&gt;A non-text attachment was scrubbed...&lt;br/&gt;Name: signature.asc&lt;br/&gt;Type: application/pgp-signature&lt;br/&gt;Size: 833 bytes&lt;br/&gt;Desc: not available&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/lightning-dev/attachments/20191214/6842ef3a/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/lightning-dev/attachments/20191214/6842ef3a/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-09T14:57:39&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsvrdmwntvylauwydpnln3293jytgglj4s4gyu4cx2g0vuzcngy48czyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmynnfvtz</id>
    
      <title type="html">📅 Original date posted:2019-01-05 📝 Original message: On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsvrdmwntvylauwydpnln3293jytgglj4s4gyu4cx2g0vuzcngy48czyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmynnfvtz" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsvf648m8ugek4js8q39ar9yxandsa4jauhffhhw6w50ka7p4prr2chk3ddg&#39;&gt;nevent1q…3ddg&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2019-01-05&lt;br/&gt;📝 Original message:&lt;br/&gt;On Sat, Jan 05, 2019 at 07:01:18AM &#43;0000, ZmnSCPxj wrote:&lt;br/&gt;&amp;gt; Good morning David,&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; What happens if the exchange node only sends its preimage towards the&lt;br/&gt;&amp;gt; payer and not towards the payee?&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; If the payer and payee do not coordinate, then it becomes possible for&lt;br/&gt;&amp;gt; the exchange node to take the funds without the payee gaining the&lt;br/&gt;&amp;gt; ability to claim the payment.&lt;br/&gt;&lt;br/&gt;Indeed, you are correct.  I had not taken that into account.  Thinking&lt;br/&gt;about it from that perspective, there&amp;#39;s no way to depend on proof that&lt;br/&gt;the someone received something (e.g. a payment) without also allowing&lt;br/&gt;the receiver to block payment by refusing to provide that proof.  That&lt;br/&gt;invalidates this class of solutions.&lt;br/&gt;&lt;br/&gt;Thanks,&lt;br/&gt;&lt;br/&gt;-Dave&lt;br/&gt;-------------- next part --------------&lt;br/&gt;A non-text attachment was scrubbed...&lt;br/&gt;Name: signature.asc&lt;br/&gt;Type: application/pgp-signature&lt;br/&gt;Size: 833 bytes&lt;br/&gt;Desc: not available&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/lightning-dev/attachments/20190105/6d4121cf/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/lightning-dev/attachments/20190105/6d4121cf/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-09T14:53:46&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsgsw46r8h6vmq3we8qm2jvntt90lzrnwkfc994wqgy2m90w0tcjuszyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmy5c4y6s</id>
    
      <title type="html">📅 Original date posted:2019-01-04 📝 Original message: On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsgsw46r8h6vmq3we8qm2jvntt90lzrnwkfc994wqgy2m90w0tcjuszyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmy5c4y6s" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsfarn88ac0pzahwxadysqplla9cgldw4j7n59p6azvl7xqglqyqms8eggvk&#39;&gt;nevent1q…ggvk&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2019-01-04&lt;br/&gt;📝 Original message:&lt;br/&gt;On Thu, Dec 27, 2018 at 05:43:51AM &#43;0000, ZmnSCPxj via Lightning-dev wrote:&lt;br/&gt;&amp;gt; We can try to mitigate this, but the solutions below all have significant drawbacks.&lt;br/&gt;&lt;br/&gt;An alternative is to give the person making the exchange the ability to&lt;br/&gt;cancel the payment if they think the exchange rate has changed&lt;br/&gt;unfavorably for them.  I think you could do that by adding an extra&lt;br/&gt;hashlock to the HTLC that&amp;#39;s controlled by the exchanger.  For example,&lt;br/&gt;here&amp;#39;s what we&amp;#39;d expect a cross-asset path to look like:&lt;br/&gt;&lt;br/&gt;    Alice       Bob         Charlie     Dan         Eliza&lt;br/&gt;    1.3 mBTC -&amp;gt; 1.3 mBTC -&amp;gt; 1.2 mBTC&lt;br/&gt;                            1.2 mWJT -&amp;gt; 1.1 mWJT -&amp;gt; 1.0 mWJT&lt;br/&gt;&lt;br/&gt;Instead of Alice&amp;#39;s node just locally constructing this path and trying&lt;br/&gt;to pay it like normal, she first sends a special probe to Charlie&lt;br/&gt;requesting a new hash for which only he knows the preimage.  With this&lt;br/&gt;hash plus the hash Alice received from Eliza, Alice sends a payment that&lt;br/&gt;requires both hashlocks be unlocked before anyone can claim the payment.&lt;br/&gt;&lt;br/&gt;1. When this payment reaches the exchanger, Charlie, he checks that the&lt;br/&gt;payment includes a hashlock he controls before routing the payment on to&lt;br/&gt;a different asset.&lt;br/&gt;&lt;br/&gt;2. When the payment reaches receiver Eliza&amp;#39;s node, she releases her&lt;br/&gt;PreImage (PI0) back along the path.&lt;br/&gt;&lt;br/&gt;3. When Eliza&amp;#39;s preimage reaches exchanger Charlie&amp;#39;s node, he releases&lt;br/&gt;his preimage (PI1) in both directions along the path and continues&lt;br/&gt;forwarding PI0 backwards.  Eventually everyone receives both preimages&lt;br/&gt;through the usual offchain or onchain mechanisms.&lt;br/&gt;&lt;br/&gt;    Alice       Bob         Charlie     Dan         Eliza&lt;br/&gt;    PI0    &amp;lt;-   PI0   &amp;lt;-    PI0     &amp;lt;-  PI0    &amp;lt;-   PI0 (start here)&lt;br/&gt;    PI1    &amp;lt;-   PI1   &amp;lt;-    PI1     -&amp;gt;  PI1    -&amp;gt;   PI1&lt;br/&gt;&lt;br/&gt;However, if the exchange rate changes too much for Charlie&amp;#39;s comfort&lt;br/&gt;before both preimages have been released, Charlie can unilaterally&lt;br/&gt;decide to cancel the payment by simply not releasing his preimage.&lt;br/&gt;&lt;br/&gt;Note that by making the payment contingent on the approval of the&lt;br/&gt;exchanger, the ability to create an underhanded call option is&lt;br/&gt;transferred to the exchanger.  However, this may be less concerning&lt;br/&gt;because the exchanger can only keep this option open by refusing to&lt;br/&gt;immediately claim the routing fees.&lt;br/&gt;&lt;br/&gt;For example, our exchanger Charlie is being offered 0.1 mBTC to route&lt;br/&gt;the payment (a made up number).  If he can route 100 such payments in a&lt;br/&gt;day (another made up number), he can earn 10.0 mBTC from routing.  By&lt;br/&gt;comparison, if he delays a payment of 1.2 mBTC, he&amp;#39;d need to expect the&lt;br/&gt;exchange rate to change by an order of magnitude within a day to earn&lt;br/&gt;the same amount.  In ZmnSCPxj&amp;#39;s terminology, the option is now no longer&lt;br/&gt;free because Charlie must decide between potential routing income and&lt;br/&gt;potential option income.  Whether or not exchangers play the option game&lt;br/&gt;will therefore likely be based on the amount of honest routing income&lt;br/&gt;they can earn relative to the exchange rate volatility (and also on how&lt;br/&gt;good nodes get at tracking reliable routes).&lt;br/&gt;&lt;br/&gt;This idea certainly complicates the current protocol (both routing and&lt;br/&gt;transaction construction), but maybe there are simplifications&lt;br/&gt;available.&lt;br/&gt;&lt;br/&gt;-Dave&lt;br/&gt;-------------- next part --------------&lt;br/&gt;A non-text attachment was scrubbed...&lt;br/&gt;Name: signature.asc&lt;br/&gt;Type: application/pgp-signature&lt;br/&gt;Size: 833 bytes&lt;br/&gt;Desc: not available&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/lightning-dev/attachments/20190104/09413fd9/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/lightning-dev/attachments/20190104/09413fd9/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-09T14:53:45&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsvt3gdgwarad7lz3npreexkc8ysa4n4v0t8glj5yaqh9tcaljejaszyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmypp86ys</id>
    
      <title type="html">📅 Original date posted:2021-08-08 📝 Original message: On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsvt3gdgwarad7lz3npreexkc8ysa4n4v0t8glj5yaqh9tcaljejaszyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmypp86ys" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqswld3uxl96j0l79nyhaauutwrkp9reraq03k4e4ujzlkkv3jca8fg4zav9k&#39;&gt;nevent1q…av9k&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2021-08-08&lt;br/&gt;📝 Original message:&lt;br/&gt;On Sun, Aug 08, 2021 at 11:52:55AM -0700, Jeremy wrote:&lt;br/&gt;&amp;gt; We should remove the dust limit from Bitcoin. Five reasons:&lt;br/&gt;&lt;br/&gt;Jeremy knows this, but to be clear for other readers, the dust limit is&lt;br/&gt;a policy in Bitcoin Core (and other software) where it refuses by&lt;br/&gt;default to relay or mine transactions with outputs below a certain&lt;br/&gt;amount.  If nodes or miners running with non-default policy choose to&lt;br/&gt;relay or mine those transactions, they are not penalized (not directly,&lt;br/&gt;at least; there&amp;#39;s BIP152 to consider).&lt;br/&gt;&lt;br/&gt;Question for Jeremy: would you also allow zero-value outputs?  Or would&lt;br/&gt;you just move the dust limit down to a fixed 1-sat?&lt;br/&gt;&lt;br/&gt;I think the dust limit is worth keeping:&lt;br/&gt;&lt;br/&gt;&amp;gt; 1) it&amp;#39;s not our business what outputs people want to create&lt;br/&gt;&lt;br/&gt;Every additional output added to the UTXO set increases the amount of&lt;br/&gt;work full nodes need to do to validate new transactions.  For miners&lt;br/&gt;for whom fast validation of new blocks can significantly affect their&lt;br/&gt;revenue, larger UTXO sets increase their costs and so contributes&lt;br/&gt;towards centralization of mining.&lt;br/&gt;&lt;br/&gt;Allowing 0-value or 1-sat outputs minimizes the cost for polluting the&lt;br/&gt;UTXO set during periods of low feerates.&lt;br/&gt;&lt;br/&gt;If your stuff is going to slow down my node and possibly reduce my&lt;br/&gt;censorship resistance, how is that not my business?&lt;br/&gt;&lt;br/&gt;&amp;gt; 2) dust outputs can be used in various authentication/delegation smart&lt;br/&gt;&amp;gt; contracts&lt;br/&gt;&lt;br/&gt;All of which can also use amounts that are economically rational to&lt;br/&gt;spend on their own.  If you&amp;#39;re gonna use the chain for something besides&lt;br/&gt;value transfer, and you&amp;#39;re already wiling to pay X in fees per onchain&lt;br/&gt;use, why is it not reasonable for us to ask you to put up something on&lt;br/&gt;the order of X as a bond that you&amp;#39;ll actually clean up your mess when&lt;br/&gt;you&amp;#39;re no longer interested in your thing?&lt;br/&gt;&lt;br/&gt;&amp;gt; 3) dust sized htlcs in lightning (&lt;br/&gt;&amp;gt; &lt;a href=&#34;https://bitcoin.stackexchange.com/questions/46730/can-you-send-amounts-that-would-typically-be-considered-dust-through-the-light&#34;&gt;https://bitcoin.stackexchange.com/questions/46730/can-you-send-amounts-that-would-typically-be-considered-dust-through-the-light&lt;/a&gt;)&lt;br/&gt;&amp;gt; force channels to operate in a semi-trusted mode &lt;br/&gt;&lt;br/&gt;Nope, nothing is forced.  Any LN node can simply refuse to accept/route&lt;br/&gt;HTLCs below the dust limit.&lt;br/&gt;&lt;br/&gt;&amp;gt; which has implications&lt;br/&gt;&amp;gt; (AFAIU) for the regulatory classification of channels in various&lt;br/&gt;&amp;gt; jurisdictions&lt;br/&gt;&lt;br/&gt;Sucks for the people living there.  They should change their laws.  If&lt;br/&gt;they can&amp;#39;t do that, they should change their LN node policies not to&lt;br/&gt;route uneconomic HTLCs.  We shouldn&amp;#39;t make Bitcoin worse to make&lt;br/&gt;complying with regulations easier.&lt;br/&gt;&lt;br/&gt;I also doubt your proposed solution fixes the problem.  Any LN node that&lt;br/&gt;accepts an uneconomic HTLC cannot recover that value, so the money is&lt;br/&gt;lost either way.  Any sane regulation would treat losing value to&lt;br/&gt;transaction fees the same as losing value to uneconomical conditions.&lt;br/&gt;&lt;br/&gt;Finally, if LN nodes start polluting the UTXO set with no economic way&lt;br/&gt;to clean up their mess, I think that&amp;#39;s going to cause tension between&lt;br/&gt;full node operators and LN node operators.&lt;br/&gt;&lt;br/&gt;&amp;gt; agnostic treatment of fund transfers would simplify this&lt;br/&gt;&amp;gt; (like getting a 0.01 cent dividend check in the mail)&lt;br/&gt;&lt;br/&gt;I&amp;#39;m not sure I understand this point.  It sounds to me like you&amp;#39;re&lt;br/&gt;comparing receiving an uneconomic output to receiving a check that isn&amp;#39;t&lt;br/&gt;worth the time to cash.  But the costs of checks are borne only by the&lt;br/&gt;people who send, receive, and process them.  The costs of uneconomic&lt;br/&gt;outputs polluting the UTXO set are borne by every full node forever (or&lt;br/&gt;for every archival full node forever if non-archival nodes end up using&lt;br/&gt;something like utreexo).&lt;br/&gt;&lt;br/&gt;&amp;gt; 4) thinly divisible colored coin protocols might make use of sats as value&lt;br/&gt;&amp;gt; markers for transactions.&lt;br/&gt;&lt;br/&gt;I&amp;#39;m not exactly sure what you&amp;#39;re talking about, but if Alice wants to&lt;br/&gt;communicate the number n onchain, she can do:&lt;br/&gt;&lt;br/&gt;    if n &amp;lt; dust:&lt;br/&gt;      nSequence = 0x0000 &#43; n  # should probably check endianess&lt;br/&gt;    else:&lt;br/&gt;      nValue = n&lt;br/&gt;&lt;br/&gt;There&amp;#39;s at least 15 bits of nSequence currently without consensus or&lt;br/&gt;policy meaning, and the dust limits are currently in the hundreds of&lt;br/&gt;sat, so there&amp;#39;s plenty of space.&lt;br/&gt;&lt;br/&gt;Alice could probably also communicate the same thing by grinding her&lt;br/&gt;output script&amp;#39;s hash or pubkey; again, with dust limits just being&lt;br/&gt;hundreds of sats, that&amp;#39;s not too much grinding.&lt;br/&gt;&lt;br/&gt;&amp;gt; 5) should we ever do confidential transactions we can&amp;#39;t prevent it without&lt;br/&gt;&amp;gt; compromising privacy / allowed transfers&lt;br/&gt;&lt;br/&gt;I&amp;#39;m not an expert, but it seems to me that you can do that with range&lt;br/&gt;proofs.  The range proof for &amp;gt;dust doesn&amp;#39;t need to become part of the&lt;br/&gt;block chain, it can be relay only.&lt;br/&gt;&lt;br/&gt;I haven&amp;#39;t looked since they upgraded to bulletproofs, but ISTR the&lt;br/&gt;original CT implementation leaked the most significant digits or&lt;br/&gt;something (that kept down the byte size of the proofs), so maybe it was&lt;br/&gt;already possible to know what was certainly not dust and what might be&lt;br/&gt;dust.&lt;br/&gt;&lt;br/&gt;In short, it&amp;#39;s my opinion that the dust limit is not creating any real&lt;br/&gt;problems, so it should be kept for its contribution to keeping full&lt;br/&gt;nodes faster, cheaper, and more efficient.&lt;br/&gt;&lt;br/&gt;-Dave&lt;br/&gt;&lt;br/&gt;P.S. As I prepared to send this, Matt&amp;#39;s email arrived about &amp;#34;If it&lt;br/&gt;weren&amp;#39;t for the implications in changing standardness here, I think we&lt;br/&gt;should consider increasing the dust limit instead.&amp;#34;  I&amp;#39;m in agreement&lt;br/&gt;with both parts of that statement.&lt;br/&gt;-------------- next part --------------&lt;br/&gt;A non-text attachment was scrubbed...&lt;br/&gt;Name: signature.asc&lt;br/&gt;Type: application/pgp-signature&lt;br/&gt;Size: 833 bytes&lt;br/&gt;Desc: not available&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/lightning-dev/attachments/20210808/3feb232d/attachment-0001.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/lightning-dev/attachments/20210808/3feb232d/attachment-0001.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-09T14:40:45&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsx6mr6g87dvu4f5r3v27cv7x3hvlra57tg2a0q9havlhd99kuhckczyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmyq3a6w2</id>
    
      <title type="html">📅 Original date posted:2023-05-27 🗒️ Summary of this ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsx6mr6g87dvu4f5r3v27cv7x3hvlra57tg2a0q9havlhd99kuhckczyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmyq3a6w2" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqswn4y9peevlrl7mekv9zr0486x3c88whjmgh9sfae4ltq90jmag2q6hg9nk&#39;&gt;nevent1q…g9nk&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2023-05-27&lt;br/&gt;🗒️ Summary of this message: A proposal suggests relaying block templates and weak blocks to improve DoS resistance and offer useful features, delegating responsibility to relays to mitigate concerns.&lt;br/&gt;📝 Original message:On 2023-05-22 21:19, Joost Jager via bitcoin-dev wrote:&lt;br/&gt;&amp;gt; A notable advantage of this approach is that it delegates the&lt;br/&gt;&amp;gt; responsibility of dealing with Denial-of-Service (DoS) threats to the&lt;br/&gt;&amp;gt; relays themselves. They could, for example, require a payment to&lt;br/&gt;&amp;gt; mitigate such concerns.&lt;br/&gt;&lt;br/&gt;Hi Joost,&lt;br/&gt;&lt;br/&gt;Thanks for working on this!  One quick thought I had was that a possibly&lt;br/&gt;interesting avenue for exploration would be that, in addition to&lt;br/&gt;relaying individual transactions or packages, it might be worth relaying&lt;br/&gt;block templates and weak blocks as both of those provide inherent DoS&lt;br/&gt;resistance and can offer useful features.&lt;br/&gt;&lt;br/&gt;A block template is an ordered list of raw transactions that can all be&lt;br/&gt;included in the next block (with some space reserved for a coinbase&lt;br/&gt;transaction).  A full node can validate those transactions and calculate&lt;br/&gt;how much fee they pay.  A Nostr relay can simply relay almost[1] any&lt;br/&gt;template that pays more fees than the previous best template it saw for&lt;br/&gt;the next block.  That can be more flexible than the current&lt;br/&gt;implementation of submitblock with package relay which still enforces a&lt;br/&gt;lot of the rules that helps keep a regular relay node safe from DoS and&lt;br/&gt;a miner node able to select mineable transactions quickly.&lt;br/&gt;&lt;br/&gt;A weak block is a block whose header doesn&amp;#39;t quite hash to low enough of&lt;br/&gt;a value to be included on the chain.  It still takes an extraordinary&lt;br/&gt;amount of hashrate to produce, so it&amp;#39;s inherently DoS resistant.  If&lt;br/&gt;miners are producing block that include transactions not seen by typical&lt;br/&gt;relay nodes, that can reduce the efficiency and effectiveness of BIP152&lt;br/&gt;compact block relay, which hurts the profitability of miners of custom&lt;br/&gt;blocks.  To compensate, miners could relay weak blocks through Nostr to&lt;br/&gt;full nodes and other miners so that they could quickly relay and accept&lt;br/&gt;complete blocks that later included the same custom transactions.  This&lt;br/&gt;would also help fee estimation and provide valuable insights to those&lt;br/&gt;trying to get their transactions included into the next block.&lt;br/&gt;&lt;br/&gt;Regarding size, the block template and weak block could both be sent in&lt;br/&gt;BIP152 compact block format as a diff against the expected contents of a&lt;br/&gt;typical node, allowing Alice to send just a small amount of additional&lt;br/&gt;data for relay over what she&amp;#39;d have to send anyway for each transaction&lt;br/&gt;in a package.  (Although it&amp;#39;s quite possible that BetterHash or Stratum&lt;br/&gt;v2 have even better solutions, possibly already implemented.)&lt;br/&gt;&lt;br/&gt;If nothing else, I think Nostr could provide an interesting playground&lt;br/&gt;for experimenting with various relay and mining ideas we&amp;#39;ve talked about&lt;br/&gt;for years, so thanks again for working on this!&lt;br/&gt;&lt;br/&gt;-Dave&lt;br/&gt;&lt;br/&gt;[1] In addition to validating transactions, a relay would probably want&lt;br/&gt;     to reject templates that contained transactions that took&lt;br/&gt;     excessively long to validate (which could cause a block including&lt;br/&gt;     them to become stale) or that included features reserved for&lt;br/&gt;     upgrades (as a soft fork that happened before the relay&amp;#39;s node was&lt;br/&gt;     upgraded might make that block invalid).
    </content>
    <updated>2023-06-08T01:22:01&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsv2aqux8kpj6cx444rv8vstfs3fxcraz478f5kz9lcktujjq9d4zszyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmy54n2ne</id>
    
      <title type="html">📅 Original date posted:2023-05-27 🗒️ Summary of this ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsv2aqux8kpj6cx444rv8vstfs3fxcraz478f5kz9lcktujjq9d4zszyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmy54n2ne" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsr7e8gykkpfhqy77e7ne6y3ws5580ggrvvjcr9xwh3vm332npwkwst0e7tn&#39;&gt;nevent1q…e7tn&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2023-05-27&lt;br/&gt;🗒️ Summary of this message: Financial analysis of Alice&amp;#39;s capital requirements for various activities, including lightning payments and internal transfers. Instant settlement requires OP_XOR or OP_CAT on the base layer.&lt;br/&gt;📝 Original message:Hi Burak,&lt;br/&gt;&lt;br/&gt;Thanks for your response!  I found it very helpful.  I&amp;#39;m going to reply&lt;br/&gt;to your email a bit out of order.&lt;br/&gt;&lt;br/&gt;&amp;gt; 4. Alice places one input to her one-in, three-out transaction to&lt;br/&gt;&amp;gt;    supply funds to commitment output, connectors output, change&lt;br/&gt;&amp;gt;    output, and transaction fees.&lt;br/&gt;&lt;br/&gt;You don&amp;#39;t mention it in your reply, but was I correct in my earlier&lt;br/&gt;email in assuming that Alice can claim any funds paid to a commitment&lt;br/&gt;output after four weeks if its commitments haven&amp;#39;t been published&lt;br/&gt;onchain?  E.g., that in the best case this allows a ~50 vbyte commitment&lt;br/&gt;output that pays an arbitrary number of users to be spent as a ~100&lt;br/&gt;vbyte input (P2TR scriptpath for pk(A) &amp;amp;&amp;amp; older(4 weeks))?&lt;br/&gt;&lt;br/&gt;&amp;gt; 1. Mixing coins.&lt;br/&gt;&amp;gt; 2. Paying lightning invoices&lt;br/&gt;&amp;gt; 3. Making internal transfers&lt;br/&gt;&lt;br/&gt;If commitment outputs can&amp;#39;t normally be spent by Alice for four weeks,&lt;br/&gt;then Alice needs to keep enough capital on hand to pay out all amounts&lt;br/&gt;involved in the activities listed above.  I&amp;#39;ve seen many people make&lt;br/&gt;this point, but I wanted to run some rough numbers to estimate the&lt;br/&gt;extent of that capital load.&lt;br/&gt;&lt;br/&gt;Let&amp;#39;s say Alice has a million customers who each receive all of their&lt;br/&gt;income and pay all of their expenses with her.  In my country, the&lt;br/&gt;median income is a bit less than $36,000 USD, or about $3,000 a month.&lt;br/&gt;I imagine spending is not evenly distributed over time, so let&amp;#39;s say&lt;br/&gt;Alice needs to hold 3x the average to be prepared for a busy period.&lt;br/&gt;That implies Alice&amp;#39;s capital requirements are about $9 billion USD (3 *&lt;br/&gt;3000 * 1e6).&lt;br/&gt;&lt;br/&gt;At a hypothetical risk-free interest rate of 1.5% annual, that&amp;#39;s about&lt;br/&gt;$135 that will need to be recovered from each user per year (9e9 * 0.015&lt;br/&gt;/ 1e6).&lt;br/&gt;&lt;br/&gt;Additionally, if we assume the cost of an onchain transaction is $100&lt;br/&gt;and the service creates one transaction per five seconds, that&amp;#39;s $630 in&lt;br/&gt;fee costs that will need to be recovered from each user per year ((60 /&lt;br/&gt;5) * 60 * 24 * 365 * 100 / 1e6).&lt;br/&gt;&lt;br/&gt;I&amp;#39;ll come back to this financial analysis later.&lt;br/&gt;&lt;br/&gt;&amp;gt; If we want to enable Lightning-style instant settlement assurances for&lt;br/&gt;&amp;gt; the internal transfers, we need OP_XOR or OP_CAT on the base layer&lt;br/&gt;&amp;gt; [...] &lt;a href=&#34;https://eprint.iacr.org/2017/394.pdf&#34;&gt;https://eprint.iacr.org/2017/394.pdf&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;What do you mean by &amp;#34;instant&amp;#34;?  Do you mean &amp;#34;settlement as soon as the&lt;br/&gt;next onchain pool transaction is published&amp;#34;?  For example, within 5&lt;br/&gt;seconds if the coinjoining completes on time?  That&amp;#39;s significantly&lt;br/&gt;slower than LN today, at least in the typical case for a well-connected&lt;br/&gt;node.[1]&lt;br/&gt;&lt;br/&gt;I think 5 seconds is fine for a lot of purposes (at both point-of-sale&lt;br/&gt;terminals and on websites, I very often need to wait &amp;gt;5 seconds for a&lt;br/&gt;credit card transaction to process), but I think it&amp;#39;s worth noting the&lt;br/&gt;speed difference in a technical discussion.&lt;br/&gt;&lt;br/&gt;Additionally, I think the idea described significantly predates that&lt;br/&gt;paper&amp;#39;s publication, e.g.:&lt;br/&gt;&lt;br/&gt;&amp;#34;Well while you can&amp;#39;t prevent it you could render it insecure enabling&lt;br/&gt;miners to take funds.  That could work via a one-show signature&lt;br/&gt;[...]&amp;#34;[2]&lt;br/&gt;&lt;br/&gt;A problem with the idea of using one-show signatures as double-spend&lt;br/&gt;protection is that miner-claimable fidelity bonds don&amp;#39;t work as well&lt;br/&gt;against adversaries that are not just counterparties but also miners&lt;br/&gt;themselves.  This same problem has been described for other ideas[3],&lt;br/&gt;but to summarize:&lt;br/&gt;&lt;br/&gt;Bob has something valuable.  Alice offers him the output of an&lt;br/&gt;unconfirmed transaction in exchange for that thing.  She also provides a&lt;br/&gt;bond that will pay its amount to any miner who can prove that Alice&lt;br/&gt;double spent her input to the unconfirmed transaction.&lt;br/&gt;&lt;br/&gt;If Alice is miner, she can privately create candidate blocks that double&lt;br/&gt;spend the payment to Bob and which also claim the bond.  If she fails to&lt;br/&gt;find a PoW solution for those candidate blocks, she lets Bob have his&lt;br/&gt;money.  If she does find a PoW solution, she publishes the block, taking&lt;br/&gt;Bob&amp;#39;s money, securing her bond, and also receiving all the regular block&lt;br/&gt;rewards (sans the fees from whatever space she used for her&lt;br/&gt;transaction).&lt;br/&gt;&lt;br/&gt;I haven&amp;#39;t exactly[4] seen this mentioned before, but I think it&amp;#39;s&lt;br/&gt;possible to weaken Alice&amp;#39;s position by putting a timelock on the&lt;br/&gt;spending of the bond, preventing it from being spent in the same block&lt;br/&gt;as the double-spend.  For example, a one-block timelock (AKA: 1 CSV)&lt;br/&gt;would mean that she would need to mine both the block containing her&lt;br/&gt;unconfirmed transactions (to double spend them) and the next block (to&lt;br/&gt;pay the fidelity bonds back to herself).&lt;br/&gt;&lt;br/&gt;Ignoring fee-sniping (bond-sniping in this case), selfish mining, and&lt;br/&gt;51% attacks, her chance of success at claiming the fidelity bond is&lt;br/&gt;equal to her portion of the network hashrate, e.g. if she has 33%, she&amp;#39;s&lt;br/&gt;33% likely to succeed at double spending without paying a penalty.  The&lt;br/&gt;value of the fidelity bond can be scaled to compensate for that, e.g. if&lt;br/&gt;you&amp;#39;re worried about Alice controlling up to 50% of hashrate, you make&lt;br/&gt;the fidelity bond at least 2x the base amount (1 / 50%).  Let&amp;#39;s again&lt;br/&gt;assume that Alice has a million users making $3,000 USD of payments per&lt;br/&gt;month (28 days), or about on average $75,000 per minute (1e6 * 3000 / 28&lt;br/&gt;/ 24 / 60).  If Alice bonds 2x the payment value and her bonds don&amp;#39;t&lt;br/&gt;expire for 6 blocks (which might take 3 hours), she needs an additional&lt;br/&gt;$27 million worth of BTC on hand (75000 * 2 * (3 * 60)), which I admit&lt;br/&gt;is trivial compared to the other capital requirements mentioned above.&lt;br/&gt;&lt;br/&gt;* * *&lt;br/&gt;&lt;br/&gt;Taken all together, it seems to me that Alice might need to keep several&lt;br/&gt;billion dollars worth of BTC in a hot wallet in order to serve a million&lt;br/&gt;users.  The per-user cost in fees and capital service would be around&lt;br/&gt;$1,000 per year.  If we assume onchain transaction costs are about $100,&lt;br/&gt;that would be equal to 10 channels that could be opened or closed by&lt;br/&gt;each user for the same amount (i.e. an average of 5 channel rotations&lt;br/&gt;per year).&lt;br/&gt;&lt;br/&gt;Did I miss something in my analysis that would indicate the capital&lt;br/&gt;costs would be significantly lower or that there wouldn&amp;#39;t be other&lt;br/&gt;tradeoffs (slower settlement than LN and a need to use a timelocked&lt;br/&gt;fidelity bond)?&lt;br/&gt;&lt;br/&gt;Thanks!,&lt;br/&gt;&lt;br/&gt;-Dave&lt;br/&gt;&lt;br/&gt;[1] &lt;a href=&#34;https://twitter.com/Leishman/status/1661138737009442818&#34;&gt;https://twitter.com/Leishman/status/1661138737009442818&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;[2] &lt;br/&gt;&lt;a href=&#34;https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2014-December/007038.html&#34;&gt;https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2014-December/007038.html&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;[3] &lt;br/&gt;&lt;a href=&#34;https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2020-June/018010.html&#34;&gt;https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2020-June/018010.html&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;[4] Years ago, I think I saw a reply by Peter Todd to some idea about&lt;br/&gt;     paying money to miners in a fair way and he noted that it was&lt;br/&gt;     critical to pay miners far enough in the future that the current set&lt;br/&gt;     of miners wouldn&amp;#39;t be incentivized to manipulate who got the money&lt;br/&gt;     by choosing which block to include the transaction in now.  I wasn&amp;#39;t&lt;br/&gt;     able to quickly find that post, but it definitely influenced my&lt;br/&gt;     thinking here.
    </content>
    <updated>2023-06-08T01:21:55&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsrl0utstn6rx2rptwzdrsfxx3t7xu5ystw9jm0gyctssw2x6xh4wszyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmy5ttmev</id>
    
      <title type="html">📅 Original date posted:2023-05-24 🗒️ Summary of this ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsrl0utstn6rx2rptwzdrsfxx3t7xu5ystw9jm0gyctssw2x6xh4wszyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmy5ttmev" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsvxm5lttr2vryp6pvvusprajpj5g25vza78gjkdhnavmytt8rsy6g93xeuf&#39;&gt;nevent1q…xeuf&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 protocol involves an Ark service provider broadcasting a new unconfirmed on-chain transaction every 5 seconds, with three outputs. Bob can deposit 1 BTC with Alice and they both sign the PSBT, which is broadcast. Bob can unilaterally withdraw or collaboratively withdraw the funds.&lt;br/&gt;📝 Original message:Hi Burak,&lt;br/&gt;&lt;br/&gt;Thanks for this really interesting protocol!  I tend to analyze&lt;br/&gt;complicated ideas like this by writing about them in my own words, so&lt;br/&gt;I&amp;#39;ve pasted my summary of your idea to the end of this email in case&lt;br/&gt;it&amp;#39;s useful, either to other people or to you in helping understand my&lt;br/&gt;one concern.&lt;br/&gt;&lt;br/&gt;My concern is the same one I think Olaoluwa Osuntokun mentioned on&lt;br/&gt;Twitter[1] and (less clear to me) might be related to ZmnSCPxj&amp;#39;s&lt;br/&gt;concern[2]:&lt;br/&gt;&lt;br/&gt;It seems to me that receiving a payment on the protocol, including&lt;br/&gt;conditional payments using HTLC, PTLC, or Anchor-TLC, requires waiting&lt;br/&gt;for the transaction containing that payment to confirm to a sufficient&lt;br/&gt;depth (e.g., I&amp;#39;d wait 6 blocks for small payments and longer for huge&lt;br/&gt;payments).  Am I missing something?&lt;br/&gt;&lt;br/&gt;My summary of how I think that part of the protocol works is in the&lt;br/&gt;sections labeled &amp;#34;Make an unconditioned payment&amp;#34; and &amp;#34;Make a conditional&lt;br/&gt;payment&amp;#34; below.  In short, it&amp;#39;s clear to me how the service provider and&lt;br/&gt;the customer can make instant atomic swaps with each other---they can&lt;br/&gt;either spend instantly cooperatively, or they have to wait for a&lt;br/&gt;timeout.  But how can a receiver of funds be assured that they will&lt;br/&gt;actually get those funds unless there&amp;#39;s already a timelock and&lt;br/&gt;cooperative spend path placed on those funds?&lt;br/&gt;&lt;br/&gt;-Dave&lt;br/&gt;&lt;br/&gt;Rough initial summary of Ark protocol:&lt;br/&gt;&lt;br/&gt;Alice runs an Ark service provider.  Every 5 seconds, she broadcasts a&lt;br/&gt;new unconfirmed onchain transaction that pays three outputs (the&lt;br/&gt;three Cs):&lt;br/&gt;&lt;br/&gt;1. *Change Output:* money not used for the other two Cs that gets sent&lt;br/&gt;    back to the the transaction creator.&lt;br/&gt;&lt;br/&gt;2. *Connector Output:* an output that will be used in a future&lt;br/&gt;    transaction created by Alice as protection against double spends.&lt;br/&gt;&lt;br/&gt;3. *Commitment Output:* a CTV-style commitment to a set of outputs that&lt;br/&gt;    can be published later in a descendant transaction (alternatively,&lt;br/&gt;    the commitment output may be spent unilaterally by Alice after 4&lt;br/&gt;    weeks).&lt;br/&gt;&lt;br/&gt;Bob wants to deposit 1 BTC with Alice.  He sends her an unsigned PSBT&lt;br/&gt;with an input of his and a change output.  She updates the PSBT with a&lt;br/&gt;commitment output that refunds Bob the 1 BTC and a connector output with&lt;br/&gt;some minimum value.  They both sign the PBST and it is broadcast.  We&amp;#39;ll&lt;br/&gt;ignore fees in our examples, both onchain transaction fees and fees paid&lt;br/&gt;to Alice.&lt;br/&gt;&lt;br/&gt; From here, there are several things that Bob can do:&lt;br/&gt;&lt;br/&gt;- *Unilaterally withdraw:* Bob can spend from the commitment output to&lt;br/&gt;   put his refund onchain.  The refund can only be spent after a 24-hour&lt;br/&gt;   time delay, allowing Bob to optionally come to an agreement with Alice&lt;br/&gt;   about how to spend the funds before Bob can spend them unilaterally&lt;br/&gt;   (as we&amp;#39;ll see in a moment).  For example, the script might be[3]:&lt;br/&gt;&lt;br/&gt;     pk(B) &amp;amp;&amp;amp; (older(1 day) || pk(A))&lt;br/&gt;&lt;br/&gt;- *Collaboratively withdraw:* as seen above, Bob has the ability to come&lt;br/&gt;   to a trustless agreement with Alice about how to spend his funds.&lt;br/&gt;   They can use that ability to allow Bob to trade his (unpublished) UTXO&lt;br/&gt;   for a UTXO that Alice funds and broadcasts.  For example:&lt;br/&gt;&lt;br/&gt;     - Alice creates an unsigned PSBT that uses as one of its inputs the&lt;br/&gt;       connector from Bob&amp;#39;s deposit transaction.  This will ensure that&lt;br/&gt;       any attempt by Bob to double-spend his deposit transaction will&lt;br/&gt;       invalidate this withdrawal transaction, preventing Bob from being&lt;br/&gt;       able to steal any of Alice&amp;#39;s funds.&lt;br/&gt;&lt;br/&gt;         Also included in Alice&amp;#39;s unsigned PSBT is another connector&lt;br/&gt;         output plus the output that pays Bob his 1 BTC.&lt;br/&gt;&lt;br/&gt;     - Bob receives Alice&amp;#39;s unsigned PSBT and creates a separate PSBT&lt;br/&gt;       that includes his unpublished UTXO as an input, giving its value&lt;br/&gt;       to Alice in an output.  The PSBT also includes as an input the&lt;br/&gt;       connector output from Alice&amp;#39;s PSBT.  This will ensure that any&lt;br/&gt;       attempt by Alice to double spend her transaction paying him will&lt;br/&gt;       invalidate his transaction paying her.&lt;br/&gt;&lt;br/&gt;     - Bob signs his PSBT and gives it to Alice.  After verifying it,&lt;br/&gt;       Alice signs her PSBT and broadcasts it.&lt;br/&gt;&lt;br/&gt;- *Collaboratively trade commitments:* as mentioned, the commitment&lt;br/&gt;   output that pays Bob may be claimed instead by Alice after 4 weeks, so&lt;br/&gt;   Bob will need to either withdraw or obtain a new commitment within &lt;br/&gt;that&lt;br/&gt;   time.  To trade his existing commitment for a new commitment looks&lt;br/&gt;   similar to the collaborative withdrawal procedure but without the&lt;br/&gt;   creation of an immediately-spendable onchain output:&lt;br/&gt;&lt;br/&gt;     - Alice creates an unsigned PSBT that uses as one of its inputs the&lt;br/&gt;       connector from Bob&amp;#39;s deposit transaction, again preventing double&lt;br/&gt;       spending by Bob.  Alice also includes a new connector and a new&lt;br/&gt;       commitment that again allows Bob to later claim 1 BTC.&lt;br/&gt;&lt;br/&gt;     - Bob receives Alice&amp;#39;s PSBT and creates a PSBT transferring his&lt;br/&gt;       existing commitment to her, with the new connector again being&lt;br/&gt;       included as an input to ensure atomicity.&lt;br/&gt;&lt;br/&gt;     - Bob signs; Alice signs and broadcasts.&lt;br/&gt;&lt;br/&gt;- *Make an unconditioned payment:* using the mechanisms described above,&lt;br/&gt;   it&amp;#39;s possible to make either an onchain payment or an offchain&lt;br/&gt;   payment---just have Carol receive the new output or commitment rather&lt;br/&gt;   than Bob.  That payment would have no conditions (except its&lt;br/&gt;   atomicity).&lt;br/&gt;&lt;br/&gt;- *Make a conditional payment:* imagine that Carol knows a secret (e.g.&lt;br/&gt;   a preimage) that Bob is willing to pay for.&lt;br/&gt;&lt;br/&gt;      - Alice creates an unsigned PSBT depending on the connector from&lt;br/&gt;        Bob&amp;#39;s deposit transaction and creating a new connector.  The PSBT&lt;br/&gt;        includes an output paying Carol (either onchain or via a&lt;br/&gt;        commitment) with an HTLC, allowing Carol to claim the funds if &lt;br/&gt;she&lt;br/&gt;        reveals the secret or allowing Bob to claim the funds after a&lt;br/&gt;        timeout.&lt;br/&gt;&lt;br/&gt;      - Bob receives Alice&amp;#39;s PSBT and creates a PSBT transferring his&lt;br/&gt;        existing commitment to her with the HTLC condition attached and,&lt;br/&gt;        again, with connectors being used to ensure atomicity.&lt;br/&gt;&lt;br/&gt;      - Bob signs; Alice signs and broadcasts.&lt;br/&gt;&lt;br/&gt;      - Carol can settle her HTLC by either revealing the secret onchain&lt;br/&gt;        or by trading her commitment containing the HTLC clause for a&lt;br/&gt;        commitment from Alice that doesn&amp;#39;t contain the clause (which&lt;br/&gt;        Alice will only accept by learning the secret, since Alice has&lt;br/&gt;        to settle with Bob).  Alice can then either settle onchain or&lt;br/&gt;        trade commitments with Bob after giving him the secret.&lt;br/&gt;&lt;br/&gt;- *Do nothing for 4 weeks:* if Bob does nothing for four weeks, Alice&lt;br/&gt;   can claim the funds from the commitment output (i.e., takes his&lt;br/&gt;   money).&lt;br/&gt;&lt;br/&gt;     If Bob did actually do something, and if every other user who also&lt;br/&gt;     had an unpublished output in the commitment transaction did&lt;br/&gt;     something, then they all exchanged their portion of the funds in&lt;br/&gt;     this output to Alice, so Alice can now claim all of those funds&lt;br/&gt;     onchain in a highly efficient manner.&lt;br/&gt;&lt;br/&gt;Regarding the connector outputs, although all of the examples above show&lt;br/&gt;Alice directly spending from the connector output in Bob&amp;#39;s deposit&lt;br/&gt;transaction, atomicity is also ensured if Alice spends from any output&lt;br/&gt;descended from Bob&amp;#39;s connector output.  Connector outputs from different&lt;br/&gt;deposits can be used as inputs into the same transaction, merging their&lt;br/&gt;histories.  This allows all operations made by Alice to be fully atomic,&lt;br/&gt;ensuring that she doesn&amp;#39;t lose any money during a reorg of any length.&lt;br/&gt;&lt;br/&gt;Users are not so well protected during reorgs, e.g. if Bob double-spends&lt;br/&gt;a transaction whose funds were later used in a payment to Carol, then&lt;br/&gt;Carol loses the money.  For this reason, Alice will probably want to&lt;br/&gt;prove to users that no funds they receive in a payment derive from any&lt;br/&gt;deposit less than safe_confirmation_depth blocks.&lt;br/&gt;&lt;br/&gt;[1] &lt;a href=&#34;https://twitter.com/roasbeef/status/1661266771784126464&#34;&gt;https://twitter.com/roasbeef/status/1661266771784126464&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;[2] &lt;br/&gt;&lt;a href=&#34;https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2023-May/021710.html&#34;&gt;https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2023-May/021710.html&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;[3] &lt;br/&gt;&lt;a href=&#34;https://min.sc/#c=pk%28B%29%20%26%26%20%28older%281%20day%29%20%7C%7C%20pk%28A%29%29&#34;&gt;https://min.sc/#c=pk%28B%29%20%26%26%20%28older%281%20day%29%20%7C%7C%20pk%28A%29%29&lt;/a&gt;
    </content>
    <updated>2023-06-08T01:21:54&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqstc3hksdnsnyhyef9a2w4j5sjjdhrr4ec5uk43hfajl0eny67mezczyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmy7h0mtm</id>
    
      <title type="html">📅 Original date posted:2023-04-16 🗒️ Summary of this ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqstc3hksdnsnyhyef9a2w4j5sjjdhrr4ec5uk43hfajl0eny67mezczyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmy7h0mtm" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs2tma0adf82s8zsa7v5kf30zpagg6v4yu2w2fe7wvan065cnr8fgs36csk8&#39;&gt;nevent1q…csk8&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2023-04-16&lt;br/&gt;🗒️ Summary of this message: Dr. Orlovsky&amp;#39;s RGB project aims to build a programmability layer for Bitcoin and Lightning, enabling assets beyond tokens, such as DAOs and decentralized identities. However, there are concerns about the security of non-publishable conditional statements in multiparty protocols.&lt;br/&gt;📝 Original message:Hi Dr Orlovsky,&lt;br/&gt;&lt;br/&gt;Thank you for writing about your interesting project.  Some replies&lt;br/&gt;inline below:&lt;br/&gt;&lt;br/&gt;On 2023-04-10 12:09, Dr Maxim Orlovsky via bitcoin-dev wrote:&lt;br/&gt;&amp;gt; RGB v0.10 can be downloaded and installed as described on &lt;br/&gt;&amp;gt; &amp;lt;&lt;a href=&#34;https://rgb.tech&amp;gt&#34;&gt;https://rgb.tech&amp;gt&lt;/a&gt;;&lt;br/&gt;&amp;gt; website, which also contains a number of user and developer guidelines.&lt;br/&gt;&amp;gt; RGB source code can be found on &amp;lt;&lt;a href=&#34;https://github.com/RGB-WG&amp;gt&#34;&gt;https://github.com/RGB-WG&amp;gt&lt;/a&gt;;&lt;br/&gt;&lt;br/&gt;FYI: the RGB-WG organization page links to a repository whose latest&lt;br/&gt;release is 0.9 and whose latest commit is titled, &amp;#34;Release v.0.9.1&amp;#34;, see&lt;br/&gt;&lt;a href=&#34;https://github.com/RGB-WG/rgb-node/&#34;&gt;https://github.com/RGB-WG/rgb-node/&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&amp;gt; My goal with RGB was not just to enable assets on Lightning, but that&lt;br/&gt;&amp;gt; of a much larger scope: to build a programmability layer for Bitcoin&lt;br/&gt;&amp;gt; and Lightning, which may unlock other cases than just tokens - DAOs,&lt;br/&gt;&amp;gt; decentralized identities and other things that bitcoin itself was &lt;br/&gt;&amp;gt; lacking.&lt;br/&gt;&lt;br/&gt;Is there any documentation or discussion archives that address the&lt;br/&gt;problem of non-publishable conditional statements seemingly being &lt;br/&gt;insecure in&lt;br/&gt;multiparty protocols, as previously described on this list[1] by Ruben&lt;br/&gt;Somsen?  To give my own example of the problem:&lt;br/&gt;&lt;br/&gt;- Bob doesn&amp;#39;t believe that there&amp;#39;s a number which can be multiplied by 2&lt;br/&gt;   to produce 4.  He&amp;#39;s willing to pay a bounty for proof that he&amp;#39;s wrong&lt;br/&gt;   but Bitcoin does not currently provide a multiplication opcode, so he&lt;br/&gt;   can&amp;#39;t simply pay a script that says: &amp;#34;2 OP_MUL 4 OP_EQUAL&amp;#34;&lt;br/&gt;&lt;br/&gt;- Bob hears that RGB has turing-complete scripting, so he buys some&lt;br/&gt;   random tokens that have an RGB contract which allows him to encumber&lt;br/&gt;   them by any AlumVM script.  He then creates a Bitcoin transaction&lt;br/&gt;   signed SIGHASH_NONE|SH_ANYONECANPAY that will allow anyone knowing the&lt;br/&gt;   solution to (x * 2 == 4) to spend his RGB-based tokens.  He publishes&lt;br/&gt;   a PSBT for the transaction along with the RGB data needed to claim the&lt;br/&gt;   tokens.&lt;br/&gt;&lt;br/&gt;- Anyone on the network can now claim the BTC without knowing the&lt;br/&gt;   solution, destroying the RGB-based tokens.&lt;br/&gt;&lt;br/&gt;- If, instead, Bob hears that Mallory knows the solution, he could sign &lt;br/&gt;a&lt;br/&gt;   PSBT with the default SH_ALL to her, but then Mallory could take the&lt;br/&gt;   BTC without solving the problem, again destroying the RGB-based&lt;br/&gt;   tokens.&lt;br/&gt;&lt;br/&gt;- Or, in another case, Bob hears that Alice knows the solution, but he&lt;br/&gt;   doesn&amp;#39;t want to risk his tokens being destroyed, so he refuses to sign&lt;br/&gt;   a transaction paying Alice until she provides him the answer.  When&lt;br/&gt;   Alice does provide him the answer, and he realizes it&amp;#39;s so simple, he&lt;br/&gt;   changes his mind about paying her and doesn&amp;#39;t sign his transaction to&lt;br/&gt;   her.  She has no recourse.&lt;br/&gt;&lt;br/&gt;It seems to me, based on my understanding of Somsen&amp;#39;s original insight,&lt;br/&gt;that client-side validation by itself cannot enforce conditions in a&lt;br/&gt;trustless multiparty setting.&lt;br/&gt;&lt;br/&gt;I think that implies that it&amp;#39;s only possible to enforce conditions in a&lt;br/&gt;consensus system (or in a trust-dependent system), which would have&lt;br/&gt;significant implications for the future direction of your work, as you&lt;br/&gt;wrote in your email:&lt;br/&gt;&lt;br/&gt;&amp;gt; We&amp;#39;re also working on the design of a layer 1 which will be perfect for &lt;br/&gt;&amp;gt; the&lt;br/&gt;&amp;gt; client-side-validated applications (“how to design a blockchain today &lt;br/&gt;&amp;gt; if we&lt;br/&gt;&amp;gt; knew about client-side-validation/single-use-seals”). This should be &lt;br/&gt;&amp;gt; very&lt;br/&gt;&amp;gt; compact (order of one signature per block) ultra-scalable &lt;br/&gt;&amp;gt; (theoretically&lt;br/&gt;&amp;gt; unlimited no of tx in a block) chain which can run systems like RGB - &lt;br/&gt;&amp;gt; with&lt;br/&gt;&amp;gt; Bitcoin UTXO set migrated into RGB [...]&lt;br/&gt;&lt;br/&gt;* * *&lt;br/&gt;&lt;br/&gt;Looking at other parts of your email:&lt;br/&gt;&lt;br/&gt;&amp;gt; Nevertheless, in 2021 we were able to present both RGB powered with a&lt;br/&gt;&amp;gt; Turing-complete virtual machine (AluVM) [2] and RGB had became &lt;br/&gt;&amp;gt; operational on&lt;br/&gt;&amp;gt; Lightning Network [3] using the LNP Node - a complete rust &lt;br/&gt;&amp;gt; re-implementation of&lt;br/&gt;&amp;gt; the Lightning protocol made by me at the Association [4].&lt;br/&gt;&lt;br/&gt;Could you clarify the status of these implementations?  While trying to&lt;br/&gt;learn about RGB, I noticed that you don&amp;#39;t have much completed&lt;br/&gt;documentation.  Previous reviewers also mentioned this and I saw that&lt;br/&gt;you suggested them to read the code or view your videos.&lt;br/&gt;&lt;br/&gt;When reading your code for your LN implementation (LNP), I noticed it&lt;br/&gt;seemed to be missing a lot of things present in other LN implementations&lt;br/&gt;I regularly review.  For example, I can&amp;#39;t find where it supports&lt;br/&gt;creating or parsing onions, which seems to be a fundamental requirement&lt;br/&gt;for using LN.  In trying to figure out how it works, I also noticed that&lt;br/&gt;I couldn&amp;#39;t find either unit tests or integration tests---indeed several&lt;br/&gt;of your applications seem to almost entirely lack the string &amp;#34;test&amp;#34;.&lt;br/&gt;For example, here are LNP-node and RGB-node compared to the four LN&lt;br/&gt;implementations I regularly monitor:&lt;br/&gt;&lt;br/&gt;/tmp/rgb-node$ git grep -i &amp;#39;\&amp;lt;test\&amp;gt;&amp;#39; | wc -l&lt;br/&gt;7&lt;br/&gt;/tmp/lnp-node$ git grep -i &amp;#39;\&amp;lt;test\&amp;gt;&amp;#39; | wc -l&lt;br/&gt;4&lt;br/&gt;&lt;br/&gt;~/repos/rust-lightning$ git grep -i &amp;#39;\&amp;lt;test\&amp;gt;&amp;#39; | wc -l&lt;br/&gt;2008&lt;br/&gt;~/repos/cln$ git grep -i &amp;#39;\&amp;lt;test\&amp;gt;&amp;#39; | wc -l&lt;br/&gt;1459&lt;br/&gt;~/repos/lnd$ git grep -i &amp;#39;\&amp;lt;test\&amp;gt;&amp;#39; | wc -l&lt;br/&gt;3547&lt;br/&gt;~/repos/eclair$ git grep -i &amp;#39;\&amp;lt;test\&amp;gt;&amp;#39; | wc -l&lt;br/&gt;2576&lt;br/&gt;&lt;br/&gt;I realize those are all projects by larger teams than that which works&lt;br/&gt;on RGB, but a difference of three orders of magnitude is very surprising&lt;br/&gt;to me.  Do you have out-of-tree testing or am I missing something else?&lt;br/&gt;I did my best to earnestly search both your repository and your GitHub&lt;br/&gt;issues and PRs.  All I found was that a small amount of previous unit&lt;br/&gt;testing was removed, and that several issues mentioning the need for&lt;br/&gt;testing were closed without referencing a resolution.&lt;br/&gt;&lt;br/&gt;As your replies to previous reviewers also mentioned that they should&lt;br/&gt;view your Youtube videos, I also tried that.  I focused on the ones&lt;br/&gt;discussing LNP, as LN is something I know fairly well, and I admit that&lt;br/&gt;I skimmed them quite fast, but I couldn&amp;#39;t find any demos where you&lt;br/&gt;progressed beyond using LNP to open a channel with another node.  E.g.,&lt;br/&gt;they seemed to stop at the same point as this demo:&lt;br/&gt;&lt;a href=&#34;https://github.com/LNP-WG/lnp-node/blob/c402decc9ff5b557a9e3d542f74e2fd6ed856742/doc/demo-alpha.4/README.md&#34;&gt;https://github.com/LNP-WG/lnp-node/blob/c402decc9ff5b557a9e3d542f74e2fd6ed856742/doc/demo-alpha.4/README.md&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&amp;gt; Despite 4 years of active development, weekly community calls, talks on&lt;br/&gt;&amp;gt; all mainstream bitcoin-only evens and conferences, the awareness about &lt;br/&gt;&amp;gt; RGB&lt;br/&gt;&amp;gt; in the bitcoin community is still very small&lt;br/&gt;&lt;br/&gt;My understanding of the basic goal of RGB from years ago was that it&lt;br/&gt;would allow ordinary users to define new assets on Bitcoin in a way that&lt;br/&gt;would allow those assets to be transferred over LN.  As far as I can&lt;br/&gt;tell, it doesn&amp;#39;t do that yet, not even in a way that&amp;#39;s accessible to a&lt;br/&gt;power user such as myself.  Even for that original goal, there are&lt;br/&gt;several problems outstanding---problems which will likely require&lt;br/&gt;significant research and experimentation to overcome, e.g.[2].&lt;br/&gt;&lt;br/&gt;Instead of tackling those problems and building upon existing wallet and&lt;br/&gt;LN libraries, I see an ambitious effort at reimplementation and massive&lt;br/&gt;scope creep.  The payoff for that effort could be a huge change that&lt;br/&gt;affects how we use Bitcoin and LN for decades to come.  But it also&lt;br/&gt;seems possible that the ambition and scope creep may be preventing the&lt;br/&gt;project from currently serving many of the people who were most excited&lt;br/&gt;about it in the first place.  Awareness may be limited because the&lt;br/&gt;near-term benefits for most people who invest time in learning about RGB&lt;br/&gt;also seems limited.&lt;br/&gt;&lt;br/&gt;Thanks again for writing about your research for this mailing list,&lt;br/&gt;&lt;br/&gt;-Dave&lt;br/&gt;&lt;br/&gt;[1] &lt;br/&gt;&lt;a href=&#34;https://lists.linuxfoundation.org/pipermail/lightning-dev/2022-April/003540.html&#34;&gt;https://lists.linuxfoundation.org/pipermail/lightning-dev/2022-April/003540.html&lt;/a&gt;&lt;br/&gt;[2] &lt;br/&gt;&lt;a href=&#34;https://lists.linuxfoundation.org/pipermail/lightning-dev/2022-April/003549.html&#34;&gt;https://lists.linuxfoundation.org/pipermail/lightning-dev/2022-April/003549.html&lt;/a&gt;
    </content>
    <updated>2023-06-08T01:20:24&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqstryvl4h7y6hddfhxwa8lg94dzp20ztasj0xdffyj2s0cafve6tfszyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmynskfvu</id>
    
      <title type="html">📅 Original date posted:2023-02-19 🗒️ Summary of this ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqstryvl4h7y6hddfhxwa8lg94dzp20ztasj0xdffyj2s0cafve6tfszyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmynskfvu" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqszld3sarxqfc94rt30zvn70k2mskzrk4lgd835rsfj28gau3rn92qpu6ypj&#39;&gt;nevent1q…6ypj&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2023-02-19&lt;br/&gt;🗒️ Summary of this message: Codex32 is a new seed phrase scheme that offers a longer, stronger checksum and more compact encoding, designed to be readable and computable by hand. It uses the bech32 alphabet and does not support passphrases or hardening. It also allows for periodic recollection verification and versioning metadata for wallets.&lt;br/&gt;📝 Original message:On 2023-02-16 03:49, Andrew Poelstra via bitcoin-dev wrote:&lt;br/&gt;&amp;gt; the draft lists several benefits over SLIP-0039.&lt;br/&gt;&lt;br/&gt;The only benefit over SLIP39 that I see explicitly mentioned in the&lt;br/&gt;draft BIP is &amp;#34;simple enough for hand computation&amp;#34;.  In the FAQ[1] on the&lt;br/&gt;project&amp;#39;s website, I see some additional reasons:&lt;br/&gt;&lt;br/&gt;| This scheme is essentially the same as SLIP39, with the following &lt;br/&gt;differences:&lt;br/&gt;|&lt;br/&gt;| - The checksum is longer, slightly stronger, and designed to be&lt;br/&gt;|   computable by hand.&lt;br/&gt;|&lt;br/&gt;| - Our encoding is more compact, giving us room for a bit of more&lt;br/&gt;|   metadata, which is also designed to be readable by hand.&lt;br/&gt;|&lt;br/&gt;| - Unlike SLIP39, we do not support passphrases or hardening of any&lt;br/&gt;|   form.&lt;br/&gt;|&lt;br/&gt;| - Unlike SLIP39, we have no hardware wallet support. But we hope that&lt;br/&gt;|   will change!&lt;br/&gt;&lt;br/&gt; From having perused the extended documentation myself, I think I would&lt;br/&gt;personally note the following differences.&lt;br/&gt;&lt;br/&gt;- Alphabet: Codex32 uses the bech32 alphabet rather than SLIP39&amp;#39;s&lt;br/&gt;   alphabet consisting of English words.  The benefit to human-language&lt;br/&gt;   words is easier memorization for those proficient in the particular&lt;br/&gt;   language (in this case, SLIP39 only allows the use of English).  A&lt;br/&gt;   disadvantage, IMO, is that it encourages the practice of memorization&lt;br/&gt;   (which does have a few advantages but also a lot of drawbacks).&lt;br/&gt;&lt;br/&gt;   Interestingly, Codex32 addresses what I think is the main problems of&lt;br/&gt;   memorization: difficult-to-prove successful recollection.  Someone who&lt;br/&gt;   wants to reliably keep seed-related material only in their head&lt;br/&gt;   needs to practice recalling it on a regular basis, but for BIP39,&lt;br/&gt;   SLIP39, Aezeed, etc... there&amp;#39;s no way for them to confirm they&lt;br/&gt;   successfully recalled it short of going through the entire recovery&lt;br/&gt;   process; they probably just judge how confident they feel about the&lt;br/&gt;   recollection and assume that feeling like they recalled it correctly&lt;br/&gt;   is the same thing as recalling it correctly.&lt;br/&gt;&lt;br/&gt;   Codex32 allows the individual to periodically perform their&lt;br/&gt;   recollection on paper in a private room without electronics and use&lt;br/&gt;   nothing but a pen and some loookup tables (or a paper device) to&lt;br/&gt;   verify that they recalled the string correctly (and its checksum can&lt;br/&gt;   help with correcting up to several errors, although you might need a&lt;br/&gt;   computer for error location and correction assistance).&lt;br/&gt;&lt;br/&gt;- Hierarchy: Codex32 does not natively provide support for nested SSSS&lt;br/&gt;   whereas SLIP39 does.  E.g., in SLIP39, you can require 2-of-3 for&lt;br/&gt;   {me, family, friends} where me is 2-of-3 {fire_safe, bank_safe,&lt;br/&gt;   buried_in_woods}, family is 1-of-3 {alice, bob, carol}, and friends&lt;br/&gt;   are 2-of-5 {d, e, f, g, h}.  I assume you can do the same with Codex32&lt;br/&gt;   by using the share for one level as the secret for the next level,&lt;br/&gt;   although this is not described in the protocol.&lt;br/&gt;&lt;br/&gt;- Versioning: Codex32&amp;#39;s metadata can store version information for&lt;br/&gt;   wallets that use implicit BIP32 paths (e.g. BIP44/49/84/86), although&lt;br/&gt;   this would cut into the space available for users to set their own&lt;br/&gt;   metadata and it is not specified in the draft BIP.  SLIP39 also&lt;br/&gt;   doesn&amp;#39;t specify anything about implicit path versioning and, AFAICT,&lt;br/&gt;   doesn&amp;#39;t have any room to store such metadata without reducing seed&lt;br/&gt;   entropy.&lt;br/&gt;&lt;br/&gt;- Plausible deniability dummy wallets: Codex32 doesn&amp;#39;t support this;&lt;br/&gt;   SLIP39 does.  Much has been written by other people about whether&lt;br/&gt;   dummy wallets are a good idea or not, with strong opinions on both&lt;br/&gt;   sides, so maybe we can just leave it at that.&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;&lt;br/&gt;When I first saw the post about this, it was unclear to me that it was a&lt;br/&gt;serious project, but I&amp;#39;ve become increasingly interested as I researched&lt;br/&gt;it.  I&amp;#39;m not personally that interested in generating entropy from dice&lt;br/&gt;or encoding shares by hand---it&amp;#39;s already imperative that I acquire a&lt;br/&gt;trustworthy computer and load it with trustworthy software in order to&lt;br/&gt;use my seed securely, so I might as well have it generate my seeds and &lt;br/&gt;my&lt;br/&gt;recovery codes for me.&lt;br/&gt;&lt;br/&gt;What really did catch my attention, but which was kind of buried in the&lt;br/&gt;project documentation, is the ability to verify the integrity of each&lt;br/&gt;share independently without using a computer.  For example, if I store a&lt;br/&gt;share with some relative who lives thousands of kilometers away, I&amp;#39;ll be&lt;br/&gt;able to take that share out of its tamper-evident bag on my annual&lt;br/&gt;holiday visit, verify that I can still read it accurately by validating&lt;br/&gt;its checksum, and put it into a new bag for another year.  For this&lt;br/&gt;procedure, I don&amp;#39;t need to bring copies of any of my other shares,&lt;br/&gt;allowing them (and my seed) to stay safe.&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;&lt;br/&gt;I do have one question after watching an excellent video[2] about the&lt;br/&gt;motivation for this system.  In the video, one of the threat models&lt;br/&gt;described is a disarrangement of the words in a metal backup system.&lt;br/&gt;The implication seems to be that this would be an accidental&lt;br/&gt;disarrangement, which obviously the Codex32 checksum would catch during&lt;br/&gt;periodic offline verification.  But what about deliberate modification&lt;br/&gt;of a recovery code?  For example, Bob doesn&amp;#39;t keep his seed loaded on&lt;br/&gt;any computer; it only exists in Codex32 shares which Bob plans to&lt;br/&gt;combine together in 20 years when he retires, although he makes regular&lt;br/&gt;deposits to the pubkeys derived from the seed&amp;#39;s master xpub.  Mallory is&lt;br/&gt;able to obtain access to Bob&amp;#39;s shares, allowing her to immediately steal&lt;br/&gt;his current funds---but also allowing her to replace them with &lt;br/&gt;similar-looking&lt;br/&gt;shares with the same metadata and valid checksums so that Bob&lt;br/&gt;continues making deposits to the wallet.&lt;br/&gt;&lt;br/&gt;I&amp;#39;m curious about whether there&amp;#39;s a way to prevent this attack without&lt;br/&gt;otherwise compromising the properties of the code?  For example, some&lt;br/&gt;extra data that Bob can carry around (or memorize) for verifying the&lt;br/&gt;shares haven&amp;#39;t changed, but which is not otherwise needed for recovery&lt;br/&gt;(so there&amp;#39;s no problem if it&amp;#39;s lost).&lt;br/&gt;&lt;br/&gt;Thanks,&lt;br/&gt;&lt;br/&gt;-Dave&lt;br/&gt;&lt;br/&gt;[1] &lt;a href=&#34;https://secretcodex32.com/faq/index.html&#34;&gt;https://secretcodex32.com/faq/index.html&lt;/a&gt;&lt;br/&gt;[2] &lt;br/&gt;&lt;a href=&#34;https://www.youtube.com/watch?v=kf48oPoiHX0&amp;amp;list=PLyOGyBytgcuQLi9DC5g88DOEGnqBDPmq1&amp;amp;index=2&#34;&gt;https://www.youtube.com/watch?v=kf48oPoiHX0&amp;amp;list=PLyOGyBytgcuQLi9DC5g88DOEGnqBDPmq1&amp;amp;index=2&lt;/a&gt;
    </content>
    <updated>2023-06-08T01:19:42&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsgg5phpnanaa459dqr3ejq7ypjm6ztr6tawxy4xv5e8gxwr98w07czyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmyedypjf</id>
    
      <title type="html">📅 Original date posted:2023-01-10 🗒️ Summary of this ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsgg5phpnanaa459dqr3ejq7ypjm6ztr6tawxy4xv5e8gxwr98w07czyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmyedypjf" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs9dn8ukv4elj6ls2ma0a5yw0z7me05mwszjurg5tc3uw7mz2ejtgc4k86rs&#39;&gt;nevent1q…86rs&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2023-01-10&lt;br/&gt;🗒️ Summary of this message: Full-RBF can prevent DoS attacks on multi-party protocols caused by double-spending inputs with low-fee transactions, but the issue can also be solved without it.&lt;br/&gt;📝 Original message:On 2023-01-09 12:18, Peter Todd via bitcoin-dev wrote:&lt;br/&gt;&amp;gt; [The quote:]&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt;     &amp;#34;Does fullrbf offer any benefits other than breaking zeroconf &lt;br/&gt;&amp;gt; business&lt;br/&gt;&amp;gt;      practices?&amp;#34;&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; ...has caused a lot of confusion by implying that there were no &lt;br/&gt;&amp;gt; benefits. [...]&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; tl;dr: without full-rbf people can intentionally and unintentionally &lt;br/&gt;&amp;gt; DoS attack&lt;br/&gt;&amp;gt; multi-party protocols by double-spending their inputs with low-fee txs, &lt;br/&gt;&amp;gt; holding&lt;br/&gt;&amp;gt; up progress until that low-fee tx gets mined.&lt;br/&gt;&lt;br/&gt;Hi Peter,&lt;br/&gt;&lt;br/&gt;I&amp;#39;m confused.  Isn&amp;#39;t this an easily solvable issue without full-RBF?&lt;br/&gt;Let&amp;#39;s say Alice, Bob, Carol, and Mallory create a coinjoin transaction.&lt;br/&gt;Mallory either intentionally or unintentionally creates a conflicting&lt;br/&gt;transaction that does not opt-in to RBF.&lt;br/&gt;&lt;br/&gt;You seem to be proposing that the other participants force the coinjoin&lt;br/&gt;to complete by having the coinjoin transaction replace Mallory&amp;#39;s&lt;br/&gt;conflicting transaction, which requires a full-RBF world.&lt;br/&gt;&lt;br/&gt;But isn&amp;#39;t it also possible in a non-full-RBF world for Alice, Bob, and&lt;br/&gt;Carol to simply create a new coinjoin transaction which does not include&lt;br/&gt;any of Mallory&amp;#39;s inputs so it doesn&amp;#39;t conflict with Mallory&amp;#39;s&lt;br/&gt;transaction?  That way their second coinjoin transaction can confirm&lt;br/&gt;independently of Mallory&amp;#39;s transaction.&lt;br/&gt;&lt;br/&gt;Likewise, if Alice and Mallory attempt an LN dual funding and Mallory&lt;br/&gt;creates a conflict, Alice can just create an alternative dual funding&lt;br/&gt;with Bob rather than try to use full-RBF to force Mallory&amp;#39;s earlier dual&lt;br/&gt;funding to confirm.&lt;br/&gt;&lt;br/&gt;&amp;gt; ## Transaction Pinning&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Exploiting either rule is expensive.&lt;br/&gt;&lt;br/&gt;I think this transaction pinning attack against coinjoins and dual&lt;br/&gt;fundings is also solved in a non-full-RBF world by the honest&lt;br/&gt;participants just creating a non-conflicting transaction.&lt;br/&gt;&lt;br/&gt;That said, if I&amp;#39;m missing something and these attacks do actually apply,&lt;br/&gt;then it might be worth putting price figures on the attack in terms most&lt;br/&gt;people will understand.  The conflicting inputs attack you described in&lt;br/&gt;the beginning as being solved by full-RBF costs about $0.05 USD at&lt;br/&gt;$17,000/BTC.  The transaction pinning attack you imply is unsolved by&lt;br/&gt;full-RBF costs about $17.00.  If both attacks apply, any protocol which&lt;br/&gt;is vulnerable to a $17.00 attack still seems highly vulnerable to me, so&lt;br/&gt;it doesn&amp;#39;t feel like a stretch to say that full-RBF lacks significant&lt;br/&gt;benefits for those protocols.&lt;br/&gt;&lt;br/&gt;Thanks,&lt;br/&gt;&lt;br/&gt;-Dave
    </content>
    <updated>2023-06-08T01:18:27&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqswduz53fv5f209m4v5yps840rk43llccq0vqg2czghtkvg99vqflszyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmyac5e9c</id>
    
      <title type="html">📅 Original date posted:2022-11-10 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqswduz53fv5f209m4v5yps840rk43llccq0vqg2czghtkvg99vqflszyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmyac5e9c" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsda4jkav9p6zjjljl0d9rz9aausggkxzg32947nmvh0ftgvfnan2g72ardv&#39;&gt;nevent1q…ardv&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2022-11-10&lt;br/&gt;📝 Original message:On 2022-11-07 23:17, Salvatore Ingala via bitcoin-dev wrote:&lt;br/&gt;&amp;gt; Hi list,&lt;br/&gt;&lt;br/&gt;Hi Salvatore!,&lt;br/&gt;&lt;br/&gt;&amp;gt; I have been working on some notes to describe an approach that uses&lt;br/&gt;&amp;gt; covenants in order to enable general smart contracts in bitcoin. You&lt;br/&gt;&amp;gt; can find them here:&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt;     &lt;a href=&#34;https://merkle.fun&#34;&gt;https://merkle.fun&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;I haven&amp;#39;t yet been able to understand everything in your post, but I&amp;#39;m &lt;br/&gt;wondering if you can describe how your proposal significantly differs in &lt;br/&gt;application from [1]?  E.g., you write:&lt;br/&gt;&lt;br/&gt;&amp;gt; 1. Alice posts the statement “f(x) = y”.&lt;br/&gt;&amp;gt; 2. After a challenge period, if no challenge occurs, Alice is free to &lt;br/&gt;&amp;gt; continue and unlock the funds; the statement is true.&lt;br/&gt;&amp;gt; 3. At any time before the challenge period expires, Bob can start a &lt;br/&gt;&amp;gt; challenge: “actually, f(x) = z”.&lt;br/&gt;&lt;br/&gt;That looks to me very similar to Gregory Maxwell&amp;#39;s script from[1] &lt;br/&gt;(comments and variable name changes mine):&lt;br/&gt;&lt;br/&gt;# Offchain, Alice posts the statement f(x) = y&lt;br/&gt;# Offchain, Bob provides Ex, an encrypted form of x that can be proven &lt;br/&gt;in zero knowledge to satisfy both f(x) = y and sha256(x) = Y&lt;br/&gt;OP_SHA256&lt;br/&gt;&amp;lt;Y&amp;gt; OP_EQUAL&lt;br/&gt;OP_IF&lt;br/&gt;   # Bob provided the preimage for Y, that preimage being the solution, &lt;br/&gt;so he can spend the funds now&lt;br/&gt;   &amp;lt;Bob Pubkey&amp;gt;&lt;br/&gt;OP_ELSE&lt;br/&gt;   # The challenge period ended, so Alice can reclaim her funds&lt;br/&gt;   &amp;lt;block_height&#43;100&amp;gt; OP_CHECKLOCKTIMEVERIFY OP_DROP&lt;br/&gt;   &amp;lt;Alice Pubkey&amp;gt;&lt;br/&gt;OP_ENDIF&lt;br/&gt;OP_CHECKSIG&lt;br/&gt;&lt;br/&gt;Thanks and apologies if I&amp;#39;m missing something obvious!,&lt;br/&gt;&lt;br/&gt;-Dave&lt;br/&gt;&lt;br/&gt;[1] &lt;br/&gt;&lt;a href=&#34;https://bitcoincore.org/en/2016/02/26/zero-knowledge-contingent-payments-announcement/&#34;&gt;https://bitcoincore.org/en/2016/02/26/zero-knowledge-contingent-payments-announcement/&lt;/a&gt;
    </content>
    <updated>2023-06-08T01:16:53&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsp0ve3m55ymnpel4vqycga49ytk4fkjd4lvqlehfu73m5rpachzugzyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmye5ysfl</id>
    
      <title type="html">📅 Original date posted:2022-10-29 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsp0ve3m55ymnpel4vqycga49ytk4fkjd4lvqlehfu73m5rpachzugzyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmye5ysfl" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqszpgggmq2jmtf3y97da2kf6x02vepn3naent39cnd5sejnjsclhwsmv4w29&#39;&gt;nevent1q…4w29&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2022-10-29&lt;br/&gt;📝 Original message:On 2022-10-26 13:52, Anthony Towns via bitcoin-dev wrote:&lt;br/&gt;&amp;gt; The cutoff for that is probably something like &amp;#34;do 30% of listening&lt;br/&gt;&amp;gt; nodes have a compatible policy&amp;#34;? If they do, then you&amp;#39;ll have about a&lt;br/&gt;&amp;gt; 95% chance of having at least one of your outbound peers accept your &lt;br/&gt;&amp;gt; tx,&lt;br/&gt;&amp;gt; just by random chance.&lt;br/&gt;&lt;br/&gt;I think this might be understating the problem.  A 95% chance of having&lt;br/&gt;an outbound peer accept your tx conversely implies 1 in 20 payments will &lt;br/&gt;fail to&lt;br/&gt;propagate on their initial broadcast.  That seems to me like an&lt;br/&gt;unacceptably high failure rate both for the UX of regular payments and&lt;br/&gt;for the safety of time-sensitive transactions like onchain HTLC&lt;br/&gt;resolutions.&lt;br/&gt;&lt;br/&gt;Additionally, the less reliable propagation is, the more reliably spy&lt;br/&gt;nodes can assume the first IP address they received a transaction from&lt;br/&gt;is the creator of that transaction.&lt;br/&gt;&lt;br/&gt;I think those two problems combine in an especially unfortunate way for&lt;br/&gt;lightweight clients.  Lightweight clients wanting to find a peer who&lt;br/&gt;supports a more permissive policy than most of the network and whose&lt;br/&gt;client authors want to provide a good UX (or safety in the case of time&lt;br/&gt;sensitive contract protocols like LN) will need to open large numbers of&lt;br/&gt;connections, increasing their chance of connecting to a spy node which&lt;br/&gt;will associate their IP address with their transaction, especially since&lt;br/&gt;lightweight clients can&amp;#39;t pretend to be relaying transactions for other&lt;br/&gt;users.  Some napkin math: there are about 250,000 transactions a day; if&lt;br/&gt;we round that up to 100 million a year and assume we only want one&lt;br/&gt;transaction per year to fail to initially propagate on a network where&lt;br/&gt;30% of nodes have adopted a more permissive policy, lightweight clients&lt;br/&gt;will need to connect to over 50 randomly selected nodes.[1]  For a more&lt;br/&gt;permissive policy only adopted by 10% of nodes, the lightweight client&lt;br/&gt;needs to connect to almost 150 nodes.&lt;br/&gt;&lt;br/&gt;This also implies that nodes adopting a more restrictive policy degrades&lt;br/&gt;UX, safety, and privacy for users of transactions violating that policy.&lt;br/&gt;For example, if 30% of nodes used Knots&amp;#39;s -spkreuse configuration option&lt;br/&gt;and about 50% of transactions reuse scriptPubKeys, then about 9&lt;br/&gt;transactions a day wouldn&amp;#39;t initially propagate (assuming 8 randomly&lt;br/&gt;selected peers[2]) and lightweight clients who wanted 1-in-100-million&lt;br/&gt;safety would need to connect to about 15 random nodes.&lt;br/&gt;&lt;br/&gt;Towns&amp;#39;s post to which I&amp;#39;m replying describes several alternative&lt;br/&gt;approaches which mitigate the above problems, but he also documents that&lt;br/&gt;they&amp;#39;re not without tradeoffs.&lt;br/&gt;&lt;br/&gt;-Dave&lt;br/&gt;&lt;br/&gt;[1] (1-0.3)**50 * 100_000_000 =~ 1.8&lt;br/&gt;&lt;br/&gt;[2] That assumes every transaction is sent to a different&lt;br/&gt;randomly-selected set of peers, which isn&amp;#39;t really the case.  However,&lt;br/&gt;one day $GIANT_EXCHANGE could suddenly be unable to broadcast hundreds &lt;br/&gt;or&lt;br/&gt;thousands of withdrawal transactions because all of its peers implement&lt;br/&gt;a restrictive policy.
    </content>
    <updated>2023-06-08T01:16:01&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsw4ekrnuffc0rp7dc7zul0qpe9xzhq4xazj55c6k5xhcj8g4xgtyszyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmy84szk6</id>
    
      <title type="html">📅 Original date posted:2022-10-07 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsw4ekrnuffc0rp7dc7zul0qpe9xzhq4xazj55c6k5xhcj8g4xgtyszyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmy84szk6" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs9yvr494ppcpkl36zqk6qvjfyt4uh6z7j7wlaksvhzyg2g6rsd0vg0nktqg&#39;&gt;nevent1q…ktqg&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2022-10-07&lt;br/&gt;📝 Original message:On 2022-10-07 06:20, Dario Sneidermanis via bitcoin-dev wrote:&lt;br/&gt;&amp;gt; Hello list,&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; I&amp;#39;m Dario, from Muun wallet [...] we&amp;#39;ve been reviewing the latest &lt;br/&gt;&amp;gt; bitcoin core release&lt;br/&gt;&amp;gt; candidate [...] we understood we had at least a year from the initial&lt;br/&gt;&amp;gt; opt-in  deployment until opt-out was deployed, giving us enough time to &lt;br/&gt;&amp;gt; adapt&lt;br/&gt;&amp;gt; Muun to the new policies. However, when reviewing the 24.0 release &lt;br/&gt;&amp;gt; candidate&lt;br/&gt;&amp;gt; just a few  days ago, we realized that zero-conf apps (like Muun) must&lt;br/&gt;&amp;gt; *immediately turn off* their zero-conf features.&lt;br/&gt;&lt;br/&gt;Hi Dario,&lt;br/&gt;&lt;br/&gt;I&amp;#39;m wondering if there&amp;#39;s been some confusion.  There are two RBF-related &lt;br/&gt;items in the current release notes draft:[1]&lt;br/&gt;&lt;br/&gt;1. &amp;#34;A new mempoolfullrbf option has been added, which enables the &lt;br/&gt;mempool to accept transaction replacement without enforcing BIP125 &lt;br/&gt;replaceability signaling. (#25353)&amp;#34;&lt;br/&gt;&lt;br/&gt;2. &amp;#34;The -walletrbf startup option will now default to true. The wallet &lt;br/&gt;will now default to opt-in RBF on transactions that it creates. &lt;br/&gt;(#25610)&amp;#34;&lt;br/&gt;&lt;br/&gt;The first item (from PR #25353) does allow a transaction without a &lt;br/&gt;BIP125 signal to be replaced, but this configuration option is set to &lt;br/&gt;disabled by default.[2]  There have been software forks of Bitcoin Core &lt;br/&gt;since at least 2015 which have allowed replacement of non-signaling &lt;br/&gt;transactions, so this option just makes that behavior a little bit more &lt;br/&gt;accessible to users of Bitcoin Core.  Some developers have announced &lt;br/&gt;their intention to propose enabling this option by default in a future &lt;br/&gt;release, which I think is the behavior you&amp;#39;re concerned about, but &lt;br/&gt;that&amp;#39;s not planned for the release of 24.0 to the best of my knowledge.&lt;br/&gt;&lt;br/&gt;The second item (from PR #25610) only affects Bitcoin Core&amp;#39;s wallet, and &lt;br/&gt;in particular transactions created with it through the RPC interface.  &lt;br/&gt;Those transactions will now default to signaling BIP125 replacability.  &lt;br/&gt;This option has been default false for many years for the RPC, but for &lt;br/&gt;the GUI it&amp;#39;s been default true since Bitcoin Core 0.16, released in &lt;br/&gt;early 2018[3].  It&amp;#39;s no different than another popular wallet beginning &lt;br/&gt;to signal BIP125 support by default.&lt;br/&gt;&lt;br/&gt;In short, I don&amp;#39;t think anything in Bitcoin Core 24.0 RC1 significantly &lt;br/&gt;changes the current situation related to transaction replacability.  All &lt;br/&gt;it does is give Bitcoin Core RPC users by default the same settings long &lt;br/&gt;used for GUI users and introduce an option that those who object to &lt;br/&gt;non-signalled RBF will later be able to use to disable their relay of &lt;br/&gt;non-signalled replacements.&lt;br/&gt;&lt;br/&gt;Does the above information resolve your concerns?&lt;br/&gt;&lt;br/&gt;Thanks,&lt;br/&gt;&lt;br/&gt;-Dave&lt;br/&gt;&lt;br/&gt;[1] &lt;br/&gt;&lt;a href=&#34;https://github.com/bitcoin-core/bitcoin-devwiki/wiki/24.0-Release-Notes-draft&#34;&gt;https://github.com/bitcoin-core/bitcoin-devwiki/wiki/24.0-Release-Notes-draft&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;[2] $ bin/bitcoind -help | grep -A3 mempoolfullrbf&lt;br/&gt;   -mempoolfullrbf&lt;br/&gt;        Accept transaction replace-by-fee without requiring &lt;br/&gt;replaceability&lt;br/&gt;        signaling (default: 0)&lt;br/&gt;&lt;br/&gt;[3] &lt;br/&gt;&lt;a href=&#34;https://bitcoincore.org/en/2018/02/26/release-0.16.0/#replace-by-fee-by-default-in-gui&#34;&gt;https://bitcoincore.org/en/2018/02/26/release-0.16.0/#replace-by-fee-by-default-in-gui&lt;/a&gt;
    </content>
    <updated>2023-06-08T01:14:17&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsfcwxdlyemwr8mdca69tmhrw2etf6w28l7g2ehf5jphxqrt30upxgzyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmyzju67z</id>
    
      <title type="html">📅 Original date posted:2022-10-02 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsfcwxdlyemwr8mdca69tmhrw2etf6w28l7g2ehf5jphxqrt30upxgzyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmyzju67z" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsw5slj4ug9lmavayrm2t0y89qvx6fjan2m4pyu9recz4w59h6ajsc6tkwwy&#39;&gt;nevent1q…kwwy&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2022-10-02&lt;br/&gt;📝 Original message:On 2022-09-29 05:39, Ruben Somsen via bitcoin-dev wrote:&lt;br/&gt;&amp;gt; An alternative mitigation (more user friendly, but more implementation&lt;br/&gt;&amp;gt; complexity) would be to require the sender to reveal their intended&lt;br/&gt;&amp;gt; transaction to the server prior to receiving the address[^9]. This is&lt;br/&gt;&amp;gt; not a privacy degradation, since the server could already learn this&lt;br/&gt;&amp;gt; information regardless. If the transaction doesn&amp;#39;t end up getting&lt;br/&gt;&amp;gt; sent, any subsequent attempt to reuse one of the inputs should either&lt;br/&gt;&amp;gt; be (temporarily) blacklisted or responded to with the same address&lt;br/&gt;&amp;gt; that was given out earlier&lt;br/&gt;&amp;gt; [...]&lt;br/&gt;&amp;gt; [^9]: *This would essentially look like an incomplete but signed&lt;br/&gt;&amp;gt; transaction where the output address is still missing.*&lt;br/&gt;&lt;br/&gt;Hi Ruben,&lt;br/&gt;&lt;br/&gt;Instead of maintaining a database of inputs that should be blocked or &lt;br/&gt;mapped to addresses, have the spender submit to you (but not the &lt;br/&gt;network) a valid transaction paying a placeholder address and in return &lt;br/&gt;give them a guaranteed unique address.  They can then broadcast a &lt;br/&gt;transaction using the same inputs to pay the guaranteed unique address.  &lt;br/&gt;If you don&amp;#39;t see that transaction within a reasonable amount of time, &lt;br/&gt;broadcast the transaction paying the placeholder address.  This makes it &lt;br/&gt;cost the same to them whether they use the unique address or not.  By &lt;br/&gt;placeholder address, I mean an address of yours that&amp;#39;s never received a &lt;br/&gt;payment but which may have been provided in a previous invoice (e.g. to &lt;br/&gt;prevent exceeding the gap limit).&lt;br/&gt;&lt;br/&gt;In short, what I think I&amp;#39;ve described is the BIP78 payjoin protocol &lt;br/&gt;without any payjoining going on (which is allowed by BIP78).  BTCPay &lt;br/&gt;already implements BIP78, as do several wallets, and I think it &lt;br/&gt;satisfies all the design constraints you&amp;#39;ve described.&lt;br/&gt;&lt;br/&gt;-Dave
    </content>
    <updated>2023-06-08T01:14:04&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs0ur7fwg5fxxy94gepnm4cx3acm52qasyy2de4mpwnhm7m0awkkqczyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmytcsmvg</id>
    
      <title type="html">📅 Original date posted:2022-07-18 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs0ur7fwg5fxxy94gepnm4cx3acm52qasyy2de4mpwnhm7m0awkkqczyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmytcsmvg" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqszutj5pld886wameu2wv8zakdquwf72v7rpxnx78vjc0yszv4jpuqzghgc5&#39;&gt;nevent1q…hgc5&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2022-07-18&lt;br/&gt;📝 Original message:On 2022-07-10 07:27, Peter Todd via bitcoin-dev wrote:&lt;br/&gt;&amp;gt; The block subsidy directly ties miner revenue to the total value of &lt;br/&gt;&amp;gt; Bitcoin:&lt;br/&gt;&amp;gt; that&amp;#39;s exactly how you want to incentivise a service that keeps Bitcoin &lt;br/&gt;&amp;gt; secure.&lt;br/&gt;&lt;br/&gt;I&amp;#39;m confused.  I thought your argument in the OP of this thread was that &lt;br/&gt;a perpetual block subsidy would *not* be tied to the total value of &lt;br/&gt;bitcoin.  It&amp;#39;d be tied to the total value of bitcoin *lost* each year on &lt;br/&gt;average.&lt;br/&gt;&lt;br/&gt;If so, would you then agree that the inability of a perpetual block &lt;br/&gt;subsidy to directly tie miner revenue to the total value of Bitcoin &lt;br/&gt;makes it not exactly how we want to incentivise a service that keeps &lt;br/&gt;Bitcoin secure?&lt;br/&gt;&lt;br/&gt;Thanks,&lt;br/&gt;&lt;br/&gt;-Dave
    </content>
    <updated>2023-06-08T01:11:29&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsq65rjcpz0vkpku5xff7ahekyfhhpsd3ca5hpdw78ge9ad5l7tdvgzyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmyth6x3l</id>
    
      <title type="html">📅 Original date posted:2021-04-26 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsq65rjcpz0vkpku5xff7ahekyfhhpsd3ca5hpdw78ge9ad5l7tdvgzyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmyth6x3l" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsg5wlfkzysqcv8922zgw2p9sllt9vtdh6dkut9de5hrwga7menm4s273kkv&#39;&gt;nevent1q…3kkv&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2021-04-26&lt;br/&gt;📝 Original message:On Sun, Apr 25, 2021 at 05:31:50PM -0400, Matt Corallo via bitcoin-dev wrote:&lt;br/&gt;&amp;gt; In general, I think its time we all agree the BIP process has simply failed&lt;br/&gt;&amp;gt; and move on. Luckily its not really all that critical and proposed protocol&lt;br/&gt;&amp;gt; documents can be placed nearly anywhere with the same effect.&lt;br/&gt;&lt;br/&gt;I recommend:&lt;br/&gt;&lt;br/&gt;1. We add additional BIP editors, starting with Kalle Alm (if there are&lt;br/&gt;   no continuing significant objections).&lt;br/&gt;&lt;br/&gt;2. We seek Luke Dashjr&amp;#39;s resignation as BIPs editor.&lt;br/&gt;&lt;br/&gt;3. We begin treating protocol documents outside the BIPs repository as&lt;br/&gt;   first-class BIP documentation.&lt;br/&gt;&lt;br/&gt;The first recommendation permits continued maintenance of existing BIPs&lt;br/&gt;plus gives the additional maintainers an opportunity to rebuild the&lt;br/&gt;credibility of the repository.&lt;br/&gt;&lt;br/&gt;The second recommendation addresses the dissatisfaction of many BIP&lt;br/&gt;authors and potential authors with the current editor, which I think&lt;br/&gt;will discourage many of them from making additional significant&lt;br/&gt;contributions to the repository.  It also seems to me to be a better use&lt;br/&gt;of Luke&amp;#39;s talents and interests for him to focus on protocol research&lt;br/&gt;and review rather than procedurally checking whether a bunch of&lt;br/&gt;documents are well formed.&lt;br/&gt;&lt;br/&gt;The third recommendation provides an escape hatch for anyone, such as&lt;br/&gt;Matt, who currently thinks the process has failed, or for anyone who&lt;br/&gt;comes to that same conclusion in the future under a different editing&lt;br/&gt;team.  My specific recommendations there are:&lt;br/&gt;&lt;br/&gt;a. Anyone writing protocol documentation in the spirit of the BIP&lt;br/&gt;   process can post their idea to this mailing list like we&amp;#39;ve always&lt;br/&gt;   done and, when they&amp;#39;ve finished collecting initial feedback, they can&lt;br/&gt;   assign themselves a unique decentralized identifier starting with&lt;br/&gt;   &amp;#34;bip-&amp;#34;.  They may also define a shorter alias that they encourage&lt;br/&gt;   people to use in cases where the correct document can be inferred&lt;br/&gt;   from context.  E.g.,&lt;br/&gt;&lt;br/&gt;      bip-wuille-taproot (bip-taproot)&lt;br/&gt;      bip-towns-versionbits-min-activation-height (bip-vbmah)&lt;br/&gt;      bip-todd-harding-opt-in-replace-by-fee (bip-opt-in-rbf)&lt;br/&gt;&lt;br/&gt;b. The author then publishes the document to any place they&amp;#39;d like, although&lt;br/&gt;   they are strongly encouraged to make any document source available&lt;br/&gt;   under an open license to ensure others can create their own&lt;br/&gt;   modifications.&lt;br/&gt;&lt;br/&gt;c. Implementations of BIPs, whether original repository BIPs or&lt;br/&gt;   decentralized BIPs, link to the BIPs they implement to ensure&lt;br/&gt;   researchers and developers can find the relevant protocol&lt;br/&gt;   documentation.  E.g.,&lt;br/&gt;   &lt;a href=&#34;https://github.com/bitcoin/bitcoin/blob/fe5e495c31de47b0ec732b943db11fe345d874af/doc/bips.md&#34;&gt;https://github.com/bitcoin/bitcoin/blob/fe5e495c31de47b0ec732b943db11fe345d874af/doc/bips.md&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;     (It may also be advisable for implementations to mirror copies of&lt;br/&gt;     the BIPs they implement so later modifications to the document&lt;br/&gt;     don&amp;#39;t confuse anyone.  For this reason, extremely liberal&lt;br/&gt;     licensing of BIP documents is encouraged.)&lt;br/&gt;&lt;br/&gt;d. To help maintain quality and consistency between documentation, the&lt;br/&gt;   BIP editors provide a BIP document template, guidelines similar to&lt;br/&gt;   the existing BIP2, and an easy-to-run format linter.&lt;br/&gt;&lt;br/&gt;I think this decentralized BIPs alternative also helps address some&lt;br/&gt;longstanding problems with the BIPs system: that many casual Bitcoin&lt;br/&gt;users and developers think of documents in the BIPs repo as&lt;br/&gt;authoritative and that there are some development teams (such as for LN)&lt;br/&gt;that have already abandoned the BIPs process because, in part, they want&lt;br/&gt;complete control over their own documentation.  &lt;br/&gt;&lt;br/&gt;The recommendations above were developed based on conversations I had&lt;br/&gt;with a few stakeholders in the BIPs process, but I did not attempt a&lt;br/&gt;comprehensive survey and I certainly don&amp;#39;t claim to speak for anyone&lt;br/&gt;else.  I hope the recommendations are satisfactory and I look forward to&lt;br/&gt;your feedback.&lt;br/&gt;&lt;br/&gt;Thanks,&lt;br/&gt;&lt;br/&gt;-Dave&lt;br/&gt;-------------- next part --------------&lt;br/&gt;A non-text attachment was scrubbed...&lt;br/&gt;Name: signature.asc&lt;br/&gt;Type: application/pgp-signature&lt;br/&gt;Size: 833 bytes&lt;br/&gt;Desc: not available&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20210426/2c57cc4a/attachment-0001.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20210426/2c57cc4a/attachment-0001.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-08T00:52:10&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsq3ffpwkg0j502mpnqv3k593xc8w85w9erc6s9gq3s38sehu0gpfczyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmyhuu282</id>
    
      <title type="html">📅 Original date posted:2021-03-06 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsq3ffpwkg0j502mpnqv3k593xc8w85w9erc6s9gq3s38sehu0gpfczyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmyhuu282" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsp78xhshpsldgj0v2zppzqj29x8wgvakfjp03vswu3ejpfefpytqc93fnqk&#39;&gt;nevent1q…fnqk&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2021-03-06&lt;br/&gt;📝 Original message:On Sat, Mar 06, 2021 at 01:11:01PM -0500, Matt Corallo wrote:&lt;br/&gt;&amp;gt; I&amp;#39;m really unsure that three months is a short enough time window that there&lt;br/&gt;&amp;gt; wouldn&amp;#39;t be a material effort to split the network with divergent consensus&lt;br/&gt;&amp;gt; rules. &lt;br/&gt;&lt;br/&gt;I oppose designing activation mechanisms with the goal of preventing&lt;br/&gt;other people from effectively exercising self determination over what&lt;br/&gt;consensus rules their nodes enforce.&lt;br/&gt;&lt;br/&gt;Three months was chosen because it&amp;#39;s long enough to give miners a&lt;br/&gt;reasonable enough amount of time to activate taproot but it&amp;#39;s also short&lt;br/&gt;enough that it doesn&amp;#39;t delay any of the existing proposals with roughly&lt;br/&gt;one-year timelines.  As such, I think it has the potential to gain&lt;br/&gt;acceptance from multiple current factions (even if it doesn&amp;#39;t ever gain&lt;br/&gt;their full approval), allowing us to move forward with rough social&lt;br/&gt;consensus and to gain useful information from the attempt that can&lt;br/&gt;inform future decisions.&lt;br/&gt;&lt;br/&gt;-Dave&lt;br/&gt;-------------- next part --------------&lt;br/&gt;A non-text attachment was scrubbed...&lt;br/&gt;Name: signature.asc&lt;br/&gt;Type: application/pgp-signature&lt;br/&gt;Size: 833 bytes&lt;br/&gt;Desc: not available&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20210306/69399d40/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20210306/69399d40/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T20:30:34&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsgws2xw7ectg6v2dy87mzdkhvf8k7yaqcv0skdf4sqn0v7s2zgulszyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmylvdj7z</id>
    
      <title type="html">📅 Original date posted:2021-03-06 📝 Original message:On the ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsgws2xw7ectg6v2dy87mzdkhvf8k7yaqcv0skdf4sqn0v7s2zgulszyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmylvdj7z" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqspt3p04pfpyj5rqre35xc3rwr0gkhwsp5cjsg7u6pfrjpj22j8qhqa954jm&#39;&gt;nevent1q…54jm&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2021-03-06&lt;br/&gt;📝 Original message:On the ##taproot-activation IRC channel, Russell O&amp;#39;Connor recently&lt;br/&gt;proposed a modification of the &amp;#34;Let&amp;#39;s see what happens&amp;#34; activation&lt;br/&gt;proposal.[1] The idea received significant discussion and seemed&lt;br/&gt;acceptable to several people who could not previously agree on a&lt;br/&gt;proposal (although this doesn&amp;#39;t necessarily make it their first&lt;br/&gt;choice).  The following is my attempt at a description.&lt;br/&gt;&lt;br/&gt;1. Start soon: shortly after the release of software containing this&lt;br/&gt;   proposed activation logic, nodes will begin counting blocks towards&lt;br/&gt;   the 90% threshold required to lock in taproot.[2]&lt;br/&gt;&lt;br/&gt;2. Stop soon: if the lockin threshold isn&amp;#39;t reached within approximately&lt;br/&gt;   three months, the activation attempt fails.  There is no mandatory&lt;br/&gt;   activation and everyone is encouraged to try again using different&lt;br/&gt;   activation parameters.&lt;br/&gt;   &lt;br/&gt;2. Delayed activation: in the happy occasion where the lockin threshold&lt;br/&gt;   is reached, taproot is guaranteed to eventually activate---but not&lt;br/&gt;   until approximately six months after signal tracking started.&lt;br/&gt;&lt;br/&gt;## Example timeline&lt;br/&gt;&lt;br/&gt;(All dates approximate; see the section below about BIP9 vs BIP8.)&lt;br/&gt;&lt;br/&gt;- T&#43;0: release of one or more full nodes with activation code&lt;br/&gt;- T&#43;14: signal tracking begins&lt;br/&gt;- T&#43;28: earliest possible lock in&lt;br/&gt;- T&#43;104: locked in by this date or need to try a different activation process&lt;br/&gt;- T&#43;194: activation (if lockin occurred)&lt;br/&gt;&lt;br/&gt;## Analysis&lt;br/&gt;&lt;br/&gt;The goal of Speedy Trial is to allow a taproot activation attempt to&lt;br/&gt;either quickly succeed or quickly fail---without compromising safety in&lt;br/&gt;either case.  Details below:&lt;br/&gt;&lt;br/&gt;### Mitigating the problems of early success&lt;br/&gt;&lt;br/&gt;New rules added in a soft fork need to be enforced by a large part of&lt;br/&gt;the economy or there&amp;#39;s a risk that a long chain of blocks breaking the&lt;br/&gt;rules will be accepted by some users and rejected by others, causing a&lt;br/&gt;chain split that can result in large direct losses to transaction&lt;br/&gt;receivers and potentially even larger indirect losses to holders due to&lt;br/&gt;reduced confidence in the safety of the Bitcoin system.&lt;br/&gt;&lt;br/&gt;One step developers have taken in the past to ensure widespread adoption&lt;br/&gt;of new consensus rules is programming in a delay between the time software&lt;br/&gt;with those rules is expected to be released and when the software starts&lt;br/&gt;tracking which blocks signal for activation.  For example:&lt;br/&gt;&lt;br/&gt;    Soft fork        | Release    | Start      | Delta &lt;br/&gt;    -----------------&#43;------------&#43;------------&#43;----------&lt;br/&gt;    BIP68 (v0.12.1)  | 2016-04-15 | 2016-05-11 | 26 days &lt;br/&gt;    BIP141 (v0.13.1) | 2016-10-27 | 2016-11-18 | 24 days&lt;br/&gt;&lt;br/&gt;    Sources: BitcoinCore.org, &lt;a href=&#34;https://gist.github.com/ajtowns/1c5e3b8bdead01124c04c45f01c817bc&#34;&gt;https://gist.github.com/ajtowns/1c5e3b8bdead01124c04c45f01c817bc&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Speedy Trial replaces most of that upfront delay with a backend delay.&lt;br/&gt;No matter how fast taproot&amp;#39;s activation threshold is reached by miners,&lt;br/&gt;there will be six months between the time signal tracking starts and when&lt;br/&gt;nodes will begin enforcing taproot&amp;#39;s rules.  This gives the userbase even&lt;br/&gt;more time to upgrade than if we had used the most recently proposed start&lt;br/&gt;date for a BIP8 activation (~July 23rd).[2] &lt;br/&gt;&lt;br/&gt;### Succeed, or fail fast&lt;br/&gt;&lt;br/&gt;The earlier version of this proposal was documented over 200 days ago[3]&lt;br/&gt;and taproot&amp;#39;s underlying code was merged into Bitcoin Core over 140 days&lt;br/&gt;ago.[4]  If we had started Speedy Trial at the time taproot&lt;br/&gt;was merged (which is a bit unrealistic), we would&amp;#39;ve either be less than&lt;br/&gt;two months away from having taproot or we would have moved on to the&lt;br/&gt;next activation attempt over a month ago.&lt;br/&gt;&lt;br/&gt;Instead, we&amp;#39;ve debated at length and don&amp;#39;t appear to be any closer to&lt;br/&gt;what I think is a widely acceptable solution than when the mailing list&lt;br/&gt;began discussing post-segwit activation schemes over a year ago.[5]  I&lt;br/&gt;think Speedy Trial is a way to generate fast progress that will either&lt;br/&gt;end the debate (for now, if activation is successful) or give us some&lt;br/&gt;actual data upon which to base future taproot activation proposals.&lt;br/&gt;&lt;br/&gt;Of course, for those who enjoy the debate, discussion can continue while&lt;br/&gt;waiting for the results of Speedy Trial.&lt;br/&gt;&lt;br/&gt;### Base activation protocol&lt;br/&gt;&lt;br/&gt;The idea can be implemented on top of either Bitcoin Core&amp;#39;s existing&lt;br/&gt;BIP9 code or its proposed BIP8 patchset.[6]&lt;br/&gt;&lt;br/&gt;- BIP9 uses two time-based[7] parameters, starttime and timeout.  Using&lt;br/&gt;  these values plus a time-based parameter for the minimum activation&lt;br/&gt;  delay would give three months for miners to activate taproot, but some&lt;br/&gt;  of that time near the start or the end might not be usable due to&lt;br/&gt;  signals only being measured in full retarget periods.  However, the&lt;br/&gt;  six month time for users to upgrade their node would be not be&lt;br/&gt;  affected by either slow or fast block production.&lt;br/&gt;  &lt;br/&gt;    BIP9 is already part of Bitcoin Core and I think the changes being&lt;br/&gt;    proposed would be relatively small, resulting in a small patch that&lt;br/&gt;    could be easy to review.&lt;br/&gt;&lt;br/&gt;- BIP8 uses two height-based parameters, startheight and timeoutheight.&lt;br/&gt;  Using height values would ensure miners had a certain number of&lt;br/&gt;  retarget periods (6) to lock in taproot and that there&amp;#39;d be a certain&lt;br/&gt;  number of blocks (about 24,000) until activation, although latest lock&lt;br/&gt;  in and expected activation could occur moderately earlier or later&lt;br/&gt;  than the estimated three and six months.&lt;br/&gt;  &lt;br/&gt;    BIP8 would likely be used if Speedy Trial fails, so it could be&lt;br/&gt;    advantageous to base this proposal on BIP8 so that we gain&lt;br/&gt;    experience running that code in production.&lt;br/&gt;&lt;br/&gt;For additional discussion about using times versus heights, see today&amp;#39;s&lt;br/&gt;log for ##taproot-activation.[11]&lt;br/&gt;&lt;br/&gt;### Additional concerns&lt;br/&gt;&lt;br/&gt;- Encourages false signaling: false signaling is when miners signal&lt;br/&gt;  readiness to enforce rules that their nodes don&amp;#39;t actually support.&lt;br/&gt;  This was partially responsible for a six-block reorg shortly after the&lt;br/&gt;  final BIP66 activation[8] and was found to still be a problem during&lt;br/&gt;  the BIP68 lockin period despite BIP9 being designed to avoid it.[9]&lt;br/&gt;&lt;br/&gt;  Because Speedy Trial only gives miners a maximum of three months to&lt;br/&gt;  signal support for taproot, it may encourage such false signaling.  If&lt;br/&gt;  taproot locks in as a result of their signaling but most of them fail&lt;br/&gt;  to upgrade by the activation date several months later, unprepared&lt;br/&gt;  miners could lose large amounts of money and users could see long&lt;br/&gt;  reorgs (with unupgraded nodes and SPV lite clients potentially losing&lt;br/&gt;  money).&lt;br/&gt;&lt;br/&gt;  Compared to other activation proposals, I think the only difference is&lt;br/&gt;  Speedy Trial&amp;#39;s short timeline.  False signaling is possible with any&lt;br/&gt;  other proposal and the same problems can occur if miners fail to&lt;br/&gt;  upgrade for any mandatory activation.&lt;br/&gt;&lt;br/&gt;### Additional advantages&lt;br/&gt;&lt;br/&gt;- No mandatory signaling: at no time are miners required to signal by&lt;br/&gt;  Speedy Trial.  This includes no mandatory signaling during the&lt;br/&gt;  locked_in period(s), although such signaling will be encouraged (as it&lt;br/&gt;  was with BIP9[10]).&lt;br/&gt;&lt;br/&gt;- Party time: to a lesser degree, a benefit mentioned for flag day&lt;br/&gt;  activation may also apply here: we could get up to six months&lt;br/&gt;  advanced notice of taproot activation, allowing users, developers, and&lt;br/&gt;  organizations to prepare software, announcements, and celebrations for&lt;br/&gt;  that event.&lt;br/&gt;&lt;br/&gt;## Implementation details and next steps&lt;br/&gt;&lt;br/&gt;Initial discussion about implementation may be found in today&amp;#39;s&lt;br/&gt;##taproot-activation log.[11] If it appears Speedy Trial may have&lt;br/&gt;traction, Russell O&amp;#39;Connor has offered to work on a patch against BIP8&lt;br/&gt;implementing it.&lt;br/&gt;&lt;br/&gt;## Acknowledgments&lt;br/&gt;&lt;br/&gt;The original idea for a short-duration attempt was discussed in the&lt;br/&gt;##taproot-activation IRC channel last July and the revised idea saw&lt;br/&gt;additional evaluation there this week.  Despite growing frustration,&lt;br/&gt;discussion has been overwhelmingly constructive, for which all the&lt;br/&gt;contributors should be commended.  Although this should not in any way&lt;br/&gt;imply endorsement, I&amp;#39;m grateful for the review and comments on a draft&lt;br/&gt;of this email by Adam Gibson, Andrew Chow, Anthony Towns, Chris Belcher,&lt;br/&gt;Jeremy Rubin, Jonas Nick, Luke Dashjr, Michael Folkson, Russell&lt;br/&gt;O&amp;#39;Connor, and IRC users maybehuman and proofofkeags&lt;br/&gt;&lt;br/&gt;## Footnotes&lt;br/&gt;&lt;br/&gt;[1] &lt;a href=&#34;https://en.bitcoin.it/wiki/Taproot_activation_proposals#Let.E2.80.99s_see_what_happens.2C_BIP8.28false.2C_3m.29&#34;&gt;https://en.bitcoin.it/wiki/Taproot_activation_proposals#Let.E2.80.99s_see_what_happens.2C_BIP8.28false.2C_3m.29&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;[2] A threshold of 1,815/2,016 blocks (90%) in a single retarget period&lt;br/&gt;    seemed to have near-universal support during the 2021-02-16 IRC&lt;br/&gt;    meeting.  See: &lt;a href=&#34;https://en.bitcoin.it/wiki/Taproot_activation_proposal_202102&#34;&gt;https://en.bitcoin.it/wiki/Taproot_activation_proposal_202102&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;[3] &lt;a href=&#34;https://en.bitcoin.it/w/index.php?title=Taproot_activation_proposals&amp;amp;oldid=68062&#34;&gt;https://en.bitcoin.it/w/index.php?title=Taproot_activation_proposals&amp;amp;oldid=68062&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;[4] &lt;a href=&#34;https://github.com/bitcoin/bitcoin/pull/19953&#34;&gt;https://github.com/bitcoin/bitcoin/pull/19953&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;[5] &lt;a href=&#34;https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2020-January/017547.html&#34;&gt;https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2020-January/017547.html&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;[6] &lt;a href=&#34;https://github.com/bitcoin/bitcoin/pull/19573&#34;&gt;https://github.com/bitcoin/bitcoin/pull/19573&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;[7] BIP9&amp;#39;s times are based on the median of the past 11 blocks, which&lt;br/&gt;    usually trails UTC by about 90 minutes but which can trail behind&lt;br/&gt;    realtime significantly if miners are doing weird things.&lt;br/&gt;&lt;br/&gt;[8] &lt;a href=&#34;https://en.bitcoin.it/wiki/July_2015_chain_forks&#34;&gt;https://en.bitcoin.it/wiki/July_2015_chain_forks&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;[9] &lt;a href=&#34;https://buildingbitcoin.org/bitcoin-core-dev/log-2016-06-21.html#l-32&#34;&gt;https://buildingbitcoin.org/bitcoin-core-dev/log-2016-06-21.html#l-32&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;[10] &lt;a href=&#34;https://github.com/bitcoin/bitcoin/blob/ed25cb58f605ba583c735f330482df0bf9348f3a/src/test/versionbits_tests.cpp#L337-L339&#34;&gt;https://github.com/bitcoin/bitcoin/blob/ed25cb58f605ba583c735f330482df0bf9348f3a/src/test/versionbits_tests.cpp#L337-L339&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;[11] &lt;a href=&#34;http://gnusha.org/taproot-activation/2021-03-05.log&#34;&gt;http://gnusha.org/taproot-activation/2021-03-05.log&lt;/a&gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;A non-text attachment was scrubbed...&lt;br/&gt;Name: signature.asc&lt;br/&gt;Type: application/pgp-signature&lt;br/&gt;Size: 833 bytes&lt;br/&gt;Desc: not available&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20210305/5c5b4037/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20210305/5c5b4037/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T20:30:29&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqspclr3w4c4p99e40ctrvfhdwk7lc7grsek757r5lreltjvme5phmgzyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmyhvtrsa</id>
    
      <title type="html">📅 Original date posted:2021-02-13 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqspclr3w4c4p99e40ctrvfhdwk7lc7grsek757r5lreltjvme5phmgzyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmyhvtrsa" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsyvgs7cfanwk3xn0esdvx94teuk2g7tfnhk3r0pav986te5kvemvslr2km8&#39;&gt;nevent1q…2km8&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2021-02-13&lt;br/&gt;📝 Original message:On Fri, Feb 05, 2021 at 12:43:57PM &#43;0000, Michael Folkson via bitcoin-dev wrote:&lt;br/&gt;&amp;gt; &lt;a href=&#34;https://old.reddit.com/r/Bitcoin/comments/lcjhl6/taproot_activation_pools_will_be_able_to_veto/gm2l02w/&#34;&gt;https://old.reddit.com/r/Bitcoin/comments/lcjhl6/taproot_activation_pools_will_be_able_to_veto/gm2l02w/&lt;/a&gt;&lt;br/&gt;&amp;gt; [...] &lt;br/&gt;&amp;gt; F6) It is more important that no rules that harm users are deployed&lt;br/&gt;&amp;gt; than it is that new useful rules are deployed quickly. If there is a&lt;br/&gt;&amp;gt; choice between “faster” and “more clear that this isn’t a mechanism to&lt;br/&gt;&amp;gt; force bad things on users” we should prefer the latter. Plenty of&lt;br/&gt;&amp;gt; people just don’t like LOT=true very much absent evidence that miners&lt;br/&gt;&amp;gt; are blocking deployment. To some it just feels needlessly antagonistic&lt;br/&gt;&amp;gt; and distrusting towards part of our community.&lt;br/&gt;&lt;br/&gt;I think F6, above, bundles together several of Maxwell&amp;#39;s points and&lt;br/&gt;maybe loses something in summary.  I&amp;#39;d encourage interested readers to&lt;br/&gt;view the original post that Folkson referenced.  I&amp;#39;d like to extract one&lt;br/&gt;part as a separate point and write about it a bit in my own words:&lt;br/&gt;&lt;br/&gt;F7) defaulting to LOT=false makes non-activation possible even if people&lt;br/&gt;    run the code that developers provide, meaning a successful&lt;br/&gt;    activation proves that at least some people (e.g. miners or UASFers)&lt;br/&gt;    voluntarily took actions that were well outside the scope of&lt;br/&gt;    developer control.&lt;br/&gt;&lt;br/&gt;    This makes it clear that developers don&amp;#39;t control changes to the&lt;br/&gt;    system.  There are other arguments that demonstrate that developers&lt;br/&gt;    aren&amp;#39;t in control[1], but they aren&amp;#39;t as clear as simply pointing&lt;br/&gt;    out that a rule change won&amp;#39;t go into effect until at least several&lt;br/&gt;    non-developers independently act of their own accord.&lt;br/&gt;&lt;br/&gt;    Having such a clear argument that developers aren&amp;#39;t in control&lt;br/&gt;    bolsters the decentralized ethos of Bitcoin and reduces the chance&lt;br/&gt;    that bad actors will pressure Bitcoin developers to attempt future&lt;br/&gt;    unwanted changes.  &lt;br/&gt;&lt;br/&gt;-Dave&lt;br/&gt;&lt;br/&gt;[1] IMO, the main evidence we have that developers aren&amp;#39;t in control of&lt;br/&gt;    the system is that Bitcoin Core is free software which gives anyone&lt;br/&gt;    who obtains a copy of it the legal right to run it, learn from it,&lt;br/&gt;    modify it, and share additional copies of it for any purpose.  Each&lt;br/&gt;    time someone uses those rights to create alternative Bitcoin&lt;br/&gt;    implementations, altcoins, or forkcoins, they demonstrate that users&lt;br/&gt;    could change the system---or resist changes to it---in opposition to&lt;br/&gt;    the current developer team, should that become necessary.&lt;br/&gt;-------------- next part --------------&lt;br/&gt;A non-text attachment was scrubbed...&lt;br/&gt;Name: signature.asc&lt;br/&gt;Type: application/pgp-signature&lt;br/&gt;Size: 833 bytes&lt;br/&gt;Desc: not available&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20210213/47a055ac/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20210213/47a055ac/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T20:28:25&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs8swpegfxu7jrdjfkafk8hq0ew2ayk6hvqug8t80h5atrct57jrzszyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmywv5zk2</id>
    
      <title type="html">📅 Original date posted:2020-09-19 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs8swpegfxu7jrdjfkafk8hq0ew2ayk6hvqug8t80h5atrct57jrzszyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmywv5zk2" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs8kqjthjhr4rcgk4qc8auqpt5l74rt5m9lxu8065j2pnmtvz4nyksxregsz&#39;&gt;nevent1q…egsz&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2020-09-19&lt;br/&gt;📝 Original message:On Sat, Sep 19, 2020 at 09:30:56AM -0700, Jeremy wrote:&lt;br/&gt;&amp;gt; Yup, I was aware of this limitation but I&amp;#39;m not sure how practical it is as&lt;br/&gt;&amp;gt; an attack because it&amp;#39;s quite expensive for the attacker. &lt;br/&gt;&lt;br/&gt;It&amp;#39;s cheap if:&lt;br/&gt;&lt;br/&gt;1. You were planning to consolidate all those UTXOs at roughly that&lt;br/&gt;   feerate anyway.&lt;br/&gt;&lt;br/&gt;2. After you no longer need your pinning transaction in the mempool, you&lt;br/&gt;   make an out-of-band arrangement with a pool to mine a small&lt;br/&gt;   conflicting transaction.&lt;br/&gt;&lt;br/&gt;&amp;gt; But there are a few simple policies that can eliminate it:&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; 1) A Sponsoring TX never needs to be more than, say, 2 inputs and 2&lt;br/&gt;&amp;gt; outputs. Restricting this via policy would help, or more flexibly&lt;br/&gt;&amp;gt; limiting the total size of a sponsoring transaction to 1000 bytes.&lt;br/&gt;&lt;br/&gt;I think that works (as policy).&lt;br/&gt;&lt;br/&gt;&amp;gt; 2) Make A Sponsoring TX not need to pay more absolute fee, just needs to&lt;br/&gt;&amp;gt; increase the feerate (perhaps with a constant relay fee bump to prevent&lt;br/&gt;&amp;gt; spam).&lt;br/&gt;&lt;br/&gt;I think it&amp;#39;d be hard to find a constant relay fee bump amount that was&lt;br/&gt;high enough to prevent abuse but low enough not to unduly hinder&lt;br/&gt;legitimate users.&lt;br/&gt;&lt;br/&gt;&amp;gt; I think 1) is simpler and should allow full use of the sponsor mechanism&lt;br/&gt;&amp;gt; while preventing this class of issue mostly.&lt;br/&gt;&lt;br/&gt;Agreed.&lt;br/&gt;&lt;br/&gt;Thanks,&lt;br/&gt;&lt;br/&gt;-Dave&lt;br/&gt;-------------- next part --------------&lt;br/&gt;A non-text attachment was scrubbed...&lt;br/&gt;Name: signature.asc&lt;br/&gt;Type: application/pgp-signature&lt;br/&gt;Size: 833 bytes&lt;br/&gt;Desc: not available&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20200919/15f5bf2c/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20200919/15f5bf2c/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T20:26:55&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs2z4e75j000xqkxpmrphun0nsr4xx9a78fcmknev5yfpvzkq0gasszyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmyfl6fua</id>
    
      <title type="html">📅 Original date posted:2020-09-19 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs2z4e75j000xqkxpmrphun0nsr4xx9a78fcmknev5yfpvzkq0gasszyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmyfl6fua" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsqseq745ulccartz70aekf5ayp0rjyx9nw4c4qksj9agg7mshgglg7s2v7s&#39;&gt;nevent1q…2v7s&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2020-09-19&lt;br/&gt;📝 Original message:On Fri, Sep 18, 2020 at 05:51:39PM -0700, Jeremy via bitcoin-dev wrote:&lt;br/&gt;&amp;gt; I&amp;#39;d like to share with you a draft proposal for a mechanism to replace&lt;br/&gt;&amp;gt; CPFP and RBF for increasing fees on transactions in the mempool that&lt;br/&gt;&amp;gt; should be more robust against attacks.&lt;br/&gt;&lt;br/&gt;Interesting idea!  This is going to take a while to think about, but I&lt;br/&gt;have one immediate question:&lt;br/&gt;&lt;br/&gt;&amp;gt; To prevent garbage sponsors, we also require that:&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; 1. The Sponsor&amp;#39;s feerate must be greater than the Sponsored&amp;#39;s ancestor fee rate&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; We allow one Sponsor to replace another subject to normal replacement&lt;br/&gt;&amp;gt; policies, they are treated as conflicts.&lt;br/&gt;&lt;br/&gt;Is this in the reference implementation?  I don&amp;#39;t see it and I&amp;#39;m&lt;br/&gt;confused by this text.  I think it could mean either:&lt;br/&gt;&lt;br/&gt;1. Sponsor Tx A can be replaced by Sponsor Tx B if A and B have at least&lt;br/&gt;   one input in common (which is part of the &amp;#34;normal replacement policies&amp;#34;)&lt;br/&gt;&lt;br/&gt;2. A can be replaced by B even if they don&amp;#39;t have any inputs in common&lt;br/&gt;   as long as they do have a Sponsor Vector in common (while otherwise&lt;br/&gt;   using the &amp;#34;normal replacement policies&amp;#34;).&lt;br/&gt;&lt;br/&gt;In the first case, I think Mallory can prevent Bob from&lt;br/&gt;sponsor-fee-bumping (sponsor-bumping?) his transaction by submitting a&lt;br/&gt;sponsor before he does; since Bob has no control over Mallory&amp;#39;s inputs,&lt;br/&gt;he can&amp;#39;t replace Mallory&amp;#39;s sponsor tx.&lt;br/&gt;&lt;br/&gt;In the second case, I think Mallory can use an existing pinning&lt;br/&gt;technique to make it expensive for Bob to fee bump.  The normal&lt;br/&gt;replacement policies require a replacement to pay an absolute higher fee&lt;br/&gt;than the original transaction, so Mallory can create a 100,000 vbyte&lt;br/&gt;transaction with a single-vector sponsor at the end pointing to Bob&amp;#39;s&lt;br/&gt;transaction.  This sponsor transaction pays the same feerate as Bob&amp;#39;s&lt;br/&gt;transaction---let&amp;#39;s say 50 nBTC/vbyte, so 5 mBTC total fee.  In order&lt;br/&gt;for Bob to replace Mallory&amp;#39;s sponsor transaction with his own sponsor&lt;br/&gt;transaction, Bob needs to pay the incremental relay feerate (10&lt;br/&gt;nBTC/vbyte) more, so 6 mBTC total ($66 at $11k/BTC).&lt;br/&gt;&lt;br/&gt;Thanks,&lt;br/&gt;&lt;br/&gt;-Dave&lt;br/&gt;-------------- next part --------------&lt;br/&gt;A non-text attachment was scrubbed...&lt;br/&gt;Name: signature.asc&lt;br/&gt;Type: application/pgp-signature&lt;br/&gt;Size: 833 bytes&lt;br/&gt;Desc: not available&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20200919/b6c53712/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20200919/b6c53712/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T20:26:54&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsps9vprrgavmekj5dc6df0n9yw0f5ydcjrael0q99zt6p3kpvmz4szyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmyhfjhw5</id>
    
      <title type="html">📅 Original date posted:2020-08-20 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsps9vprrgavmekj5dc6df0n9yw0f5ydcjrael0q99zt6p3kpvmz4szyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmyhfjhw5" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsxdfsm0wjf2utrmskpcx45ewnc428rspqfxpxd55qheyz7u926h6qvg70eh&#39;&gt;nevent1q…70eh&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2020-08-20&lt;br/&gt;📝 Original message:On Sun, Aug 16, 2020 at 12:06:55PM -0700, Eric Voskuil via bitcoin-dev wrote:&lt;br/&gt;&amp;gt; A requirement to ignore unknown (invalid) messages is [...] a protocol&lt;br/&gt;&amp;gt; breaking change &lt;br/&gt;&lt;br/&gt;I don&amp;#39;t think it is.  The proposed BIP, as currently written, only tells&lt;br/&gt;nodes to ignore unknown messages during peer negotiation.  The only case&lt;br/&gt;where this will happen so far is BIP339, which says:&lt;br/&gt;&lt;br/&gt;    The wtxidrelay message must be sent in response to a VERSION message&lt;br/&gt;    from a peer whose protocol version is &amp;gt;= 70016, and prior to sending&lt;br/&gt;    a VERACK&lt;br/&gt;&lt;br/&gt;So unless you signal support for version &amp;gt;=70016, you&amp;#39;ll never receive an&lt;br/&gt;unknown message.  (And, if you do signal, you probably can&amp;#39;t claim that&lt;br/&gt;you were unaware of this new requirement, unless you were using a&lt;br/&gt;non-BIP protocol like xthin[1]).&lt;br/&gt;&lt;br/&gt;However, perhaps this new proposed BIP could be a bit clearer about its&lt;br/&gt;expectations for future protocol upgrades by saying something like:&lt;br/&gt;&lt;br/&gt;    Nodes implementing this BIP MUST also not send new negotiation&lt;br/&gt;    message types to nodes whose protocol version is less than 70017.&lt;br/&gt;&lt;br/&gt;That should promote backwards compatibility.  If you don&amp;#39;t want to&lt;br/&gt;ignore unknown negotiation messages between `version` and `verack`, you&lt;br/&gt;can just set your protocol version to a max of 70016.&lt;br/&gt;&lt;br/&gt;&amp;gt; A requirement to ignore unknown (invalid) messages is [...] poor&lt;br/&gt;&amp;gt; protocol design. The purpose of version negotiation is to determine&lt;br/&gt;&amp;gt; the set of valid messages. &lt;br/&gt;&lt;br/&gt;To be clear, the proposed requirement to ignore unknown messages is&lt;br/&gt;limited in scope to the brief negotiation phase between `version` and&lt;br/&gt;`verack`.  If you want to terminate connections (or do whatever) on&lt;br/&gt;receipt of an unknown message, you can do that at any other time.&lt;br/&gt;&lt;br/&gt;&amp;gt; Changes to version negotiation itself are very problematic.&lt;br/&gt;&lt;br/&gt;For whom?&lt;br/&gt;&lt;br/&gt;&amp;gt; The only limitation presented by versioning is that the system is&lt;br/&gt;&amp;gt; sequential. &lt;br/&gt;&lt;br/&gt;That seems like a pretty significant limitation to decentralized&lt;br/&gt;protocol development.&lt;br/&gt;&lt;br/&gt;I think there are currently several people who want to run long-term&lt;br/&gt;experiements for new protocol features using open source opt-in&lt;br/&gt;codebases that anyone can run, and it would be advantageous to them to&lt;br/&gt;have a flexible and lightweight feature negotiation system like this&lt;br/&gt;proposed method.&lt;br/&gt;&lt;br/&gt;&amp;gt; As such, clients that do not wish to implement (or operators who do&lt;br/&gt;&amp;gt; not wish to enable) them are faced with a problem when wanting to&lt;br/&gt;&amp;gt; support later features. This is resolvable by making such features&lt;br/&gt;&amp;gt; optional at the new protocol level. This allows each client to limit&lt;br/&gt;&amp;gt; its communication to the negotiated protocol, and allows ignoring of&lt;br/&gt;&amp;gt; known but unsupported/disabled features.&lt;br/&gt;&lt;br/&gt;I don&amp;#39;t understand this.  How do two peers negotiate a set of two or&lt;br/&gt;more optional features using only the exchange of single numbers?  For&lt;br/&gt;example:&lt;br/&gt;&lt;br/&gt;- Node A supports Feature X (implemented in protocol version 70998) and Feature Y (version 70999).&lt;br/&gt;&lt;br/&gt;- Node B does not support X but does want to use Y; what does it use for its&lt;br/&gt;  protocol version number when establishing a connection with node A?&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;&lt;br/&gt;Overall, I like the proposed BIP and the negotiation method it&lt;br/&gt;describes.&lt;br/&gt;&lt;br/&gt;Cheers,&lt;br/&gt;&lt;br/&gt;-Dave&lt;br/&gt;&lt;br/&gt;[1] This is not a recommendation for xthin, but I do think it&amp;#39;s an example&lt;br/&gt;    of the challenges of using a shared linear version number scheme for&lt;br/&gt;    protocol negotiation in a decentralized system where different teams&lt;br/&gt;    don&amp;#39;t necessarily get along well with each other.&lt;br/&gt;    &lt;a href=&#34;https://github.com/ptschip/bitcoinxt/commit/7ea5854a3599851beffb1323544173f03d45373b#diff-c61070c281aed6ded69036c08bd08addR12&#34;&gt;https://github.com/ptschip/bitcoinxt/commit/7ea5854a3599851beffb1323544173f03d45373b#diff-c61070c281aed6ded69036c08bd08addR12&lt;/a&gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;A non-text attachment was scrubbed...&lt;br/&gt;Name: signature.asc&lt;br/&gt;Type: application/pgp-signature&lt;br/&gt;Size: 833 bytes&lt;br/&gt;Desc: not available&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20200820/faec9a70/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20200820/faec9a70/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T20:26:24&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs2rdu5p52kz03pp3csjdf64t948g0xs3qk8qn6swuhatq4vq7g8hszyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmyl7gksm</id>
    
      <title type="html">📅 Original date posted:2020-05-02 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs2rdu5p52kz03pp3csjdf64t948g0xs3qk8qn6swuhatq4vq7g8hszyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmyl7gksm" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqstt3lzxv53uu8weeejxdr0jfluxkrkp3lqqps66pykmpzs5afs36csq4uur&#39;&gt;nevent1q…4uur&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2020-05-02&lt;br/&gt;📝 Original message:On Wed, Apr 29, 2020 at 04:57:46PM &#43;0200, Andrew Kozlik via bitcoin-dev wrote:&lt;br/&gt;&amp;gt; In order to ascertain non-ownership of an input which is claimed to be&lt;br/&gt;&amp;gt; external, the wallet needs the scriptPubKey of the previous output spent by&lt;br/&gt;&amp;gt; this input.&lt;br/&gt;&lt;br/&gt;A wallet can easily check whether a scriptPubKey contais a specific&lt;br/&gt;pubkey (as in P2PK/P2TR), but I think it&amp;#39;s impractical for most wallets&lt;br/&gt;to check whether a scriptPubKey contains any of the possible ~two&lt;br/&gt;billion keys available in a specific BIP32 derivation path (and many&lt;br/&gt;wallets natively support multiple paths).&lt;br/&gt;&lt;br/&gt;It would seem to me that checking a list of scriptPubKeys for wallet&lt;br/&gt;matches would require obtaining the BIP32 derivation paths for the&lt;br/&gt;corresponding keys, which would have to be provided by a trusted data&lt;br/&gt;source.  If you trust that source, you could just trust them to tell you&lt;br/&gt;that none of the other inputs belong to your wallet.&lt;br/&gt;&lt;br/&gt;Alternatively, there&amp;#39;s the scheme described in the email you linked by&lt;br/&gt;Greg Saunders (with the scheme co-attributed to Andrew Poelstra), which&lt;br/&gt;seems reasonable to me.[1]  It&amp;#39;s only downside (AFAICT) is that it&lt;br/&gt;requires an extra one-way communication from a signing device to a&lt;br/&gt;coordinator.  For a true offline signer, that can be annoying, but for&lt;br/&gt;an automated hardware wallet participating in coinjoins or LN, that&lt;br/&gt;doesn&amp;#39;t seem too burdensome to me.&lt;br/&gt;&lt;br/&gt;-Dave&lt;br/&gt;&lt;br/&gt;[1] The scheme could be trivially tweaked to be compatible with BIP322&lt;br/&gt;    generic signed messages, which is something that could become widely&lt;br/&gt;    adopted (I hope) and so make supporting the scheme easier.&lt;br/&gt;-------------- next part --------------&lt;br/&gt;A non-text attachment was scrubbed...&lt;br/&gt;Name: signature.asc&lt;br/&gt;Type: application/pgp-signature&lt;br/&gt;Size: 833 bytes&lt;br/&gt;Desc: not available&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20200502/1879177c/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20200502/1879177c/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T20:24:14&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsvxftple2swyd6d4lttn34n3usftkll5n707n98r3z3yycrdhtavczyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmy2tak23</id>
    
      <title type="html">📅 Original date posted:2020-02-09 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsvxftple2swyd6d4lttn34n3usftkll5n707n98r3z3yycrdhtavczyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmy2tak23" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqswhwxtqvudmvkmlpnxnrn7a0vryaahhw4fw5nwwmw6355exk8khmgy9kefx&#39;&gt;nevent1q…kefx&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2020-02-09&lt;br/&gt;📝 Original message:On Sun, Feb 09, 2020 at 02:47:29PM -0600, Anon via Bryan Bishop via bitcoin-dev wrote:&lt;br/&gt;&amp;gt; 1) Is Taproot actually more private than bare MAST and Schnorr separately?&lt;br/&gt;&lt;br/&gt;Yes.&lt;br/&gt;&lt;br/&gt;&amp;gt; What are the actual anonymity set benefits compared to doing the separately?&lt;br/&gt;&lt;br/&gt;When schnorr and taproot are done together, all of the following&lt;br/&gt;transaction types can be part of the same set:&lt;br/&gt;&lt;br/&gt;    - single-sig spends (similar to current use of P2PKH and P2WPKH)&lt;br/&gt;&lt;br/&gt;    - n-of-n spends with musig or equivalent (similar to current use of&lt;br/&gt;      P2SH and P2WSH 2-of-2 multisig without special features as used by&lt;br/&gt;      Blockstream Green and LN mutual closes)&lt;br/&gt;&lt;br/&gt;    - k-of-n (for low values of n) using the most common k signers&lt;br/&gt;      (similar to BitGo-style 2-of-3 where the keys involved are&lt;br/&gt;      alice_hot, alice_cold, and bob_hot and almost all transactions are&lt;br/&gt;      expected to be signed by {alice_hot, bob_hot}; that common case&lt;br/&gt;      can be the key-path spend and the alternatives {alice_hot,&lt;br/&gt;      alice_cold} and {alice_cold, bob_hot} can be script-path spends)&lt;br/&gt;&lt;br/&gt;    - contract protocols that can sometimes result in all parties&lt;br/&gt;      agreeing on an outcome (similar to LN mutual closes, cross-chain&lt;br/&gt;      atomic swaps, and same-chain coinswaps)&lt;br/&gt;&lt;br/&gt;The four cases above represent an overwhelming percentage of the spends&lt;br/&gt;seen on the block chain today and throughout Bitcoin&amp;#39;s entire history to&lt;br/&gt;date, so optimizing to include them in the anonymity set presents a huge&lt;br/&gt;benefit.&lt;br/&gt;&lt;br/&gt;&amp;gt; 2) Is Taproot actually cheaper than bare MAST and Schnorr separately? &lt;br/&gt;&lt;br/&gt;Earlier in y&amp;#39;alls email, you claim that the difference between the two&lt;br/&gt;approaches for a particular example is 67 bytes.  I haven&amp;#39;t checked that&lt;br/&gt;calculation, but it seems you&amp;#39;re talking entirely about bytes that could&lt;br/&gt;appear in the witness data and so would only represent 16.75 vbytes.&lt;br/&gt;Compare that to the size of the other elements which would need to be&lt;br/&gt;part of a typical input:&lt;br/&gt;&lt;br/&gt;- (36 vbytes) outpoint&lt;br/&gt;- (1) scriptSig compactSize uint&lt;br/&gt;- (4) nSequence &lt;br/&gt;- (16.25) schnorr signature (includes size byte)&lt;br/&gt;&lt;br/&gt;That&amp;#39;s 57.25 vbytes exclusive of your example data or 74.00 vbytes&lt;br/&gt;inclusive.  That means the overhead you&amp;#39;re concerned about adds only&lt;br/&gt;about 23% to the size of the input (or 30% on an exclusive basis).&lt;br/&gt;That&amp;#39;s definitely worth considering optimizations for, but I&amp;#39;m&lt;br/&gt;personally ok with requiring users of advanced scripts (who can&amp;#39;t manage&lt;br/&gt;to produce mutual closes) pay an extra 23% for their inputs in order to&lt;br/&gt;allow the creation of the large anonymity set described above for all&lt;br/&gt;the other cases.&lt;br/&gt;&lt;br/&gt;If, subsequent to deployment, large numbers of users do end up using&lt;br/&gt;taproot script-path spends and we want to make things more fair, we can&lt;br/&gt;even out the weighting, perhaps by simply increasing the weight of&lt;br/&gt;key-path spends by 16.75 vbytes (though that would, of course,&lt;br/&gt;proportionally lower the capacity of the block chain).  As mentioned in&lt;br/&gt;a separate email by Matt Corallo, it seems worthwhile to optimize for&lt;br/&gt;the case where script-path spenders are encouraged to look for&lt;br/&gt;mutually-agreed contract resolutions in order to both minimize block&lt;br/&gt;chain use and increase the size of the anonymity set.&lt;br/&gt;&lt;br/&gt;&amp;gt; What evidence do we have that the assumption it will be more common to&lt;br/&gt;&amp;gt; use Taproot with a key will outweigh Script cases?&lt;br/&gt;&lt;br/&gt;The evidence that current users of single-sig, n-of-n, and k-of-n (for&lt;br/&gt;small n) with a default k-set, and mutual-agreed contract protocol&lt;br/&gt;outcomes vastly outweigh all other transaction inputs today and for all&lt;br/&gt;of Bitcoin&amp;#39;s history to date.&lt;br/&gt;&lt;br/&gt;-Dave&lt;br/&gt;-------------- next part --------------&lt;br/&gt;A non-text attachment was scrubbed...&lt;br/&gt;Name: signature.asc&lt;br/&gt;Type: application/pgp-signature&lt;br/&gt;Size: 833 bytes&lt;br/&gt;Desc: not available&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20200209/c79b6dae/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20200209/c79b6dae/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T20:22:52&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs9pg0plupyxp98lta2x6kv5u6gurv0srcs49qvzrws8c03ec52kdszyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmyqsywy9</id>
    
      <title type="html">📅 Original date posted:2019-10-28 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs9pg0plupyxp98lta2x6kv5u6gurv0srcs49qvzrws8c03ec52kdszyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmyqsywy9" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsxcl6xwf9vewy5fehcea4apta60mctdtpqzl8lk0f8z5efl53sfysd8zykm&#39;&gt;nevent1q…zykm&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2019-10-28&lt;br/&gt;📝 Original message:On Mon, Oct 28, 2019 at 10:45:39AM &#43;0100, Johan Torås Halseth wrote:&lt;br/&gt;&amp;gt; Relay cost is the obvious problem with just naively removing all limits.&lt;br/&gt;&amp;gt; Relaxing the current rules by allowing to add a child to each output as&lt;br/&gt;&amp;gt; long as it has a single unconfirmed parent would still only allow free&lt;br/&gt;&amp;gt; relay of O(size of parent) extra data (which might not be that bad? Similar&lt;br/&gt;&amp;gt; to the carve-out rule we could put limits on the child size). &lt;br/&gt;&lt;br/&gt;A parent transaction near the limit of 100,000 vbytes could have almost&lt;br/&gt;10,000 outputs paying OP_TRUE (10 vbytes per output).  If the children&lt;br/&gt;were limited to 10,000 vbytes each (the current max carve-out size),&lt;br/&gt;that allows relaying 100 mega-vbytes or nearly 400 MB data size (larger&lt;br/&gt;than the default maximum mempool size in Bitcoin Core).&lt;br/&gt;&lt;br/&gt;As Matt noted in discussion on #lightning-dev about this issue, it&amp;#39;s&lt;br/&gt;possible to increase second-child carve-out to nth-child carve-out but&lt;br/&gt;we&amp;#39;d need to be careful about choosing an appropriately low value for n.&lt;br/&gt;&lt;br/&gt;For example, BOLT2 limits the number of HTLCs to 483 on each side of the&lt;br/&gt;channel (so 966 &#43; 2 outputs total), which means the worst case free&lt;br/&gt;relay to support the current LN protocol would be approximately:&lt;br/&gt;&lt;br/&gt;    (100000 &#43; 968 * 10000) * 4 = ~39 MB&lt;br/&gt;&lt;br/&gt;Even if the mempool was empty (as it sometimes is these days), it would&lt;br/&gt;only cost an attacker about 1.5 BTC to fill it at the default minimum&lt;br/&gt;relay feerate[1] so that they could execute this attack at the minimal&lt;br/&gt;cost per iteration of paying for a few hundred or a few thousand vbytes&lt;br/&gt;at slightly higher than the current mempool minimum fee.&lt;br/&gt;&lt;br/&gt;Instead, with the existing rules (including second-child carve-out),&lt;br/&gt;they&amp;#39;d have to iterate (39 MB / 400 kB = ~100) times more often to&lt;br/&gt;achieve an equivalent waste of bandwidth, costing them proportionally&lt;br/&gt;more in fees.&lt;br/&gt;&lt;br/&gt;So, I think these rough numbers clearly back what Matt said about us&lt;br/&gt;being able to raise the limits a bit if we need to, but that we have to&lt;br/&gt;be careful not to raise them so far that attackers can make it&lt;br/&gt;significantly more bandwidth expensive for people to run relaying full&lt;br/&gt;nodes.&lt;br/&gt;&lt;br/&gt;-Dave&lt;br/&gt;&lt;br/&gt;[1] Several developers are working on lowering the default minimum in&lt;br/&gt;Bitcoin Core, which would of course make this attack proportionally&lt;br/&gt;cheaper.
    </content>
    <updated>2023-06-07T20:21:27&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsxu6t8ywr5yulatq0038el3nmggzgg7u7z7ajeqwp2qcvgyvsfcyczyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmymv25vx</id>
    
      <title type="html">📅 Original date posted:2019-10-20 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsxu6t8ywr5yulatq0038el3nmggzgg7u7z7ajeqwp2qcvgyvsfcyczyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmymv25vx" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs8c7pwhftagru87wu5f46u5s68gjw2v93229tmrezy6v2a5jwmgqgndulr6&#39;&gt;nevent1q…ulr6&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2019-10-20&lt;br/&gt;📝 Original message:On Sun, Oct 20, 2019 at 12:29:25AM &#43;0000, SomberNight via bitcoin-dev wrote:&lt;br/&gt;&amp;gt; waxwing, ThomasV, and I recently had a discussion about implementing&lt;br/&gt;&amp;gt; SNICKER in Electrum; specifically the &amp;#34;Receiver&amp;#34; role. &lt;br/&gt;&lt;br/&gt;That&amp;#39;d be awesome!&lt;br/&gt;&lt;br/&gt;&amp;gt; As the referenced section [0] explains, the &amp;#34;Receiver&amp;#34; can restore&lt;br/&gt;&amp;gt; from seed, and assuming he knows he needs to do extra scanning steps&lt;br/&gt;&amp;gt; (e.g. via a seed version that signals SNICKER support), he can find&lt;br/&gt;&amp;gt; and regain access to his SNICKER outputs. However, to calculate `c` he&lt;br/&gt;&amp;gt; needs access to his private keys, as it is the ECDH of one of the&lt;br/&gt;&amp;gt; Receiver&amp;#39;s pubkeys and one of the Proposer&amp;#39;s pubkeys.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; This means the proposed scheme is fundamentally incompatible with&lt;br/&gt;&amp;gt; watch-only wallets.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; [0] &lt;a href=&#34;https://gist.github.com/AdamISZ/2c13fb5819bd469ca318156e2cf25d79#Storage_of_Keys&#34;&gt;https://gist.github.com/AdamISZ/2c13fb5819bd469ca318156e2cf25d79#Storage_of_Keys&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Your logic seems correct for the watching half of the wallet, but I&lt;br/&gt;think it&amp;#39;s ok to consider requiring interaction with the cold wallet.&lt;br/&gt;Let&amp;#39;s look at the recovery procedure from the SNICKER documentation&lt;br/&gt;that you kindly cited:&lt;br/&gt;&lt;br/&gt;    1. Derive all regular addresses normally (doable watch-only for&lt;br/&gt;    wallets using public BIP32 derivation)&lt;br/&gt;&lt;br/&gt;    2. Find all transactions spending an output for each of those&lt;br/&gt;    addresses.  Determine whether the spend looks like a SNICKER&lt;br/&gt;    coinjoin (e.g. &amp;#34;two equal-[value] outputs&amp;#34;).  (doable watch-only)&lt;br/&gt;    &lt;br/&gt;    3. &amp;#34;For each of those transactions, check, for each of the two equal&lt;br/&gt;    sized outputs, whether one destination address can be regenerated&lt;br/&gt;    from by taking c found in the method described above&amp;#34; (not doable&lt;br/&gt;    watch only; requires private keys)&lt;br/&gt;&lt;br/&gt;I&amp;#39;d expect the set of candidate transactions produced in step #2 to be&lt;br/&gt;pretty small and probably with no false positives for users not&lt;br/&gt;participating in SNICKER coinjoins or doing lots of payment batching.&lt;br/&gt;That means, if any SNICKER candidates were found by a watch-only wallet,&lt;br/&gt;they could be compactly bundled up and the user could be encouraged to&lt;br/&gt;copy them to the corresponding cold wallet using the same means used for&lt;br/&gt;PSBTs (e.g. USB drive, QR codes, etc).  You wouldn&amp;#39;t even need the whole&lt;br/&gt;transactions, just the BIP32 index of the user&amp;#39;s key, the pubkey of the&lt;br/&gt;suspected proposer, and a checksum of the resultant address.&lt;br/&gt;&lt;br/&gt;The cold wallet could then perform step #3 using its private keys and&lt;br/&gt;return a file/QRcode/whatever to the hot wallet telling it any shared&lt;br/&gt;secrets it found.&lt;br/&gt;&lt;br/&gt;This process may need to be repeated several times if an output created&lt;br/&gt;by one SNICKER round is spent in a subsequent SNICKER round.  This can be&lt;br/&gt;addressed by simply refusing to participate in chains of SNICKER&lt;br/&gt;transactions or by refusing to participant in chains of SNICKERs more&lt;br/&gt;than n long (requring a maximum n rounds of recovery).  It could also be&lt;br/&gt;addressed by the watching-only wallet looking ahead at the block chain a&lt;br/&gt;bit in order to grab SNICKER-like child and grandchild transactions of&lt;br/&gt;our SNICKER candidates and sending them also to the cold wallet for&lt;br/&gt;attempted shared secret recovery.&lt;br/&gt;&lt;br/&gt;The SNICKER recovery process is, of course, only required for wallet&lt;br/&gt;recovery and not normal wallet use, so I don&amp;#39;t think a small amount of&lt;br/&gt;round-trip communication between the hot wallet and the cold wallet is&lt;br/&gt;too much to ask---especially since anyone using SNICKER with a&lt;br/&gt;watching-only wallet must be regularly interacting with their cold&lt;br/&gt;wallet anyway to sign the coinjoins.&lt;br/&gt;&lt;br/&gt;-Dave
    </content>
    <updated>2023-06-07T20:21:21&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsxu4vq8zf8pvmxe6ln7hg9ul98kn92kddkd0kfvgd9pzscqengd0gzyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmyu6k42g</id>
    
      <title type="html">📅 Original date posted:2018-12-09 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsxu4vq8zf8pvmxe6ln7hg9ul98kn92kddkd0kfvgd9pzscqengd0gzyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmyu6k42g" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsq445nljm6v5g76ayq82tgf0zqza6wqj4zh42zymmll3way7kxqug5zlm3k&#39;&gt;nevent1q…lm3k&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2018-12-09&lt;br/&gt;📝 Original message:On Thu, Dec 06, 2018 at 11:57:09AM -0500, Russell O&amp;#39;Connor via bitcoin-dev wrote:&lt;br/&gt;&amp;gt; One more item to consider is &amp;#34;signature covers witness weight&amp;#34;.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; While signing the witness weight doesn&amp;#39;t completely eliminate witness&lt;br/&gt;&amp;gt; malleability (of the kind that can cause grief for compact blocks), it does&lt;br/&gt;&amp;gt; eliminate the worst kind of witness malleability from the user&amp;#39;s&lt;br/&gt;&amp;gt; perspective, the kind where malicious relay nodes increase the amount of&lt;br/&gt;&amp;gt; witness data and therefore reduce the overall fee-rate of the transaction.&lt;br/&gt;&lt;br/&gt;To what degree is this an actual problem?  If the mutated transaction&lt;br/&gt;pays a feerate at least incremental-relay-fee[1] below the original&lt;br/&gt;transaction, then the original transaction can be rebroadcast as an RBF&lt;br/&gt;replacement of the mutated transaction (unless the mutated version has&lt;br/&gt;been pinned[2]).&lt;br/&gt;&lt;br/&gt;-Dave&lt;br/&gt;&lt;br/&gt;[1] $ bitcoind -help-debug | grep -A2 incremental&lt;br/&gt;  -incrementalrelayfee=&amp;lt;amt&amp;gt;&lt;br/&gt;       Fee rate (in BTC/kB) used to define cost of relay, used for mempool&lt;br/&gt;       limiting and BIP 125 replacement. (default: 0.00001)&lt;br/&gt;&lt;br/&gt;[2] &lt;a href=&#34;https://bitcoin.stackexchange.com/questions/80803/what-is-meant-by-transaction-pinning&#34;&gt;https://bitcoin.stackexchange.com/questions/80803/what-is-meant-by-transaction-pinning&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;A non-text attachment was scrubbed...&lt;br/&gt;Name: signature.asc&lt;br/&gt;Type: application/pgp-signature&lt;br/&gt;Size: 833 bytes&lt;br/&gt;Desc: not available&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20181209/7ae94da5/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20181209/7ae94da5/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T20:15:35&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsxkxvq9e7w8nj2tghsunp2wpwvrhccuf4vghms7qlg2n9daahj2gczyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmysfry4h</id>
    
      <title type="html">📅 Original date posted:2018-12-11 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsxkxvq9e7w8nj2tghsunp2wpwvrhccuf4vghms7qlg2n9daahj2gczyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmysfry4h" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqspuenlwt4n2fu2nnhcp2eq2n0v2taythrylzc2x3xmcga8xmzh97shnt76d&#39;&gt;nevent1q…t76d&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2018-12-11&lt;br/&gt;📝 Original message:On Tue, Dec 11, 2018 at 10:36:59AM -0500, Russell O&amp;#39;Connor wrote:&lt;br/&gt;&amp;gt; I don&amp;#39;t believe that the default RBF policy works that way.  My&lt;br/&gt;&amp;gt; understanding is that current policy requires an absolute fee increase (by&lt;br/&gt;&amp;gt; an amount related to incrementalrelayfee).  &lt;br/&gt;&lt;br/&gt;Indeed, you are correct (BIP125 rule 4[1]).&lt;br/&gt;&lt;br/&gt;Thanks for the correction,&lt;br/&gt;&lt;br/&gt;-Dave&lt;br/&gt;&lt;br/&gt;[1] For the curious, the relevant code from master&amp;#39;s validation.cpp:&lt;br/&gt;&lt;br/&gt;    // Finally in addition to paying more fees than the conflicts the&lt;br/&gt;    // new transaction must pay for its own bandwidth.&lt;br/&gt;    CAmount nDeltaFees = nModifiedFees - nConflictingFees;&lt;br/&gt;    if (nDeltaFees &amp;lt; ::incrementalRelayFee.GetFee(nSize))&lt;br/&gt;    {&lt;br/&gt;        return state.DoS(0, false,&lt;br/&gt;                REJECT_INSUFFICIENTFEE, &amp;#34;insufficient fee&amp;#34;, false,&lt;br/&gt;                strprintf(&amp;#34;rejecting replacement %s, not enough additional fees to relay; %s &amp;lt; %s&amp;#34;,&lt;br/&gt;                      hash.ToString(),&lt;br/&gt;                      FormatMoney(nDeltaFees),&lt;br/&gt;                      FormatMoney(::incrementalRelayFee.GetFee(nSize))));&lt;br/&gt;    }&lt;br/&gt;-------------- next part --------------&lt;br/&gt;A non-text attachment was scrubbed...&lt;br/&gt;Name: signature.asc&lt;br/&gt;Type: application/pgp-signature&lt;br/&gt;Size: 833 bytes&lt;br/&gt;Desc: not available&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20181211/20ba89d0/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20181211/20ba89d0/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T20:15:35&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsr5tzpnh9l58gmn958d6k4p4avfgkguwpflqy9q9r2z7pgkn6jv9gzyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmysekcn8</id>
    
      <title type="html">📅 Original date posted:2018-06-09 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsr5tzpnh9l58gmn958d6k4p4avfgkguwpflqy9q9r2z7pgkn6jv9gzyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmysekcn8" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsqpx2y32qtsmjqeyn4dkrmnjmskv45hwxcn80qn4x4mm8learnqzscad720&#39;&gt;nevent1q…d720&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2018-06-09&lt;br/&gt;📝 Original message:On Fri, Jun 08, 2018 at 04:35:29PM -0700, Olaoluwa Osuntokun via bitcoin-dev wrote:&lt;br/&gt;&amp;gt;   2. Since the coinbase transaction is the first in a block, it has the&lt;br/&gt;&amp;gt;      longest merkle proof path. As a result, it may be several hundred bytes&lt;br/&gt;&amp;gt;      (and grows with future capacity increases) to present a proof to the&lt;br/&gt;&amp;gt;      client.&lt;br/&gt;&lt;br/&gt;I&amp;#39;m not sure why commitment proof size is a significant issue.  Doesn&amp;#39;t&lt;br/&gt;the current BIP157 protocol have each filter commit to the filter for&lt;br/&gt;the previous block?  If that&amp;#39;s the case, shouldn&amp;#39;t validating the&lt;br/&gt;commitment at the tip of the chain (or buried back whatever number of&lt;br/&gt;blocks that the SPV client trusts) obliviate the need to validate the&lt;br/&gt;commitments for any preceeding blocks in the SPV trust model?&lt;br/&gt;&lt;br/&gt;&amp;gt; Depending on the composition of blocks, this may outweigh the gains&lt;br/&gt;&amp;gt; had from taking advantage of the additional compression the prev outs&lt;br/&gt;&amp;gt; allow.&lt;br/&gt;&lt;br/&gt;I think those are unrelated points.  The gain from using a more&lt;br/&gt;efficient filter is saved bytes.  The gain from using block commitments&lt;br/&gt;is SPV-level security---that attacks have a definite cost in terms of&lt;br/&gt;generating proof of work instead of the variable cost of network&lt;br/&gt;compromise (which is effectively free in many situations).&lt;br/&gt;&lt;br/&gt;Comparing the extra bytes used by block commitments to the reduced bytes&lt;br/&gt;saved by prevout&#43;output filters is like comparing the extra bytes used&lt;br/&gt;to download all blocks for full validation to the reduced bytes saved by&lt;br/&gt;only checking headers and merkle inclusion proofs in simplified&lt;br/&gt;validation.  Yes, one uses more bytes than the other, but they&amp;#39;re&lt;br/&gt;completely different security models and so there&amp;#39;s no normative way for&lt;br/&gt;one to &amp;#34;outweigh the gains&amp;#34; from the other.&lt;br/&gt;&lt;br/&gt;&amp;gt; So should we optimize for the ability to validate in a particular&lt;br/&gt;&amp;gt; model (better security), or lower bandwidth in this case?&lt;br/&gt;&lt;br/&gt;It seems like you&amp;#39;re claiming better security here without providing any&lt;br/&gt;evidence for it.  The security model is &amp;#34;at least one of my peers is&lt;br/&gt;honest.&amp;#34;  In the case of outpoint&#43;output filters, when a client receives&lt;br/&gt;advertisements for different filters from different peers, it:&lt;br/&gt;&lt;br/&gt;    1. Downloads the corresponding block&lt;br/&gt;    2. Locally generates the filter for that block&lt;br/&gt;    3. Kicks any peers that advertised a different filter than what it&lt;br/&gt;       generated locally&lt;br/&gt;&lt;br/&gt;This ensures that as long as the client has at least one honest peer, it&lt;br/&gt;will see every transaction affecting its wallet.  In the case of&lt;br/&gt;prevout&#43;output filters, when a client receives advertisements for&lt;br/&gt;different filters from different peers, it:&lt;br/&gt;&lt;br/&gt;    1. Downloads the corresponding block and checks it for wallet&lt;br/&gt;       transactions as if there had been a filter match&lt;br/&gt;&lt;br/&gt;This also ensures that as long as the client has at least one honest&lt;br/&gt;peer, it will see every transaction affecting its wallet.  This is&lt;br/&gt;equivilant security.&lt;br/&gt;&lt;br/&gt;In the second case, it&amp;#39;s possible for the client to eventually&lt;br/&gt;probabalistically determine which peer(s) are dishonest and kick them.&lt;br/&gt;The most space efficient of these protocols may disclose some bits of&lt;br/&gt;evidence for what output scripts the client is looking for, but a&lt;br/&gt;slightly less space-efficient protocol simply uses randomly-selected&lt;br/&gt;outputs saved from previous blocks to make the probabalistic&lt;br/&gt;determination (rather than the client&amp;#39;s own outputs) and so I think&lt;br/&gt;should be quite private.  Neither protocol seems significantly more&lt;br/&gt;complicated than keeping an associative array recording the number of&lt;br/&gt;false positive matches for each peer&amp;#39;s filters.&lt;br/&gt;&lt;br/&gt;-Dave&lt;br/&gt;-------------- next part --------------&lt;br/&gt;A non-text attachment was scrubbed...&lt;br/&gt;Name: signature.asc&lt;br/&gt;Type: application/pgp-signature&lt;br/&gt;Size: 833 bytes&lt;br/&gt;Desc: not available&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20180609/ff14b111/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20180609/ff14b111/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T20:12:41&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsg4hmp7fvh46wcrrqjytxj9zqhjyexcv96tsry52rteq0zekgz5nczyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmy0m2utr</id>
    
      <title type="html">📅 Original date posted:2018-06-02 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsg4hmp7fvh46wcrrqjytxj9zqhjyexcv96tsry52rteq0zekgz5nczyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmy0m2utr" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsf6gfhqcdfltf3u68qela73kmx0q2qqpu25wf7a4z8ngxvdpwdw9cpy7lzw&#39;&gt;nevent1q…7lzw&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2018-06-02&lt;br/&gt;📝 Original message:On Fri, Jun 01, 2018 at 07:02:38PM -0700, Jim Posen via bitcoin-dev wrote:&lt;br/&gt;&amp;gt; Without the ability to verify filter validity, a client would have to stop&lt;br/&gt;&amp;gt; syncing altogether in the presence of just one malicious peer, which is&lt;br/&gt;&amp;gt; unacceptable.&lt;br/&gt;&lt;br/&gt;I&amp;#39;m confused about why this would be the case.  If Alice&amp;#39;s node&lt;br/&gt;generates filters accurately and Mallory&amp;#39;s node generates filters&lt;br/&gt;inaccurately, and they both send their filters to Bob, won&amp;#39;t Bob be able&lt;br/&gt;to download any blocks either filter indicates are relevant to his&lt;br/&gt;wallet?&lt;br/&gt;&lt;br/&gt;If Bob downloads a block that contains one of his transactions based on&lt;br/&gt;Alice&amp;#39;s filter indicating a possible match at a time when Mallory&amp;#39;s&lt;br/&gt;filter said there was no match, then this false negative is perfect&lt;br/&gt;evidence of deceit on Mallory&amp;#39;s part[1] and Bob can ban her.&lt;br/&gt;&lt;br/&gt;If Bob downloads a block that doesn&amp;#39;t contain any of his transactions&lt;br/&gt;based on Mallory&amp;#39;s filter indicating a match at a time when Alice&amp;#39;s&lt;br/&gt;filter said there was no match, then this false positive can be recorded&lt;br/&gt;and Bob can eventually ban Mallory should the false positive rate&lt;br/&gt;exceeds some threshold.&lt;br/&gt;&lt;br/&gt;Until Mallory is eventually banned, it seems to me that the worst she&lt;br/&gt;can do is waste Bob&amp;#39;s bandwidth and that of any nodes serving him&lt;br/&gt;accurate information, such as Alice&amp;#39;s filters and the blocks Bob&lt;br/&gt;is misled into downloading to check for matches.  The amount of&lt;br/&gt;attacker:defender asymetry in the bandwidth wasted increases if&lt;br/&gt;Mallory&amp;#39;s filters become less accurate, but this also increases her&lt;br/&gt;false positive rate and reduces the number of filters that need to be&lt;br/&gt;seen before Bob bans her, so it seems to me (possibly naively) that this&lt;br/&gt;is not a significant DoS vector.&lt;br/&gt;&lt;br/&gt;-Dave&lt;br/&gt;&lt;br/&gt;[1] Per BIP158 saying, &amp;#34;a Golomb-coded set (GCS), which matches all&lt;br/&gt;items in the set with probability 1&amp;#34;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;A non-text attachment was scrubbed...&lt;br/&gt;Name: signature.asc&lt;br/&gt;Type: application/pgp-signature&lt;br/&gt;Size: 833 bytes&lt;br/&gt;Desc: not available&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20180602/9556f60f/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20180602/9556f60f/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T20:12:38&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsz3ht5kdxmq7ysh5l89vnnafykvpn3je6vu0n7ndgneewrdh2kfzqzyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmyqq3cl5</id>
    
      <title type="html">📅 Original date posted:2018-01-28 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsz3ht5kdxmq7ysh5l89vnnafykvpn3je6vu0n7ndgneewrdh2kfzqzyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmyqq3cl5" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsx3nk564gxkfmzglzyw6ql088fny9q7m55khj5y5r7t042m8vmp8c9lfnvt&#39;&gt;nevent1q…fnvt&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2018-01-28&lt;br/&gt;📝 Original message:On Sun, Jan 28, 2018 at 05:43:34PM &#43;0100, Sjors Provoost via bitcoin-dev wrote:&lt;br/&gt;&amp;gt; Peter Todd wrote:&lt;br/&gt;&amp;gt; &amp;gt; In fact I considered only requiring an increase in fee rate, based on the&lt;br/&gt;&amp;gt; &amp;gt; theory that if absolute fee went down, the transaction must be smaller and thus&lt;br/&gt;&amp;gt; &amp;gt; miners could overall earn more from the additional transactions they could fit&lt;br/&gt;&amp;gt; &amp;gt; into their block. But to do that properly requires considering whether or not&lt;br/&gt;&amp;gt; &amp;gt; that&amp;#39;s actually true in the particular state the mempool as a whole happens to&lt;br/&gt;&amp;gt; &amp;gt; be in, so I ditched that idea early on for the much simpler criteria of both a&lt;br/&gt;&amp;gt; &amp;gt; feerate and absolute fee increase.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; Why would you need to consider the whole mempool? &lt;br/&gt;&lt;br/&gt;Imagine a miner is only concerned with creating the next block and his&lt;br/&gt;mempool currently only has 750,000 vbytes in it.  If two 250-vbyte&lt;br/&gt;transactions each paying a feerate of 100 nanobitcoins per vbyte (50k&lt;br/&gt;total) are replaced with one 325-vbyte transaction paying a feerate of&lt;br/&gt;120 nBTC (39k total), the miner&amp;#39;s potential income from mining the next&lt;br/&gt;block is reduced by 11k nBTC.&lt;br/&gt;&lt;br/&gt;Moving away from this easily worked example, the problem can still exist&lt;br/&gt;even if a miner has enough transactions to fill the next block.  For&lt;br/&gt;replacement consideration only by increased feerate to be guaranteed&lt;br/&gt;more profitable, one has to assume the mempool contains an effectively&lt;br/&gt;continuous distribution of feerates.  That may one day be true of the&lt;br/&gt;mempool (it would be good, because it helps keep block production&lt;br/&gt;regular sans subsidy) but it&amp;#39;s often not the case these days.&lt;br/&gt;&lt;br/&gt;-Dave&lt;br/&gt;-------------- next part --------------&lt;br/&gt;A non-text attachment was scrubbed...&lt;br/&gt;Name: signature.asc&lt;br/&gt;Type: application/pgp-signature&lt;br/&gt;Size: 819 bytes&lt;br/&gt;Desc: not available&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20180128/f2431b67/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20180128/f2431b67/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T20:09:59&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs8ydzk7twetas2scc8dlvjvz0vjy9nsnwxlpv7ynpvanq9rtxakrczyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmysyeyam</id>
    
      <title type="html">📅 Original date posted:2017-12-13 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs8ydzk7twetas2scc8dlvjvz0vjy9nsnwxlpv7ynpvanq9rtxakrczyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmysyeyam" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsx0mjz6cf88wagry0gq30656ju7lrl77jc4akpntpt4kgvuug0k9gz9zsqt&#39;&gt;nevent1q…zsqt&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2017-12-13&lt;br/&gt;📝 Original message:On Wed, Dec 13, 2017 at 01:46:09PM -0600, Jimmy Song via bitcoin-dev wrote:&lt;br/&gt;&amp;gt; Hey all,&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; I am proposing an informational BIP to standardize the term &amp;#34;bits&amp;#34;. The&lt;br/&gt;&amp;gt; term has been around a while, but having some formal informational standard&lt;br/&gt;&amp;gt; helps give structure to how the term is used.&lt;br/&gt;&amp;gt; &lt;br/&gt;&amp;gt; &lt;a href=&#34;https://github.com/jimmysong/bips/blob/unit-bias/bip-unit-bias.mediawiki&#34;&gt;https://github.com/jimmysong/bips/blob/unit-bias/bip-unit-bias.mediawiki&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Wallets and other software is already using this term, so I think it&amp;#39;s a&lt;br/&gt;good idea to ensure its usage is normalized.&lt;br/&gt;&lt;br/&gt;That said, I think the term is unnecessary and confusing given that&lt;br/&gt;microbitcoins provides all of the same advantages and at least two&lt;br/&gt;additional advantages:&lt;br/&gt;&lt;br/&gt;- Microbitcoins is not a homonym for any other word in English (and&lt;br/&gt;  probably not in any other language), whereas &amp;#34;bit&amp;#34; and &amp;#34;bits&amp;#34; have&lt;br/&gt;  more than a dozen homonyms in English---some of which are quite common&lt;br/&gt;  in general currency usage, Bitcoin currency usage, or Bitcoin&lt;br/&gt;  technical usage.&lt;br/&gt;&lt;br/&gt;- Microbitcoins trains users to understand SI prefixes, allowing them to&lt;br/&gt;  easily migrate from one prefix to the next.  This will be important&lt;br/&gt;  when bitcoin prices rise to $10M USD[1] and the bits denomination has&lt;br/&gt;  the same problems the millibitcoin denomination has now, but it&amp;#39;s also&lt;br/&gt;  useful in the short term when interacting with users who make very&lt;br/&gt;  large payments (bitcoin-scale) or very small payments&lt;br/&gt;  (nanobitcoin-scale).[2]  Maybe a table of scale can emphasize this&lt;br/&gt;  point:&lt;br/&gt;&lt;br/&gt;      Wrong (IMO):        Right (IMO):&lt;br/&gt;      ---------------     --------------&lt;br/&gt;      BTC                 BTC&lt;br/&gt;      mBTC                mBTC&lt;br/&gt;      bits                µBTC&lt;br/&gt;      nBTC                nBTC&lt;br/&gt;  &lt;br/&gt;[1] A rise in price to $10M doesn&amp;#39;t require huge levels of growth---it&lt;br/&gt;only requires time under the assumption that a percentage of bitcoins will&lt;br/&gt;be lost every year due to wallet mishaps, failure to inherit bitcoins,&lt;br/&gt;and other issues that remove bitcoins from circulation.  In other words,&lt;br/&gt;it&amp;#39;s important to remember that Bitcoin is expected to become a&lt;br/&gt;deflationary currency and plan accordingly.&lt;br/&gt;&lt;br/&gt;[2] Although Bitcoin does not currently support committed&lt;br/&gt;nanobitcoin-scale payments in the block chain, it can be supported in a&lt;br/&gt;variety of ways by offchain systems---including (it is hypothesized)&lt;br/&gt;trustless systems based on probabilistic payments.&lt;br/&gt;&lt;br/&gt;Thanks,&lt;br/&gt;&lt;br/&gt;-Dave&lt;br/&gt;-------------- next part --------------&lt;br/&gt;A non-text attachment was scrubbed...&lt;br/&gt;Name: signature.asc&lt;br/&gt;Type: application/pgp-signature&lt;br/&gt;Size: 819 bytes&lt;br/&gt;Desc: not available&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20171213/7d7cdfb6/attachment.sig&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20171213/7d7cdfb6/attachment.sig&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T20:08:42&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsf43a98dwptne9dnd8wz6tw94lrnx4g9gkqhrx5zpzyqkjppet27gzyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmyhkxgjn</id>
    
      <title type="html">📅 Original date posted:2016-03-02 📝 Original message:On ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsf43a98dwptne9dnd8wz6tw94lrnx4g9gkqhrx5zpzyqkjppet27gzyrf4wj3yyz85u0ggyxa556dqcwhgggzr63z05hz233yux6v33fhmyhkxgjn" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs832fn0f4mgkg9pnu24xq5dpll8hmzvdyhu0d3au0n658almhvw8gjrd6gg&#39;&gt;nevent1q…d6gg&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2016-03-02&lt;br/&gt;📝 Original message:On Wed, Mar 02, 2016 at 05:53:46PM &#43;0000, Gregory Maxwell wrote:&lt;br/&gt;&amp;gt; What you are proposing makes sense only if it was believed that a very&lt;br/&gt;&amp;gt; large difficulty drop would be very likely.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; This appears to be almost certainly untrue-- consider-- look how long&lt;br/&gt;&amp;gt; ago since hashrate was 50% of what it is now, or 25% of what it is&lt;br/&gt;&amp;gt; now-- this is strong evidence that supermajority of the hashrate is&lt;br/&gt;&amp;gt; equipment with state of the art power efficiency.&lt;br/&gt;&lt;br/&gt;To avoid duplication of looking up this statistic among readers, here&lt;br/&gt;are the various recent difficulties:&lt;br/&gt;&lt;br/&gt;    $ for i in $( seq 0 2016 60000 ) ; do echo -n $i blocks ago:&amp;#39; &amp;#39; ; bitcoin-cli getblock $( bitcoin-cli getblockhash $(( 400857 - i )) ) | jshon -e difficulty ; done | column -t&lt;br/&gt;    0      blocks  ago:  163491654908.95929&lt;br/&gt;    2016   blocks  ago:  144116447847.34869&lt;br/&gt;    4032   blocks  ago:  120033340651.237&lt;br/&gt;    6048   blocks  ago:  113354299801.4711&lt;br/&gt;    8064   blocks  ago:  103880340815.4559&lt;br/&gt;    10080  blocks  ago:  93448670796.323807&lt;br/&gt;    12096  blocks  ago:  79102380900.225983&lt;br/&gt;    14112  blocks  ago:  72722780642.54718&lt;br/&gt;    16128  blocks  ago:  65848255179.702606&lt;br/&gt;    18144  blocks  ago:  62253982449.760818&lt;br/&gt;    20160  blocks  ago:  60883825480.098282&lt;br/&gt;    22176  blocks  ago:  60813224039.440353&lt;br/&gt;    24192  blocks  ago:  59335351233.86657&lt;br/&gt;    26208  blocks  ago:  56957648455.01001&lt;br/&gt;    28224  blocks  ago:  54256630327.889961&lt;br/&gt;    30240  blocks  ago:  52699842409.347008&lt;br/&gt;    32256  blocks  ago:  52278304845.591682&lt;br/&gt;    34272  blocks  ago:  51076366303.481934&lt;br/&gt;    36288  blocks  ago:  49402014931.227463&lt;br/&gt;    38304  blocks  ago:  49692386354.893837&lt;br/&gt;    40320  blocks  ago:  47589591153.625008&lt;br/&gt;    42336  blocks  ago:  48807487244.681381&lt;br/&gt;    44352  blocks  ago:  47643398017.803436&lt;br/&gt;    46368  blocks  ago:  47610564513.47126&lt;br/&gt;    48384  blocks  ago:  49446390688.24144&lt;br/&gt;    50400  blocks  ago:  46717549644.706421&lt;br/&gt;    52416  blocks  ago:  47427554950.6483&lt;br/&gt;    54432  blocks  ago:  46684376316.860291&lt;br/&gt;    56448  blocks  ago:  44455415962.343803&lt;br/&gt;    58464  blocks  ago:  41272873894.697021&lt;br/&gt;&lt;br/&gt;&amp;lt;50% of current hash rate was last seen roughly six retarget periods (12&lt;br/&gt;weeks) ago and &amp;lt;25% of current hash rate was last seen roughly 29 periods&lt;br/&gt;(58 weeks) ago.&lt;br/&gt;&lt;br/&gt;I think that&amp;#39;s reasonably strong evidence for your thesis given that&lt;br/&gt;the increases in hash rate from the introduction of new efficient&lt;br/&gt;equipment are likely partly offset by the removal from the hash rate of&lt;br/&gt;lower efficiency equipment, so the one-year tail of ~25% probably means&lt;br/&gt;that less than 25% of operating equipment is one year old or older.&lt;br/&gt;&lt;br/&gt;However, it is my understanding that most mining equipment can be run at&lt;br/&gt;different hash rates. Is there any evidence that high-efficiency miners&lt;br/&gt;today are using high clock speeds to produce more hashes per ASIC than&lt;br/&gt;they will after halving?  Is there any way to guess at how many fewer&lt;br/&gt;hashes they might produce?&lt;br/&gt;&lt;br/&gt;&amp;gt; If a pre-programmed ramp and drop is set then it has the risk of&lt;br/&gt;&amp;gt; massively under-setting difficulty; which is also strongly undesirable&lt;br/&gt;&amp;gt; (e.g. advanced inflation and exacerbating existing unintentional&lt;br/&gt;&amp;gt; selfish mining)&lt;br/&gt;&lt;br/&gt;Maybe I&amp;#39;m not thinking this through thoroughly, but I don&amp;#39;t think it&amp;#39;s&lt;br/&gt;possible to significantly advance inflation unless the effective hash&lt;br/&gt;rate increases by more than 300% at the halving.  With the proposal&lt;br/&gt;being replied to, if all mining equipment operation before the&lt;br/&gt;halving continued operating after it, the effective increase would be&lt;br/&gt;200%. That doubling in effective hash rate would&amp;#39;ve been offset in&lt;br/&gt;advance through a reduction in the effective hash rate in the weeks&lt;br/&gt;before the halving.&lt;br/&gt;&lt;br/&gt;Exacerbated unintentional selfish mining is a much more significant&lt;br/&gt;concern IMO, even if it&amp;#39;s only for a short retarget period or two. This&lt;br/&gt;is especially the case given the current high levels of centralization&lt;br/&gt;and validationless mining on the network today, which we would not want&lt;br/&gt;to reward by making those miners the only ones effectively capable of&lt;br/&gt;creating blocks until difficulty adjusted. I had not thought of this&lt;br/&gt;aspect; thank you for bringing it up.&lt;br/&gt;&lt;br/&gt;&amp;gt; and that is before suggesting that miners voluntarily take a loss of&lt;br/&gt;&amp;gt; inflation now.&lt;br/&gt;&lt;br/&gt;Yes, I very much don&amp;#39;t like that aspect, which is why I made sure to&lt;br/&gt;mention it.&lt;br/&gt;&lt;br/&gt;&amp;gt; So while I think this concern is generally implausible; I think it&amp;#39;s&lt;br/&gt;&amp;gt; prudent to have a difficulty step patch (e.g. a one time single point&lt;br/&gt;&amp;gt; where a particular block is required to lower bits a set amount) ready&lt;br/&gt;&amp;gt; to go in the unlikely case the network is stalled.&lt;br/&gt;&lt;br/&gt;I think having that code ready in general is a good idea, and a one-time&lt;br/&gt;change in nBits is sounds like a good and simple way to go about it.&lt;br/&gt;&lt;br/&gt;Thank you for your insightful reply,&lt;br/&gt;&lt;br/&gt;-Dave
    </content>
    <updated>2023-06-07T19:49:35&#43;02:00</updated>
  </entry>

</feed>