An introduction to blockchain and cryptocurrency technologies, Also partly a springboard toward deeper understanding and further exploration
LEARNING INDEX:
Week 1 Course overview (a history of money, cryptocurrencies, blockchain) and a high-level overview of Bitcoin protocol and distributed consensus
Week 2 Cryptography, hashing functions
Week 3 Transaction, block, data structures
Week 4 P2P network, distributed consensus, mining
Week 5 Security, network attacks, performance analysis
Week 6 Store, use, and exchange
Week 7 Anonymity and zero-knowledge proofs
Week 8 Ethereum, smart contracts, other altcoins
Week 9 Byzantine agreement and algorand
Week 10 Economics, community, regulation, politics
HANDS-ON DRILLS:
Assignment1:
We will implement the logic to process transactions and produce the ledger.
Transactions are organized into time periods or blocks. In each block, we will receive a list of
transactions, validate the transactions you receive, and publish a list of validated transactions.
Assignment2:
In this assignment we will implement a function that’s part of a block-chain-based distributed consensus
protocol. Specifically, our code will receive a block, validate this block and add it to the chain.
Lab1:
The first lab will guide you to set up a new node on an Ethereum blockchain
for our class. We plan to use the same blockchain to conduct subsequent labs.
Therefore, it is important to be successful on this one.
Lab2:
Following the first lab, the second one will ask you to do mining and transac-
tions on the Ethereum blockchain set up in the first lab.
Lab3:
The third lab provides you a chance to practice the most fascinating feature of
Ethereum: smart contract.
Lab3 additional:
This document provides hints to some common problems in Lab 3. In addition,
it describes an intuitive method to debug your smart contract.