<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <updated>2023-06-07T01:43:27Z</updated>
  <generator>https://yabu.me</generator>

  <title>Nostr notes by James O&#39;Beirne [ARCHIVE]</title>
  <author>
    <name>James O&#39;Beirne [ARCHIVE]</name>
  </author>
  <link rel="self" type="application/atom+xml" href="https://yabu.me/npub1dpdfw74plzm03mzglkdegp3hqn6qs9yffqefa5kh98mru49nrg7szymz3t.rss" />
  <link href="https://yabu.me/npub1dpdfw74plzm03mzglkdegp3hqn6qs9yffqefa5kh98mru49nrg7szymz3t" />
  <id>https://yabu.me/npub1dpdfw74plzm03mzglkdegp3hqn6qs9yffqefa5kh98mru49nrg7szymz3t</id>
  <icon></icon>
  <logo></logo>




  <entry>
    <id>https://yabu.me/nevent1qqsv59m926fzpc9phldjsps9dz20ee9eakcp2rsadavrahku5d6flmczyp5949m658utd78vfr7eh9qxxuz0gzq539yr98kj6u5lv0j5kvdr68ywkgn</id>
    
      <title type="html">📅 Original date posted:2022-02-10 📝 Original message:&amp;gt; ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsv59m926fzpc9phldjsps9dz20ee9eakcp2rsadavrahku5d6flmczyp5949m658utd78vfr7eh9qxxuz0gzq539yr98kj6u5lv0j5kvdr68ywkgn" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsdvx4699jj0eqhhnk9zvv7ghsayy0sq6swtdxwkpvh678m6jmgp2g57csuf&#39;&gt;nevent1q…csuf&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2022-02-10&lt;br/&gt;📝 Original message:&amp;gt; It&amp;#39;s not that simple. As a miner, if i have less than 1vMB of&lt;br/&gt;transactions in my mempool. I don&amp;#39;t want a 10sats/vb transaction paying&lt;br/&gt;100000sats by a 100sats/vb transaction paying only 10000sats.&lt;br/&gt;&lt;br/&gt;I don&amp;#39;t understand why the &amp;#34;&amp;lt;1vMB in the mempool&amp;#34; case is even worth&lt;br/&gt;consideration because the miner will just include the entire mempool in the&lt;br/&gt;next block regardless of feerate.&lt;br/&gt;-------------- next part --------------&lt;br/&gt;An HTML attachment was scrubbed...&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20220210/58bee534/attachment-0001.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20220210/58bee534/attachment-0001.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T23:04:13Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqs9gdq496psqzt6jh3dc32lvdv7fg65znx62yfhefkfgqarqq6clegzyp5949m658utd78vfr7eh9qxxuz0gzq539yr98kj6u5lv0j5kvdr692ddcl</id>
    
      <title type="html">📅 Original date posted:2022-02-17 📝 Original message:&amp;gt; ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqs9gdq496psqzt6jh3dc32lvdv7fg65znx62yfhefkfgqarqq6clegzyp5949m658utd78vfr7eh9qxxuz0gzq539yr98kj6u5lv0j5kvdr692ddcl" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsdh4uks3g55wj6qmahqfsdld6hsm664rwydynl0rthx8vrq9dt3lgkaw5a6&#39;&gt;nevent1q…w5a6&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2022-02-17&lt;br/&gt;📝 Original message:&amp;gt; Is it really true that miners do/should care about that?&lt;br/&gt;&lt;br/&gt;De facto, any miner running an unmodified version of bitcoind doesn&amp;#39;t&lt;br/&gt;care about anything aside from ancestor fee rate, given that the&lt;br/&gt;BlockAssembler as-written orders transactions for inclusion by&lt;br/&gt;descending ancestor fee-rate and then greedily adds them to the block&lt;br/&gt;template. [0]&lt;br/&gt;&lt;br/&gt;If anyone has any indication that there are miners running forks of&lt;br/&gt;bitcoind that change this behavior, I&amp;#39;d be curious to know it.&lt;br/&gt;&lt;br/&gt;Along the lines of what AJ wrote, optimal transaction selection is&lt;br/&gt;NP-hard (knapsack problem). Any time that a miner spends deciding how&lt;br/&gt;to assemble the next block is time not spent grinding on the nonce, and&lt;br/&gt;so I&amp;#39;m skeptical that miners in practice are currently doing anything&lt;br/&gt;that isn&amp;#39;t fast and simple like the default implementation: sorting&lt;br/&gt;fee-rate in descending order and then greedily packing.&lt;br/&gt;&lt;br/&gt;But it would be interesting to hear evidence to the contrary.&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;&lt;br/&gt;You can make the argument that transaction selection is just a function&lt;br/&gt;of mempool contents, and so mempool maintenance criteria might be the&lt;br/&gt;thing to look at. Mempool acceptance is gated based on a minimum&lt;br/&gt;feerate[1].  Mempool eviction (when running low on space) happens on&lt;br/&gt;the basis of max(self_feerate, descendant_feerate) [2]. So even in the&lt;br/&gt;mempool we&amp;#39;re still talking in terms of fee rates, not absolute fees.&lt;br/&gt;&lt;br/&gt;That presents us with the &amp;#34;is/ought&amp;#34; problem: just because the mempool&lt;br/&gt;*is* currently gating only on fee rate doesn&amp;#39;t mean that&amp;#39;s optimal. But&lt;br/&gt;if the whole point of the mempool is to hold transactions that will be&lt;br/&gt;mined, and if there&amp;#39;s good reason that txns are chosen for mining based&lt;br/&gt;on fee rate (it&amp;#39;s quick and good enough), then it seems like fee rate&lt;br/&gt;is the approximation that should ultimately prevail for txn&lt;br/&gt;replacement.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;[0]:&lt;br/&gt;&lt;a href=&#34;https://github.com/bitcoin/bitcoin/blob/master/src/node/miner.cpp#L310-L320&#34;&gt;https://github.com/bitcoin/bitcoin/blob/master/src/node/miner.cpp#L310-L320&lt;/a&gt;&lt;br/&gt;[1]:&lt;br/&gt;&lt;a href=&#34;https://github.com/bitcoin/bitcoin/blob/master/src/txmempool.cpp#L1106&#34;&gt;https://github.com/bitcoin/bitcoin/blob/master/src/txmempool.cpp#L1106&lt;/a&gt;&lt;br/&gt;[2]:&lt;br/&gt;&lt;a href=&#34;https://github.com/bitcoin/bitcoin/blob/master/src/txmempool.cpp#L1138-L1144&#34;&gt;https://github.com/bitcoin/bitcoin/blob/master/src/txmempool.cpp#L1138-L1144&lt;/a&gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;An HTML attachment was scrubbed...&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20220217/178b279c/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20220217/178b279c/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T23:04:11Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsd4m9g5u6fg5xswlh8jz4hemux0u53adwty3tu739nf5dfgmnal9gzyp5949m658utd78vfr7eh9qxxuz0gzq539yr98kj6u5lv0j5kvdr63vnvjd</id>
    
      <title type="html">📅 Original date posted:2022-02-10 📝 Original ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsd4m9g5u6fg5xswlh8jz4hemux0u53adwty3tu739nf5dfgmnal9gzyp5949m658utd78vfr7eh9qxxuz0gzq539yr98kj6u5lv0j5kvdr63vnvjd" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsvwqmgr3etferxnjsmkkc46at6jasakd85nw4q8e6u98zvrdjup5gw9p7ft&#39;&gt;nevent1q…p7ft&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2022-02-10&lt;br/&gt;📝 Original message:There&amp;#39;s been much talk about fee-bumping lately, and for good reason -&lt;br/&gt;dynamic fee management is going to be a central part of bitcoin use as&lt;br/&gt;the mempool fills up (lord willing) and right now fee-bumping is&lt;br/&gt;fraught with difficulty and pinning peril.&lt;br/&gt;&lt;br/&gt;Gloria&amp;#39;s recent post on the topic[0] was very lucid and highlights a&lt;br/&gt;lot of the current issues, as well as some proposals to improve the&lt;br/&gt;situation.&lt;br/&gt;&lt;br/&gt;As others have noted, the post was great. But throughout the course&lt;br/&gt;of reading it and the ensuing discussion, I became troubled by the&lt;br/&gt;increasing complexity of both the status quo and some of the&lt;br/&gt;proposed remedies.&lt;br/&gt;&lt;br/&gt;Layering on special cases, more carve-outs, and X and Y percentage&lt;br/&gt;thresholds is going to make reasoning about the mempool harder than it&lt;br/&gt;already is. Special consideration for &amp;#34;what should be in the next&lt;br/&gt;block&amp;#34; and/or the caching of block templates seems like an imposing&lt;br/&gt;dependency, dragging in a bunch of state and infrastructure to a&lt;br/&gt;question that should be solely limited to mempool feerate aggregates&lt;br/&gt;and the feerate of the particular txn package a wallet is concerned&lt;br/&gt;with.&lt;br/&gt;&lt;br/&gt;This is bad enough for protocol designers and Core developers, but&lt;br/&gt;making the situation any more intractable for &amp;#34;end-users&amp;#34; and wallet&lt;br/&gt;developers feels wrong.&lt;br/&gt;&lt;br/&gt;I thought it might be useful to step back and reframe. Here are a few&lt;br/&gt;aims that are motivated chiefly by the quality of end-user experience,&lt;br/&gt;constrained to obey incentive compatibility (i.e. miner reward, DoS&lt;br/&gt;avoidance). Forgive the abstract dalliance for a moment; I&amp;#39;ll talk&lt;br/&gt;through concretes afterwards.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;# Purely additive feerate bumps should never be impossible&lt;br/&gt;&lt;br/&gt;Any user should always be able to add to the incentive to mine any&lt;br/&gt;transaction in a purely additive way. The countervailing force here&lt;br/&gt;ends up being spam prevention (a la min-relay-fee) to prevent someone&lt;br/&gt;from consuming bandwidth and mempool space with a long series of&lt;br/&gt;infinitesimal fee-bumps.&lt;br/&gt;&lt;br/&gt;A fee bump, naturally, should be given the same per-byte consideration&lt;br/&gt;as a normal Bitcoin transaction in terms of relay and block space,&lt;br/&gt;although it would be nice to come up with a more succinct&lt;br/&gt;representation. This leads to another design principle:&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;# The bandwidth and chain space consumed by a fee-bump should be minimal&lt;br/&gt;&lt;br/&gt;Instead of prompting a rebroadcast of the original transaction for&lt;br/&gt;replacement, which contains a lot of data not new to the network, it&lt;br/&gt;makes more sense to broadcast the &amp;#34;diff&amp;#34; which is the additive&lt;br/&gt;contribution towards some txn&amp;#39;s feerate.&lt;br/&gt;&lt;br/&gt;This dovetails with the idea that...&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;# Special transaction structure should not be required to bump fees&lt;br/&gt;&lt;br/&gt;In an ideal design, special structural foresight would not be needed&lt;br/&gt;in order for a txn&amp;#39;s feerate to be improved after broadcast.&lt;br/&gt;&lt;br/&gt;Anchor outputs specified solely for CPFP, which amount to many bytes of&lt;br/&gt;wasted chainspace, are a hack. It&amp;#39;s probably uncontroversial at this&lt;br/&gt;point to say that even RBF itself is kind of a hack - a special&lt;br/&gt;sequence number should not be necessary for post-broadcast contribution&lt;br/&gt;toward feerate. Not to mention RBF&amp;#39;s seemingly wasteful consumption of&lt;br/&gt;bandwidth due to the rebroadcast of data the network has already seen.&lt;br/&gt;&lt;br/&gt;In a sane design, no structural foresight - and certainly no wasted&lt;br/&gt;bytes in the form of unused anchor outputs - should be needed in order&lt;br/&gt;to add to a miner&amp;#39;s reward for confirming a given transaction.&lt;br/&gt;&lt;br/&gt;Planning for fee-bumps explicitly in transaction structure also often&lt;br/&gt;winds up locking in which keys are required to bump fees, at odds&lt;br/&gt;with the idea that...&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;# Feerate bumps should be able to come from anywhere&lt;br/&gt;&lt;br/&gt;One of the practical downsides of CPFP that I haven&amp;#39;t seen discussed in&lt;br/&gt;this conversation is that it requires the transaction to pre-specify the&lt;br/&gt;keys needed to sign for fee bumps. This is problematic if you&amp;#39;re, for&lt;br/&gt;example, using a vault structure that makes use of pre-signed&lt;br/&gt;transactions.&lt;br/&gt;&lt;br/&gt;What if the key you specified n the anchor outputs for a bunch of&lt;br/&gt;pre-signed txns is compromised? What if you&amp;#39;d like to be able to&lt;br/&gt;dynamically select the wallet that bumps fees? CPFP does you no favors&lt;br/&gt;here.&lt;br/&gt;&lt;br/&gt;There is of course a tension between allowing fee bumps to come from&lt;br/&gt;anywhere and the threat of pinning-like attacks. So we should venture&lt;br/&gt;to remove pinning as a possibility, in line with the first design&lt;br/&gt;principle I discuss.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;&lt;br/&gt;Coming down to earth, the &amp;#34;tabula rasa&amp;#34; thought experiment above has led&lt;br/&gt;me to favor an approach like the transaction sponsors design that Jeremy&lt;br/&gt;proposed in a prior discussion back in 2020[1].&lt;br/&gt;&lt;br/&gt;Transaction sponsors allow feerates to be bumped after a transaction&amp;#39;s&lt;br/&gt;broadcast, regardless of the structure of the original transaction.&lt;br/&gt;No rebroadcast (wasted bandwidth) is required for the original txn data.&lt;br/&gt;No wasted chainspace on only-maybe-used prophylactic anchor outputs.&lt;br/&gt;&lt;br/&gt;The interface for end-users is very straightforward: if you want to bump&lt;br/&gt;fees, specify a transaction that contributes incrementally to package&lt;br/&gt;feerate for some txid. Simple.&lt;br/&gt;&lt;br/&gt;In the original discussion, there were a few main objections that I noted:&lt;br/&gt;&lt;br/&gt;1. In Jeremy&amp;#39;s original proposal, only one sponsor txn per txid is&lt;br/&gt;   allowed by policy. A malicious actor could execute a pinning-like&lt;br/&gt;   attack by specifying an only-slightly-helpful feerate sponsor that&lt;br/&gt;   then precludes other larger bumps.&lt;br/&gt;&lt;br/&gt;I think there are some ways around this shortcoming. For example: what&lt;br/&gt;if, by policy, sponsor txns had additional constraints that&lt;br/&gt;&lt;br/&gt;  - each input must be signed {SIGHASH_SINGLE,SIGHASH_NONE}|ANYONECANPAY,&lt;br/&gt;  - the txn must be specified RBFable,&lt;br/&gt;  - a replacement for the sponsor txn must raise the sponsor feerate,&lt;br/&gt;    including ancestors (maybe this is inherent in &amp;#34;is RBFable,&amp;#34; but&lt;br/&gt;    I don&amp;#39;t want to conflate absolute feerates into this).&lt;br/&gt;&lt;br/&gt;That way, there is still at most a single sponsor txn per txid in the&lt;br/&gt;mempool, but anyone can &amp;#34;mix in&amp;#34; inputs which bump the effective&lt;br/&gt;feerate of the sponsor.&lt;br/&gt;&lt;br/&gt;This may not be the exact solution we want, but I think it demonstrates&lt;br/&gt;that the sponsors design has some flexibility and merits some thinking.&lt;br/&gt;&lt;br/&gt;The second objection about sponsors was&lt;br/&gt;&lt;br/&gt;2. (from Suhas) sponsors break the classic invariant: &amp;#34;once a valid&lt;br/&gt;   transaction is created, it should not become invalid later on unless&lt;br/&gt;   the inputs are double-spent.&amp;#34;&lt;br/&gt;&lt;br/&gt;This doesn&amp;#39;t seem like a huge concern to me if you consider the txid&lt;br/&gt;being sponsored as a sort of spiritual input to the sponsor. While the&lt;br/&gt;theoretical objection against broadening where one has to look in a txn&lt;br/&gt;to determine its dependencies is understandable, I don&amp;#39;t see what the&lt;br/&gt;practical cost here is.&lt;br/&gt;&lt;br/&gt;Reorg complexity seems comparable if not identical, especially if we&lt;br/&gt;broaden sponsor rules to allow blocks to contain sponsor txns that are&lt;br/&gt;both for txids in the same block _or_ already included in the chain.&lt;br/&gt;&lt;br/&gt;This theoretical concession seems preferable to heaping more rules onto&lt;br/&gt;an already labyrinthine mempool policy that is difficult for both&lt;br/&gt;implementers and users to reason about practically and conceptually.&lt;br/&gt;&lt;br/&gt;A third objection that wasn&amp;#39;t posed, IIRC, but almost certainly would&lt;br/&gt;be:&lt;br/&gt;&lt;br/&gt;3. Transaction sponsors requires a soft-fork.&lt;br/&gt;&lt;br/&gt;Soft-forks are no fun, but I&amp;#39;ll tell you what also isn&amp;#39;t fun: being on&lt;br/&gt;the hook to model (and sometimes implement) a dizzying potpourri of&lt;br/&gt;mempool policies and special-cases. Expecting wallet implementers to&lt;br/&gt;abide by a maze of rules faithfully in order to ensure txn broadcast and&lt;br/&gt;fee management invites bugs for perpetuity and network behavior that is&lt;br/&gt;difficult to reason about a priori. Use of CPFP in the long-term also&lt;br/&gt;risks needless chain waste.&lt;br/&gt;&lt;br/&gt;If a soft-fork is the cost of cleaning up this essential process,&lt;br/&gt;consideration should be given to paying it as a one-time cost. This&lt;br/&gt;topic merits a separate post, but consider that in the 5 years leading&lt;br/&gt;up to the 2017 SegWit drama, we averaged about a soft-fork a year.&lt;br/&gt;Uncontroversial, &amp;#34;safe&amp;#34; changes to the consensus protocol shouldn&amp;#39;t be&lt;br/&gt;out of the question when significant practical benefit is plain to see.&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;&lt;br/&gt;I hope this message has added some framing to the discussion on fees,&lt;br/&gt;as well prompting other participants to go back and give the&lt;br/&gt;transaction sponsor proposal a serious look. The sponsors interface is&lt;br/&gt;about the simplest I can imagine for wallets, and it seems easy to&lt;br/&gt;reason about for implementers on Core and elsewhere.&lt;br/&gt;&lt;br/&gt;I&amp;#39;m not out to propose soft-forks lightly, but the current complexity&lt;br/&gt;in fee management feels untenable, and as evidenced by all the&lt;br/&gt;discussion lately, fees are an increasingly crucial part of the system.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;[0]:&lt;br/&gt;&lt;a href=&#34;https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2022-January/019817.html&#34;&gt;https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2022-January/019817.html&lt;/a&gt;&lt;br/&gt;[1]:&lt;br/&gt;&lt;a href=&#34;https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2020-September/018168.html&#34;&gt;https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2020-September/018168.html&lt;/a&gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;An HTML attachment was scrubbed...&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20220210/b6bf7054/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20220210/b6bf7054/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-07T23:04:07Z</updated>
  </entry>

</feed>