|
| 1 | +--- |
| 2 | +title: 'Bitcoin Optech Newsletter #365' |
| 3 | +permalink: /en/newsletters/2025/08/01/ |
| 4 | +name: 2025-08-01-newsletter |
| 5 | +slug: 2025-08-01-newsletter |
| 6 | +type: newsletter |
| 7 | +layout: newsletter |
| 8 | +lang: en |
| 9 | +--- |
| 10 | +This week's newsletter summarizes the results of a test of compact block |
| 11 | +relay prefilling and links to a mempool-based fee estimation library. |
| 12 | +Also included are our regular sections summarizing discussion about |
| 13 | +changing Bitcoin's consensus rules, announcing new releases and release |
| 14 | +candidates, and describing notable changes to popular Bitcoin |
| 15 | +infrastructure software. |
| 16 | + |
| 17 | +## News |
| 18 | + |
| 19 | +- **Testing compact block prefilling:** David Gumberg [replied][gumberg |
| 20 | + prefilling] to a Delving Bitcoin thread about compact block |
| 21 | + reconstruction efficiency (previously covered in Newsletters |
| 22 | + [#315][news315 cb] and [#339][news339 cb]) with a summary of the |
| 23 | + results he obtained testing [compact block relay][topic compact block |
| 24 | + relay] _prefilling_---a node pre-emptively relaying some or all |
| 25 | + transactions in a new block to its peers when it thinks the peers may |
| 26 | + not already have those transactions. Gumberg's post is detailed and |
| 27 | + links to a Jupyter notebook to allow others to experiment for themselves. |
| 28 | + Key takeaways include: |
| 29 | + |
| 30 | + - Considered independently of network transport, a simple rule for |
| 31 | + determining which transactions to prefill increased the rate of |
| 32 | + successful block reconstructions from about 62% to about 98%. |
| 33 | + |
| 34 | + - When considering network transport, some prefills may have resulted |
| 35 | + in an extra round trip---negating any benefit in that case and |
| 36 | + possibly degrading performance slightly. However, many prefills |
| 37 | + could have been constructed to avoid the problem, increasing the |
| 38 | + likely reconstruction rate to about 93% and still supporting further |
| 39 | + improvements. |
| 40 | + |
| 41 | +- **Mempool-based fee estimation library:** Lauren Shareshian |
| 42 | + [posted][shareshian estimation] to Delving Bitcoin to announce a |
| 43 | + library for [fee estimation][topic fee estimation] developed by Block. |
| 44 | + Unlike some other fee estimation tools, it solely uses the flow of |
| 45 | + transactions into a node's mempool as the basis of its estimates. |
| 46 | + The post compares the library, Augur, to several fee estimation |
| 47 | + services and finds that Augur has a low miss rate (i.e., over 85% of |
| 48 | + transactions confirm within their intended window) and a low average |
| 49 | + overestimation rate (i.e., transactions overpay fees by only about 16% |
| 50 | + more than necessary). |
| 51 | + |
| 52 | + Abubakar Sadiq Ismail [replied][ismail estimation] to the Delving |
| 53 | + thread and also started an informative [issue][augur #3] on the Augur |
| 54 | + repository for examining some of the assumptions used by the library. |
| 55 | + |
| 56 | +## Changing consensus |
| 57 | + |
| 58 | +_A monthly section summarizing proposals and discussion about changing |
| 59 | +Bitcoin's consensus rules._ |
| 60 | + |
| 61 | +- **Migration from quantum-vulnerable outputs:** Jameson Lopp |
| 62 | + [posted][lopp qmig] to the Bitcoin-Dev mailing list a three-step |
| 63 | + proposal for phasing out spending from [quantum-vulnerable |
| 64 | + outputs][topic quantum resistance]. |
| 65 | + |
| 66 | + - Three years after consensus activation of the [BIP360][] |
| 67 | + quantum-resistant signature scheme (or an alternative scheme), a |
| 68 | + soft fork would reject transactions with outputs paying |
| 69 | + quantum-vulnerable addresses. Only spends to quantum-resistant |
| 70 | + outputs would be allowed. |
| 71 | + |
| 72 | + - Two years later, a second soft fork would reject spends from |
| 73 | + quantum-vulnerable outputs. Any funds remaining in |
| 74 | + quantum-vulnerable outputs would become unspendable. |
| 75 | + |
| 76 | + - Optionally, at some undefined later time, a consensus change could |
| 77 | + allow spending from quantum-vulnerable outputs using a |
| 78 | + quantum-resistant proof scheme (see [Newsletter #361][news361 pqcr] |
| 79 | + for an example). |
| 80 | + |
| 81 | + Most of the discussion in the thread largely repeated prior |
| 82 | + discussions about whether it was necessary to prevent people from |
| 83 | + spending quantum-vulnerable bitcoins before it was certain |
| 84 | + a quantum computer fast enough to steal them existed (see [Newsletter |
| 85 | + #348][news348 destroy]). Reasonable arguments were made on both sides |
| 86 | + and we expect that debate to continue. |
| 87 | + |
| 88 | +- **Taproot-native `OP_TEMPLATEHASH` proposal:** Greg Sanders |
| 89 | + [posted][sanders th] to Bitcoin-Dev mailing list a proposal to add three opcodes to |
| 90 | + [tapscript][topic tapscript]. Two of the opcodes are the previously |
| 91 | + proposed [OP_CHECKSIGFROMSTACK][topic op_checksigfromstack] and |
| 92 | + `OP_INTERNALKEY` (see [Newsletter #285][news285 ik]). The final |
| 93 | + opcode is `OP_TEMPLATEHASH`, a taproot-native variation on |
| 94 | + [OP_CHECKTEMPLATEVERIFY][topic op_checktemplateverify] (`OP_CTV`) with |
| 95 | + the following differences highlighted by the authors: |
| 96 | + |
| 97 | + - No changes to legacy (pre-segwit) scripts. See |
| 98 | + [Newsletter #361][news361 ctvlegacy] for prior discussion about this |
| 99 | + alternative. |
| 100 | + |
| 101 | + - The data that is hashed (and the order it is hashed in) is very |
| 102 | + similar to the data hashed for signatures to commit to in |
| 103 | + [taproot][topic taproot], simplifying implementation for any |
| 104 | + software that already supports taproot. |
| 105 | + |
| 106 | + - It commits to the taproot [annex][topic annex], which `OP_CTV` does |
| 107 | + not. One way this can be used is to ensure some data is published |
| 108 | + as part of a transaction, such as data used in a contract protocol |
| 109 | + to allow a counterparty to recover from publication of an old state. |
| 110 | + |
| 111 | + - It redefines an `OP_SUCCESSx` opcode rather than an `OP_NOPx` |
| 112 | + opcode. Soft forks redefining `OP_NOPx` opcodes must be `VERIFY` |
| 113 | + opcodes that mark the transaction invalid if they fail. Redefinitions |
| 114 | + of `OP_SUCCESSx` opcodes can simply place either `1` (success) or |
| 115 | + `0` (failure) on the stack after execution; this allows them to be |
| 116 | + used directly in cases where redefined `OP_NOPx` redefinitions would |
| 117 | + need to be wrapped by conditionals such as `OP_IF` |
| 118 | + statements. |
| 119 | + |
| 120 | + - "It prevents surprising inputs with ... `scriptSig`" (see |
| 121 | + [Newsletter #361][news361 bitvm]). |
| 122 | + |
| 123 | + Brandon Black [replied][black th] with a comparison of the proposal to |
| 124 | + his earlier LNHANCE bundle proposal (see [Newsletter #285][news285 |
| 125 | + ik]) and found it comparable in most ways, although he noted that it |
| 126 | + is less efficient in onchain space for _congestion control_ (a form of |
| 127 | + delayed [payment batching][topic payment batching]). |
| 128 | + |
| 129 | +- **Proposal to allow longer relative timelocks:** developer Pyth |
| 130 | + [posted][pyth timelock] to Delving Bitcoin to suggest allowing |
| 131 | + [BIP68][] relative timelocks to be extended from their current maximum |
| 132 | + of about one year to a new maximum of about ten years. This would |
| 133 | + require a soft fork and the use of an additional bit from the |
| 134 | + transaction input _sequence_ field. |
| 135 | + |
| 136 | + Fabian Jahr [replied][jahr timelock] with a concern that |
| 137 | + [timelocks][topic timelocks] too far in the future could lead to a |
| 138 | + loss of funds, such as due to the development of quantum computers |
| 139 | + (or, we add, the deployment of quantum defense protocols such as |
| 140 | + Jameson Lopp's proposal described earlier in this newsletter). Steven |
| 141 | + Roose [noted][roose timelock] that far-future timelocks are already |
| 142 | + possible using other time lock mechanisms (such as presigned |
| 143 | + transactions and [BIP65 CLTV][bip65]), and Pyth added that their |
| 144 | + desired use case is for a wallet recovery path where the long timelock |
| 145 | + would only be used if the primary path became unavailable and the |
| 146 | + alternative would be permanent loss of the funds anyway. |
| 147 | + |
| 148 | +- **Security against quantum computers with taproot as a commitment scheme:** |
| 149 | + Tim Ruffing [posted][ruffing qtr] a link to a [paper][ruffing paper] |
| 150 | + he wrote analyzing the security of [taproot][topic taproot] |
| 151 | + commitments against manipulation by quantum computers. He examines |
| 152 | + whether taproot commitments to tapleaves would continue to possess the |
| 153 | + _binding_ and _hiding_ properties it has against classical |
| 154 | + computers. He concludes that: |
| 155 | + |
| 156 | + > A quantum attacker needs to perform at least 2^81 evaluations of |
| 157 | + > SHA256 to create a Taproot output and be able to open it to an |
| 158 | + > unexpected Merkle root with probability 1/2. If the attacker has |
| 159 | + > only quantum machines whose longest sequence of SHA256 computations |
| 160 | + > is limited to 2^20, then the attacker needs at least 2^92 of these |
| 161 | + > machines to get a success probability of 1/2. |
| 162 | +
|
| 163 | + If taproot commitments are secure against manipulation by quantum |
| 164 | + computers, then quantum resistance can be added to Bitcoin by |
| 165 | + disabling keypath spends and adding quantum-resistant |
| 166 | + signature-checking opcodes to [tapscript][topic tapscript]. A recent |
| 167 | + update to [BIP360][] pay-to-quantum-resistant-hash that Ethan Heilman |
| 168 | + [posted][heilman bip360] to the Bitcoin-Dev mailing |
| 169 | + list makes exactly this change. |
| 170 | + |
| 171 | +## Releases and release candidates |
| 172 | + |
| 173 | +_New releases and release candidates for popular Bitcoin infrastructure |
| 174 | +projects. Please consider upgrading to new releases or helping to test |
| 175 | +release candidates._ |
| 176 | + |
| 177 | +- [Bitcoin Core 29.1rc1][] is a release candidate for a maintenance |
| 178 | + version of the predominant full node software. |
| 179 | + |
| 180 | +## Notable code and documentation changes |
| 181 | + |
| 182 | +_Notable recent changes in [Bitcoin Core][bitcoin core repo], [Core |
| 183 | +Lightning][core lightning repo], [Eclair][eclair repo], [LDK][ldk repo], |
| 184 | +[LND][lnd repo], [libsecp256k1][libsecp256k1 repo], [Hardware Wallet |
| 185 | +Interface (HWI)][hwi repo], [Rust Bitcoin][rust bitcoin repo], [BTCPay |
| 186 | +Server][btcpay server repo], [BDK][bdk repo], [Bitcoin Improvement |
| 187 | +Proposals (BIPs)][bips repo], [Lightning BOLTs][bolts repo], |
| 188 | +[Lightning BLIPs][blips repo], [Bitcoin Inquisition][bitcoin inquisition |
| 189 | +repo], and [BINANAs][binana repo]._ |
| 190 | + |
| 191 | +- [Bitcoin Core #29954][] RPC: Return `permitbaremultisig` and `maxdatacarriersize` in `getmempoolinfo` |
| 192 | + |
| 193 | +- [Bitcoin Core #33004][] Enable `-natpmp` by default |
| 194 | + |
| 195 | +- [LDK #3246][] Enable Creation of Offers and Refunds Without Blinded Path |
| 196 | + |
| 197 | +- [LDK #3892][] offer: make the merkle tree signature public |
| 198 | + |
| 199 | +- [LDK #3662][] LSPS5 implementation |
| 200 | + |
| 201 | +{% include snippets/recap-ad.md when="2025-08-05 16:30" %} |
| 202 | +{% include references.md %} |
| 203 | +{% include linkers/issues.md v=2 issues="29954,33004,3246,3892,3662" %} |
| 204 | +[bitcoin core 29.1rc1]: https://bitcoincore.org/bin/bitcoin-core-29.1/ |
| 205 | +[augur #3]: https://github.com/block/bitcoin-augur/issues/3 |
| 206 | +[news315 cb]: /en/newsletters/2024/08/09/#statistics-on-compact-block-reconstruction |
| 207 | +[news339 cb]: /en/newsletters/2025/01/31/#updated-stats-on-compact-block-reconstruction |
| 208 | +[gumberg prefilling]: https://delvingbitcoin.org/t/stats-on-compact-block-reconstructions/1052/34 |
| 209 | +[shareshian estimation]: https://delvingbitcoin.org/t/augur-block-s-open-source-bitcoin-fee-estimation-library/1848/ |
| 210 | +[ismail estimation]: https://delvingbitcoin.org/t/augur-block-s-open-source-bitcoin-fee-estimation-library/1848/2 |
| 211 | +[news361 pqcr]: /en/newsletters/2025/07/04/#commit-reveal-function-for-post-quantum-recovery |
| 212 | +[sanders th]: https://mailing-list.bitcoindevs.xyz/bitcoindev/[email protected]/ |
| 213 | +[news285 ik]: /en/newsletters/2024/01/17/#new-lnhance-combination-soft-fork-proposed |
| 214 | +[news361 ctvlegacy]: /en/newsletters/2025/07/04/#concerns-and-alternatives-to-legacy-support |
| 215 | +[pyth timelock]: https://delvingbitcoin.org/t/exploring-extended-relative-timelocks/1818/ |
| 216 | +[jahr timelock]: https://delvingbitcoin.org/t/exploring-extended-relative-timelocks/1818/2 |
| 217 | +[roose timelock]: https://delvingbitcoin.org/t/exploring-extended-relative-timelocks/1818/3 |
| 218 | +[ruffing qtr]: https://mailing-list.bitcoindevs.xyz/bitcoindev/bee6b897379b9ae0c3d48f53d40a6d70fe7915f0.camel@real-or-random.org/ |
| 219 | +[ruffing paper]: https://eprint.iacr.org/2025/1307 |
| 220 | +[heilman bip360]: https://mailing-list.bitcoindevs.xyz/bitcoindev/CAEM=y+W=rtU2PLmHve6pUVkMQQmqT67KOg=9hp5oMspuHrgMow@mail.gmail.com/ |
| 221 | +[lopp qmig]: https://mailing-list.bitcoindevs.xyz/bitcoindev/CADL_X_fpv-aXBxX+eJ_EVTirkAJGyPRUNqOCYdz5um8zu6ma5Q@mail.gmail.com/ |
| 222 | +[news348 destroy]: /en/newsletters/2025/04/04/#should-vulnerable-bitcoins-be-destroyed |
| 223 | +[black th]: https://mailing-list.bitcoindevs.xyz/bitcoindev/aG9FEHF1lZlK6d0E@console/ |
| 224 | +[news361 bitvm]: /en/newsletters/2025/07/04/#continued-discussion-about-ctv-csfs-advantages-for-bitvm |
0 commit comments