Detail předmětu

Blockchainy a decentralizované aplikace

FIT-BDAAk. rok: 2021/2022

Decentralizované platformy, blockchainy, integritné dátové struktury, smart kontrakty a decentralizované aplikace, konsenzuelní a sítové protokoly, bezpečnostní hrozby.

Jazyk výuky

čeština

Počet kreditů

5

Garant předmětu

Výsledky učení 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.

Způsob a kritéria hodnocení

Bodové hodnocení vypracovaného projektu.

Učební cíle

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.

Vymezení kontrolované výuky a způsob jejího provádění a formy nahrazování zameškané výuky

Hodnocení projektů.

Doporučená literatura

Cachin, C., & Vukolić, M. (2017). Blockchain consensus protocols in the wild. arXiv preprint arXiv:1707.01873.
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.
Castro, M., & Liskov, B. (1999, February). Practical byzantine fault tolerance. In OSDI (Vol. 99, No. 1999, pp. 173-186).
Douceur, John R. "The sybil attack." International workshop on peer-to-peer systems. Springer, Berlin, Heidelberg, 2002.
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.
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).
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.
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.
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.
Solidity Documentation, https://solidity.readthedocs.io/
Texty přednášek v elektronické podobě.

Zařazení předmětu ve studijních plánech

  • Program MITAI magisterský navazující

    specializace NADE , 0 ročník, letní semestr, volitelný
    specializace NBIO , 0 ročník, letní semestr, volitelný
    specializace NCPS , 0 ročník, letní semestr, volitelný
    specializace NEMB , 0 ročník, letní semestr, volitelný
    specializace NGRI , 0 ročník, letní semestr, volitelný
    specializace NHPC , 0 ročník, letní semestr, volitelný
    specializace NIDE , 0 ročník, letní semestr, volitelný
    specializace NISD , 0 ročník, letní semestr, volitelný
    specializace NMAL , 0 ročník, letní semestr, volitelný
    specializace NMAT , 0 ročník, letní semestr, volitelný
    specializace NNET , 0 ročník, letní semestr, volitelný
    specializace NSEC , 0 ročník, letní semestr, volitelný
    specializace NSEN , 0 ročník, letní semestr, volitelný
    specializace NSPE , 0 ročník, letní semestr, volitelný
    specializace NVER , 0 ročník, letní semestr, volitelný
    specializace NVIZ , 0 ročník, letní semestr, volitelný
    specializace NISY do 2020/21 , 0 ročník, letní semestr, volitelný
    specializace NISY , 0 ročník, letní semestr, volitelný

Typ (způsob) výuky

 

Přednáška

26 hod., nepovinná

Vyučující / Lektor

Osnova

  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.