Bitcoin Optech Newsletter #214
This week’s newsletter links to the overview of a guide about channel jamming attacks and summarizes several updates to a PR for silent payments. Also included are our regular sections with descriptions of changes to popular services and clients, announcements of new releases and release candidates, and summaries of notable changes to popular Bitcoin infrastructure software.
● Overview of channel jamming attacks and mitigations: Antoine Riard and Gleb Naumenko announced to the Lightning-Dev mailing list that they’ve published a guide to channel jamming attacks and several proposed solutions. The guide also examines how some solutions can benefit protocols building on top of LN, such as swap protocols and short-duration DLCs.
● Updated silent payments PR: woltx posted to the Bitcoin-Dev mailing list that the PR to Bitcoin Core for silent payments has been updated. Silent payments provide an address that can be reused by different spenders without creating a link between those spends that’s observable onchain (though the receiver needs to be careful not to weaken that privacy through their subsequent actions). The most significant change to the PR is the addition of a new type of output script descriptor for silent payments.
The design of the new descriptor received quite a bit of discussion on the PR. It was noted that only allowing a single silent payment descriptor per wallet would be most efficient for monitoring for new transactions but that it would also create a bad experience for users in many case. A slight tweak to the silent payment design was proposed to address the issue, although it also came with trade offs.
Changes to services and client software
In this monthly feature, we highlight interesting updates to Bitcoin wallets and services.
● Purse.io adds Lightning support: In a recent tweet, Purse.io announced support for depositing (receiving) and withdrawing (sending) using the Lightning Network.
● Proof of concept coinjoin implementation joinstr: 1440000bytes developed joinstr, a proof of concept coinjoin implementation using the nostr protocol, a public key based relay network with no central server.
● Coldcard firmware 5.0.6 released: Coldcard’s version 5.0.6 adds more support for BIP85,
OP_RETURNscripts, and multisig descriptors.
● Nunchuk adds taproot support: In the latest versions of Nunchuk’s mobile wallet, taproot (single-sig), signet, and enhanced PSBT support were added.
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.
● BDK 0.21.0 is the latest release of this library for building wallets.
● Core Lightning 0.12.0 is a release of the next major version of this popular LN node implementation. It includes a new
bookkeeperplugin (see Newsletter #212), a
commandoplugin (see Newsletter #210), adds support for static channel backups, and gives explicitly allowed peers the ability to open zero-conf channels to your node. Those new features are in addition to many other added features and bug fixes.
● LND 0.15.1-beta.rc1 is a release candidate that “includes support for zero conf channels, scid aliases, [and] switches to using taproot addresses everywhere”.
Notable code and documentation changes
Notable changes this week in Bitcoin Core, Core Lightning, Eclair, LDK, LND, libsecp256k1, Hardware Wallet Interface (HWI), Rust Bitcoin, BTCPay Server, BDK, Bitcoin Improvement Proposals (BIPs), and Lightning BOLTs.
● Bitcoin Core #25504 amends the responses to
gettransactionsto state the associated descriptors in a new field,
listsinceblockcan now be instructed to explicitly list change outputs per the optional parameter
include_change. Usually, change outputs are omitted as implicit by-products of outbound payments, but listing them may be interesting in the context of watch-only descriptors.
● Eclair #2234 adds support for associating a DNS name with a node in its announcements as now allowed by BOLTs #911 (see Newsletter #212).
● LDK #1503 adds support for onion messages as defined by BOLTs #759. The PR indicates that this change is in preparation for subsequently adding support for offers.
● LND #6596 adds a new
wallet addresses listRPC that lists all of the wallet’s addresses and their current balance.
● BOLTs #1004 begins recommending that nodes which maintain information about channels for routing should wait at least 12 blocks after a channel is closed before deleting their information it. This delay will support detection of splices where a channel isn’t actually closed but instead has funds added to or removed from it in an onchain transaction.