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 security models used in cryptography |
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 | Provable Security | Understand the concept of provable security for cryptographic systems |
Class 4 | Hash and Commitment | Understand basic definitions of hash functions and commitments |
Class 5 | Signature 1 | Understand definitions and security of signatures |
Class 6 | Signature 2 | Understand some concrete construction of fully secure signatures |
Class 7 | 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 8 | Blockchain and Ledger | Understand the structure of the blockchain and its properties |
Class 9 | Consensus | Understand the history of the area, the different versions and basic definitions, and its relation with cryptocurrencies |
Class 10 | 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 11 | Mining | Understand what it is, its advantages and disadvantages and Attacks |
Class 12 | Wallets | Understand the different types of wallet |
Class 13 | Zero Knowledge Proofs 2 | Understand the Fiat-Shamir heuristic and be able to apply it to protocol based on the 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 in two reports during the course. The first will be delivered by the end of Lecture 7, and the last will be delivered by Lecture 14.
None. However, the knowledge on the basic notions of computer science can help students to understand the contents of the course smoothly.