Cryptocurrency, as the newest term is used, is a old dream for engineers and researchers, in particular, cryptographers. In the old days several other terms were also coined, as for example, electronic cash and digital money, however is that the most successful term, and piece of engineering, is what we see nowadays in the news: Cryptocurrency.
In this course, students will learn history, theory, and practice of cryptocurrencies: components of cryptocurrency including wallets, mining, blockchain, and ledgers, and also cryptographic primitives including security models, commitments, secret sharing, zero knowledge proof, and sigma protocol.
By the end of this course, students will be able to understand:
1) History, theory, and design of cryptocurrencies
2) Practical description of cryptocurrencies
3) Components of cryptocurrency and cryptographic primitives.
cryptocurrency, blockchain, cryptography, information security, distributed system, bitcoin
✔ Specialist skills | Intercultural skills | Communication skills | ✔ Critical thinking skills | ✔ Practical and/or problem-solving skills |
Each class offers a standard type of lecture.
Course schedule | Required learning | |
---|---|---|
Class 1 | Overview and Security Models | Understand the contents of the course and the concept of provable security for cryptographic systems |
Class 2 | History of Cryptocurrencies, Brief Description of Bitcoin | Understand basic cryptocurrency concepts, the history of cryptographic money and the general structure of the Bitcoin system |
Class 3 | Real/Ideal World Simulation Paradigm | Understand the real/ideal world framework for analyzing cryptographic protocol security and be able to write simple simulation based proofs |
Class 4 | Bitcoin Building Blocks | Understand basic cryptographic tools like hash function, digital signatures, Merkle-tree, and have a general understanding of ledger, blockchain and mining |
Class 5 | Commitments | Understand the concept of commitment, its simulation based security definition and constructions based on hash functions, Merkle-trees and algebraic computational problems |
Class 6 | Blockchain and Ledger | Understand the structure of the blockchain and its properties |
Class 7 | Consensus | Understand the history of consensus, the different versions and basic definitions, and its relation to cryptocurrencies |
Class 8 | Secret Sharing | Understand the concept of secret sharing and simple information theoretical linear secret sharing schemes (e.g. Shamir Secret Sharing) |
Class 9 | Zero Knowledge Proof (1) | Understand the concept of proof of knowledge and zero knowledge, as well as simple constructions of zero knowledge proofs of knowledge for discrete logarithm relations |
Class 10 | Mining | Understand the advantages, the disadvantages, and the attacks of mining |
Class 11 | Wallets | Understand the different types of wallet |
Class 12 | Sigma Protocols | Understand the definition of sigma protocols and its security properties including special honest verifier zero-knowledge property |
Class 13 | Zero Knowledge Proofs (2) | Understand the Fiat-Shamir heuristic and be able to apply it to simple sigma protocols for discrete logarithm relations |
Class 14 | Smart Contracts | Understand basic definitions, the Bitcoin script language and the Ethereum smart contract platform |
Class 15 | Advanced Cryptocurrencies and Blockchain Applications | Understand the basic privacy notions for cryptocurrency systems and applications to privacy preserving smart contracts and credential systems |
Textbooks will not be used in this course.
References will be announced in classes.
It will consist of two reports during the course. The first will be delivered by the end of Lecture 7, and the second by the end of Lecture 14.
None. However, the knowledge on the basic notions of computer science can help students to understand the contents of the course smoothly.