MAREK, T. Diskrétní modelování šíření transakcí v síti Bitcoin [online]. Brno: Vysoké učení technické v Brně. Fakulta informačních technologií. 2024.

Posudky

Posudek vedoucího

Zavřel, Jan

Řešitel v práci prokázal schopnost rychlého pochopení komplexní problematiky Bitcoinu a následného zručného využití těchto poznatků v neméně komplexním simulačním prostředí. Výsledkem práce není pouze funkční simulační model, ale také skript, který automatizuje celý proces simulace, od nastavení parametrů až po prezentaci výsledků. Celkově hodnotím práci jako výbornou a hodnotím stupněm A.

Dílčí hodnocení
Kritérium Známka Body Slovní hodnocení
Informace k zadání Cílem práce bylo vytvořit vysoce zjednodušený simulační model Bitcoinového klienta a následně provést experimenty, které by určily, za jakých podmínek a s jakou pravděpodobností je uživatel schopen identifikovat původce zpráv reprezentujících Bitcoinové transakce. Práci hodnotím jako obtížnější, jelikož zahrnovala studium kryptoměny Bitcoin, která je velmi progresivní, rozsáhlá a nedokonale zdokumentovaná. Tyto poznatky pak musely být využity k implementaci v komplexním simulačním prostředí OMNeT++, což v posledních letech bývá spíše úkolem diplomových prací. Celkově jsem s výsledky práce spokojen, avšak řešitel mohl projevit větší samostatnost, vlastní kreativitu a dále mohl věnovat větší péči experimentům a analýze výsledků.
Práce s literaturou Student aktivně vyhledával a konzultoval relevantní literaturu. Citace se skládají z většího množství wiki stránek, což je ovšem u takto progresivní technologie pochopitelné. Student se občas v textu odkazuje i na konkrétní řádky zdrojového kódu Bitcoin Core klienta.
Aktivita během řešení, konzultace, komunikace Student aktivně komunikoval po celou dobu řešení práce. Pevně dodržoval stanovené termíny konzultací a vždy se dostavil s alespoň kouskem hotové práce a seznamem dotazů.
Aktivita při dokončování Práce byla hotova dva týdny před stanoveným termínem odevzdání. Ve výsledné práci se nevyskytuje nic, co by s vedoucím práce nebylo konzultováno.
Publikační činnost, ocenění Práce byla prezentována na studentské konferenci Excel@FIT, a to zejména z vlastní iniciativy studenta.
Navrhovaná známka
A
Body
90

Posudek oponenta

Marek, Marcel

Zadání práce je náročnější kvůli nutnosti nastudovat nástroj OMNeT++ kryptoměnu Bitcoin. Zlehčujícím faktorem byla nutnost detailněji nastudovat pouze propagování transakcí. Po formální stránce je práce dobře zpracovaná s drobnými jazykovými nedostatky. Jsou použity relevantní zdroje, ale jejich citování je ve většině případů odbyté. Kde práce velmi zaostává jsou vlastní přínosy. Realizační výstup se vejde do 100 řádků kódu. Součástí realizačního výstupu jsou i orchestrační skripty, které ale hodnotím jako nutnost kvůli neporozumění nástroji OMNeT++, který tuto functionalitu obsahuje. Práce formálně splňuje všechny body zadání. Výhrady mám ke kvalitě především kapitol 6 a 7. Chybí otestovaní implementace modelu propagování transakcí. Také chybí vysvětlení jak jsou výsledky z opakovaného spuštění stejné simulace relevantní v realném prostředí a vůbec se nezamýšlí nad 100% úspěšností identifikace původce transakce. Práce je pro mě na samé hranici obhájitelnosti. Formálně má všechny atributy potřebné pro splnění základních požadavků jako rozsah, zpracované body zadání, jazyková kvalita, citované zdroje, ale vlastní přínos je nulový. Ať už se bavíme o vytvořeném modelu, konfiguraci simulované sítě, použité heuristice, nebo diskutování výsledků vidím pouze minimální přínos.   Doporučuji hodnocení E až F.

Dílčí hodnocení
Kritérium Známka Body Slovní hodnocení
Náročnost zadání Zadání považuji za mírně náročnější protože vyžaduje nastudování nástroje OMNeT++ a rozsáhlé problematiky blockchainu a konkrétně kryptoměny Bitcoin. Zlechčující faktor je, že z Bitcoinu stačilo nastudovat primárně propagování transakcí v rámci P2P Bitcoin sítě.
Rozsah splnění požadavků zadání Zadání bylo formálně splněno. Výhrady mám ke kvalitě vypracování bodů 4, 5 a 6. Bod č.4 : Vytvořte návrh vysoce zjednodušeného Bitcoinového klienta, který umožnuje vytvářet, přijímat a odesílat zprávy reprezentující Bitcoin transakce a který pracuje dle algoritmu z bodu 2. Návrh je podle mě až příliš zjednodušený.   Bod č.5: Dle doporučení vedoucího vytvořte simulační model v diskrétním simulátoru OMNeT++. Velmi zjednodušenému návrhu odpovídá i zjednodušený model.   Bod č.6: Vytvořený simulační model otestujte a diskutujte dosažené výsledky. Vytvořený model není otestovaný. Bylo otestováno pouze, že oficiální Bitcoin core klient používá jednu honotu zpoždění pro příchozí spojení a individuální hodnoty pro každé odchozí spojení. Implementovaný model není podroben tomuto testu. Zároveň metodologie na identifikaci původce transakce je nepoužitelná v praxi, protože aplikuje statistickou analýzu na 1000 opakování šíření stejné transakce.
Rozsah technické zprávy Práce je v obvyklém rozsahu.
Prezentační úroveň technické zprávy 60 Práce má logickou strukturu, kapitoly na sebe navazují. Pochopitelnost některých částí je obtížná. Vyskytují se fakticky nepřesná a často i nepravdivá tvrzení a mylné definice popisovaných technologií. Například popis technických částí, jako typy skriptu (sekce 3.2.1 - 3.2.5), je VELMI obtížně pochopitelný pro čtenáře. Tato část mohla být i úplně vypuštěna, protože se nejedná o primární zaměření této práce a raději se zaměřit na odchylky způsobu propagovaní transakcí v ostatních implementacích bitcoin klienta. V detailu transakce chybí např. popis poplatku (Fee), což je míra detailu, kterou očekávám od práce zaměřené na propagaci transakcí. Bohužel ani u osobní demostrace BP nebyl student schopen vystvětlit nesrozumitelná, nebo chybná tvrzení, proto je musím přisoudit nepochopení tématu a nikoliv jazykovému nedostatku. Pokud budeme brát v úvahu zaměření práce čistě na šíření transakcí, pak mi chybí srovnání chování ruzných implementací. Kapitola o nástroji OMNeT++ je shrnuta na jedinou stránku a jak se ukázalo v praktické části, bylo to až přílis stručné. Student úplně přehlédl vestavěnou podporu pro zachytávání, analzování a vizualizování konfigurovatelných metrik simulace přímo v nástroji OMNeT++ a rozhodl se ji implementovat vlastními skripty.
Formální úprava technické zprávy 69 Typograficky je práce na dobré úrovni až na několik drobných prohřešků v podobě zalamovaní slov, nebo kapitalizace prvních znaků ve větě. Vyskytují se případy použití nesprávného pořadí vět v souvětí a zbytečně dlouhá a komplikovaná souvětí.
Práce s literaturou 68 Výběr studijních pramenů je kvalitní a relavatní k tématu práce.  Problém vidím v používání rozsáhlých zdrojů (kniha, GitHub repozitář) bez uvedení konkrétní kapitoly nebo sekce, jako zdroj informací pro zpracování dané sekce, nebo jako opora určitého tvrzení. Práce obsahuje několik prevzatých prvků, které jsou řádně vynačeny včetně uvedení zdroje.
Realizační výstup 20 Rozsah programového řešení je minimální. Samotný kód chování modelu bitcoinového uzlu je cca 20 řádků a monitorovacího uzlu je do cca 35 řádků kódu. Base třída pak obsahuje cca 15 řádků kódu pro generování zpoždění přvzaté Bitcoin core klienta. Velký důraz je kladen na zachytávání, ukládání a následnou analýzu metrik simulace (čas přijetí transakce monitorovacím uzlem). Implementace ukládání statisttik je zabudovaná přímo v nástroji OMNeT++ stejně jako triviální statistická analýza (sum(), mean(), stddev() a jine) pro jednotlivé běhy, nebo sumárně pro všechny běhy dohromady. Pro náročnější vyhodnocení je pak možné využít integraci knihovny pandas (jako student použil ve svém řešení). Obdobně pak pro dynamické generování topologie se používá přímo syntaxe jazyka NED. V práci jej popsána validace propagovaní transakcí oficiálního Bitcoin core klienta pomocí analýzy síťového provozu za zachyceného .pcap souboru. Uplně chybí kde se soubor vzal, či jak vypadala topologie dané sítě. Také chybí validace implementovaného modelu vůči implementaci Biitcoin core, nebo očekávanéu chování. Sekce 7.2. zaměřená na analýzu varianty simulace, kdy monitorovací uze přeposílá transakci, je zbytečná, protože monitorovací uzel se ve výsledku snaží najít skutečného původce transakce a pokud by sám šířil transakci do sítě, pouze by si ztěžoval následnou analýzu. Druhý výsledek měření, kdy monitorovací uzel přeposílá transakci, je rychlejší propagace transakce sítí. Takový stav je více než očekávatelný, protože monitorovací uzel je připojen na všechny uzly v sítí. Není uvedeno jak je analýza 1000 běhů rozesílání stejné transakce v simulačním prostředí aplikovatelná na reálnou síť, kdy nemůžeme korelovat 1000 hodnot (pořadí nebo čas) pro dvojici TXID a IP adres, protože je transakce rozesílána typicky pouze jednou. Úplně mi chybí složitější analýza. Obě metriky "pozice" a čas přijetí jsou odvozené od času přijetí transakce. Je stanoveno, že použitá heuristika správně identifikuje blízké uzly v případě, že je zdrojový uzel není dostupný pro monitorovací uzel. Není ale uvedeno jak, nebo jestli vůbec dokážeme určit, jestli jsme našli opravdový zdrojový uzel, nebo pouze  blízký uzel. Také není uvedeno, jestli identifikace blízkých uzlů implikuje identifiikace opravdového původce. Heuristika také uvádí absolutní úspěšnost při použití 1000 opakování, ale chybí testování nalezení minimálního počtu opakování pro správnou identifikaci opravdového původce. Další možný přístup vidím v použití více monitorovacích uzlů a korelovaní jejich  pohledu na síť . Tento přístup by mohl nahradit, nebo redukovat nutný počet simulačních běhů. Náhodné generování propojů uvnitř simulované sítě je natolik náhodné, že se nedají replikovat prezentované výsledky ani při zadání stejných parametrů do spoustěcího skriptu.
Využitelnost výsledků Práce se snaží prinášet nové poznatky, ale neúspěšně. V současné podobě nejsou výsledky využitelné v praxi. Samotný simulační model je až příliš zjednodušený, aby se dal využít v dalším výzkumu.
Navrhovaná známka
E
Body
50

Otázky

eVSKP id 156737