Detail předmětu

Blockchainy a decentralizované aplikace

BDA Ak. rok 2021/2022 letní semestr 5 kreditů

Aktuální akademický rok

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

česky

Zakončení

zápočet+zkouška (písemná)

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í

Cvičící

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

  1. Úvod a potřebné kryptografické konstrukty.
  2. 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.
  3. 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.
  4. Proof-of-Resource protokoly - ASIC-odolný mining (scrypt), Proof-of-Storage, Proof-of-Replication, populární altcoiny a jejich protokoly.
  5. 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í 
  6. 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. 
  7. 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.
  8. Š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) 
  9. 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). 
  10. 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ů.
  11. Use Case - Decentralizovaná aukce.
  12. Use Case - Decentralizované volby. 
  13. Zvaná přednáška od společnosti nebo odborníka v oboru.

Osnova ostatní - projekty, práce

  1. 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

Nahoru