Coursera training, MOOC (2019). Given online by Princeton University (US), this training explains how Bitcoin and other cryptocurrencies work at a technical level, and provides the conceptual foundations to engineer secure software that interacts with the Bitcoin network. Other important topics covered are how secure Bitcoins are, how anonymous Bitcoin users are, what determines the price of Bitcoins and whether cryptocurrencies can be regulated.
Week 1: Introduction to crypto and cryptocurrencies
- Cryptographic hash functions;
- Hash pointers and data structures;
- Digital signatures;
- Public keys as identities.
Week 2: How Bitcoin achieves decentralization
- Centralization vs. decentralization;
- Distributed consensus;
- Consensus without identity: the blockchain;
- Incentives and proof of work.
Week 3: Mechanics of Bitcoin
- Bitcoin transactions;
- Bitcoin scripts;
- Bitcoin blocks;
- Bitcoin network.
Week 4: How to store and use Bitcoins
- Online wallets and exchanges;
- Payment services;
- Transaction fees;
- Currency exchange markets.
Week 5: Bitcoin mining
- Mining hardware;
- Energy consumption and ecology;
- Mining pools;
- Mining incentives and strategies.
Week 6: Bitcoin and anonymity
- How to de-anonymize Bitcoin;
- Decentralized mixing;
- Zerocoin and Zerocash;
- Tor and Silk Road.
Week 7: Community, politics and regulation
- Consensus in Bitcoin;
- Bitcoin core software;
- Governments notice Bitcoin;
- Anti money-laundering.
Week 8: Alternative mining puzzles
- ASIC resistant puzzles;
- Nonoutsourceable puzzles;
- Virtual mining.
Week 9: Bitcoin as a platform
- Bitcoin as an append-only log;
- Bitcoin as smart property;
- Multi-party lotteries in Bitcoin;
- Bitcoin as randomness source.
Week 10: Altcoins and the cryptocurrency ecosystem
- Short history of Altcoins;
- Interaction between Bitcoin and Altcoins;
- Lifecycle of an Altcoin;
Week 11: The future of Bitcoin
- The blockchain as a vehicle for decentralization;
- Blockchain integration;
- What can we decentralize?
- When is decentralization a good idea?