Brief History: Blockchain Precursors and Overview
Bitcoin is by no means the first attempt at digital money. Ever since the beginning of the internet, people assumed a native digital currency would exist (see: "402 Payment Required" error code).
Bitcoin and Blockchains are one implementation of digital money. It's particular obessesion with decentralization and anonymity come from it's roots in the cypherpunk industry.
Day One (Monday)
Transactions and the UTXO Model
The Bitcoin system models itself in many ways to behave like a digital gold. This seriously informed its choice in a unique accounting system: the UTXO Model.
A traditional electronic system for transferring value involves accounts and balances. This differs from Bitcoin's UTXO model where UTXOs (unspent transaction outputs) are (like gold) in and of themselves the bearer instruments of value.
Day Two (Wednesday)
Transaction Pools and the UTXO Set
UTXOs are the basis of "currency" in the Bitcoin system. Determining which transactions are valid involves checking against the so-called UTXO set, to see which coins are available for spending. Valid transactions awaiting finalization in Blocks are collected in Transaction Pools.
By convention, peers mutually agree to propogate all valid transactions to all known peers on the network. This greatly contributes to Bitcoin's censorship resistance.
Day Three (Saturday)
Networking P2P Messaging and ECDSA
Bitcoin is a Peer-to-Peer network. This architecture is critical to Bitcoin's decentralization and censorship resistance. Your project will implement a rudimentary P2P networking system over LAN. This includes working through peer seeding and peer discovery strategies, and implementing behaviors specific to Bitcoin (e.g. healthy broadcasting and propagation of Transactions and Blocks) that are critical to network success.
We will also revisit Transactions by diving deep into the mathematics behind Elliptic Curve Cryptography and it's signing process (ECDSA). Bitcoin uses this (public/private key cryptography) to prove ownership of UTXOs on the network.
Day Four (Monday)
Blocks and Block Construction
Blocks are groups of transactions which collectively form the blockchain. Blocks are composed of two structures: a Block Header and Transactions. Each Block Header includes a unique fingerprint of it's own transactions, as well as the fingerprint of the block that came before it. This is directly responsible for Bitcoin's "tamper resistance".
Day Five (Wednesday)
Blockchains, Mining and Proof of Work
Mining and Proof of Work are the last pieces to the puzzle and the core innovation behind Bitcoin. Proof of work serves many purposes, among them preventing spam attacks and allowing the network to proceed at a predictable rate. It also facillitates the minting and distribution of new currency in the network, rewarding those who likely have the highest interest in network success.
Bitcoin's security model in this area is based on economic incentives. Understanding this security model will reveal the ways in which Bitcoin is vulnerable, and in what ways it can retaliate against bad actors.
Day Six (Saturday)
Forks, Scalability and Consensus
Blockchain reorganizations (a partial replacement of the most recent blocks in the canonical blockchain with different blocks) can be a trivial consequence of Bitcoin's Proof of Work and P2P architecture. But it can also be a vital tool in allowing network participants to exit the network and "fork" into their own set of consensus rules.
Here we will learn how network participants agree (informally) and implement (formally) changes to the Bitcoin protocol, and what happens when adoption of a protocol change is controversial.
We will end with a discussion of Bitcoin's limitations, (such as expressivity, scalability, privacy) and what major projects are doing to address these limitations.