Бакалавриат
2020/2021




Математические методы систем распределенного реестра
Лучший по критерию «Полезность курса для расширения кругозора и разностороннего развития»
Статус:
Курс по выбору (Программная инженерия)
Направление:
09.03.04. Программная инженерия
Кто читает:
Департамент программной инженерии
Где читается:
Факультет компьютерных наук
Когда читается:
4-й курс, 1-3 модуль
Формат изучения:
без онлайн-курса
Преподаватели:
Янович Юрий Александрович
Язык:
английский
Кредиты:
8
Контактные часы:
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