Almost everything below is one project at heart: protocols built on top of Schnorr signatures. Threshold variants so a key can be split safely. Adaptor signatures for payments conditioned on a secret. Faster verification for the chain. I write the spec text, the reference Python, and the test vectors that go with them. It's careful, slow work, and I find it deeply satisfying.
Open Source
BIP-445 — FROST Signing
BIP author·2024–present
A specification for FROST: threshold Schnorr signatures compatible with BIP340, with support for BIP32 key derivation and BIP341 Taproot tweaking. I wrote the BIP text, the Python reference implementation, and the test-vector suite covering the signing-flow algorithms (NonceGen, NonceAgg, Sign, DeterministicSign, PartialSigVerify, PartialSigAgg). The PR is in review on bitcoin/bips and close to merge.
↗bitcoin/bips#2070
↗siv2r/bip-frost-signing
ChillDKG BIP
co-author, with Blockstream Research·2024–present
A distributed key-generation protocol that lets a FROST group set up a shared key without trusting a dealer. I co-authored the specification and contributed to the Python reference: message serialization, error handling, the test vectors. Pairs with BIP-445; together they're the spec and the setup story for a working threshold Schnorr stack.
↗BlockstreamResearch/bip-frost-dkg
Schnorr batch verification — libsecp256k1
module author, mentored by Jonas Nick·2022–present
A batch verification module for BIP340 signatures and tweaked-key checks. The first version (secp256k1#1134) came together during a Summer of Bitcoin internship under Jonas Nick and shipped at roughly 1.2× the speed of one-at-a-time verification. Since then it's had a few rounds of follow-up; most recently I reviewed secp256k1#1789, an ecmult refactor that unlocks Pippenger acceleration and pushes the speedup to nearly 2×. The review walked through ABCD cost-model calibration across 13 algorithms.
↗secp256k1#1134
↗secp256k1#1789
Schnorr Adaptor Signatures
contributor·2024
I rebased and extended the Schnorr adaptor signatures module in secp256k1-zkp. That work cleared the pending review comments and added a Multi-Hop Locks example; the module now ships with a worked protocol alongside it. The Rust bindings in rust-secp256k1-zkp came out of the same effort, with type-safe Adaptor and SecretAdaptor wrappers.
↗secp256k1-zkp#299
↗rust-secp256k1-zkp#89