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.

News

  • 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_RETURN scripts, 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.

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 listsinceblock, listtransactions, and gettransactions to state the associated descriptors in a new field, parent_descs. Additionally, listsinceblock can 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 list RPC 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.