- Garant předmětu:
- Department of Information Security
Students will understand the foundations of blockchain technology, smart contract programming, and gain an overview of most notable blockchain platforms. They will be able to design, code and deploy a secure decentralized application, and assess whether integration of a blockchain is suitable for a given problem. The course places an increased emphasis on the relationship between blockchains and information security. It is concluded with a defense of a research or applied semester project, which prepares the students for implementing or supervising implementation of blockchain-based solutions in both academia and business.
Fundamentals of cryptography, computer security (i.e. BI/E-KAB or BI/E-BEZ) and programming.
- Syllabus of lectures:
1. Prerequisites and fundamentals: Databases, Decentralized/distributed databases/ledgers, Blockchain-related cryptography, Consensus/trust, types of proofs, Public vs. private blockchains, Blockchain programming languages (Solidity, Rust, WASM..)
2. Cryptocurrencies and major blockchain platforms: Digital currencies, Popular platforms (Bitcoin, Ethereum, Avalanche, etc.), Smart contracts, Decentralized applications, Cryptocurrency trading, Governance, Limitations and future development
3. Systems design, hands-on development: Fitness for purpose, Software architecture, languages, and libraries, Web3.js development - mock projects / simple games, launching ICO, representing identity, exchanging data, tracking goods, smart contracts etc.
4. Security: Most notable hacks (The DAO hack, etc.), Attack vectors, Threat modelling, Anonymity, Post-quantum cryptography, Platform governance, Best practices
5. Applications and case studies: Finance, Enterprise networks, Legal relationships/contracts, Public service, Other use-cases, Startup, corporate and country case studies, Most notable blockchain apps (Uniswap, Compound, Aave, etc.)
- Syllabus of tutorials:
1. Programming language Solidity & Ethereum Virtual Machine
2. Architecture of a decentralized application, interfaces (ERC-20, ERC-721, etc.). We create an ERC-20 token and list it on DEX on testnet
3. Front-end, back-end, co-design (which logic to code on blockchain and which not)
4. Security of blockchain applications (we take examples containing bugs and try to find them/fix them)
5. Devops/testing blockchain applications (how to properly test/deploy smart contract)
6. Economy of decentralized apps - why do we need a token?
7. Presentation of team works
- Study Objective:
- Study materials:
1. Bashir, Imran. Mastering Blockchain: Distributed Ledgers, Decentralization, and Smart Contracts Explained. 2nd edition, Packt Publishing, 2018.
2. Antonopoulos, Andreas M. Mastering Bitcoin: Programming the Open Blockchain. 2nd edition, O'Reilly, 2017.
3. Song, Jimmy. Programming Bitcoin: Learn How to Program Bitcoin from Scratch. O'Reilly, 2019.
4. Antonopoulos, Andreas M., and Gavin Wood. Mastering Ethereum: Building Smart Contracts and DApps. O'Reilly, 2019.
5. Gerard, David. Attack of the 50 Foot Blockchain: Bitcoin, Blockchain, Etherium and Smart Contracts.CreateSpace Independent Publishing Platform, 2017.
- Further information:
- not filled in
- No time-table has been prepared for this course
- The course is a part of the following study plans: