Detail předmětu
Blockchainy a decentralizované aplikace
BDA Ak. rok 2023/2024 letní semestr 5 kreditů
Decentralizované platformy, blockchainy, integritné dátové struktury, smart kontrakty a decentralizované aplikace, konsenzuelní a sítové protokoly, bezpečnostní hrozby.
Garant předmětu
Koordinátor předmětu
Jazyk výuky
Zakončení
Rozsah
- 26 hod. přednášky
- 26 hod. projekty
Bodové hodnocení
- 60 bodů závěrečná zkouška (písemná část)
- 40 bodů projekty
Zajišťuje ústav
Přednášející
Cíle předmětu
Cílem předmětu je seznámit studenty s principy a protokoly v plně decentralizované (P2P) síťové komunikaci. Zatímco aspekty klient-server komunikace jsou důležité, méně tradiční, ale nově vznikající peer-to-peer schéma blockchainu a jeho integrace do Internetu je alternativa, která umožňuje dosáhnout jedinečných vlastností z pohledu dostupnosti, transparence a důvěryhodnosti. Tento předmět se orientuje na technické aspekty blockchainových systémů, smart kontraktů a decentralizovaných aplikacií. Studenti se naučí, jak jsou tyto systémy postaveny, jak s nimi komunikovat, jak navrhovat a vytvářet zabezpečené decentralizované aplikace. Získané znalosti si otestují i prakticky.
Pokročilé teoretické a praktické znalosti v oblasti decentralizovaných výpočetních platforem, jejich typy, konsenzuální protokoly a problémy s nimi spojené. Znalost terminologie, jedinečných vlastností blockchainu, znalost pokročilých integritních datových struktur a algoritmů používaných v blockchainech a smart kontraktových platformách. Znalost praktických use case-ů a jejich potenciálních zranitelností. Znalost problému škalovatelnosti a anonymity a varianty jejich řešení. Schopnost návrhu, nasazení, a správy vlastních decentralizovaných aplikací a řešení.
Studenti pochopí význam a využití blockchainu a decentralizovaných smart kontraktových výpočetních platforem.
Proč je předmět vyučován
Předmět je důležitý pro nově vznikající trh decentralizovaných aplikací a kryptoměn, který aktuálně pociťuje nedostatek kvalifikovaných odborníků, programátorů a návrhářů. Předmět poskytuje pokročilé teoretické a praktické znalosti v oblasti síťové komunikace, decentralizovaných výpočetních platforem, a bezpečnosti.
Literatura studijní
- Texty přednášek v elektronické podobě.
- I. Homoliak, S. Venugopalan, D. Reijsbergen, Q. Hum, R. Schumi and P. Szalachowski, "The Security Reference Architecture for Blockchains: Toward a Standardized Model for Studying Vulnerabilities, Threats, and Defenses," in IEEE Communications Surveys & Tutorials, vol. 23, no. 1, pp. 341-390, Firstquarter 2021, doi: 10.1109/COMST.2020.3033665.
- Douceur, John R. "The sybil attack." International workshop on peer-to-peer systems. Springer, Berlin, Heidelberg, 2002.
- Cachin, C., & Vukolić, M. (2017). Blockchain consensus protocols in the wild. arXiv preprint arXiv:1707.01873.
- Miers, I., Garman, C., Green, M., & Rubin, A. D. (2013, May). Zerocoin: Anonymous distributed ecash from bitcoin. In 2013 IEEE Symposium on Security and Privacy (pp. 397-411). IEEE.
- Solidity Documentation, https://solidity.readthedocs.io/
- Sapirshtein, A., Sompolinsky, Y., & Zohar, A. (2016, February). Optimal selfish mining strategies in bitcoin. In International Conference on Financial Cryptography and Data Security (pp. 515-532). Springer, Berlin, Heidelberg.
- Luu, L., Narayanan, V., Zheng, C., Baweja, K., Gilbert, S., & Saxena, P. (2016, October). A secure sharding protocol for open blockchains. In Proceedings of the 2016 ACM SIGSAC Conference on Computer and Communications Security (pp. 17-30).
Osnova přednášek
- Úvod a potřebné kryptografické konstrukty.
- Konsenzuální protokoly - cíle, Zooko trojúhelník, CAP teorém, Byzantský konsenzus a kozistentní broadcast, PBFT, Nakamotův konsenzus, finálnost, Proof-of-Work, Proof-of-Stake, Proof-of-Authority, modely permissioned a permissionless , schémata odměn a modely teorie her.
- Bitcoin - mining, transakce, block, hlavička, skriptovací jazyk, UTXO/account-balance model, SPV klienti a konsenzuální účastníci Bitocin a PoW Blockchainy - peněženky, selekce chainu, forky, double spending, selfish mining, mining pools, čas a přesnost, škálovatelnost, spotřeba energie, privátnost, mixéry.
- Proof-of-Resource protokoly - ASIC-odolný mining (scrypt), Proof-of-Storage, Proof-of-Replication, populární altcoiny a jejich protokoly.
- Ethereum and Smart Contracts - výpočetní model, mining (ethash), strýčkové, struktura bloku a hlavičky, light klienti, virtuální mašina, paměť a úložiště, koncept gasu, konzistentní aktualizace stavu s Merkle-Patricia stromy, smart kontrakty, typy invokací
- Programování Smart Kontraktů - ukázky standardních kontraktů a decentralizovaných aplikací (DAPP), fungibilní a nefungibilní tokeny, ukázky bagů v smart kontraktech, frameworky pro analýzu kódu, truffle a Solidity, decentralizované aplikace a eth.web3, Ganache Turingovo kompletní a nekompletní smart kontraktové jazyky.
- Anonymnost a Privátnost - nezklinkovatelnost, deanonymizace na síťové vrstvě, centralizované a decentralizované mixovací služby, zero-knowledge důkazy, zk-Snarky, privátně-orientované kryptoměny.
- Škálovatelnosti a propustnost - problémy a kompromisy, Bitcoin-NG, acyklické grafy , Shardování, Off-chainoání (platební kanály, lighting network), TEE, Permissioned blockchainy a Proof-of-Authority, centralizované blockchainy (stromy historie, CT)
- Proof-of-Stake protokoly - virtuální mining, kombinace s BFT a PoR, příklady protokolů, útoky na PoS protokoly (nothing-at-stake, grinding, long-range, DoS na lídry a komise).
- Vrstvový model blockchainu, administrace - referenční architektura, ISO/IEC 15408 a blockchainy, grafy zranitelností/hrozeb/opatření, bezpečnostní aspekty vrstev, aplikace blockchainů (tokenizace, data feedy, decentralizovaná identita, provenance dat, bezpečné časové razítka, notáři, aukce, reputační systémy, volby), administrace přez BIP a EIP, typy forků.
- Use Case - Decentralizovaná aukce.
- Use Case - Decentralizované volby.
- Zvaná přednáška od společnosti nebo odborníka v oboru.
Osnova ostatní - projekty, práce
- Samostatně řešený projekt.
Průběžná kontrola studia
Bodové hodnocení vypracovaného projektu.
Hodnocení projektů.
Podmínky zápočtu
Získání alespoň 10 bodu z projektu. Plagiátorství nebo nesamostatná práce vede k neudělení zápočtu. Zápočty uděluje cvičící, který opravuje projekt.
Zařazení předmětu ve studijních plánech