This week’s newsletter includes a request to help test the next version of Bitcoin Core, short descriptions of projects Bitcoin Core contributors are working on, and a list of notable merges during the past week.

Action items

News

No significant news was posted to the bitcoin-dev or lightning-dev mailing list last week, so this week’s news focuses on some projects discussed during the Bitcoin Core weekly meeting.

The Bitcoin Core project, like most free and open source software projects, is organized bottom-up with each contributor working on the things they think are important rather than top-down with project leaders directing the work, so occasionally—as happened last week—developers briefly summarize to each other what they’re working on for the future. It’s possible some of these initiatives may fail, but it’s also possible that some will become future parts of Bitcoin Core. Here’s a summary of the projects discussed:

● P2P protocol encryption being worked on by Jonas Schnelli with a short-term focus on unauthenticated encryption in the BIP151 style (but perhaps using a different mechanism than described in that BIP). Peer authentication (e.g. BIP150) is probably further off as a criticism against it is that the simplest way of implementing it makes it easy to fingerprint particular peers and reduce privacy—so a more advanced mechanism is desired for the cases that need it.

● Output script descriptors enhancements being worked on by Pieter Wuille. The basic idea for this was described in Newsletter #5 but Wuille is investigating adding support for nested and threshold constructions, e.g.: “import and(xpub/...,or(xpub/...,xpub/...)) into your wallet as watch-only chain for example and get PSBT to sign for it.” This would make adding hardware wallet support to Bitcoin Core easier. The support would also be compatible with timelocks and hashlocks for use with LN-compatible wallets (hardware or software).

● RISC-V support being worked on by Wladimir van der Laan. This is a CPU architecture rapidly increasing in popularity as a potential competitor with ARM-based chipsets, especially among hobbyists as the CPU design is open source. A project of several developers including Van der Laan’s is ultimately providing deterministically-generated hashes of Bitcoin Core binaries produced using RISC-V cross-compiling to ensure known problems and backdoors in the prevalent x86_64 chipsets aren’t being used to compromise Bitcoin Core binary builds. Van der Laan had several recent successes and started “probably the first RISC-V bitcoin node in the world” which has already synced part of the chain.

● Bandwidth-efficient set reconciliation protocol for transactions being worked on by Gregory Maxwell, Gleb Naumenko, and Pieter Wuille. This may allow a node that has new transactions in its mempool to tell a peer about those transactions by communicating an amount of data “equal to the expected size of the differences themselves”. This is in comparison to the current protocol where nodes communicate the existence of a transaction by sending a 32 byte hash of it to their peers. Well-connected nodes can receive or send more than hundred of these notifications for each 224-byte median-sized transaction they process, resulting in significant amount of long-lived nodes’ bandwidth being wasted (up to 90% according to measurements by Naumenko, although recent improvements in Bitcoin Core may have reduced this figure). Maxwell is also working on making it possible for a newly-started (or long-disconnected) node to efficiently sync the high feerate part of its mempool from its peers using this same basic mechanism.

● Dandelion protocol DoS-resistant stem routing being worked on by Suhas Daftuar. The Dandelion protocol is expected to make it extremely difficult for an adversary to determine the IP address of any program that creates a Bitcoin transaction (even if they don’t use Tor), but the new method of handling unconfirmed transactions privately for a time during the “stem” phase has to be secured against attacks that could waste node bandwidth and memory.

For additional details, please see the conversation log.

Notable commits

Notable commits this week in Bitcoin Core, LND, and C-lightning.