The Chaincode Podcast

The Chaincode Podcast

Chaincode Labs

A podcast about Bitcoin protocol development

Rusty Russell and privacy and robustness in Lightning - episode 34

Rusty Russell and privacy and robustness in Lightning - episode 34

Rusty drops by to tell us about why privacy and robustness should be prioritized in Lightning. We discuss: LN symmetry (04:39) Do we want LN Symmetry to be symmetrical? (05:12) Listen to the conversation with instagibbs Peer to peer protocol (13:30) CTV (16:54) Pushing privacy and robustness to the front of the line (20:33) The dynamics of developing a spec with commercially associated implementations (22:19) Expecting new implementations (26:22) Privacy revisited (27:02

Aug 9, 2023 • 48:36

Elle Mouton⁠, Oliver Gugger⁠ and Simple Taproot Channels - Episode 33

Elle Mouton⁠, Oliver Gugger⁠ and Simple Taproot Channels - Episode 33

Elle Mouton and Oliver Gugger join us to talk with us about the Simple Taproot Channel proposal. We cover: Simple Taproot Channels Overview (1:29) What’s the state of the spec? (3:06) Changes to the scripts in Taproot Channels (4:31) Refresher on CPFP carve-out and Anchor Outputs (8:19) Why Anchor Outputs need to use script path spends (10:24) Other goals of Simple Taproot Channels (15:52) Why do PTLCs need Taproot funding outputs? (16:44) Potential updates for the gossip protocol

Jul 17, 2023 • 37:18

Alekos Filini, Daniela Brozzoni and the Bitcoin Development Kit (BDK) - Episode 32

Alekos Filini, Daniela Brozzoni and the Bitcoin Development Kit (BDK) - Episode 32

Alekos Filini and Daniela Brozzoni visit the podcast to discuss the Bitcoin Development Kit (BDK). Hang out with them on the BDK Discord. We cover: How BDK started (00:48) Why is it named BDK and not the Magical Bitcoin Library? (2:10) The first users of BDK (3:30) Rust HWI (4:20) Built around descriptors (7:15) The ideal use case of BDK (7:30) Pain points (9:05) Why do devs keep building wallets from scratch? (10:05) Greenwallet (13:03) If you have a worki

May 25, 2023 • 31:25

Tadge Dryja and Lightning History and everything else - Episode 31

Tadge Dryja and Lightning History and everything else - Episode 31

Tadge Dryja chats with us about writing the Lightning Network paper and working in the Bitcoin space. We discussed: Could blocks be bigger? (0:59) Paper: On the instability of Bitcoin without the block reward (9:49) Serving billions with Lightning (10:40) The state of the debate when writing the Lightning Network White Paper (13:35) Would Lightning be possible without Segwit? (17:20) Looking in from outside on a project you started (18:54) Trimmed HTLCs: Sending 1 sat vs 100,000

Mar 22, 2023 • 57:19

Andrew Chow and the Bitcoin Core Wallet - Episode 30

Andrew Chow and the Bitcoin Core Wallet - Episode 30

Andrew Chow joins us to discuss Bitcoin Core wallet development, PSBT, Output Descriptors, and HWI. We cover: - Why do we need a wallet in Bitcoin Core? (0:58) - Refactoring the Wallet codebase to build Output Descriptors (5:59)Should we rewrite the wallet? (10:30) - Changes to Coin Selection (11:35) - Wallet interoperability (17:10) - Hardware Wallet Integration (HWI) (18:20) - Partially Signed Bitcoin Transactions (PSBT) (19:01) - Becoming Maintainer (22:06) - Tracking the UTXO pool (23:43) -

Mar 10, 2023 • 40:36

Greg Sanders, SIGHASH_ANYPREVOUT, ephemeral anchors and LN symmetry (ELTOO) - Episode 29

Greg Sanders, SIGHASH_ANYPREVOUT, ephemeral anchors and LN symmetry (ELTOO) - Episode 29

Greg Sanders joins us to discuss ANYPREVOUT, ephemeral anchors and LN symmetry (a.k.a. ELTOO). We chat about: - Package relay (2:07) - Pinning attacks (3:14) - BIP125 - T-Bast’s pinning attack summary - Mempool policy (4:56) - Stuffing the mempool - 2017 (5:20) - Rewrite mempool or make the problem simpler (07:57) - Package relay RBF A.K.A. V3 (8:38) - Reducing the standard transaction size to 65 bytes PR (14:25) - March to LN symmetry (19:07) - Daric: A Storage Effici

Feb 15, 2023 • 48:35

Sergi Delgado and Watchtowers, Lightning Privacy - Episode 28

Sergi Delgado and Watchtowers, Lightning Privacy - Episode 28

Sergi Delgado joins us to discuss Watchtowers, his prior work in Bitcoin and Lightning privacy, Python vs. Rust and the impact of Eltoo. We cover: - Sergi’s prior research - Mapping Network Topology Research (02:46) - TxProbe paper - Andrew Miller - Coinscope - Episode on Address Relay with Martin (04:28) - Block-only connections PR by Suhas (07:32) - An Empirical Analysis of Privacy in the Lightning Network (09:18) - Lightning white paper, 2

Feb 2, 2023 • 59:25

Pieter Wuille and Tim Ruffing - Nesting, ROAST, Half-Aggregation, Adaptor Signatures (part 2)

Pieter Wuille and Tim Ruffing - Nesting, ROAST, Half-Aggregation, Adaptor Signatures (part 2)

We continue the conversation with Pieter Wuille and Tim Ruffing and Nesting, ROAST, Half-Aggregation, Adaptor Signatures, atomic swaps and more. If you have not tuned into the first part of this conversation, we recommend listening to that one first. We cover: - Nesting (00:49) - ROAST (12:09) - Cross-input Signature Aggregation (18:49) - Half-aggregation (34:32) - Half-Aggregation of BIP 340 Signatures and BIP340 - Adaptor signatures and atomic swaps (39:32) Further resources: S

Dec 27, 2022 • 52:43

Pieter Wuille and Tim Ruffing, Schnorr, MuSig, FROST and more - Episode 26

Pieter Wuille and Tim Ruffing, Schnorr, MuSig, FROST and more - Episode 26

Pieter Wuille and Tim Ruffing treat us to a conversation about Schnorr, multi-signatures, MuSig, and more. We covered a lot so this is part one of a two part conversation. We discussed: - When to roll your own cryptography (01:31) - Schnorr Signatures (09:01) - Why is Schnorr preferable to ECDSA? (10:55) - Schnorr efficiency improvements (15:52) - Multisigs (23:16) - MuSig (25:07) - Yannick Seurin - Rogue key attack or key cancellation attack (31:00) &n

Dec 16, 2022 • 52:32

Clara Shikhelman and Sergei Tikhomirov and Channel Jamming on the Lightning Network - Episode 25

Clara Shikhelman and Sergei Tikhomirov and Channel Jamming on the Lightning Network - Episode 25

Clara and Sergei stop by to chat about their recent proposal on mitigating jamming attacks in the Lightning Network. We talk unconditional fees, local reputation, the impact on decentralization and UX, and the state of Lightning in general. We discuss: - What is jamming and why is it free? (03:43) - How our jamming project started (06:44) - Prior work on jamming (08:00) - The desired properties of a solution (09:57) - Reputation (12:47) - Centralization concerns (14:17) - Unconditional fees (19

Nov 23, 2022 • 44:12

Josibake, the Bitcoin Core wallet and wrangling bitcoin data - episode 24

Josibake, the Bitcoin Core wallet and wrangling bitcoin data - episode 24

Josibake joins us to talk about his work on the Bitcoin Core wallet, bitcoin data and onboarding to bitcoin development. We discussed: - Analyzing historical transaction data (1:25) - Creating a publicly available dataset (4:12) - What could it be used for? (7:30) - Bitcoin Core wallet (9:00) - Why have a wallet in Bitcoin Core? (10:00) - Separation of GUI from wallet (12:35) - Only use one input type when building transaction (13:40)

Oct 21, 2022 • 34:33

Steve Lee and Lightning updates / Stratum V2 - Episode 23

Steve Lee and Lightning updates / Stratum V2 - Episode 23

Our topics: - Lightning Dev Kit (1:04) - Zeroconf Channels (2:22) - Rapid Gossip Sync (3:46) - How does LDK pick priorities? (8:55) - LDK Lite (10:12) - Will LSPs be needed forever? (12:25) - Validated Lightning Signer (15:20) - A Lightning Node's Problem with Hats - VLS code base - FROST and ROAST (23:00) - Recovering a FROST wallet (24:00) - Taproot adoption (26:18) - Future of the Lightning Network (30

Sep 28, 2022 • 43:24

0xB10C – Tracepoints and monitoring the Bitcoin network

0xB10C – Tracepoints and monitoring the Bitcoin network

We catch up with 0xB10C about monitoring pools and tracing code execution in nodes. Our topics: - What he's been up to since the residency (1:05) - Monitoring the mempool (2:52) - Mempool Observer - Monitoring Mining pools (4:27) - MiningPool Observer - Mining pools not mining P2TR at Taproot activation (5:24) - Why monitor the network? (8:20) - Template discrepancies between pools and monitor (9:25) - User-space Statically Defined T

Jun 6, 2022 • 25:09

Gloria Zhao and Package Relay - Episode 21

Gloria Zhao and Package Relay - Episode 21

Gloria Zhao sits down with us to discuss her package relay proposal and what it is like as a relative newcomer to propose a big change. - What's package relay? (1:04) - Mailing List: Package Relay Proposal - Why do people care about package relay? (3:12) - What are these "contracting protocols" package relay matters for? (5:03) - Pinning attacks (6:28) - Why do you work on package relay? (6:55) - What's special about the mempool? (10:18) - How do you approach the securit

May 24, 2022 • 26:11

Martin Zumsande and Address Relay - Episode 20

Martin Zumsande and Address Relay - Episode 20

Martin Zumsande joins us to tell us about the address spam in the summer of 2021 and his interests in AddrRelay and Bitcoin Core development. We discuss with Martin: - His background (1:38) - Getting interested in Bitcoin (2:45) - How to approach P2P (3:55) - The network is changing (7:30) - What's the purpose of the Address Manager (AddrMan)? (9:33)Peering differences to LN nodes (11:00) - Ethan Heilman's talk on Network Partitioning Attacks (12:10) - Addrman and eclipse

May 13, 2022 • 31:50

Sergei Tikhomirov and Lightning privacy - Episode 19

Sergei Tikhomirov and Lightning privacy - Episode 19

Postdoc Researcher Sergei joins Murch and Jonas to talk about channel balance probing in Lightning, privacy concerns in general, and the importance of researcher-developer collaboration. We discuss: - Sergei's background (1:50) - Sergei's homepage with links to all prior research - Lightning basics (2:50) - Why LN payments fail (3:40) - Why privacy is important (5:30) - Privacy potential of Lightning vs L1 Bitcoin (6:40) - How probing works (8:40) - Why is balance discovery bad

Feb 17, 2022 • 1:00:30

Block Building with Clara and Murch - Episode 18

Block Building with Clara and Murch - Episode 18

Postdoc Researcher Clara joins Murch to discuss their block building research. They cover their proposal, which outlines suggested improvements to the current Bitcoin Core block building algorithm using candidate sets. Murch and Clara discuss: - Building a valid block 101 (5:45) - The current getblocktemplate algorithm (11:35) - Child pays for parent (13:40) - Is there something better? (15:45) - How easy would it be to guess the next block? (27:25) - Do we have a better idea than initially mini

Feb 1, 2022 • 48:47

Sanket Kanjalkar and Miniscript - Episode 17

Sanket Kanjalkar and Miniscript - Episode 17

Sanket describes to Murch his work on Miniscript. We explore uses for Miniscript, learn about intersections with PSBTs, Output Descriptors, and Taproot, and suss out the difference between Miniscript and Miniscript Policy. Note: This episode was recorded in the context of travel for Bitcoin 2021. We apologize for the less polished than usual audio quality due to the different equipment and recording environment. We discuss: - What's Miniscript? (1:54) - Partially Signed Bitcoin Transactions (PS

Nov 11, 2021 • 45:06

Pieter Wuille & Amiti Uttarwar and the P2P network - Episode 16

Pieter Wuille & Amiti Uttarwar and the P2P network - Episode 16

P2P experts Pieter and Amiti chat about the P2P network. In this episode they cover: - AddrRelay high-level goals and constraints (1:15) - Very different than the goals of blocks and transactions - Marginal fee rate (4:35) - Should we consider different transport layers? (5:40) - FIBRE Episode with Matt Corallo (7:40) - The introduction of Addrman in 2012, PR #787 (8:55) - What existed before AddrMan and the evolution of DoS resistance. - Eclipse Attack paper (14:55) &n

Oct 26, 2021 • 41:24

Amiti Uttarwar and the P2P network - Episode 15

Amiti Uttarwar and the P2P network - Episode 15

Amiti returns to the Chaincode office to discuss all things p2p. We discuss: Why Amiti works on P2P (1:50) A framework for p2p design (4:25) How do we systemize Bitcoin Core knowledge? (6:20) Searchable #bitcoin-core IRC logs (8:35) Forward compatibility and upgradability (15:00) Partition resisitence (16:10) Eclipse Attacks (17:00) Altnet (20:40) Messages sent across the wire (20:55) AddrRelay and AddrMan (24:35) Bootstrapping, DNS seeds and address announcements (25:25)

Oct 18, 2021 • 41:08

Chaincode Decoded: Blockchain - Episode 14

Chaincode Decoded: Blockchain - Episode 14

In this Chaincode Decoded segment we talk about the fundamental role of Bitcoin's blockchain and some of its peculiarities. We discuss: Purpose of the blockchain (0:40) Mining is a lottery, not a race (1:57) Why doesn't the same miner always win? (5:12) What happens if two blocks are found at the same height? (6:12) The longest reorgs (9:11) How does the blockchain work? (12:18) - Headers-first synchronization and Ultraprune: Episode 1 with Pieter Wuille - Episode 5:

May 27, 2021 • 23:06

Matt Corallo and Lightning Development Kit - Episode 13

Matt Corallo and Lightning Development Kit - Episode 13

In Episode 13, we sit down again with Matt Corallo and discuss his work on the Lightning Development Kit (LDK). In this conversation we cover: - Starting Rust-Lightning (1:20) - Language bindings challenges (4:09) - FFI (5:32) - Interoperability of Lightning (7:10) - Zero-value invoices (7:35) - Keysend/push payments/spontaneous payments (8:20) - What is the LDK stack? (9:29) - Anchor Outputs (10:41) - Child pays for parent (CPFP) (11:02) - Who tracks the onchain state when usin

May 13, 2021 • 31:54

Chaincode Decoded: Mempool - Episode 12

Chaincode Decoded: Mempool - Episode 12

The Chaincode Decoded segment returns and we jump into the deep end of the mempool. Child Pays for Parent (CPFP) (2:15) How miner evaluate fee rates (4:34) Why is it hard to estimate fee rates? (6:03) How do exchanges estimate fees? (8:00) Will the mempool empty again? (9:23) Miner/pools and the need for a high fee environment (11:04) Replace by Fee (RBF) (14:05) - BIP 125 Mempool eviction and the problems it can cause (19:04) Anchor Outputs (20:50) Package Relay (21:06) Way

Apr 26, 2021 • 26:55

Chaincode Decoded: Bech32m - Episode 11

Chaincode Decoded: Bech32m - Episode 11

This revisits a segment we call Chaincode Decoded. In this episode, we'll learn how to say Bech32 and also what it and Bech32m are. Enjoy! Correction: The characters removed from the set are 1 B I O (2:20) Why do we need Bech32? (0:57) What is the distinction between Bech32 and native SegWit? (3:20) Why does Taproot need a new address format? (4:13) Bech32 length extension mutation weakness (11:20) - mailing list post Bech32m (12:25) - BIP350 Further resources: Pieter Wuille: New Ad

Apr 16, 2021 • 14:43

Carl Dong and Modularizing the Bitcoin Consensus Engine - Episode 10

Carl Dong and Modularizing the Bitcoin Consensus Engine - Episode 10

In part 2 of this sit down with Carl Dong, Murch and Jonas cover the delicate work of modularizing the Bitcoin consensus engine. In this conversation, we cover: - Carl's De-globalize ChainstateManager PR (2:25) - Async Block Processing PR - Deglobalize class of chainstate manager (g_chainman) (3:40) - AssumeUTXO - global variables and main (5:25) - scripted diff (9:35) - 0.8 upgrade consensus failure (11:25) &nb

Dec 15, 2020 • 19:23

Carl Dong and Build Systems - Episode 9

Carl Dong and Build Systems - Episode 9

In part 1 of this sit down with Carl Dong, Murch and Jonas get into the weeds of all things build system. Stay tuned for the second half of this conversation when Carl describes his recent adventures isolating the libconsensus engine. In this conversation, we cover: - GUIX (2:25) - talk at 2019 Breaking Bitcoin about reproducible builds - Gitian builds (4:15) - Fake time (4:50) - Timestamps and reproducibility of packages (6:33) - reproducible-builds.org (6:57) - SOURCE_DATE_EPOCH

Nov 30, 2020 • 45:28

Murch and Enterprise Wallets/UTXO Management - Episode 8

Murch and Enterprise Wallets/UTXO Management - Episode 8

After a long hiatus, we return to talk with new Chaincode member Murch and get his take on enterprise wallets and UTXO management. In this conversation, we cover: - Enterprise UTXO management (3:35) - The impact of the 2017 hype cycle (4:30) - The importance of UTXO set minimization (5:30) - The fee market today (6:44) - Batching Transactions (9:15) - Payment Batching - Consolidations (11:05) - Consolidation of 4 Million UTXOs at Xapo - Change splitting (14:10) - Replace By Fee (16:

Nov 9, 2020 • 36:01

Nadav Kohen and Payment Points - Episode 7

Nadav Kohen and Payment Points - Episode 7

In Episode 7, we chat with Nadav Kohen of Suredbits and discuss payment points as an alternative to HTLCs on the Lightning Network. In this conversation we cover: Payment points (1:55) - Blog post part 1 - HTLCs (2:00) Timelocks (4:16) HTLC drawbacks (5:38) - Payment decorrelation - Wormhole attack presented in Anonymous Multi-Hop Locks for Blockchain Scalability and Interoperability (6:35) Point time lock contracts (PTLCs) (9:50) - Adaptor signatures on Schnorr Proof of payment (13:25)

Mar 30, 2020 • 49:44

Matt Corallo and Compact Blocks/FIBRE - Episode 6

Matt Corallo and Compact Blocks/FIBRE - Episode 6

In Episode 6, we sit down with Matt Corallo and discuss his work on compact blocks and the FIBRE network. In this conversation we cover: Selfish mining (2:03) - Majority is not Enough: Bitcoin Mining is Vulnerable - Optimal Selfish Mining Strategies in Bitcoin Ethereum's larger pools making superlinear profits (5:10) Defining selfish mining (9:52) Compact blocks (12:37) - FAQ - BIP152 - Reference implementation FIBRE (20:28) Forward error correction (24:14) - Shamir secret shari

Mar 12, 2020 • 32:18

Chaincode Decoded: The UTXO Set - Episode 5

Chaincode Decoded: The UTXO Set - Episode 5

This is our first Chaincode Decoded Podcast. In this new podcast format, we'll dive into the details of a concept we've talked about on previous shows. No guests, no news, just Jonas and John talking about Bitcoin. A podcast by Bitcoin nerds for Bitcoin nerds. In the first episode, we talk about the UTXO set. We'd love to know what you think! Ultraprune - episode 1 (1:20) Assume UTXO - episode 4 (1:28) The cache layer (8:02) Dbcache parameter (9:48) - John talks about latency compari

Feb 26, 2020 • 17:48

James O'Beirne and Assume UTXO - Episode 4

James O'Beirne and Assume UTXO - Episode 4

Next in the studio, we caught James O'Beirne, who until recently was a co-worker of ours at Chaincode. We talked to James about his experience at the Chaincode residency, his most recent project Assume UTXO (GitHub issue, proposal, talk) and how he champions and effects change in Bitcoin Core. Discussed in this episode: - 2018 residency (2:42) - Choosing what to work on (5:40) - Fork detection framework (6:55) - Initial block download (IBD) (8:10) - What a node does during IBD 1110

Feb 12, 2020 • 36:14

Jeremy Rubin and CHECKTEMPLATEVERIFY - Episode 3

Jeremy Rubin and CHECKTEMPLATEVERIFY - Episode 3

For our third episode, we talked to Jeremy Rubin about his recent CHECKTEMPLATEVERIFY proposal. During our discussion, we touch on the history of covenant proposals, vaults, payment pools, CTV's synergies with Taproot and more. Notes: What is CHECKTEMPLATEVERIFY (CTV)? (4:30) What is a covenant? (5:25) - CoinCovenants using SCIP signatures, an amusingly bad idea (2013) (7:15) - Bitcoin Covenants AKA MES16 paper (2016) (8:15) - Talk at Stanford Blockchain Conference (2017) (9:20) Why covenan

Jan 30, 2020 • 38:31

Pieter Wuille (part 2 of 2) - Episode 2

Pieter Wuille (part 2 of 2) - Episode 2

For our second episode, we pick up where we left off with Pieter Wuille in episode 1. If you missed that one, you should go back and listen to it first. Pieter has been a Bitcoin protocol developer and contributor to Bitcoin Core since 2011. In that time, he’s authored or contributed to some of the most important developments, including segwit, bech32, libsecp, HD wallets, schnorr and taproot, and many others. We talked to Pieter about his thoughts on the lessons learned from the March 2013 Cons

Jan 28, 2020 • 33:16

Pieter Wuille (part 1 of 2) - Episode 1

Pieter Wuille (part 1 of 2) - Episode 1

For our first episode, we talked to Bitcoin Core contributor Pieter Wuille. Pieter has been a Bitcoin protocol developer and contributor to Bitcoin Core since 2011. In that time, he’s authored or contributed to some of the most important developments, including segwit, bech32, libsecp, HD wallets, schnorr and taproot, and many others. We talked to Pieter about his thoughts on some of those influential PRs, including headers-first syncing and ultraprune, and hear about the motivation for those ch

Jan 28, 2020 • 34:21

Switch to the Fountain App

The Chaincode Podcast • Listen on Fountain