Upon successful completion of this course, students will be able to:
- Explain the features of blockchain, its pros and cons, the problems it solves, and the strengths and weaknesses of the technology and its derivatives.
- Understand the motivations and business cases for blockchain, separating the hype from the reality, and differentiate blockchain from alternative technologies.
- Explain Bitcoin, including its origin, its functionality, its strengths and weaknesses, and the major issues surrounding the coin.
- Demonstrate knowledge of blockchain technologies by implementing and running programming experiments in NaiveChain and NaiveCoin, as well as programs demonstrating fundamental cryptographic algorithms.
- Explain the types of mining algorithms, including Proof of Work (PoW), Proof of Stake (PoS), and Proof of Importance (PoI), and be able to explain why a mining algorithm is needed in the Blockchain ecosystem.
- Explain the features of smart contracts and Distributed Applications (DApps) including their pros and cons, and explore various use-cases for individuals and businesses, focusing on the Ethereum Virtual Machine (EVM).
- Describe pros and cons of blockchain technology for various application areas such as elections, games, vital records, etc.)
- Implement a blockchain project incorporating distributed ledger and smart contracts using the Solidity programming language.
- Describe leading edge blockchain concepts and implementations including zero-knowledge proofs, privacy-enhanced chains such as Zcoin, and platforms such as Hyperledger, Decent, and Rchain.
This course requires proctored exams. Details will be provided in the course syllabus.
CS 356 (Systems Security) with a grade of C or better.
Textbooks and Materials