This week’s newsletter links to a blog post about how a small change to the Script language after taproot activation could enable increased contract flexibility and includes our regular sections with notable changes to popular Bitcoin infrastructure projects.


  • Replicating OP_CHECKSIGFROMSTACK with BIP340 and OP_CAT: Andrew Poelstra authored a blog post about implementing the functionality of the OP_CHECKSIGFROMSTACK (OP_CSFS) opcode from on Bitcoin using the proposed BIP340 specification of schnorr signatures and an OP_CAT opcode that was part of Bitcoin until mid-2010 (and which is often mentioned as a candidate for reintroduction). Enabling CSFS-like behavior on Bitcoin would allow the creation of covenants and other advanced contracts without having to presign spending transactions, possibly reducing complexity and the amount of data that needs to be stored. The post ends with a teaser for later posts in the series (links added by us):

    “In our next posts, we’ll talk about how to use auxiliary inputs to simulate SIGHASH_NOINPUT and enable constant-sized backups for Lightning channels, and how to use “value-switching” to construct vaults. In our final post we’ll talk about ad-hoc extensions of Miniscript, and how to develop software for these constructions in a maintainable way.”

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 #20226 adds a new listdescriptors RPC method for the wallet. PR #16528, included in the recent 0.21.0 software release, added support for descriptor wallets. This new RPC method lists all descriptors imported into a descriptor wallet.

  • Bitcoin Core GUI #163 replaces the Direction field in the GUI peer details area with a Connection Type that displays both the direction and the type of peer connection. For more information, place the cursor over the Connection Type field name to see the tooltip shown below.

    Illustration of GUI peer detail connection type

  • HWI #430 allows the displayaddress command to show BIP32 extended public keys (xpubs) for multisig addresses on the Trezor One.

  • HWI #415 updates the getkeypool and displayaddress commands to replace the --sh_wpkh and --wpkh options with a --addr-type option that takes the address type as a parameter, e.g. --addr-type sh_wpkh.