This week’s newsletter announces a meeting to discuss taproot activation mechanisms, includes a link to a Bitcoin Core usage survey, and includes our regular sections with top questions and answers from the Bitcoin StackExchange, a list of releases and release candidates, and descriptions of notable changes to popular Bitcoin infrastructure software.
● Scheduled meeting to discuss taproot activation: Michael Folkson announced that a meeting will be held at in the ##taproot-activation IRC channel on Freenode to discuss some desired revisions to BIP8. It has not yet been decided that BIP8 will actually be used for the activation, so alternative proposals may also be discussed during the meeting or at a subsequent meeting. Please see Folkson’s email for background information about taproot activation mechanisms and a proposed agenda for the meeting.
● Bitcoin Core Usage Survey: Bitcoin Core developer Andrew Chow created a survey for users of Bitcoin Core. As explained in a blog post about the survey, answers will be used to help inform developers about what people use and want from the software. The survey will run until March 2nd.
Selected Q&A from Bitcoin StackExchange
Bitcoin StackExchange 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.
● How is the whitepaper decoded from the blockchain? In a follow up to the original 2015 question, Steven Roose provides a one line
getrawtransactionagainst a full node to generate a PDF of the Bitcoin whitepaper. jb55 provides a similar command using
gettxoutwhich works against a pruned node.
● Full list of “special cases” during Bitcoin Script execution? Pieter Wuille provides an overview of Bitcoin script evaluation in pseudocode including the conditions for additional rules for both BIP16 P2SH and BIP141 segwit.
● Would first-seen prevent a double spend attack? David Lynch asks if moving away from Replace-By-Fee (RBF) would prevent double spend attacks. Pieter Wuille describes a variety of nuanced considerations and incentives surrounding transaction propagation on the network concluding that no type of unconfirmed transaction can be trusted and users should wait for confirmations.
● How do light clients using compact block filters get relevant unconfirmed transactions? User Pseudonymous explains that while BIP37 bloom transaction filtering supports unconfirmed transactions, compact block filters have no such consideration and only service light clients with condensed block data since light clients have no way of verifying that unconfirmed transactions are valid.
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.
● C-Lightning 0.9.3 is the project’s newest minor release. It includes several improvements to the user interface and plugin capabilities, plus experimental support for the proposed onion messages protocol (see Newsletter #92) and the offers protocol (see Newsletter #128). See the release notes and changelog for details.
● LND 0.12.0-beta is the latest release for the next major version of this LN software. It includes support for using watchtowers with anchor outputs and adds a new
psbtwallet subcommand for working with PSBTs, among other improvements and bug fixes.
Notable code and documentation changes
Notable changes this week in Bitcoin Core, C-Lightning, Eclair, LND, Rust-Lightning, libsecp256k1, Hardware Wallet Interface (HWI), Rust Bitcoin, BTCPay Server, Bitcoin Improvement Proposals (BIPs), and Lightning BOLTs.
● Bitcoin Core #19866 adds a framework for User-Level Statically Defined Trace (USDT) probes. The Linux kernel can hook into these tracepoints at runtime which allows a node operator to use eBPF (extended Berkely Packet Filter) tools such as bpftrace to add custom introspection from userspace. This could for example be used to flexibly add logging or profiling with almost no overhead. Issue #20981 has been opened to explore potential use cases for USDT probes in Bitcoin Core now that the framework has been merged.
● Bitcoin Core #17920 adds support for using GNU Guix to reproducibly build Bitcoin Core binaries for macOS. Windows and several Linux platforms were already supported, so the new Guix deterministic build system now supports all the same platforms as the existing Gitian system.
● LND #4908 ensures that channels using anchor outputs can fee-bump their commitment transactions on closure by enforcing a reserve balance in some instances. Notably, the general
SendCoinsRPC call does not yet enforce this balance reserve, other than in the case of when