Base58’s flagship Bitcoin Developer Basiscs course. Get a hands-on view of raw transaction data, bitcoin Script, secp256k1, ECDSA, and sighashes. We cover both legacy and segwit in this class.
Base58’s flagship Bitcoin Developer Basics course gives you an in-depth
intro to the bitcoin protocol. Our class will get you comfortable with the
bitcoin-cli and command line interfaces. No prior experience
required, but some understanding of bytes and encodings will be
extremely helpful.
Here’s a quick overview of the topics we’ll cover.
Intro to bitcoin transactions: What is a transaction? Specifically, what fields do they contain? We learn how to calculate a transaction id and what transaction fees are, and how are they calculated. Finally, we’ll talk about coinbases and block rewards.
Intro to Script: Let’s learn about Bitcoin’s native “programming language”: Script! We’ll write our own script this week (and learn about hashes and preimages). Once we’ve written a script we’ll try locking some bitcoins up to it, as well as unlocking them.
SegWit: Now that we’ve seen how transactions are constructed and built, time to introduce the bitcoin omnibus update bill, the SegWit soft-fork. SegWit impacted the structure of a transaction and its fee calculations, so we’ll dive into how these updates work and two of the ‘new’ SegWit script types: P2WSH and P2SH-P2WSH.
secp256k1: We’re halfway through class, it’s about time we introduced cryptography. Time to start building an understanding of elliptic curves over a finite field and looking at bitcoin’s secp256k1 curve parameters. Then we’ll pick a private key and derive a public key. Finally we’ll make our first signed transactions.
ECDSA: Signing transactions is actually a bit complicated. We’ll talk about the ECDSA and walk through how a private key produces signatures for a transaction.
SIGHASH: How to bitcoin transactions turn into signatures? We’ll go deep into how sighash flags work.
Multisigs: This is the last topic of the course class. We’ll cover multisig transactions and the OP_CHECKMULTISIG opcode.
Exercises in this class will be in Python, using Replit.
What to know before class (pre-requisites)
Strongly Recommended: nifty’s 1.5h class on Encodings and Endianness. These are really core topics that we’ll use the first day of the class (and every class).