Thread

Would you take a Bitcoin protocol course with the following lecture plan? What am I missing? --- **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

Replies (7)

Sim. Esse item em específico estou pensando em reformular. Minha ideia inicial era trazer aí as codificações das chaves e das assinaturas (uncompressed, compressed, sec, wif, etc) já que são informações que a carteira lida na hora de construir e assinar as transações. A parte de cripto eu pensei em deixar mais teórica. Mas não estou totalmente decidido o que seria a melhor pedagogia. Ano passado falei disso na parte de cripto e senti que a turma boiou.
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.
I'm more inclined to say that Part 3 is the most important (transaction semantics) for other protocols development and that's what's on my mind right now. Part 5 would be the foundation of consensus. Thinking out loud, maybe I'm taking consensus for granted during the previous parts. In the overview of Part 1, I plan to explain all the mechanics, including distributed consensus, but without going into the details. Indeed, I feel it didn't work well last year. Maybe I should consider a lecture dedicated to consensus. Thanks.
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.
Well, you have been in this space as a serious contributors for way longer, maybe I'll evolve to that direction too. Think out loud, I agree that decentralized consensus and it's mechanics are the genius bits that tie everything together. I'm interacting to a lot of people in two contexts. First, with engineering and cs students at the University. Second, with devs attending the educational program we run in Brazil. In both contexts, I feel all of them can't grasp a conceptual view of consensus and how it influences the various parts of the protocol. My hypothesis is that they don't understand that the transactions establish a language in which we talk about transfer of ownership. Personal evidence (from this small universe of interactions) is that they keep using analogies and metaphors to talk about consensus, even when called to talk about it terms of the transactions (which are the fundamental messages we are propagating and validating). Thanks for sharing your view (and please do more) in this discussion and feel free to comment, disagree and provoke in the repo of the project. Developing a university course in the open doesn't seem common, I wanted to experiment with that too.