Detail předmětu
Blockchainy a decentralizované aplikace
BDA Ak. rok 2021/2022 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í
Perešíni Martin, Ing. (UITS)
Stančíková Ivana, Ing. (UITS)
Veselý Vladimír, Ing., Ph.D. (UIFS)
Cvičící
Homoliak Ivan, Ing., Ph.D. (UITS)
Jeřábek Vladimír, Ing.
Marek Marcel, Ing. (UIFS)
Perešíni Martin, Ing. (UITS)
Stančíková Ivana, Ing. (UITS)
Tamaškovič Marek, Ing. (UITS)
Veselý Vladimír, Ing., Ph.D. (UIFS)
Získané dovednosti, znalosti a kompetence z předmětu
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.
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.
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.
- Nakamoto, S. (2019). Bitcoin: A peer-to-peer electronic cash system. Manubot.
- Narayanan, A., Bonneau, J., Felten, E., Miller, A., & Goldfeder, S. (2016). Bitcoin and cryptocurrency technologies: a comprehensive introduction. Princeton University Press.
- Douceur, John R. "The sybil attack." International workshop on peer-to-peer systems. Springer, Berlin, Heidelberg, 2002.
- Castro, M., & Liskov, B. (1999, February). Practical byzantine fault tolerance. In OSDI (Vol. 99, No. 1999, pp. 173-186).
- 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).
- Casino, F., Dasaklis, T. K., & Patsakis, C. (2019). A systematic literature review of blockchain-based applications: current status, classification and open issues. Telematics and informatics, 36, 55-81.
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.
Kontrolovaná výuka
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