Detail předmětu

Blockchainy a decentralizované aplikace

FEKT-CZV-BDAAk. rok: 2023/2024

Předmět poskytuje pohled na decentralizované platformy a související technologie. Studenti se seznámí s principy blockchainů, integritními dátovými strukturami a významem smart kontraktů. Důraz bude kladen na praktické aspekty vytváření a provozování decentralizovaných aplikací. Během kurzu budou také zkoumány různé konsenzuální a sítové protokoly, které umožňují decentralizovaným systémům dosáhnout dohody a koherence. Kromě toho bude velká pozornost věnována bezpečnostním hrozbám, které mohou ohrozit tyto platformy, a způsobům, jak se jim bránit. 

Jazyk výuky

čeština

Počet kreditů

5

Garant předmětu

Vstupní znalosti

Středne pokročilé znalosti programování.

Pravidla hodnocení a ukončení předmětu

Předmět je zakončen zkouškou. Požadavky na ukončení jsou detailně specifikovány v každoročně aktualizované vyhlášce garanta.

 

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. 

Studijní opory

Narayanan, A., Bonneau, J., Felten, E., Miller, A., & Goldfeder, S. (2016). Bitcoin and cryptocurrency technologies: a comprehensive introduction. Princeton University Pres.

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.   

Základní literatura

Nakamoto, S. (2019). Bitcoin: A peer-to-peer electronic cash system. (CS)
Cachin, C., & Vukolić, M. (2017). Blockchain consensus protocols in the wild. arXiv preprint arXiv:1707.01873. (CS)
ANTONOPOULOS, Andreas M.; WOOD, Gavin.Mastering Ethereum: Building Smart Contracts and DApps. 1st ed. O'Reilly Media, 2018. ISBN 978-1491971949 (CS)
ANTONOPOULOS, Andreas. Mastering bitcoin. 3rd ed. O'Reilly Media, 2023. ISBN 978-109815009. (CS)
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 (CS)

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

  • Program CZV3-Cyber celoživotní vzdělávání - dlouhodobý kurz, 2. ročník, zimní 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. Bitcoin I - 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.
3. Bitcoin II -  double spending, selfish mining, mining pools, čas a přesnost, škálovatelnost, spotřeba energie, privátnost, mixéry.
4. 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.
5. Proof-of-Resource protokoly - ASIC-odolný mining (scrypt), Proof-of-Storage, Proof-of-Replication, populární altcoiny a jejich protokoly.
6. 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í.
7. 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.
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. 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.
10. 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).