|
| 1 | +--- |
| 2 | +title: 'Bitcoin Optech Newsletter #250' |
| 3 | +permalink: /en/newsletters/2023/05/10/ |
| 4 | +name: 2023-05-10-newsletter |
| 5 | +slug: 2023-05-10-newsletter |
| 6 | +type: newsletter |
| 7 | +layout: newsletter |
| 8 | +lang: en |
| 9 | +--- |
| 10 | +This week's newsletter summarizes a paper about the PoWswap protocol and |
| 11 | +includes our regular sections with the summary of a Bitcoin |
| 12 | +Core PR Review Club meeting, announcements of new releases and |
| 13 | +release candidates, and descriptions of notable changes to popular |
| 14 | +Bitcoin infrastructure software. Also included is a short section |
| 15 | +celebrating five years of Bitcoin Optech and our 250th newsletter. |
| 16 | + |
| 17 | +## News |
| 18 | + |
| 19 | +- **Paper about PoWswap protocol:** Thomas Hartman [posted][hartman |
| 20 | + powswap] to the Bitcoin-Dev mailing list about a [paper][hnr powswap] |
| 21 | + he has written with Gleb Naumenko and Antoine Riard about the |
| 22 | + [PoWSwap][] protocol first proposed by Jeremy Rubin. Powswap allows |
| 23 | + the creation of onchain-enforceable contracts related to the change in |
| 24 | + hash rate. The basic idea takes advantage of the protocol-enforced |
| 25 | + relationship between time and block production plus the ability to |
| 26 | + express time locks in either time or blocks. For example, consider the |
| 27 | + following script: |
| 28 | + |
| 29 | + ``` |
| 30 | + OP_IF |
| 31 | + <Alice's key> OP_CHECKSIGVERIFY <time> OP_CHECKLOCKTIMEVERIFY |
| 32 | + OP_ELSE |
| 33 | + <Bob's key> OP_CHECKSIGVERIFY <height> OP_CHECKLOCKTIMEVERIFY |
| 34 | + OP_ENDIF |
| 35 | + ``` |
| 36 | + |
| 37 | + Let's imagine the current time is _t_ and the current block height is |
| 38 | + _x_. If blocks are produced an average of 10 minutes apart, then if |
| 39 | + we set `<time>` to _t + 1000 minutes_ and `<height>` to _x + 50_, we'd |
| 40 | + expect that Bob would be able to spend the output controlled by the |
| 41 | + above script on average 500 minutes before Alice can spend it. |
| 42 | + However, if the rate of block production were to suddenly more than |
| 43 | + double, Alice might be able to spend the output before Bob. |
| 44 | + |
| 45 | + There are several envisioned applications of this type of contract: |
| 46 | + |
| 47 | + - *Hashrate increase insurance:* miners must purchase their equipment |
| 48 | + before they know for certain how much income it will generate. For |
| 49 | + example, a miner who purchases enough equipment to receive 1% of the |
| 50 | + network's current total of rewards might be surprised to find that |
| 51 | + other miners also purchased enough equipment to double the total |
| 52 | + network hashrate, leaving the miner with 0.5% of the reward instead |
| 53 | + of 1%. With PoWSwap, the miner can make a trustless contract with |
| 54 | + someone who is willing to pay the miner if hashrate increases before |
| 55 | + a certain date, offsetting the miner's unexpectedly low income. |
| 56 | + In exchange, the miner pays that person an upfront premium or agrees |
| 57 | + to pay them a larger amount if the network-wide hashrate stays the same |
| 58 | + or decreases. |
| 59 | + |
| 60 | + - *Hashrate decrease insurance:* a wide variety of problems with |
| 61 | + Bitcoin would result in a significant decrease in network-wide |
| 62 | + hashrate. Hashrate would decrease if miners were being shut down by |
| 63 | + powerful parties, or if a significant amount of [fee sniping][topic fee |
| 64 | + sniping] began to suddenly occur among established miners, or if the |
| 65 | + value of BTC to miners suddenly decreased. Holders of BTC who |
| 66 | + wanted to insure against such situations could enter trustless |
| 67 | + contracts with miners or third parties. |
| 68 | + |
| 69 | + - *Exchange rate contracts:* in general, if the purchasing power of |
| 70 | + BTC increases, miners are willing to increase the amount of hashrate |
| 71 | + they provide (to increase the rewards they receive). If purchasing |
| 72 | + power decreases, hashrate decreases. Many people may be interested |
| 73 | + in trustless contracts related to the future purchasing power of |
| 74 | + Bitcoin. |
| 75 | + |
| 76 | + Although the idea for PoWSwap has been circulated for several years, |
| 77 | + the paper provides more detail and analysis than we've previously |
| 78 | + seen. |
| 79 | + |
| 80 | +## Releases and release candidates |
| 81 | + |
| 82 | +*New releases and release candidates for popular Bitcoin infrastructure |
| 83 | +projects. Please consider upgrading to new releases or helping to test |
| 84 | +release candidates.* |
| 85 | + |
| 86 | +- [Core Lightning 23.05rc2][] is a release candidate for the next |
| 87 | + version of this LN implementation. |
| 88 | + |
| 89 | +- [Bitcoin Core 24.1rc2][] is a release candidate for a maintenance |
| 90 | + release of the current version of Bitcoin Core. |
| 91 | + |
| 92 | +- [Bitcoin Core 25.0rc1][] is a release candidate for the next major |
| 93 | + version of Bitcoin Core. |
| 94 | + |
| 95 | +## Bitcoin Core PR Review Club |
| 96 | + |
| 97 | +*In this monthly section, we summarize a recent [Bitcoin Core PR Review Club][] |
| 98 | +meeting, highlighting some of the important questions and answers. Click on a |
| 99 | +question below to see a summary of the answer from the meeting.* |
| 100 | + |
| 101 | +FIXME:LarryRuane |
| 102 | + |
| 103 | +[Don't download witnesses for assumed-valid blocks when running in prune mode][review club 27050] |
| 104 | +is a PR by Niklas Gögge (dergoegge) that improves the performance of Initial Block Download |
| 105 | +(IBD) by not downloading witness data on nodes that are configured to both |
| 106 | +[prune block data][docs pruning] and use [assumevalid][docs assume valid]. This |
| 107 | +optimization was discussed in a recent [stack exchange question][se117057]. {% assign timestamp="43:42" %} |
| 108 | + |
| 109 | +{% include functions/details-list.md |
| 110 | + q0="" |
| 111 | + a0="" |
| 112 | + a0link="https://bitcoincore.reviews/27050#FIXMEl-31" |
| 113 | +%} |
| 114 | + |
| 115 | +## Notable code and documentation changes |
| 116 | + |
| 117 | +*Notable changes this week in [Bitcoin Core][bitcoin core repo], [Core |
| 118 | +Lightning][core lightning repo], [Eclair][eclair repo], [LDK][ldk repo], |
| 119 | +[LND][lnd repo], [libsecp256k1][libsecp256k1 repo], [Hardware Wallet |
| 120 | +Interface (HWI)][hwi repo], [Rust Bitcoin][rust bitcoin repo], [BTCPay |
| 121 | +Server][btcpay server repo], [BDK][bdk repo], [Bitcoin Improvement |
| 122 | +Proposals (BIPs)][bips repo], [Lightning BOLTs][bolts repo], and |
| 123 | +[Bitcoin Inquisition][bitcoin inquisition repo].* |
| 124 | + |
| 125 | +- [Bitcoin Core #26094][] rpc: Return block hash & height in getbalances, gettransaction and getwalletinfo FIXME:adamjonas |
| 126 | + |
| 127 | +- [Bitcoin Core #27195][] makes it possible to remove all external receivers from |
| 128 | + a transaction that is being [replaced][topic rbf] using the `bumpfee` |
| 129 | + RPC from Bitcoin Core's internal wallet. The user does this by making |
| 130 | + the only output of the replacement transaction pay the user's own |
| 131 | + address. If the replacement transaction gets confirmed, this prevents |
| 132 | + any of the original receivers from being paid, which is sometimes |
| 133 | + described as "canceling" a Bitcoin payment. |
| 134 | + |
| 135 | +- [Eclair #1783][] adds a `cpfpbumpfees` API for [CPFP][topic cpfp] fee |
| 136 | + bumping one or more transactions. The PR also updates the list of |
| 137 | + [recommended parameters][eclair bitcoin.conf] for running Bitcoin Core |
| 138 | + to ensure that creating a fee-bump transaction is a viable option. |
| 139 | + |
| 140 | +- [LND #7568][] adds the ability to define additional LN feature bits |
| 141 | + when the node is started up. It also removes the ability to disable any |
| 142 | + hardcoded or defined feature bits during runtime (but additional bits |
| 143 | + may be still be added and later disabled). A related proposal update |
| 144 | + in [BLIPs #24][] notes that custom [BOLT11][] feature bits are limited |
| 145 | + to a maximum expressed value of 5114. |
| 146 | + |
| 147 | +- [LDK #2044][] makes several changes to LDK's route hinting for |
| 148 | + [BOLT11][] invoices, the mechanism that a receiving LN node can use to |
| 149 | + suggest routes for a spending node to use. With this merge, only |
| 150 | + three channels are suggested, support for LDK's phantom nodes is |
| 151 | + improved (see [Newsletter #188][news188 phantom]), and the three |
| 152 | + channels chosen are selected for efficiency and privacy. The PR |
| 153 | + discussion includes [several][carman hints] insightful |
| 154 | + [comments][corallo hints] about the implications for privacy of |
| 155 | + providing route hints. |
| 156 | + |
| 157 | +## Celebrating Optech Newsletter #250 |
| 158 | + |
| 159 | +Bitcoin Optech was founded, in part, to "help facilitate improved |
| 160 | +relations between businesses and the open source community." This |
| 161 | +weekly newsletter was started to give executives and developers inside |
| 162 | +Bitcoin-using businesses more insight into what the open source |
| 163 | +community was building. As such, we initially focused on documenting work that |
| 164 | +might affect businesses. |
| 165 | + |
| 166 | +We quickly discovered that not just business readers were interested in |
| 167 | +this information. Many contributors to Bitcoin projects didn't have the |
| 168 | +time to read all the discussions on the protocol development mailing |
| 169 | +lists or to monitor other projects for major changes. They appreciated |
| 170 | +someone notifying them about developments that they might find |
| 171 | +interesting or which might affect their work. |
| 172 | + |
| 173 | +For almost five years now, it's been our pleasure to provide that |
| 174 | +service. We've tried to expand on that simple mission by also providing |
| 175 | +a guide to [wallet technology compatibility][compatibility matrix], an index to |
| 176 | +over 100 [topics of interest][topics], and a weekly |
| 177 | +discussion [podcast][podcast] with guests that have included many of the |
| 178 | +contributors whose work we've been privileged to write about. |
| 179 | + |
| 180 | +None of that would be possible without our many contributors, who in the |
| 181 | +past year have included: |
| 182 | +<!-- alphabetical --> |
| 183 | +Adam Jonas, |
| 184 | +Copinmalin, |
| 185 | +David A. Harding, |
| 186 | +Gloria Zhao, |
| 187 | +Jiri Jakes, |
| 188 | +Jon Atack, |
| 189 | +Larry Ruane, |
| 190 | +Mark "Murch" Erhardt, |
| 191 | +Mike Schmidt, |
| 192 | +nechteme, |
| 193 | +Patrick Schwegler, |
| 194 | +Shashwat Vangani, |
| 195 | +Shigeyuki Azuchi, |
| 196 | +Vojtěch Strnad, |
| 197 | +Zhiwei "Jeffrey" Hu, |
| 198 | +and several others who made special contributions to particular subjects. |
| 199 | + |
| 200 | +We also remain eternally grateful to our [founding sponsors][] Wences |
| 201 | +Casares, John Pfeffer, and Alex Morcos, as well as our many [financial |
| 202 | +supporters][]. |
| 203 | + |
| 204 | +Thank you for reading. We hope that you'll continue to do so as we |
| 205 | +publish the next 250 newsletters. |
| 206 | + |
| 207 | +{% include references.md %} |
| 208 | +{% include linkers/issues.md v=2 issues="26094,27195,1783,7568,24,2044" %} |
| 209 | +[Core Lightning 23.05rc2]: https://github.com/ElementsProject/lightning/releases/tag/v23.05rc2 |
| 210 | +[bitcoin core 24.1rc2]: https://bitcoincore.org/bin/bitcoin-core-24.1/ |
| 211 | +[bitcoin core 25.0rc1]: https://bitcoincore.org/bin/bitcoin-core-25.0/ |
| 212 | +[eclair bitcoin.conf]: https://github.com/ACINQ/eclair/pull/1783/files#diff-b335630551682c19a781afebcf4d07bf978fb1f8ac04c6bf87428ed5106870f5 |
| 213 | +[carman hints]: https://github.com/lightningdevkit/rust-lightning/pull/2044#issuecomment-1448840896 |
| 214 | +[corallo hints]: https://github.com/lightningdevkit/rust-lightning/pull/2044#issuecomment-1461049958 |
| 215 | +[hartman powswap]: https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2023-May/021605.html |
| 216 | +[hnr powswap]: https://raw.githubusercontent.com/blockrate-binaries/paper/master/blockrate-binaries-paper.pdf |
| 217 | +[powswap]: https://powswap.com/ |
| 218 | +[news188 phantom]: /en/newsletters/2022/02/23/#ldk-1199 |
| 219 | +[founding sponsors]: /about/#founding-sponsors |
| 220 | +[financial supporters]: /#members |
0 commit comments