Přístupnostní navigace
E-application
Search Search Close
Bachelor's Thesis
Author of thesis: Bc. Jakub Kodajek
Acad. year: 2025/2026
Supervisor: Ing. Jan Pluskal, Ph.D.
Reviewer: Ing. Marcel Marek
Bitcoin is considered an anonymous transaction technology. Transactions are not directly linked to real names or physical identities of users. However, each transaction is recorded in the blockchain, which is publicly available and allows anyone to perform detailed analysis. This bachelor thesis deals with the issue of attributing cryptocurrency wallets to specific nodes in the Bitcoin peer-to-peer network. The aim of the thesis is to examine the process of transaction propagation between nodes, identify factors influencing their order and propagation speed, and propose methods that will allow estimating the original node responsible for creating or first sending the transaction. The theoretical part describes the basic mechanisms of transaction propagation in the network and analyzes anonymization and deanonymization techniques. The practical part focuses on the design and implementation of heuristics combining propagation time profiles with topological information about the network. For this purpose, a modular platform was developed in the .NET environment, which enables the analysis of data from the P2P network. The contribution of this work is the combination of theoretical principles of transaction propagation with the practical use of data from a real network and the extension of existing methods for analyzing anonymity in the Bitcoin cryptocurrency environment.
Bitcoin, blockchain, peer-to-peer, transaction propagation, heuristics, deanonymization
Date of defence
18.06.2026
Result of the defence
Defended (thesis was successfully defended)
Grading
B
Process of defence
Student nejprve prezentoval výsledky, kterých dosáhl v rámci své práce. Komise se poté seznámila s hodnocením vedoucího a posudkem oponenta práce. Student následně odpověděl na otázky přítomných. Komise se na základě posudku oponenta, hodnocení vedoucího, přednesené prezentace a odpovědí studenta na položené otázky rozhodla práci hodnotit stupněm B.
Topics for thesis defence
Language of thesis
Czech
Faculty
Fakulta informačních technologií
Department
Department of Information Systems
Study programme
Information Technology (BIT)
Composition of Committee
doc. Ing. Petr Matoušek, Ph.D., M.A. (předseda) doc. Ing. Michal Bidlo, Ph.D. (místopředseda) Ing. Radek Kočí, Ph.D. (člen) Ing. Jan Pluskal, Ph.D. (člen) Ing. František Grézl, Ph.D. (člen)
Supervisor’s reportIng. Jan Pluskal, Ph.D.
Student se vyrovnal s netriviálním úkolem propojení teoretické deanonymizační heuristiky s reálnou platformou nad daty projektu STARK. Velmi kladně hodnotím implementační úroveň výsledné aplikace J.A.R.V.I.S.: rozdělení do čtyř projektů podle Clean Architecture, oddělení doménové vrstvy od EF Core a externích API přes rozhraní IBlockchainProvider, IPropagationRepository a IAddressClusterProvider, atomickou migraci shluků v ClusterMergeService (obrázek 6.10), infrastrukturu pro ablační experimenty (template method nad BayesianTimingHeuristicBase s pěti potomky, sekce 6.5) a jednotkové testy s xUnit a Moq. Pozitivně hodnotím také poctivé experimentální vyhodnocení na třech datových sadách s ablačními studiemi pro každou ze čtyř per-transakčních vah a transparentní popis kompromisu mezi režimy rich-data a small-data v sekci 7.4.
Naopak vlastní autorský přínos v navržené heuristice (exponenciální útlum, vážený symetrický filtr, směrová váha, bonus za první přijetí) je inkrementální nad rámcem práce Juhász et al. a výsledky na mainnetu (top-1 hit 3/9, top-5 hit 7/9) ukazují, že hlavní hnací silou klasifikace zůstává bayesovská agregace s trestem za absenci, nikoli přidané váhy, což sám student v závěru kapitoly 7 přiznává. Slabší aktivita v zimním semestru a slabší příprava na konzultace se promítly do místně povrchnější interpretace ablačních výsledků v kapitole 7 a do nutnosti opakovaně se vracet ke stejným konceptům.
S ohledem na uvedené pozitivní i negativní aspekty navrhuji práci hodnotit stupněm C jako dobrou.
Cílem práce bylo navrhnout, implementovat a experimentálně ověřit heuristiku pro přiřazování bitcoinových peněženek konkrétním uzlům v P2P síti s využitím časových profilů propagace transakcí. Práce vznikla v kontextu projektu Strategická, taktická, kriminální analýza forenzních metod pro trasování v kryptoměnových sítích (VK01010231), na jehož datech monitorovací sondy projektu STARK student staví. U tématu se na straně teorie nelze vyhnout porozumění mechanismu šíření transakcí v Bitcoinu (Diffusion, INV/GETDATA/TX), kryptografickým primitivům a bayesovské agregaci; na straně inženýrské pak návrhu .NET aplikace pracující nad reálnou produkční databází. Zadání považuji za obtížnější vzhledem k nutnosti samostatně se zorientovat v primárních zdrojích (Biryukov, Fanti, Juhász, Decker, Neudecker) a propojit teoretický návrh s reálnou platformou STARK. S dosaženými výsledky jsem v zásadě spokojen: student předložil funkční řešení, které kvantitativně zlepšuje úspěšnost identifikace zdroje oproti naivní first-seen baseline (top-1 hit 3/9 vs. 1/9 a top-5 hit 7/9 vs. 4/9 na devíti mainnetových shlucích, shrnutí v kapitole 8). Zadání bylo splněno ve všech šesti bodech.
Student samostatně nalezl 37 referenčních zdrojů, mezi nimiž tvoří jádro kvalitní primární publikace věnované deanonymizaci Bitcoinu (Biryukov 2014, Fanti a Viswanath 2017, Juhász et al. 2018, Decker a Wattenhofer 2013, Neudecker 2016) a originální whitepaper Satoshi Nakamoto. Vzhledem k povaze tématu je převaha online zdrojů a programátorských dokumentací (Bitcoin Core release notes, mempool.space, Blockbook, Polly, EF Core) přirozená. Některé klíčové koncepty (zejména bayesovskou agregaci s trestem za absenci a roli Poissonova šumu v mechanismu Diffusion) si student nastudoval samostatně. Naopak postrádám hlubší zmapování novějších prací k topology inference (např. Coinscope, TxProbe) a aktuální stav implementace BIP 156 v alternativních klientech.
Aktivita studenta byla v zimním semestru spíše nižší, hlavní progres je patrný až od poloviny semestru letního. Konzultace probíhaly přibližně v měsíčních intervalech a byly iniciovány převážně na popud studenta.
Práce byla dokončena včas vzhledem k termínu odevzdání a její finální obsah byl konzultován. Ne všechny připomínky se však podařilo plně zapracovat, což se projevuje v některých místech interpretační části kapitoly 7, kde diskuze ablačních výsledků je stručnější, než bych si v ideálním případě představoval. Implementační část byla naopak dokončena s dostatečnou rezervou a umožnila provést kompletní ablační měření nad oběma testnetovými sadami i devíti mainnetovými shluky.
Práce vznikla jako součást projektu STARK (VK01010231, MV ČR); výsledky budou předány do projektového úložiště a poslouží jako východisko pro další rozvoj v navazujících pracích, zejména pro rozšíření experimentů na desítky až stovky mainnetových shluků a pro nasazení monitorovací sondy s vyváženějším poměrem příchozích a odchozích spojení (sekce 7.5.2 práce).
Grade proposed by supervisor: C
Reviewer’s reportIng. Marcel Marek
Předložená bakalářská práce řeší náročné a aktuální téma na pomezí počítačových sítí, kryptoměn, bezpečnosti a analýzy dat. Student prokázal schopnost nastudovat relevantní teorii, navrhnout vlastní heuristiku, implementovat modulární analytickou aplikaci a provést experimentální vyhodnocení.
Za hlavní silné stránky považuji kvalitu technického řešení, systematický návrh heuristiky, provedené parametrické experimenty a přehlednou prezentaci výsledků v tabulkách a grafech. Práce také korektně diskutuje omezení použité metody a opatrně interpretuje výsledky na reálných datech.
Mezi slabší stránky patří zejména omezený rozsah mainnetového vyhodnocení a dílčí formální a citační nedostatky. Tyto výhrady však nepovažuji za zásadní vzhledem k celkové technické kvalitě práce. Práci hodnotím jako velmi kvalitní, blízko hranici hodnocení A, a doporučuji ji k obhajobě.
Evaluation level: značně obtížné zadání
Zadání hodnotím jako obtížnější. Kombinuje oblasti počítačových sítí, kryptoměn, analýzy P2P provozu, anonymizačních a deanonymizačních technik, návrhu pravděpodobnostní heuristiky a realizace funkční analytické aplikace. Obtížnost dále zvyšuje nutnost práce s reálnými síťovými daty, neúplnou referenční pravdou a etickými omezeními měření v produkční síti Bitcoin. Student se musel vypořádat nejen s implementací, ale i s metodologickými limity vyhodnocení, což přesahuje běžnou obtížnost bakalářské práce.
Práce je velmi dobře strukturovaná a čtenáře vede od vysvětlení fungování Bitcoinu přes anonymizační a deanonymizační techniky až k vlastnímu návrhu, implementaci a vyhodnocení. Jednotlivé kapitoly na sebe logicky navazují a celek je dobře pochopitelný i pro čtenáře, který se v tématu orientuje spíše obecně.
Návrhová část je zpracována systematicky, obsahuje matematický popis jednotlivých složek heuristiky a je dobře propojena s implementační kapitolou. Kladně hodnotím také experimentální kapitolu, zejména přehledné tabulky a grafy, které pomáhají interpretovat vliv jednotlivých parametrů a rozdíly mezi testnetovými a mainnetovými daty.
Formální úroveň práce hodnotím jako velmi kvalitní. Text je čitelný, dobře členěný a typograficky převážně přehledný. Jazyková stránka je na dobré úrovni a odborný výklad je srozumitelný.
V práci se objevují některé dílčí terminologické a typografické nedůslednosti. Místy není zcela konzistentní práce s počeštěnými technickými termíny a anglickými přejatými výrazy.
Ukázky zdrojového kódu jsou v práci označovány jako „Obrázek x.y“. Vhodnější by bylo používat označení typu „Kód x.y“ nebo „Výpis x.y“.
Ještě mám drobnou výtku k formátování názvu práce na titulní stránce/deskách, kde je název nevhodně zalomen.
Realizační výstup hodnotím jako velmi kvalitní. Student implementoval modulární .NET aplikaci s oddělením doménové, aplikační, infrastrukturní a konzolové vrstvy. Aplikace obsahuje komponenty pro práci s blockchainovými daty, propagačními záznamy, shlukováním adres, detekcí CoinJoin transakcí, výpočtem heuristiky, konfigurací a ukládáním výsledků. Pozitivně hodnotím také neinteraktivní režim pro parametrické experimenty a automatizované testy vybraných částí systému.
Navržená heuristika je metodicky smysluplná: kombinuje časové profily, agregaci přes více transakcí, symetrické vážení, bonus za první přijetí a směr spojení. Student zároveň korektně pracuje s pravděpodobnostním charakterem výsledků a diskutuje omezení metody.
Slabším místem je především omezený rozsah mainnetového vyhodnocení, který snižuje statistickou průkaznost výsledků na reálných datech. To však nepovažuji za zásadní selhání práce, spíše za přirozené omezení dané obtížností získání referenční pravdy v produkční síti. Z předloženého textu nevidím zásadní faktický nedostatek v návrhu metody ani v provedené analýze.
Práce není pouze kompilační; obsahuje vlastní návrh heuristiky a funkční prototyp analytické platformy. Výsledky jsou využitelné zejména pro další výzkum deanonymizačních technik v P2P sítích kryptoměn a pro experimenty s analýzou propagace transakcí.
Přímé praktické nasazení je zatím omezeno kvalitou a rozsahem dostupných monitorovacích dat, proměnlivostí síťové topologie a obtížnou dostupností referenční pravdy v produkční síti. Přesto práce představuje hodnotný výzkumný základ, na který lze navázat rozsáhlejším měřením nebo zapojením více monitorovacích sond.
Evaluation level: zadání splněno
Práce splňuje požadavky zadání ve všech bodech. Student popsal propagaci transakcí v P2P síti Bitcoinu, anonymizační a deanonymizační techniky, navrhl vlastní heuristiku pro odhad zdrojového uzlu a implementoval modulární .NET aplikaci pro analýzu propagačních dat.
Za hlavní přínos považuji návrh heuristiky kombinující časové profily, symetrické vážení, bonus za první přijetí, směr spojení a bayesovskou agregaci přes více transakcí. Řešení je konfigurovatelné, ukládá výsledky ve strojově zpracovatelné podobě a umožňuje experimentální vyhodnocení.
Vyhodnocení bylo provedeno na kontrolovaných testnetových datech i na omezené sadě mainnetových shluků. Právě menší rozsah mainnetové validace je hlavním omezením práce; výsledky na reálné síti je proto nutné interpretovat opatrně. Vzhledem k obtížnosti získání referenční pravdy v produkční síti Bitcoinu to však nepovažuji za zásadní nesplnění zadání.
Evaluation level: přesahuje obvyklé rozmezí
Technická zpráva je na bakalářskou práci poměrně rozsáhlá (96 normostran). Rozsah je z velké části využit účelně, zejména v kapitolách věnovaných návrhu heuristiky, implementaci a experimentálnímu vyhodnocení. Práce však obsahuje i některé obecnější teoretické části, například vybrané anonymizační techniky, které nejsou v Bitcoinu prakticky využívány nebo nejsou dále přímo zapojeny do návrhu a vyhodnocení práce. Tento širší kontext nepovažuji za zásadní nedostatek, ale místy rozšiřuje text nad rámec toho, co je pro vlastní řešení nezbytné.
Výběr literatury je relevantní a odpovídá tématu práce. Student pracuje se základními akademickými zdroji k anonymitě Bitcoinu, P2P propagaci, Dandelionu, síťovým útokům i blockchainové analýze. Práce tedy vhodně navazuje na existující výzkum a nepůsobí jako řešení již vyřešeného problému bez znalosti souvisejících prací.
Pozitivně hodnotím, že zejména v úvodních a teoretických částech student často odkazuje i na konkrétní stránky zdrojů, což je nadstandardně precizní a usnadňuje ověření převzatých informací. V pozdějších kapitolách se tato preciznost částečně vytrácí a citace častěji odkazují pouze na zdroj jako celek.
U převzatých obrázků by mělo být v popisku jasněji uvedeno, že jde o převzatý nebo upravený materiál. Tyto nedostatky nepovažuji za zásadní porušení citační etiky.
Grade proposed by reviewer: A
Responsibility: Mgr. et Mgr. Hana Odstrčilová