2019 Topics on Mathematical and Computing Science C

Font size  SML

Register update notification mail Add to favorite lecture list
Academic unit or major
Graduate major in Mathematical and Computing Science
Larangeira Mario  Bernardo Machado David  Wang Yuyu  Tanaka Keisuke 
Course component(s)
Day/Period(Room No.)
Tue5-6(W832)  Fri5-6(W832)  
Course number
Academic year
Offered quarter
Syllabus updated
Lecture notes updated
Language used
Access Index

Course description and aims

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.

Student learning outcomes

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

Competencies that will be developed

Intercultural skills Communication skills Specialist skills Critical thinking skills Practical and/or problem-solving skills

Class flow

Each class offers a standard type of lecture.

Course schedule/Required learning

  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.

Reference books, course materials, etc.

References will be announced in classes.

Assessment criteria and methods

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.

Related courses

  • MCS.T213 : Introduction to Algorithms and Data Structures
  • MCS.T214 : Theory of Automata and Languages
  • MCS.T323 : Theory of Computation
  • MCS.T406 : Distributed Systems
  • XCO.T473 : Foundation of Cybersecurity

Prerequisites (i.e., required knowledge, skills, courses, etc.)

None. However, the knowledge on the basic notions of computer science can help students to understand the contents of the course smoothly.

Page Top