diff --git a/_posts/en/newsletters/2024-10-25-newsletter.md b/_posts/en/newsletters/2024-10-25-newsletter.md new file mode 100644 index 000000000..b1cd9f094 --- /dev/null +++ b/_posts/en/newsletters/2024-10-25-newsletter.md @@ -0,0 +1,182 @@ +--- +title: 'Bitcoin Optech Newsletter #326' +permalink: /en/newsletters/2024/10/25/ +name: 2024-10-25-newsletter +slug: 2024-10-25-newsletter +type: newsletter +layout: newsletter +lang: en +--- +This week's newsletter summarizes updates to a proposal for new LN +channel announcements and describes a BIP for sending silent payments +with PSBTs. Also included are our regular sections with popular +questions and answers from the Bitcoin Stack Exchange, announcements of +new releases and release candidates, and descriptions of notable changes +to popular Bitcoin infrastructure software. + +## News + +- **Updates to the version 1.75 channel announcements proposal:** Elle + Mouton [posted][mouton chanann] to Delving Bitcoin a description of + several proposed changes to the [new channel announcements][topic + channel announcements] protocol that will support advertising [simple + taproot channels][topic simple taproot channels]. The most + significant planned change is to allow the messages to also announce + current-style P2WSH channels; this will allow nodes to later "start + switching off the legacy protocol [...] when most of the network seems + to have upgraded". + + Another addition, recently discussed (see [Newsletter #325][news325 + chanann]), is to allow announcements to include an SPV proof so that + any client that has all of the headers from the most-proof-of-work + blockchain can verify that the channel's funding transaction was + included in a block. Currently, lightweight clients must download an + entire block to perform the same level of verification of a channel + announcement. + + Mouton's post also briefly discusses allowing opt-in announcement of + existing simple taproot channels. Due to the current lack of support + for announcements of non-P2WSH channels, all existing taproot channels + are [unannounced][topic unannounced channels]. A possible feature + that can be added to the proposal will allow nodes to signal to their + peers that they want to convert an unannounced channel to a public + channel. + +- **Draft BIP for sending silent payments with PSBTs:** Andrew Toth + [posted][toth sp-psbt] to the Bitcoin-Dev mailing list a draft BIP for + allowing wallets and signing devices to use [PSBTs][topic psbt] to + coordinate the creation of a [silent payment][topic silent payments]. + This continues the previous discussion about an earlier iteration of the + draft BIP, see Newsletters [#304][news304 sp] and [#308][news308 sp]. + As mentioned in those earlier newsletters, a special requirement of + silent payments over most other PSBT-coordinated transactions is that + any change to a not-fully-signed transaction's inputs requires + revising the outputs. + + The draft only addresses the expected most common situation where a + signer has access to the private keys for all inputs in a transaction. + For the less common situation of multiple signers, Toth writes that + "this will be specified in a following BIP". + +## Selected Q&A from Bitcoin Stack Exchange + +*[Bitcoin Stack Exchange][bitcoin.se] is one of the first places Optech +contributors look for answers to their questions---or when we have a +few spare moments to help curious or confused users. In +this monthly feature, we highlight some of the top-voted questions and +answers posted since our last update.* + +{% comment %}{% endcomment %} +{% assign bse = "https://bitcoin.stackexchange.com/a/" %} + +- [Duplicate blocks in blk*.dat files?]({{bse}}124368) + Pieter Wuille explains that, in addition to the current best chain of blocks, + the block data files can also include stale blocks or duplicate block data. + +- [How was the structure of pay-to-anchor decided?]({{bse}}124383) + Antoine Poinsot describes the structure of the [pay-to-anchor (P2A)][topic + ephemeral anchors] outputs included as part of Bitcoin Core 28.0's [policy + changes][bcc28 guide]. The [bech32m][topic bech32] encoded, 2-byte length, v1 + witness program was chosen as a `bc1pfeessrawgf` vanity address. + +- [What are the benefits of decoy packets in BIP324?]({{bse}}124301) + Pieter Wuille outlines design decisions around the [inclusion of decoy + packets][bip324 decoy packets] in the [BIP324][] specification. The optional + decoy packets can be used to obfuscate traffic patterns to prevent recognition by + observers during the key exchange, application, and version negotiation phases + of the protocol. + +- [Why is the opcode limit 201?]({{bse}}124465) + Vojtěch Strnad points out code changes by Satoshi during 2010 that intended to + introduce an opcode limit of 200, but due to an implementation error, actually + introduced a limit of 201. + +- [Will my node relay a transaction if it is below my minimum tx relay fee?]({{bse}}124387) + Murch notes that a node will only relay transactions that it accepts into its + own mempool. While a user could decrease their node's `minTxRelayFee` value to + allow local mempool acceptance, the inclusion of a lower relay feerate transaction + in a block would still ultimately require a miner running a similar setting + and for average feerates to decrease toward that lower feerate. + +- [Why doesn't the Bitcoin Core wallet support BIP69?]({{bse}}124382) + Murch agrees that universal implementation of [BIP69][]'s transaction + input/output ordering specification would help mitigate [wallet + fingerprinting][ishaana fingerprinting], but points out that given the + unlikelihood of universal adoption, implementing BIP69 is itself a + fingerprinting vulnerability. + +- [How can I enable testnet4 when using Bitcoin Core 28.0?]({{bse}}124443) + Pieter Wuille mentions two configuration options that enable [BIP94][]'s + [testnet4][topic testnet]: `chain=testnet4` and `testnet4=1`. + +- [What are the risks of broadcasting a transaction that reveals a `scriptPubKey` using a low-entropy key?]({{bse}}124296) + User Quuxplusone links to a recent transaction associated with a series of + Bitcoin key-grinding ["puzzles"][puzzle bitcointalk] from 2015 that is + [theorized][puzzle stackernews] to have been [replaced][topic rbf] by a bot + monitoring the mempool for low-entropy keys. + +## Releases and release candidates + +_New releases and release candidates for popular Bitcoin infrastructure +projects. Please consider upgrading to new releases or helping to test +release candidates._ + +- [Core Lightning 24.08.2][] is a maintenance release of this popular LN + implementation that contains a "few crash fixes and includes an + enhancement to remember and update channel hints for payments". + +## Notable code and documentation changes + +_Notable recent changes in [Bitcoin Core][bitcoin core repo], [Core +Lightning][core lightning repo], [Eclair][eclair repo], [LDK][ldk repo], +[LND][lnd repo], [libsecp256k1][libsecp256k1 repo], [Hardware Wallet +Interface (HWI)][hwi repo], [Rust Bitcoin][rust bitcoin repo], [BTCPay +Server][btcpay server repo], [BDK][bdk repo], [Bitcoin Improvement +Proposals (BIPs)][bips repo], [Lightning BOLTs][bolts repo], +[Lightning BLIPs][blips repo], [Bitcoin Inquisition][bitcoin inquisition +repo], and [BINANAs][binana repo]._ + +- [Eclair #2925][] introduces support for using [RBF][topic rbf] with + [splicing][topic splicing] transactions via the new `rbfsplice` API command, + which triggers a `tx_init_rbf` and `tx_ack_rbf` message exchange for peers to + agree to replace the transaction. This feature is only enabled for + non-[zero-conf channels][topic zero-conf channels], to prevent potential theft + of funds on zero-conf channels. Chains of unconfirmed splice transactions are + allowed on zero-conf channels, but not on non-zero-conf channels. In addition, + RBF is blocked on liquidity purchase transactions via the [liquidity + advertisement][topic liquidity advertisements] protocol, to avoid edge cases + where sellers might add liquidity to a channel without receiving payment. + +- [LND #9172][] adds a new `mac_root_key` flag to the `lncli create` and `lncli + createwatchonly` commands for deterministic macaroon (authentication token) + generation, allowing external keys to be baked into an LND node before it's + even initialized. This is particularly useful in combination with the reverse + remote signer setup suggested in [LND #8754][] (see [Newsletter #172][news172 + remote]). + +- [Rust Bitcoin #2960][] turns the [ChaCha20-Poly1305][rfc8439] authenticated + encryption with associated data (AEAD) algorithm into its own crate, allowing + it to be used beyond just the [v2 transport protocol][topic v2 p2p transport] + specified in [BIP324][], such as for [payjoin V2][topic payjoin]. The code has + been optimized for Single Instruction, Multiple Data (SIMD) instruction + support to improve performance across various use cases (see [Newsletter + #264][news264 chacha]). + +{% assign four_days_after_posting = page.date | date: "%s" | plus: 345600 | date: "%Y-%m-%d 14:30" %} +{% include snippets/recap-ad.md when=four_days_after_posting %} +{% include references.md %} +{% include linkers/issues.md v=2 issues="2925,9172,2960,8754" %} +[mouton chanann]: https://delvingbitcoin.org/t/updates-to-the-gossip-1-75-proposal-post-ln-summit-meeting/1202/ +[news325 chanann]: /en/newsletters/2024/10/18/#gossip-upgrade +[toth sp-psbt]: https://mailing-list.bitcoindevs.xyz/bitcoindev/cde77c84-b576-4d66-aa80-efaf4e50468fn@googlegroups.com/ +[news304 sp]: /en/newsletters/2024/05/24/#discussion-about-psbts-for-silent-payments +[news308 sp]: /en/newsletters/2024/06/21/#continued-discussion-of-psbts-for-silent-payments +[core lightning 24.08.2]: https://github.com/ElementsProject/lightning/releases/tag/v24.08.2 +[news172 remote]: /en/newsletters/2021/10/27/#lnd-5689 +[rfc8439]: https://datatracker.ietf.org/doc/html/rfc8439 +[news264 chacha]: /en/newsletters/2023/08/16/#bitcoin-core-28008 +[bcc28 guide]: /en/bitcoin-core-28-wallet-integration-guide/ +[bip324 decoy packets]: https://github.com/bitcoin/bips/blob/22660ad3078ee9bd106e64d44662a59a1967c4bd/bip-0324.mediawiki?plain=1#L126 +[ishaana fingerprinting]: https://ishaana.com/blog/wallet_fingerprinting/ +[puzzle bitcointalk]: https://bitcointalk.org/index.php?topic=1306983.0 +[puzzle stackernews]: https://stacker.news/items/683489 diff --git a/_topics/en/channel-announcements.md b/_topics/en/channel-announcements.md index 858308b62..3b4e28a63 100644 --- a/_topics/en/channel-announcements.md +++ b/_topics/en/channel-announcements.md @@ -104,6 +104,9 @@ optech_mentions: - title: "LN developers discuss upgrades to the gossip protocol" url: /en/newsletters/2024/10/18/#gossip-upgrade + - title: "Updates to the version 1.75 channel announcements proposal" + url: /en/newsletters/2024/10/25/#updates-to-the-version-1-75-channel-announcements-proposal + ## Optional. Same format as "primary_sources" above see_also: - title: Unannounced channels diff --git a/_topics/en/psbt.md b/_topics/en/psbt.md index cfe507e98..6d2d2fc83 100644 --- a/_topics/en/psbt.md +++ b/_topics/en/psbt.md @@ -228,6 +228,9 @@ optech_mentions: - title: "BIP353 adds a new standard field to PSBT outputs for DNSSEC proofs" url: /en/newsletters/2024/09/06/#bips-1657 + - title: "Draft BIP for sending silent payments with PSBTs" + url: /en/newsletters/2024/10/25/#draft-bip-for-sending-silent-payments-with-psbts + ## Optional. Same format as "primary_sources" above see_also: - title: Output Script Descriptors diff --git a/_topics/en/silent-payments.md b/_topics/en/silent-payments.md index 3b298e824..7a0fcc924 100644 --- a/_topics/en/silent-payments.md +++ b/_topics/en/silent-payments.md @@ -71,6 +71,9 @@ optech_mentions: - title: "BitBox02 hardware signing device adds silent payment support" url: /en/newsletters/2024/09/20/#bitbox02-adds-silent-payment-support + - title: "Draft BIP for sending silent payments with PSBTs" + url: /en/newsletters/2024/10/25/#draft-bip-for-sending-silent-payments-with-psbts + ## Optional. Same format as "primary_sources" above see_also: - title: Output linking diff --git a/_topics/en/simple-taproot-channels.md b/_topics/en/simple-taproot-channels.md index c8fde2d51..4d7d80828 100644 --- a/_topics/en/simple-taproot-channels.md +++ b/_topics/en/simple-taproot-channels.md @@ -41,6 +41,9 @@ optech_mentions: - title: "Discussion of channel upgrade methods, such as switching to simple taproot channels" url: /en/newsletters/2024/05/24/#upgrading-existing-ln-channels + - title: "Updated channel announcements that include support for simple taproot channels" + url: /en/newsletters/2024/10/25/#updates-to-the-version-1-75-channel-announcements-proposal + ## Optional. Same format as "primary_sources" above see_also: - title: Taproot diff --git a/_topics/en/splicing.md b/_topics/en/splicing.md index 8a934acd3..77894443b 100644 --- a/_topics/en/splicing.md +++ b/_topics/en/splicing.md @@ -80,6 +80,9 @@ optech_mentions: - title: "Eclair #2861 implements on-the-fly funding using liquidity ads with either dual-funding or splicing" url: /en/newsletters/2024/10/04/#eclair-2861 + - title: "Eclair #2925 introduces support for using RBF with splicing transactions" + url: /en/newsletters/2024/10/25/#eclair-2925 + ## Optional. Same format as "primary_sources" above see_also: - title: Interactive transaction construction protocol diff --git a/_topics/en/v2-p2p-transport.md b/_topics/en/v2-p2p-transport.md index cd9b81cdb..790ad6924 100644 --- a/_topics/en/v2-p2p-transport.md +++ b/_topics/en/v2-p2p-transport.md @@ -80,6 +80,9 @@ optech_mentions: - title: "Rust Bitcoin #2644 adds HKDF component in support of a BIP324 implementation" url: /en/newsletters/2024/06/07/#rust-bitcoin-2644 + - title: "Benefits of BIP324 decoy packets" + url: /en/newsletters/2024/10/25/#what-are-the-benefits-of-decoy-packets-in-bip324 + ## Optional. Same format as "primary_sources" above see_also: - title: BIP151