Bachelor
2020/2021
Mathematical Methods for Distributed Ledger Systems
Category 'Best Course for Broadening Horizons and Diversity of Knowledge and Skills'
Type:
Elective course (Software Engineering)
Area of studies:
Software Engineering
Delivered by:
School of Software Engineering
Where:
Faculty of Computer Science
When:
4 year, 1-3 module
Mode of studies:
offline
Instructors:
Yury Yanovich
Language:
English
ECTS credits:
8
Contact hours:
60
Course Syllabus
Abstract
Mathematical Methods for Distributed Ledger Systems: Distributed ledger technology (blockchain) was introduced in 2008 as a basis for the Bitcoin cryptocurrency and has found application in many areas: state registries, supply chain, financial sector, and others by the moment. The blockchain is based on beautiful mathematical approaches from cryptography, data structures and distributed algorithms, such as public-key cryptography, Merkle trees and consensus protocols, and challenges researchers with new ones. The course will tell you what a distributed ledger is, about its underlying theoretical principles and what current trends are in it. Mastering the material requires only standard computer science student skills, namely: • to be familiar with at least one high-level programming language and not be afraid of meeting new ones; • do not be afraid of power over a given field either on paper or in a computer; • draw pictures and display text in Jupyter notebook; • understand what an algorithm is.
Learning Objectives
- study of distributed ledger (blockchain) technology with an emphasis on its mathematical foundations, as well as technical and applied aspects
Expected Learning Outcomes
- Ability to design a blockchain application from the formulation of an application problem to a technical description
- The ability to simulate cryptographic primitives and simplest blockchains in the Jupiter laptop web application
- Be able to program and run simple smart contracts in Solidity language
- Be able to program and run simple smart contracts on the Exonum platform
Course Contents
- Blockchain basicsBlockchain technology as a basis of Bitcoin. Blockchain application examples. My toy cryptocurrency. Inside Bitcoin: network protocol and clients.
- Cryptography basicsIntroduction to cryptography. Block ciphers. Public key cryptography. RSA. ElGamal. Elliptic curves. PKI. Zero-knowledge proofs. Secret sharing scheme.
- Deeper into blockchainBlockchain capabilities, limitations and challenges. Proof-of-X. Scaling blockchain: sidechains, sharding. Privacy in blockchains: Bitcoin case study. Privacy in blockchains: ZKP and private smart contracts. ZKP practice.
- Smart contractsMicropayments and smart contracts (Bitcoin). Micropayments and smart contracts practice. Ethereum. Ethereum smart contracts. Lightning.
- Private blockchainsBFT consensus Private blockchains: Exonum, Hyperledger Fabric
Interim Assessment
- Interim assessment (3 module)0.3 * home assignment 1 + 0.4 * home assignment 2 + 0.3 * home assignment 3
Bibliography
Recommended Core Bibliography
- Handbook of blockchain, digital finance, and inclusion. Vol.1: Cryptocurrency, FinTech, InsurTech, and regulation, , 2018
- Handbook of blockchain, digital finance, and inclusion. Vol.2: China Tech, mobile security, and distributer ledger, , 2018
- Harvard Business Review, Don Tapscott, Marco Iansiti, Karim R. Lakhani, & Catherine Tucker. (2019). Blockchain : The Insights You Need From Harvard Business Review. Boston, Massachusetts: Harvard Business Review Press. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=2003693
- Introduction to cryptography and network security, Forouzan, B. A., 2008
- Introduction to cryptography, Buchmann, J., 2004
Recommended Additional Bibliography
- Katz, J., & Lindell, Y. (2014). Introduction to Modern Cryptography (Vol. Second edition). Boca Raton, FL: Chapman and Hall/CRC. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=nlebk&AN=1766746