This week’s newsletter announces the availability of a workbook dedicated to provable cryptography. Also included are our regular sections with links to new releases and release candidates, plus descriptions of notable changes to popular Bitcoin infrastructure software.

News

  • Provable Cryptography Workbook: Jonas Nick posted to Delving Bitcoin to announce a short workbook he created for a four day event to “teach developers the basics of provable cryptography, […] consisting of cryptographic definitions, propositions, proofs and exercises.” The workbook is available as a PDF with freely licensesd source.

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.

  • Bitcoin Core 29.1 is the release of a maintenance version of the predominant full node software.

  • Eclair v0.13.0 is the release of this LN node implementation. It “s release contains a lot of refactoring, an initial implementation of taproot channels, […] improvements to splicing based on recent specification updates, and better Bolt 12 support.” The taproot channels and splicing features are still being fully specified, so they should not be used by regular users. The release notes also warn: “This is the last release of eclair where channels that don’t use anchor outputs will be supported. If you have channels that don’t use anchor outputs, you should close them.”

  • Bitcoin Core 30.0rc1 is a release candidate for the next major version of this full verification node software.

Notable code and documentation changes

Notable recent changes in Bitcoin Core, Core Lightning, Eclair, LDK, LND, libsecp256k1, Hardware Wallet Interface (HWI), Rust Bitcoin, BTCPay Server, BDK, Bitcoin Improvement Proposals (BIPs), Lightning BOLTs, Lightning BLIPs, Bitcoin Inquisition, and BINANAs.

  • Bitcoin Core #30469 updates the types of the m_total_prevout_spent_amount, m_total_new_outputs_ex_coinbase_amount and m_total_coinbase_amount values from CAmount (64 bit) to arith_uint256 (256 bit) to prevent a value overflow bug that has already been observed on the default signet. The new version of the coinstats index is stored in /indexes/coinstatsindex/ and an upgraded node will need to sync from scratch to rebuild the index. The old version is kept for downgrade protection, but may be removed in a future update.

  • Eclair #3163 adds a test vector to ensure that a payee’s public key can be recovered from a BOLT11 invoice with a high-S signature, in addition to already allowing low-S signatures. This aligns with the behaviour of libsecp256k1 and the proposed BOLTs #1284.

  • Eclair #2308 introduces a new use-past-relay-data option that when set to true (default false), uses a probabilistic approach based on past payment attempt history to improve pathfinding. This replaces a prior method that assumed uniformity in channel balances.

  • Eclair #3021 allows the non-initiator of a dual-funded channel to RBF the funding transaction, which is already allowed in splicing transactions. However, an exception applies to liquidity advertisement purchase transactions. This has been proposed in BOLTs #1236.

  • Eclair #3142 adds a new maxClosingFeerateSatByte parameter to the forceclose API endpoint that overrides the global feerate configuration for non-urgent force close transactions on a per-channel basis. The global setting max-closing-feerate was introduced in Eclair #3097.

  • LDK #4053 introduces zero-fee commitment channels by replacing the two anchor outputs with one shared Pay-to-Anchor (P2A) output, capped at a value of 240 sats. Additionally, it switches HTLC signatures in zero-fee commitment channels to SIGHASH_SINGLE|ANYONECANPAY and bumps HTLC transactions to version 3.

  • LDK #3886 extends channel_reestablish for splicing with two funding_locked_txid TLVs (what a node last sent and received) so that peers can reconcile the active funding transaction upon reconnecting. Additionally, it streamlines the reconnection process by resending commitment_signed before tx_signatures, handling implicit splice_locked, adopting next_funding, and requesting announcement signatures as needed.

Want more?

For more discussion about the topics mentioned in this newsletter, join us for the weekly Bitcoin Optech Recap on Riverside.fm at 16:30 UTC on September 16. The discussion is also recorded and will be available from our podcasts page.