Avatar
sedited
2eb03a1f316c3cf9c900e7f536ee28e5486349067be018a965a7c7ca5b4f7f3c
thecharlatan.ch 🇿🇦

It's nice to see an actual Bitcoin focused lecture! I used to be invited to give a Bitcoin compsci lecture at a local technical university and tried to cram everything into a single 2 hour lecture. I don't think people learned much from that back then 😅.

I think I would have structured it the same way 4 yesrs ago, but I am more inclined now to say that consensus is the actually important part to grasp.

Where is this myth coming from that relaxing OP_RETURN standardness increases the resource burden of node operators?

It is starting to get fuzzier, some full time contributors have employment contracts, most have some kind of grant. Most of us did start out as volunteers and sank countless hours into it without any expectation of renumeration. I also don't think being volunteers or not is all that relevant. There will always be some kind of weird relationship between an OSS project's developers and its users and I don't think there is a way around that.

Yes they can, pruned nodes fully download and validate all historical blocks. They just throw the data away once they validated it.

You prune immediately, even during syncing.

Cash on the internet.

Replying to Avatar Edil Medeiros

Would you take a Bitcoin protocol course with the following lecture plan?

What am I missing?

https://github.com/edilmedeiros/bitcoin-course

---

**Part 1: Money, Bitcoin, and the Need for Decentralization**

1. What is Money? Why It Breaks

2. Decentralization and Its Challenges

3. Bitcoin’s High-Level Architecture

**Part 2: Cryptographic Foundations for Bitcoin**

4. Finite Fields and Modular Arithmetic

5. Elliptic Curves and secp256k1

6. Digital Signatures: ECDSA and Schnorr

7. Cryptographic Hashes

**Part 3: Understanding Bitcoin Transactions**

8. Transaction Serialization Basics (Legacy)

9. Bitcoin Script Language: Stack Semantics and p2pk

10. Bitcoin Script Contracts: p2pkh and p2sh

11. Transaction Malleability: The Problem and Motivation for SegWit

12. SegWit Transactions: p2wpkh and p2wsh

13. Advanced Script Features (Optional/Buffer)

**Part 4: Wallets — From Keys to Usability**

14. Private Keys, Public Keys, and Addresses

15. Mnemonics and BIP39

16. Hierarchical Deterministic Wallets (BIP32)

17. Wallet Architecture and Security Models

**Part 5: Mining, Proof of Work, and Settlement**

18. Proof of Work and Mining

19. Merkle Trees and Blockchain Structure

20. Chain Splits, Reorgs, and Settlement Assurance

**Part 6: Second Layers and the Future of Bitcoin**

21. Bitcoin's Security Guarantees

22. Conceptual Introduction to Lightning Network

23. Other Scaling Visions and Open Problems

Part 5 seems like the most important chapter, maybe do that earlier? Maybe add something about MAST, Taproot, and Schnorr. Could also end with an overview of available software and its common usage.

Got the coins/block validation logic split PR'ed. Made some progress on a flat file header store. Maybe there is hope for stateless, or even sans-io block validation through the kernel library after all :)

Thank you msvc for consistently making c++ coding more miserable.

It is very cool, and kind of unites a bunch of ideas that have been floating around for some time. The key insight he had was that you can take the cut through achieved by the utxo cache and apply it on a network wide level. I'm also very much in favour of using our undo data more, and relaying spent UTXOs together with their respective spending boock.