|
| 1 | +--- |
| 2 | +title: 'Bitcoin Optech Newsletter #357' |
| 3 | +permalink: /en/newsletters/2025/06/06/ |
| 4 | +name: 2025-06-06-newsletter |
| 5 | +slug: 2025-06-06-newsletter |
| 6 | +type: newsletter |
| 7 | +layout: newsletter |
| 8 | +lang: en |
| 9 | +--- |
| 10 | +This week's newsletter shares an analysis about syncing full nodes |
| 11 | +without old witnesses. Also included are our regular sections with |
| 12 | +descriptions of discussions about changing consensus, announcements of |
| 13 | +new releases and release candidates, and summaries of notable changes to |
| 14 | +popular Bitcoin infrastructure software. |
| 15 | + |
| 16 | +## News |
| 17 | + |
| 18 | +- **Syncing full nodes without witnesses:** Jose SK [posted][sk nowit] |
| 19 | + to Delving Bitcoin a summary of an [analysis][sk nowit gist] he |
| 20 | + performed about the security tradeoffs of allowing newly started full |
| 21 | + nodes with a particular configuration to avoid downloading some |
| 22 | + historic blockchain data. By default, Bitcoin Core nodes use the |
| 23 | + `assumevalid` configuration setting that skips validation of scripts |
| 24 | + in blocks created more than a month or two before the release of the |
| 25 | + version of Bitcoin Core being run. Although disabled by default, many |
| 26 | + users of Bitcoin Core also set a `prune` configuration setting that |
| 27 | + deletes blocks some time after validating them (how long blocks are |
| 28 | + kept depends on the size of the blocks and the specific setting selected |
| 29 | + by the user). |
| 30 | + |
| 31 | + SK argues that witness data, which is only used for validating |
| 32 | + scripts, should not be downloaded by pruned nodes for assumevalid |
| 33 | + blocks because they won't use it for validating scripts and will |
| 34 | + eventually delete it. Skipping witness download "can cut |
| 35 | + bandwidth usage by over 40%," he writes. |
| 36 | + |
| 37 | + Ruben Somsen [argues][somsen nowit] that this changes the security |
| 38 | + model to some degree. Although scripts aren't validated, the |
| 39 | + downloaded data is validated against the commitment from the block |
| 40 | + header merkle root to the coinbase transaction to the witness data. |
| 41 | + This ensures the data was available and uncorrupted at the time the |
| 42 | + node was initially synced. If nobody routinely validates the |
| 43 | + existence of the data, it could conceivably be lost, as [has |
| 44 | + happened][ripple loss] to at least one altcoin. |
| 45 | + |
| 46 | + The discussion was ongoing at the time of writing. |
| 47 | + |
| 48 | +## Changing consensus |
| 49 | + |
| 50 | +_A monthly section summarizing proposals and discussion about changing |
| 51 | +Bitcoin's consensus rules._ |
| 52 | + |
| 53 | +- **Quantum computing report:** Clara Shikhelman [posted][shikelman |
| 54 | + quantum] to Delving Bitcoin the summary of a [report][sm report] she |
| 55 | + co-authored with Anthony Milton about the risks to Bitcoin users of |
| 56 | + fast quantum computers, an overview of several pathways to [quantum |
| 57 | + resistance][topic quantum resistance], and an analysis of tradeoffs |
| 58 | + involved in upgrading the Bitcoin protocol. The authors find 4 to 10 |
| 59 | + million BTC are potentially vulnerable to quantum theft, some |
| 60 | + mitigation now is possible, Bitcoin mining is unlikely to be |
| 61 | + threatened by quantum computing in the short or medium term, and |
| 62 | + upgrading requires widespread agreement. |
| 63 | + |
| 64 | +- **Transaction weight limit with exception to prevent confiscation:** |
| 65 | + Vojtěch Strnad [posted][strnad limit] to Delving Bitcoin to propose |
| 66 | + the idea for a consensus change to limit the maximum weight of most |
| 67 | + transactions in a block. The simple rule would only allow a transaction |
| 68 | + larger than 400,000 weight units (100,000 vbytes) in a block if it was |
| 69 | + the only transaction in that block besides the coinbase transaction. |
| 70 | + Strnad and others described the motivation for limiting the maximum |
| 71 | + transaction weight: |
| 72 | + |
| 73 | + - _Easier block template optimization:_ it's easier to find a |
| 74 | + near-optimal solution to the [knapsack problem][] the smaller the |
| 75 | + items are compared to the overall limit. This is partly |
| 76 | + due to minimizing the amount of space left over at the end, with |
| 77 | + smaller items leaving less unused space. |
| 78 | + |
| 79 | + - _Easier relay policy:_ the policy for relaying unconfirmed |
| 80 | + transactions between nodes predicts what transactions will be |
| 81 | + mined in order to avoid wasting bandwidth. Giant transactions make |
| 82 | + accurate predictions harder as even a small change in the top feerate can cause |
| 83 | + them to be delayed or evicted. |
| 84 | + |
| 85 | + - _Avoiding mining centralization:_ ensuring relaying full nodes are |
| 86 | + able to handle almost all transactions prevents users of special |
| 87 | + transactions from needing to pay [out-of-band fees][topic |
| 88 | + out-of-band fees], which can lead to mining centralization. |
| 89 | + |
| 90 | + Gregory Sanders [noted][sanders limit] it might be reasonable to |
| 91 | + simply soft fork a maximum weight limit without any exceptions based |
| 92 | + on Bitcoin Core's 12 years of consistent relay policy. Gregory |
| 93 | + Maxwell [added][maxwell limit] that transactions spending only UTXOs |
| 94 | + created before the soft fork could be allowed an exception to prevent |
| 95 | + confiscation, and that a [transitory soft fork][topic transitory soft |
| 96 | + forks] would allow the restriction to expire if the |
| 97 | + community decided not to renew it. |
| 98 | + |
| 99 | + Additional discussion examined the needs of parties wanting |
| 100 | + large transactions, mainly [BitVM][topic acc] users in the near term, |
| 101 | + and whether alternative approaches were available to them. |
| 102 | + |
| 103 | +- **Removing outputs from the UTXO set based on value and time:** Robin |
| 104 | + Linus [posted][linus dust] to Delving Bitcoin to propose a soft fork |
| 105 | + for removing low-value outputs from the UTXO set after some |
| 106 | + time. Several variations on the idea were discussed, with the two |
| 107 | + main alternatives being: |
| 108 | + |
| 109 | + - _Destroy old uneconomic funds:_ small value outputs that had not |
| 110 | + been spent for a long time would become unspendable. |
| 111 | + |
| 112 | + - _Require old uneconomic funds to be spent with a proof of existence:_ |
| 113 | + [utreexo][topic utreexo] or a similar system could be used to allow |
| 114 | + a transaction to prove that the outputs it spends are part of the |
| 115 | + UTXO set. Old and [uneconomical outputs][topic uneconomical outputs] would |
| 116 | + need to include this proof, but newer and higher-value outputs would |
| 117 | + still be stored in the UTXO set. |
| 118 | + |
| 119 | + Either solution would effectively limit the maximum size of the UTXO |
| 120 | + set (assuming a minimum value and the 21 million bitcoin limit). |
| 121 | + Several interesting technical aspects of a design were discussed, |
| 122 | + including alternatives to utreexo proofs for this application that |
| 123 | + could be more practical. |
| 124 | + |
| 125 | +## Releases and release candidates |
| 126 | + |
| 127 | +_New releases and release candidates for popular Bitcoin infrastructure |
| 128 | +projects. Please consider upgrading to new releases or helping to test |
| 129 | +release candidates._ |
| 130 | + |
| 131 | +- [Core Lightning 25.05rc1][] is a release candidate for the next major |
| 132 | + version of this popular LN node implementation. |
| 133 | + |
| 134 | +- [LND 0.19.1-beta.rc1][] is a release candidate for a maintenance |
| 135 | + version of this popular LN node implementation. |
| 136 | + |
| 137 | +## Notable code and documentation changes |
| 138 | + |
| 139 | +_Notable recent changes in [Bitcoin Core][bitcoin core repo], [Core |
| 140 | +Lightning][core lightning repo], [Eclair][eclair repo], [LDK][ldk repo], |
| 141 | +[LND][lnd repo], [libsecp256k1][libsecp256k1 repo], [Hardware Wallet |
| 142 | +Interface (HWI)][hwi repo], [Rust Bitcoin][rust bitcoin repo], [BTCPay |
| 143 | +Server][btcpay server repo], [BDK][bdk repo], [Bitcoin Improvement |
| 144 | +Proposals (BIPs)][bips repo], [Lightning BOLTs][bolts repo], |
| 145 | +[Lightning BLIPs][blips repo], [Bitcoin Inquisition][bitcoin inquisition |
| 146 | +repo], and [BINANAs][binana repo]._ |
| 147 | + |
| 148 | +- [Bitcoin Core #32582][] log: Additional compact block logging |
| 149 | + |
| 150 | +- [Bitcoin Core #31375][] multiprocess: Add bitcoin wrapper executable |
| 151 | + |
| 152 | +- [BIPs #1483][] BIP 77: Async Payjoin |
| 153 | + |
| 154 | +{% include snippets/recap-ad.md when="2025-06-10 16:30" %} |
| 155 | +{% include references.md %} |
| 156 | +{% include linkers/issues.md v=2 issues="32582,31375,1483" %} |
| 157 | +[Core Lightning 25.05rc1]: https://github.com/ElementsProject/lightning/releases/tag/v25.05rc1 |
| 158 | +[ripple loss]: https://x.com/JoelKatz/status/1919233214750892305 |
| 159 | +[sk nowit]: https://delvingbitcoin.org/t/witnessless-sync-for-pruned-nodes/1742/ |
| 160 | +[sk nowit gist]: https://gist.github.com/JoseSK999/df0a2a014c7d9b626df1e2b19ccc7fb1 |
| 161 | +[somsen nowit]: https://gist.github.com/JoseSK999/df0a2a014c7d9b626df1e2b19ccc7fb1?permalink_comment_id=5597316#gistcomment-5597316 |
| 162 | +[shikelman quantum]: https://delvingbitcoin.org/t/bitcoin-and-quantum-computing/1730/ |
| 163 | +[sm report]: https://chaincode.com/bitcoin-post-quantum.pdf |
| 164 | +[strnad limit]: https://delvingbitcoin.org/t/non-confiscatory-transaction-weight-limit/1732/ |
| 165 | +[knapsack problem]: https://en.wikipedia.org/wiki/Knapsack_problem |
| 166 | +[sanders limit]: https://delvingbitcoin.org/t/non-confiscatory-transaction-weight-limit/1732/2 |
| 167 | +[maxwell limit]: https://delvingbitcoin.org/t/non-confiscatory-transaction-weight-limit/1732/4 |
| 168 | +[linus dust]: https://delvingbitcoin.org/t/dust-expiry-clean-the-utxo-set-from-spam/1707/ |
| 169 | +[lnd 0.19.1-beta.rc1]: https://github.com/lightningnetwork/lnd/releases/tag/v0.19.1-beta.rc1 |
0 commit comments