A 20-week course on blockchain fundamentals including decentralization, cryptography, mining, smart contracts and consensus.
https://github.com/laboon/CS1699_Fall2018/blob/master/course-info.md
The Web3 Foundation “Blockchain for Beginners” MOOC teaches blockchain from the very basics all the way up to building your own blockchain. The course is led by Bill Laboon, Web3 Foundation’s technical education lead.
Beginning with the fundamentals - What is a blockchain? How is it stored? What are the different algorithms and protocols that are used in a blockchain? What’s the history of blockchain technology? It goes from absolute zero knowledge of blockchain or cryptography all the way to showing how to produce actual products on blockchain.
History of Blockchain Technology
- History of digital currency and blockchains
- Problems with previous implementations
- Chaum’s ecash, Adam Back’s hashcash, Szabo’s bitgold, etc.
- How does it work?
- Public and private keys
- One-way functions
- What is hashing?
- Cryptographic hashing algorithms
- Collision-resistance
- Hiding
- Puzzle-friendliness
- Merkle-Damgard transforms
- Digital signatures
- Public identities
- Hash pointers
- Hash chains
- Merkle trees
- Distributed Consensus
- Attacks on distributed consensus: False spending - block creation/modification, Denial of service, Double-spend attack, 51% attacks.
- What are miners doing?
- Bernoulli trials and Poisson process outcome
- Transaction fees and block rewards
- Mining difficulty
- Hardware (CPU vs GPU vs FPGAs vs ASICs)
- Mining pools
- Problems with Reliance on Mining
- What makes up a transaction?
- Ledger vs account models
- Anatomy of a Block (transactions and metadata)
- Block propagation
- Lightweight (SPV) vs full nodes
- Hard and soft forks
- Limitations of Bitcoin and other blockchains
- On-chain consensus mechanisms
- Other kinds of consensus: rules, history, value
- BIPs (Bitcoin Improvement Proposals), EIPs, etc
- What does it really mean to “own”/“have”
- Cryptocurrency?
- Key management
- Hot and cold storage
- Sharing and splitting keys (multi-sig, threshold)
- Anonymity vs Pseudonymity
- Deanonymization
- Anonymity Sets
- Taint analysis
- Mixing
- Stealth addresses
- Coinjoin
- Progress-freeness
- ASIC-resistant (not ASIC-proof) puzzles
- Memory-hard puzzles (e.g. Scrypt)
- Proof-of-useful-work
- Non-outsourceable Puzzles
- Proof-of-stake vs Proof-of-work
- “Nothing at stake” issue and slashing
- Benefits and Drawbacks of Proof-of-stake
- Secure timestamping
- Burning bitcoin (unspendable transactions)
- Overlay currencies
- “Smart property” (colored coins)
- Blockchains as a source of randomness
- Smart contracts
- Bitcoin lotteries (e.g. SatoshiDice)
- Decentralized prediction markets
- Contract settlement
- Cross-chain swap protocol
- Sidechains
- SPV proofs
- Transfer contesting
- Difference between a smart contract and a runtime
- What to consider when writing a smart contract
- What belongs in a smart contract
- Writing a Smart Contract