Programming Bitcoin: Learn How to Program Bitcoin from Scratch
by Jimmy Song (2019)
Thursday evenings - 5 pm pacific time / 7 pm central time
Meetup: https://www.meetup.com/the-south-padre-island-reading-group/events/285731823
Zoom: https://zoom.us/j/84281187589
Discord: https://bit.ly/35RhGXM
O’Reilly: https://learning.oreilly.com/library/view/programming-bitcoin/9781492031482/
Jupyter notebook exercises: https://github.com/jimmysong/programmingbitcoin
Finished!
Congratulations everyone, we’ve completed the book! Next we’re on to a hackergarden in a few weeks with a Go bitcoin repo that has some issues we might try to address. Also I’ll be reading about Sapio as a side reading with perhaps some ad-hoc meetups. (I have not taken a position on BIP-119 yet. I’d like to understand it better first.)
Other topics, among others, we plan to look at - taproot, lightning network (the book), and drivechains
Chapter 13 May 18, 2022 | Presenter |
---|---|
Pay-to-Witness-Pubkey-Hash (p2wpkh) | Doug |
p2sh-p2wpkh | Amit |
Pay-to-Witness-Script-Hash (p2wsh) | Casey |
p2sh-p2wsh | Casey |
Chapter 11 May 5, 2022 | Presenter |
---|---|
Motivation | Amit |
Merkle Root | Doug |
Merkle Block | Casey |
Chapter 10 April 21, 2022 | Presenter |
---|---|
Network Messages | Doug |
Network Handshake | Amit |
Getting Block Headers | Casey |
Chapter 9 April 14, 2022 | Presenter |
---|---|
Coinbase Transaction | Casey |
Block Headers | Casey |
Proof-of-Work | Doug |
Chapter 8 March 17, 2022 | Presenter |
---|---|
Bare Multisig | Doug |
Problems with Bare Multisig | Doug |
Pay-to-Script-Hash (p2sh) | Casey |
Chapter 7 March 3, 2022 | Presenter |
---|---|
Validating Transactions | Doug |
Creating Transactions | Amit - March 17, 2022 |
Creating Your Own Transactions on testnet | Casey |
Chapter 6 February 24, 2022 | Presenter |
---|---|
Mechanics of Script | Casey |
Standard Scripts | Doug |
Problems with p2pk | Casey |
Scripts Can Be Arbitrarily Constructed | Doug |
Chapter 5 February 17, 2022 | Presenter |
---|---|
Transaction Components | Praveen |
Version | Casey |
Outputs | Casey |
Locktime | Doug |
Transaction Fee | Doug |
Chapter 4 February 10, 2022 | Presenter |
---|---|
Uncompressed SEC Format | Doug |
Compressed SEC Format | Casey |
DER Signature | Amit |
Base58 | Casey |
Big- and Little-Endian Redux | Doug |
Extra notes from January 27
p is the order of the finite field
n is the order of the cycle of points from the generator point G, such that n*G=0
Both p and n are prime.
Both p and n are very close to 2256 , and n < p
Integers in the range [0, 2256) - 1] can be stored in 32 bytes and can be displayed with 64 hex characters
So, too, can integers in the range [0, p] or [0, n]
Extra notes from February 3
Notes on Signing and Verification
Chapter 3 January 27, 2022 | Presenter |
---|---|
Elliptic Curves over Reals | Melissa |
Point Addition over Finite Fields | Casey |
Mathematical Groups | Doug |
Defining the Curve for Bitcoin | Casey - February 3 |
Public Key Cryptography | Casey - February 3 |
Chapter 2 January 20, 2022 | Presenter |
---|---|
Definition | Melissa Simpson |
Point Addition | Melissa Simpson |
Math of Point Addition | Casey |
Point Addition for When x1 != x2 | Casey |
Point Addition for When P1 = P2 | Doug |
Coding One More Exception | Doug |
Notes on Chapter 1 -
Here’s a full proof of Fermat’s Little Theorem for those who are interested in the nitty-gritty details ttps://www.coursera.org/learn/number-theory-cryptography/lecture/8ZcIG/fermats-little-theorem
Chapter 1 January 6, 2022 | Presenter |
---|---|
Learning Higher-Level Math | Casey |
Modulo Arithmetic | Melissa - January 13 |
Finite Field Addition and Subtraction | Doug - January 13 |
Finite Field Multiplication and Exponentiation | Doug - January 13 |
Finite Field Division | Casey - January 13 |
Redefining Exponentiation | Casey - January 13 |