Bitcoin, Explained — The Technical Side of Bitcoin

Bitcoin, Explained — The Technical Side of Bitcoin@nado

4 followers
Follow
Episode 87: The Block 1,983,702 Problem
Ep. 87

Episode 87: The Block 1,983,702 Problem

In this episode of Bitcoin, Explained, Aaron and Sjors discuss the so-called “block 1,983,702 problem”. They explain how a bug in early Bitcoin implementations could in rare cases cause a loss of funds, or in a worst-case scenario even lead to consensus failures, while they also explain how BIP 30 and BIP 34 solved this problem. As it turns out, however, BIP 34 introduced a new problem, that could become an issue about twenty years from now… Chapters 00:00:00 Introduction and Coinkite sponsor 00:01:19 The block 1,983,702 problem 00:04:05 How duplicate coinbase transactions arise 00:07:32 Lost coins, reorgs and consensus failure 00:14:39 BIP 30: preventing duplicate unspent transactions 00:17:10 BIP 34: adding block height to the coinbase 00:19:35 Why skipping BIP 30 checks was unsafe 00:27:39 The fallback: restoring BIP 30 checks 00:28:52 The 2017 near miss at block 490,897 00:32:31 Possible soft forks: SegWit commitments and alternatives === This episode’s sponsor: CoinKite, maker of the ColdCard Aaron’s Twitter: @AaronvanW Aaron’s Nostr: npub1art8cs66ffvnqns5zs5qa9fwlctmusj5lj38j94lv0ulw0j54wjqhpm0w5 Sjors’ Twitter: @provoost Sjors’ Nostr: npub1v25jqj332n630klwtqeqxgyrjl4alw4phmluhu2x6lcxzwy9m03suqexw3 If you’d like to sponsor the show, please email info at bitcoinexplainedpodcast.com https://bitcoinexplainedpodcast.com/

Episode 86: Ocean Tides
Ep. 86

Episode 86: Ocean Tides

In this episode of Bitcoin, Explained, Aaron and Sjors explain what features are offered by Ocean, the relaunched and rebranded Eligius mining pool. They discuss how payouts from this pool are (partially) non-custodial, how the block template creation is fully transparent, and how payout distribution is determined. Aaron and Sjors also briefly touch on the “spam” filtering employed by Ocean, and how that potentially affects profitability of the pool. Our new sponsor: CoinKite, maker of the ColdCard Chapters 00:00:00 Introduction and Coinkite sponsorship 00:01:01 Ocean launches: reviving Eligius and decentralizing mining 00:02:08 Custody-minimized mining and direct coinbase payouts 00:06:40 Payout limits, hardware constraints and small miners 00:10:18 Future payouts with Lightning and CHECKTEMPLATEVERIFY 00:12:28 Transparent block templates and Stratum V2 00:15:06 Mining shares: proving work to a pool 00:17:05 TIDES: sharing rewards through a rolling work window 00:24:56 Block luck, difficulty and the TIDES accounting window 00:29:08 Transaction filtering, fees and pool profitability

Episode 85: Bitcoin Core 26.0 (And F2Pool’s OFAC Compliant Mining Policy)
Ep. 85

Episode 85: Bitcoin Core 26.0 (And F2Pool’s OFAC Compliant Mining Policy)

In this episode of Bitcoin, Explained, Aaron and Sjors explain what new features are included in the upcoming Bitcoin Core 0.26 release. They also briefly discuss recent developments concerning the transaction inclusion policy of mining pool F2Pool, which appears to have been compliant with the OFAC sanctions list. Link to testing guide: https://github.com/bitcoin-core/bitcoin-devwiki/wiki/26.0-Release-Candidate-Testing-Guide Chapters 00:00:00 F2Pool transaction censorship and OFAC sanctions 00:10:14 Bitcoin Core 26.0 release and testing 00:12:37 Peer-to-peer transport encryption 00:18:33 AssumeUTXO and faster node setup 00:22:28 Network diversity and eclipse protection 00:26:47 Taproot Miniscript support 00:32:24 submitpackage and the path to package relay

Episode 84: Marathon Pool’s Invalid Block (And Some Updates About the Show)
Ep. 84

Episode 84: Marathon Pool’s Invalid Block (And Some Updates About the Show)

In this episode of Bitcoin, Explained, Aaron and Sjors discuss an invalid block mined by Marathon Pool. They explain why the block was invalid, what caused it (and what didn’t), and why that didn’t affect the Bitcoin network. Aaron and Sjors also provide some updates about the show, and what that means moving forward. Finally, Sjors briefly mentions some notable Bitcoin Core updates that were recently merged. For more information on the invalid block, also see: https://b10c.me/observations/07-invalid-block-809478/ Chapters 00:00:00 Show updates and independence from Bitcoin Magazine 00:03:57 A new topic-driven release schedule 00:07:09 Marathon Pool’s invalid block and transaction ordering 00:10:16 Fee-rate sorting and Marathon’s experiment 00:13:56 Why SPV nodes accepted the invalid block 00:15:39 The risks of custom block-building software 00:17:05 Peer-to-peer encryption merged into Bitcoin Core 00:19:31 AssumeUTXO on testnet and signet

Episode 83: The Milk Sad Vulnerability
Ep. 83

Episode 83: The Milk Sad Vulnerability

In this episode, Aaron (@AaronvanW) and Sjors (@provoost) discuss a vulnerability in Libbitcoin dubbed “Milk Sad”, which allowed people to generate private key seeds with such weak entropy that their private keys could be brute forced and their coins stolen. Aaron and Sjors examine how this vulnerability (could have) ended up in Libbitcoin as well as in Andreas Antonopoulos’ book Mastering Bitcoin, to what extent it should be considered a bug, and more. For more information on Milk Sad, see: https://milksad.info/ Libbitcoin lead developer Eric Voskuil on Milk Sad: https://youtu.be/3uwl5xDdc7c Addendum 2023-08-18: The Mersenne Twister pseudo-random number generated was not intended to be cryptographically secure. So my claim that it was thought to be secure was incorrect. It’s simply the wrong tool for the job (of creating a private key with real money at stake). Sjors New Book: https://www.amazon.com/Bitcoin-Technical-innovations-Sjors-Provoost/dp/9090360425 Chapters 00:00:00 Listener boosts and Lightning payment splits 00:01:50 Milk Sad and the Libbitcoin toolkit 00:06:18 The unsafe bx seed command 00:09:11 32-bit seeds, stolen coins and Trust Wallet 00:14:21 Mastering Bitcoin and the changing library 00:20:56 Why use an insecure random number generator? 00:25:46 Vague warnings and the risks of making your own keys 00:33:53 Was Milk Sad intentional? Examining the evidence 00:40:24 Preventing misuse and risks to other wallets THIS EPISODE’S SPONSORS: ⁠Voltage Cloud⁠ ⁠Bitcoin Magazine⁠

Episode 82: Scaling to Billions of Users
Ep. 82

Episode 82: Scaling to Billions of Users

In this episode, Aaron (@AaronvanW) and Sjors (@provoost) discuss a recent blog post by Bitcoin Core developer Anthony Towns (@ajtowns), “Putting the B in BTC”, in which he outlines a vision for scaling Bitcoin to facilitate billions of users. As Aaron and Sjors walk through the article, they explain what some of Towns’ proposed solutions are, and which tradeoffs they entail. Link to the blog post: https://www.erisian.com.au/wordpress/2023/06/21/putting-the-b-in-btc Sjors New Book: https://www.amazon.com/Bitcoin-Technical-innovations-Sjors-Provoost/dp/9090360425 Chapters 00:00:00 Introduction, Bitcoin Core course and listener support 00:01:57 Anthony Towns’ vision for billions of Bitcoin users 00:05:09 More efficient validation: Utreexo and ZeroSync 00:09:58 The risks of leaving validation to others 00:12:52 Off-chain payments and Lightning’s scaling limits 00:14:16 Sidechains and Liquid: withdrawal tradeoffs 00:16:15 Fedimint and federated custody 00:17:40 Connecting thousands of custodians through Lightning 00:19:09 Custodial concentration, full nodes and reserve risks 00:24:38 Scaling through bottlenecks and innovation THIS EPISODE’S SPONSORS: Voltage Cloud Bitcoin Magazine

Episode 81: Bitcoin Core 25.0
Ep. 81

Episode 81: Bitcoin Core 25.0

In this episode, Aaron (@AaronvanW) and Sjors (@provoost) discuss Bitcoin Core 25.0, the latest major release of the Bitcoin Core software. They highlight four of the most notable changes: performance improvements concerning huge transaction loads, further Miniscript integration, a faster wallet re-scan, and the decreased 65-byte transaction limit policy rule. For further reading on the reasoning behind 65-byte policy rule, also see: https://bitslog.com/2018/06/09/leaf-node-weakness-in-bitcoin-merkle-tree-design/ Chapters 00:00:00 Introduction and listener boosts 00:02:32 Bitcoin Core 25.0 and the release cycle 00:04:31 BRC-20 traffic and node performance 00:09:30 Spending with Miniscript 00:15:48 Faster wallet rescans with compact block filters 00:21:52 The 65-byte minimum transaction policy 00:26:33 Merkle tree ambiguity and SPV wallet attacks 00:34:34 An alternative full-RBF release Episode Sponsor: https://voltage.cloud/ Sjors New Book: https://www.amazon.com/Bitcoin-Technical-innovations-Sjors-Provoost/dp/9090360425

Episode 80: Stratum V2
Ep. 80

Episode 80: Stratum V2

In this episode of Bitcoin, Explained, Aaron (@AaronvanW) and Sjors (@provoost) are joined by Braiins co-founder Jan Čapek (@janbraiins), who has been leading the initiative to upgrade pooled mining to the Stratum V2 protocol. Aaron, Sjors and Jan discuss what pooled mining is, how the Stratum protocol helps with that, and in what ways Stratum V2 is an improvement over Stratum V1. Chapters 00:00:00 Jan Čapek and Braiins 00:02:56 Listener boostagrams 00:04:07 Stratum V1, mining pools and shares 00:13:01 Stratum V1 shortcomings and mining firmware 00:21:32 Censorship resistance and job negotiation 00:26:52 Why Stratum V2: securing miners’ hash rate 00:29:43 Binary messages and more efficient mining 00:32:33 Empty blocks and speculative block templates 00:38:26 Stratum V2 adoption, translators and privacy 00:42:55 Remaining challenges: payouts and share accounting Episode Sponsor: https://voltage.cloud/ Sjors New Book: https://btcwip.com

Bitcoin, Explained 79: The Witness Discount
Ep. 79

Bitcoin, Explained 79: The Witness Discount

In this episode of Bitcoin, Explained, Aaron (@AaronvanW) and Sjors (@provoost) explain why the witness discount was included in the Segregated Witness protocol upgrade from 2017, why this discount is 75%, and why this discount still makes sense in today’s world where Inscriptions benefit from it. Chapters 00:00:00 Why the witness discount exists 00:03:25 SegWit recap: separating signatures from transactions 00:08:56 Why separate block limits complicate the fee market 00:13:42 How the discount and block weight work 00:17:15 UTXO incentives: making coins cheaper to spend 00:23:59 Why a 75% discount? Validation and network limits 00:28:31 Pruning and skipping historical witness data 00:32:41 Worst-case blocks versus a hard fork 00:36:57 Inscriptions, OP_RETURN and the case for the discount 00:44:29 Reconstructing the original SegWit rationale Episode Sponsor: https://voltage.cloud/ Sjors New Book: https://www.amazon.com/Bitcoin-Technical-innovations-Sjors-Provoost/dp/9090360425

Episode 78: Partially Signed Bitcoin Transactions (PSBTs) (And Dutch Auctions)
Ep. 78

Episode 78: Partially Signed Bitcoin Transactions (PSBTs) (And Dutch Auctions)

In this episode of Bitcoin, Explained, Aaron (@AaronvanW) and Sjors (@provoost) explain Partially Signed Bitcoin Transactions (PSBTs), discussing what problems they solve, how they work, and some of the ways they are used. In the last part of the episode, the hosts zoom in on one particular PSBT use case called Dutch Auctions, which Bitcoin Magazine recently used to sell ordinals. Chapters 00:00:00 Introduction and boostagrams 00:03:02 Why Bitcoin wallets need PSBTs 00:06:45 Checking change addresses and transaction fees 00:09:43 The PSBT standard and transaction fields 00:14:08 Hardware wallets and HWI integration 00:18:35 Ordinals and Dutch auctions 00:20:55 Buying and selling with incomplete PSBTs 00:23:41 Dutch auction pricing, timelocks and fee wars 00:28:52 Extending PSBTs with new and proprietary fields Episode Sponsor: https://voltage.cloud/ Sjors New Book: https://btcwip.com/

Episode 77: Peer-to-peer Encryption
Ep. 77

Episode 77: Peer-to-peer Encryption

In this episode of Bitcoin, Explained, Aaron and Sjors discuss BIP 324, the proposal by Dhruv, Pieter Wuille and Tim Ruffing to add peer-to-peer (P2P) encryption to the Bitcoin protocol. They explain why this is needed, how it would work, and which problems it would, and wouldn’t solve. Chapters 00:00:00 Developer calls and boostagrams 00:02:40 From BIP 151 to BIP 324 00:04:13 Why encrypt Bitcoin traffic? 00:09:46 Encrypted handshakes and Diffie–Hellman 00:15:37 Man-in-the-middle attacks and session IDs 00:19:55 Traffic analysis, handshake padding and traffic shaping 00:26:24 Connecting to nodes without encryption support 00:28:13 Encryption versus authentication 00:31:15 Making public keys look random 00:32:39 Implementation status and testing Episode Sponsor: https://voltage.cloud/ Sjors New Book: https://www.amazon.com/Bitcoin-Technical-innovations-Sjors-Provoost/dp/9090360425

Bitcoin, Explained 76: Stamps (And the Invalid Block Caused by It)
Ep. 76

Bitcoin, Explained 76: Stamps (And the Invalid Block Caused by It)

In this episode of Bitcoin, Explained, Aaron and Sjors explain Stamps, a new(?) protocol to upload images onto the Bitcoin blockchain, which end up in the UTXO set. To learn more about some of the concepts mentioned in this episode, also check out episode 15 (Utreexo), episode 61 (OP_RETURN), episode 72 (Inscriptions) and episode 75 (Multisig). Chapters 00:00:00 Stamps, an invalid block and listener boosts 00:01:30 Stamps and the Counterparty revival 00:10:30 How Stamps store images in bare multisig 00:14:58 UTXO growth and the cost to Bitcoin nodes 00:17:42 Are Stamps more permanent than inscriptions? 00:25:08 Utreexo challenges the permanence argument 00:30:01 Costs and trade-offs of Stamps versus inscriptions 00:35:09 F2Pool’s invalid block and the sigops limit 00:40:11 Mining valid blocks while maximizing fees Episode Sponsor: https://voltage.cloud/ Sjors New Book: https://btcwip.com/

Bitcoin, Explained 75: Multisig (And Musig)
Ep. 75

Bitcoin, Explained 75: Multisig (And Musig)

In this episode of Bitcoin, Explained, Aaron and Sjors discuss multi-signature (multisig), and the various ways that Bitcoin enables multisig; from bare multisig, to P2SH, SegWit, Taproot, and finally Musig, as well as some potential future solutions. Chapters 00:00:00 Introduction and listener support 00:02:41 What multisig is and why use it 00:06:43 Bare multisig and signature-checking limits 00:17:23 P2SH multisig: fees, privacy and script limits 00:22:23 SegWit multisig and the sigops discount 00:27:42 Taproot multisig with OP_CHECKSIGADD 00:33:21 Large multisigs and the stack size limit 00:38:08 Combining multisig scripts in Taproot trees 00:39:50 MuSig2, key aggregation and threshold signatures Episode Sponsor: https://voltage.cloud/ Sjors New Book: https://www.amazon.com/Bitcoin-Technical-innovations-Sjors-Provoost/dp/9090360425

Bitcoin, Explained 74: P2SH
Ep. 74

Bitcoin, Explained 74: P2SH

In this episode of Bitcoin, Explained, Aaron and Sjors explain pay-to-script-hash (P2SH), which allows bitcoin to be sent to and from the hash of a script. Besides (the current implementation of) P2SH itself, Aaron and Sjors also discuss some alternatives that were proposed around the time that P2SH was adopted in 2012. For further reading on the history of P2SH, also see “The Battle for P2SH: The Untold History of Bitcoin’s First War“ Chapters 00:00:00 Introduction and listener boost 00:04:22 How pay-to-script-hash works 00:10:53 OP_EVAL: the first proposal 00:16:11 Why OP_EVAL raised recursion risks 00:23:43 P2SH script templates and soft forks 00:28:16 CheckHashVerify: the alternative proposal 00:33:58 Choosing P2SH: miner signaling and developer review 00:38:28 Deployment mishaps and upgrading Bitcoin Episode Sponsor: https://voltage.cloud/ Sjors New Book: https://www.amazon.com/Bitcoin-Technical-innovations-Sjors-Provoost/dp/9090360425

Bitcoin, Explained 73: OP_VAULT
Ep. 73

Bitcoin, Explained 73: OP_VAULT

In this episode of Bitcoin, Explained, Aaron and Sjors explain OP_VAULT, a proposed op code that would enable an elegant type of vaults through Bitcoin’s scripting language. For more information, also see: https://jameso.be/vaults.pdf https://github.com/bitcoin/bips/blob/c589490f98ba1b0c606d0e2030463f1fde54b786/bip-vaults.mediawiki Chapters 00:00:00 Trial update and listener boosts 00:02:39 What Bitcoin vaults protect against 00:10:09 Hot wallets and pre-signed vault designs 00:15:18 OP_VAULT: a more flexible soft fork 00:18:10 OP_UNVAULT and delayed withdrawals 00:22:58 Recovering funds to a secure backup 00:25:12 Walking through the vault scripts 00:29:54 Change, address reuse and aggregation 00:34:39 Comparing OP_CTV and general covenants === Episode Sponsor: https://voltage.cloud/ Sjors New Book: https://www.amazon.com/Bitcoin-Technical-innovations-Sjors-Provoost/dp/9090360425

Bitcoin, Explained 72: Inscriptions
Ep. 72

Bitcoin, Explained 72: Inscriptions

In this episode of Bitcoin, Explained, Aaron and Sjors explain Inscriptions, a new method to upload arbitrary data onto the Bitcoin blockchain. Chapters 00:00:00 Inscriptions and listener boosts 00:03:28 OP_RETURN and the cost of blockchain data 00:07:34 Inscriptions, Ordinals and on-chain images 00:09:59 How inscriptions use the transaction witness 00:17:16 Taproot and inscription size limits 00:19:48 The SegWit discount and block weight 00:24:34 The controversy: node costs and filtering 00:28:49 Fee markets and Bitcoin’s long-term security 00:33:25 Ordinals, NFTs and digital ownership Episode Sponsor: https://voltage.cloud/ Sjors New Book: https://www.amazon.com/Bitcoin-Technical-innovations-Sjors-Provoost/dp/9090360425

Bitcoin, Explained 71: Timelocks
Ep. 71

Bitcoin, Explained 71: Timelocks

In this episode of Bitcoin, Explained, Aaron and Sjors discuss the different types of timelocks available on Bitcoin (and what can go wrong when used incorrectly). Chapters 00:00:00 Listener boosts and Podcasting 2.0 00:01:55 What are Bitcoin timelocks? 00:03:56 nLockTime: from relay policy to consensus 00:06:41 Recovery and inheritance with presigned transactions 00:08:32 CheckLockTimeVerify: locking coins on-chain 00:13:37 CheckSequenceVerify and relative timelocks 00:18:26 Encoding time and block height 00:21:51 Why Lightning needs relative timelocks 00:24:31 The danger of mixing time and height constraints 00:28:51 nLockTime and fee sniping Episode Sponsor: https://voltage.cloud/ Sjors New Book: Bitcoin: A Work In Progress Follow us on Twitter: https://twitter.com/bitcoinmagazine https://twitter.com/videobitcoin