Episodes
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...
Published 08/09/23
Published 08/09/23
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...
Published 07/17/23
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) ...
Published 05/25/23
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...
Published 03/22/23
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...
Published 03/10/23
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 Efficient...
Published 02/15/23
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, 2016 (09:48)   - Security and...
Published 02/02/23
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...
Published 12/27/22
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)   - Bellare-Neven...
Published 12/16/22
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) -...
Published 11/23/22
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)     - PR #24584 in Bitcoin...
Published 10/21/22
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:48) - Stratum V2 (34:25)   - OFAC and mining...
Published 09/28/22
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 Tracing (USDT) (11:07)   - Tracing...
Published 06/06/22
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 security...
Published 05/24/22
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 attacks...
Published 05/13/22
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?...
Published 02/17/22
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...
Published 02/01/22
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...
Published 11/11/21
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)   - Sybil...
Published 10/26/21
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...
Published 10/18/21
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: The...
Published 05/27/21
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...
Published 05/13/21
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) ...
Published 04/26/21
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:...
Published 04/16/21