Half-man, half-beef. UCSB Computer Science MS BS. CTO at @lightning labs. Bitcoin · Applied Cryptography · Distributed Systems · #golang · DC42612E89237182

Joined May 2012
237 Photos and videos
Pinned Tweet

27
77
333
52,897
Olaoluwa Osuntokun retweeted
Today I'm hosting the @bitcoinoptech show for newsletter #403 @reardencode as co-host We have @roasbeef as guest to talk about Post-quantum BIP86 recovery using zk-STARK proofs of BIP32 seeds x.com/i/broadcasts/1dxYljojv…

2
5
18
1,597
Olaoluwa Osuntokun retweeted
Bitcoin is an agent's best friend. With L402 SDK, agents can discover an API, pay 1 sat on Lightning, and get access. All from a single prompt. Devs, vibe coders, and agents are building the AI economy with Lightning. You can too. ⚡
8
36
144
13,095
Olaoluwa Osuntokun retweeted
📢 LND v0.21.0 rc1 is ready for testing. Basic Onion Messaging support lands in this release, along with the Payments store migrating to native SQL. Production Simple Taproot channels are also finalized. Details here: github.com/lightningnetwork/…
2
29
75
9,147
Olaoluwa Osuntokun retweeted
Lightning Terminal is a web dashboard for managing Lightning nodes at scale. Automatically manage routing fees and channel opens. Visualize routing data. Monitor your node from anywhere. We just shipped passkey support for device-based auth and persistent sessions. Authenticate once. Stay logged in across page reloads. No passwords needed. Connect your node and build the future with bitcoin. terminal.lightning.engineeri…
3
25
74
5,888
Olaoluwa Osuntokun retweeted
Agents want money. Bitcoin makes it possible. And now it works with agent-native workflows. Today we're releasing L402 SDK as part of our suite of AI tools, a client SDK for agentic payments on Lightning with L402. Embeds directly into library-based agent frameworks. TypeScript and Python bindings. Works with Vercel AI SDK and LangChain. 📖 Import a library instead of using a CLI 🛡️ Per-request, hourly, daily, and per-domain budget controls 🌐 WASM for browsers, serverless functions, edge environments Start building the agent economy with machine-scale payments on Lightning. github.com/lightninglabs/L40…
3
28
99
11,571
Olaoluwa Osuntokun retweeted
thanks to @conduition_io, there's a new variant of the proof (claim at the xpub/xpriv level, with xpriv skipping the pubkey operations all together) that's *much* faster to prove the xpub based proof takes 14 seconds to prove on my machine, with a composite proof size of 500 KB and 200 KB succint, requiring 11 GB during the proof the priv xpriv proofs takes 2 seconds to prove! using just 3 GB of memory 😎 let the games of STARK proof golf continue! 🏆 added some new docs on the repo to explain the diff proofs: * github.com/Roasbeef/bip32-pq… * github.com/Roasbeef/bip32-pq… * github.com/Roasbeef/bip32-pq…
thanks to @lukechilds the STARK proof in bip32-pq-zkp is now 222 KB (down from 1.8 MB)! takes 3.5x longer to prove (55s vs 180s), so classic time vs space tradeoff github.com/Roasbeef/bip32-pq…
8
11
120
19,236
thanks to @conduition_io, there's a new variant of the proof (claim at the xpub/xpriv level, with xpriv skipping the pubkey operations all together) that's *much* faster to prove the xpub based proof takes 14 seconds to prove on my machine, with a composite proof size of 500 KB and 200 KB succint, requiring 11 GB during the proof the priv xpriv proofs takes 2 seconds to prove! using just 3 GB of memory 😎 let the games of STARK proof golf continue! 🏆 added some new docs on the repo to explain the diff proofs: * github.com/Roasbeef/bip32-pq… * github.com/Roasbeef/bip32-pq… * github.com/Roasbeef/bip32-pq…
thanks to @lukechilds the STARK proof in bip32-pq-zkp is now 222 KB (down from 1.8 MB)! takes 3.5x longer to prove (55s vs 180s), so classic time vs space tradeoff github.com/Roasbeef/bip32-pq…
8
11
120
19,236
in the face of quantum adversary, a commonly discussed emergency soft fork for Bitcoin would be to disable the Taproot keyspend path (eprint.iacr.org/2025/1307), effectively turning it into something that resembling BIP-360 assuming an existing precautionary soft-fork to add a pq signature scheme, this would safely allow holders to maintain unilaterally custody of their funds a downside to this proposal is that any keyspend-only (normal schnorr sig) would be locked indefinitely inspired by eprint.iacr.org/2023/362, I set out to address the option problem in section 6, to create a variant of seed-lifting that doesn't reveal the wallet's master secret! 🤓 the end result is a zk-STARK proof that proves: "public key P was generated using a private key k, which itself was derived via BIP-32/BIP-86 with a master wallet secret S" this generalizes beyond Taproot, and would allow the rightful owners of any BIP-32 derived wallets to move their funds in het case of a spend disabeling emergency softfork 🛡️ the final proof takes 50 seconds to run on my MacBook with Metal GPU acceleration, uses 12 GB of RAM during proving, with a final proof size of 1.7 MB the proving code/statement is largely unoptimized, and it's possible to aggregate several proofs into a single smaller proof ⨻ an actual production deployment would likely use a smaller optimize circuit for this specific statement, this demo serves to demonstrate that such a proof is well within reach w/ today's hardware software to generate the proof I forked TinyGo to add a risc0 RISC-V ELF compilation target for TinyGo: github.com/Roasbeef/tinygo-z… then I used some helper utilities and a C FFI wrapped risc0 library to create a generalized toolkit for TinyGo zk-STARK proofs: github.com/Roasbeef/go-zkvm the final guest host lives in the bip32-pq-zkp repo: github.com/Roasbeef/bip32-pq… such a proof scheme is yet another tool in the post quantum toolkit for Bitcoin developers to prepare for an eventual PQ world 🤠 full details in my post to the Bitcoin dev mailing list: groups.google.com/g/bitcoind…

37
84
477
124,944
latest proof variant can now be proved in 2 seconds: x.com/roasbeef/status/204236…

thanks to @conduition_io, there's a new variant of the proof (claim at the xpub/xpriv level, with xpriv skipping the pubkey operations all together) that's *much* faster to prove the xpub based proof takes 14 seconds to prove on my machine, with a composite proof size of 500 KB and 200 KB succint, requiring 11 GB during the proof the priv xpriv proofs takes 2 seconds to prove! using just 3 GB of memory 😎 let the games of STARK proof golf continue! 🏆 added some new docs on the repo to explain the diff proofs: * github.com/Roasbeef/bip32-pq… * github.com/Roasbeef/bip32-pq… * github.com/Roasbeef/bip32-pq…
2
14
2,262
another proof speed up! x.com/roasbeef/status/204236…

thanks to @conduition_io, there's a new variant of the proof (claim at the xpub/xpriv level, with xpriv skipping the pubkey operations all together) that's *much* faster to prove the xpub based proof takes 14 seconds to prove on my machine, with a composite proof size of 500 KB and 200 KB succint, requiring 11 GB during the proof the priv xpriv proofs takes 2 seconds to prove! using just 3 GB of memory 😎 let the games of STARK proof golf continue! 🏆 added some new docs on the repo to explain the diff proofs: * github.com/Roasbeef/bip32-pq… * github.com/Roasbeef/bip32-pq… * github.com/Roasbeef/bip32-pq…
8
1,422
even faster version: x.com/roasbeef/status/204236…

thanks to @conduition_io, there's a new variant of the proof (claim at the xpub/xpriv level, with xpriv skipping the pubkey operations all together) that's *much* faster to prove the xpub based proof takes 14 seconds to prove on my machine, with a composite proof size of 500 KB and 200 KB succint, requiring 11 GB during the proof the priv xpriv proofs takes 2 seconds to prove! using just 3 GB of memory 😎 let the games of STARK proof golf continue! 🏆 added some new docs on the repo to explain the diff proofs: * github.com/Roasbeef/bip32-pq… * github.com/Roasbeef/bip32-pq… * github.com/Roasbeef/bip32-pq…
4
1,108
reran this and it takes 64 seconds! proof golf continues however, have some new results...
thanks to @lukechilds the STARK proof in bip32-pq-zkp is now 222 KB (down from 1.8 MB)! takes 3.5x longer to prove (55s vs 180s), so classic time vs space tradeoff github.com/Roasbeef/bip32-pq…
2
43
2,975

thanks to @conduition_io, there's a new variant of the proof (claim at the xpub/xpriv level, with xpriv skipping the pubkey operations all together) that's *much* faster to prove the xpub based proof takes 14 seconds to prove on my machine, with a composite proof size of 500 KB and 200 KB succint, requiring 11 GB during the proof the priv xpriv proofs takes 2 seconds to prove! using just 3 GB of memory 😎 let the games of STARK proof golf continue! 🏆 added some new docs on the repo to explain the diff proofs: * github.com/Roasbeef/bip32-pq… * github.com/Roasbeef/bip32-pq… * github.com/Roasbeef/bip32-pq…
3
912
Olaoluwa Osuntokun retweeted
Apr 9
I'm hooked on Claude Code... In just one day I wrote a BIP-322 verifier library in Golang, with test vectors for almost all script types (p2pkh, p2sh-p2wkh, p2wkh, p2wsh, p2tr, including multisig and time locks), created a BIP PR and then published a NPM package for it...
8
4
76
4,394
Olaoluwa Osuntokun retweeted
in the face of quantum adversary, a commonly discussed emergency soft fork for Bitcoin would be to disable the Taproot keyspend path (eprint.iacr.org/2025/1307), effectively turning it into something that resembling BIP-360 assuming an existing precautionary soft-fork to add a pq signature scheme, this would safely allow holders to maintain unilaterally custody of their funds a downside to this proposal is that any keyspend-only (normal schnorr sig) would be locked indefinitely inspired by eprint.iacr.org/2023/362, I set out to address the option problem in section 6, to create a variant of seed-lifting that doesn't reveal the wallet's master secret! 🤓 the end result is a zk-STARK proof that proves: "public key P was generated using a private key k, which itself was derived via BIP-32/BIP-86 with a master wallet secret S" this generalizes beyond Taproot, and would allow the rightful owners of any BIP-32 derived wallets to move their funds in het case of a spend disabeling emergency softfork 🛡️ the final proof takes 50 seconds to run on my MacBook with Metal GPU acceleration, uses 12 GB of RAM during proving, with a final proof size of 1.7 MB the proving code/statement is largely unoptimized, and it's possible to aggregate several proofs into a single smaller proof ⨻ an actual production deployment would likely use a smaller optimize circuit for this specific statement, this demo serves to demonstrate that such a proof is well within reach w/ today's hardware software to generate the proof I forked TinyGo to add a risc0 RISC-V ELF compilation target for TinyGo: github.com/Roasbeef/tinygo-z… then I used some helper utilities and a C FFI wrapped risc0 library to create a generalized toolkit for TinyGo zk-STARK proofs: github.com/Roasbeef/go-zkvm the final guest host lives in the bip32-pq-zkp repo: github.com/Roasbeef/bip32-pq… such a proof scheme is yet another tool in the post quantum toolkit for Bitcoin developers to prepare for an eventual PQ world 🤠 full details in my post to the Bitcoin dev mailing list: groups.google.com/g/bitcoind…

37
84
477
124,944
Olaoluwa Osuntokun retweeted

27
77
333
52,897

thanks to @lukechilds the STARK proof in bip32-pq-zkp is now 222 KB (down from 1.8 MB)! takes 3.5x longer to prove (55s vs 180s), so classic time vs space tradeoff github.com/Roasbeef/bip32-pq…
1
52
12,078
Olaoluwa Osuntokun retweeted
Armin Sabouri, Pyth (@pythcoiner), Conduition (@conduition_io) , and Jonas Nick (@n1ckler) joined Optech to discuss Newsletter #399: News ● Wallet fingerprinting risks for payjoin privacy (44:15) ● Draft BIP for a wallet backup metadata format (1:04:26) Changing consensus ● Compact Isogeny PQC can replace HD wallets, key-tweaking, silent payments (24:23) ● Varops budget and tapscript leaf 0xc2 (aka Script Restoration) are BIPs 440 and 441 (1:13:24) ● SHRIMPS: 2.5 KB post-quantum signatures across multiple stateful devices (02:02) Releases and release candidates ● Bitcoin Core 31.0rc2 (1:22:07) ● Core Lightning 26.04rc2 (1:23:32) ● BTCPay Server 2.3.7 (1:24:04) Notable code and documentation changes ● Bitcoin Core #32297 (1:26:29) ● Bitcoin Core #34379 (1:28:54) ● Eclair #3269 (1:30:37) ● LDK #4486 (1:32:59) ● LDK #4428 (1:35:00) ● LND #9982 (1:37:13) ● LND #10063 (1:39:00)
2
17
55
60,800
it's a Zen riddle/koan: "How do you catch a catfish w/ a gourd" by Joetsu: en.wikipedia.org/wiki/Catchi… stare/ponder at it long enough and you might eventually reach Satori!
Replying to @roasbeef
@roasbeef I must ask, why did you choose that banner image on your profile? 🧐
1
9
1,996