i
Upozornění: Všechny služby týkající se Samourai Wallet vč. příslušných projektů jako oxt.me, kycp.org, nextblock.is, gitlab repozitář a další byly pozastaveny vládou Spojených států amerických. Žádnou část z celkové infrastruktury nemají vývojáři pod kontrolou a proto ani není bezpečné aplikace používat či aktualizovat.
Transakční soukromí při používání Bitcoinu není jednoduchá věc. Bitcoin není anonymní, ale pouze pseudoanonymní. Co to znamená a co z toho můžeme vyvodit? Na co si dát pozor a jak se nestřelit do nohy? Následujícím čtyřdílným rychlokurzem vás provede Ergo, hlavní bitcoinový stopař projektu OXT Research od Samourai Wallet. Na konci kurzu budete vyzbrojeni základními znalostmi, které vám pomůžou k ochraně vašeho soukromí při používání Bitcoinu.
Základní pojmy
Povědomí o hodnotě bitcoinu pro platby odolné vůči cenzuře se rozšířilo v roce 2011, kdy byla spuštěna Silk Road a zachráněna nezisková organizace Wikileaks, kterou tradiční bankovní systém odřízl od možnosti přijímat příspěvky.
Současně se začala rozmáhat nebezpečná a zavádějící narativa o tom, že jsou bitcoinové transakce anonymní a nevysledovatelné.
WikiLeaks now accepts anonymous Bitcoin donations on 1HB5XMLmzFVj8ALj6mfBsbifRoD4miY36v
— WikiLeaks (@wikileaks) June 14, 2011
Toto tvrzení však nikdy nebylo pravdivé a bylo do značné míry způsobeno nedostatečným pochopením základního fungování Bitcoinu. Navíc v roce 2011 blockchain téměř nikdo nesledoval. Ale to, co se jednou do blockchainu zapíše, už tam zůstane navždy.
Orgány činné v trestním řízení mají přístup k analytickým nástrojům, které dokaží analyzovat transakce na blockchainu, a tak napomohly již k mnoha významným dopadením. Firmy, které se zabývají chain analysis, se dožadují prvního zveřejnění blogových příspěvků o nejnovějším „zločinu“, při němž byl k platbě použit bitcoin. Na titulních stránkách předních světových médií se objevují titulky o vysledovatelnosti bitcoinu.
Realita bitcoinového soukromí a to, čeho jsou uživatelé schopni při používání bitcoinů k platbám, leží někde mezi dokonalou anonymitou a dokonalou sledovatelností.
Většina sledovacích metod je závislá na heuristice a vyhodnocování toku bitcoinů. Dokud nebude zásadně vylepšena ochrana soukromí na úrovni Bitcoin protokolu, nezbývá nám než k anonymizaci využít možností dostupných aplikací.
Na počátku historie Bitcoinu se k překonání analytické heuristiky používal náhodný otisk peněženky. K přerušení metod analýz finančních toků se používaly nástroje jako custodial tumblers, avšak s rizikem ztráty finančních prostředků. Dnes coinjoin a kolaborativní transakce umožňují za přiměřené poplatky zvýšit soukromí, a to bezpečně oproti předchozím metodám. Ještě však zbývá vykonat mnoho práce při automatizaci vylepšení ochrany soukromí na aplikační vrstvě.
Dle našeho názoru je vzdělávání uživatelů velice důležité. To, jak získat základní úroveň finančního soukromí, kterou obvykle poskytuje dosavadní finanční systém, byla naše hlavní motivace pro vytvoření tohoto článku. V této příručce se budeme zabývat následujícími tématy:
Transakční aktivita bitcoinů je pseudonymní, nikoli anonymní. Pravé jméno uživatele a jeho osobní identifikační údaje (OIÚ) nemají na úrovni bitcoinového protokolu co dělat. To poskytuje velmi základní úroveň soukromí, protože transakční aktivita musí být nejprve přiřazena jednotlivci.
Transakce v bitcoinech se však provádějí za transparentní částky na transparentní adresy. Adresy jsou pseudonymy, které představují skutečnou aktivitu uživatele, přesněji řečeno aktivitu jednoho soukromého klíče.
Bitcoinové transakce jsou odesílány do bitcoinové sítě a archivovány v bitcoinové databázi nebo chcete-li bitcoinové účetní knize. Knihu a všechny transakce v ní obsažené si může prohlédnout každý, kdo má spuštěný bitcoinový node nebo přístup k webovému blockchain prohlížeči.
Transparentnost těchto veřejných informací umožňuje bezprecedentně snadný přístup k informacím, který není v tradičním finančním systému možný.
Kdokoliv si může prostřednictvím webového prohlížeče zadat požadavek do blockchain exploreru a sledovat historii transakcí celé bitcoinové sítě. Může tak snadno sledovat toky bitcoinů i v rámci více transakcí.
Obecně se tato činnost stala synonymem pro pojem chain analysis.
Nejběžnější forma chain analysis se zaměřuje na identifikaci Bitcoin UTXO's. Tento proces je založen na řadě heuristických postupů, které lze použít ke sledování činnosti uživatele v rámci více transakcí.
Pokud tato aktivita v blockchainu vede ke skupině peněženek identifikovaného ekonomického subjektu (KYCnutého), mohou být vyšetřovatelé schopni získat osobní identifikační údaje uživatele (OIÚ) spojené se sledovanou transakční aktivitou.
Odtud můžeme odvodit dva zásadní problémy, které mohou být použity k útoku na soukromí uživatele:
Zatímco bod 2 je kritickou součástí toho, co mění analýzu řetězce v reálné vymáhání, tento článek se zaměří konkrétně na zmírnění možnosti sledování on-chain.
Heuristika je soubor pravidel používaný k rozhodování za nejistých podmínek. Často jsou založena na praktických dedukcích, i když nejsou stoprocentně přesná.
Velká část tradiční chain analysis je založena na heuristice. Primární heuristika má co do činění s detekcí UTXO's v jednoduchých transakcích, kde bitcoin utrácíme, a sekundární heuristika využívá sdružování jednotlivých adres pomocí určení společného vlastnictví vstupů.
Tyto heuristiky mohou být každá samostatně zavádějící a nepřesné. V kombinaci s dalšími transakčními vzory nebo externími údaji, jako je cluster wallet labeling, se však nedostatky těchto jednotlivých heuristik stávají méně důležitými.
Bitcoinové transakce jsou jednoduše záznamy o tocích bitcoinů mezi jednotlivými adresami.
Neutracené výstupy transakce (UTXO) jsou „kousky bitcoinů“, které se používají ke konstrukci transakcí. Strukturu transakcí lze rozdělit na INPUT a OUTPUT.
Uživatel sestaví transakci tak, že určí platební adresu (adresy) a platební částku (částky). To budou OUTPUTS nově konstruované transakce.
Software peněženky obvykle dokončí transakci algoritmickým zahrnutím UTXO z předchozích transakcí jako INPUTS do nové transakce.
Mezi bitcoinovou adresou a UTXO je velký rozdíl. UTXO jsou „kousky bitcoinu“ připsané na adresu. Nejjednodušší způsob, jak si tento rozdíl představit, je pochopit, že jedna adresa může obdržet více UTXO, což je proces poškozující soukromí označovaný jako „opakované použití adresy“ (address reuse).
Existuje několik běžných kategorií bitcoinových transakcí. Tyto kategorie jsou odvozeny na základě vstupního a výstupního profilu transakcí spolu s našimi zkušenostmi a pozorovaným označením shluků. Příklady hlavních typů transakcí jsou uvedeny níže.
Jednoduchá útrata patří k nejběžnějším typům transakcí a tvoří zhruba 50 % bitcoinových transakcí v posledních blocích (Zdroj: transactionfee.info).
Tyto typy transakcí jsou důkazem typického chování uživatelů, kdy uživatel provede platbu a obdrží zpět UTXO.
Charakteristiky:
„Sweep“ přepošle celý jeden UTXO na novou adresu.
Charakteristiky:
Konsolidační transakce spojují více UTXO do jednoho UTXO. Zřídkakdy se jedná o „skutečné platby“, protože běžná platba má change output.
Charakteristiky:
Hromadné transakce jsou s největší pravděpodobností prováděny směnárnami a zahrnují 1 nebo více INPUTS a mnoho OUTPUTS. Cílem těchto transakcí je ušetřit na poplatcích těžařům tím, že se v rámci jedné transakce provede co nejvíce plateb.
Charakteristiky:
Coinjoin zahrnuje spolupráci mnoha uživatelů při provádění jedné transakce, která zvyšuje soukromí účastníků. Tyto transakce jsou snadno identifikovatelné podle shodných OUTPUTS.
Charakteristiky:
V této části si ukážeme interpretace transakcí pro simple spend (1 vstup, 2 výstupy). Tato část se zaměří na nejběžnější interpretaci těchto transakcí, kdy je jeden OUTPUT interpretován jako platba a zbývající OUTPUT je interpretován jako „change“, který se vrátí zpět do původní peněženky. Úplný seznam interpretací podle tohoto modelu je uveden v části III. Cílem této části je seznámit čtenáře s heuristikou používanou k vyhodnocování Simple Spend a detekci change outputs.
Při izolovaném sledování jedné transakce máme k dispozici omezené množství údajů, které jsou v transakci obsaženy. Tyto informace označujeme jako interní data transakce.
Interní transakční data jsou omezena na následující:
Kvůli poplatkům těžařů vyžaduje běžná platba bitcoiny vždy větší OUTPUT, než je zamýšlená částka platby.
Když je spotřebováno jedno UTXO na větší částku, než je zamýšlená částka platby, uživatel obdrží zůstatkové UTXO zpět na adresu vygenerovanou soukromým klíčem jeho peněženky.
Velká část tradiční chain analysis je založena na detekci tohoto change output. Pokud se podaří úspěšně detekovat change output, lze sledovat aktivitu jednoho uživatele v rámci řady transakcí.
V této části budeme detekovat change outputs na základě interních transakčních dat. Heuristiky jsou uvedeny zhruba v pořadí podle klesající přesnosti jejich účinnosti. Budou uvedeny příklady a komentované screenshoty, které pomohou uživatelům při vizualizaci těchto konceptů.
Adresy se vytvářejí pomocí jediného soukromého klíče. Vícenásobné použití stejné adresy je známkou aktivity téhož soukromého klíče.
Při Simple Spend, pokud je jeden OUTPUT na novou adresu a zbývající OUTPUT je na stejnou adresu jako vstupní adresa, víme, že opakovaně použitá adresa je výstupem zůstatku.
Většina bitcoinových peněženek dnes automaticky generuje vždy novou adresu pro příjem change output. Peněženku však lze nakonfigurovat tak, aby přijímala change output na stejnou adresu, jako je vstupní adresa transakce. Toto chování obvykle svědčí o činnosti peněženky s centralizovanou službou (Směnárny) nebo o starých verzích bitcoinové peněženky.
Když uživatel iniciuje platbu, zadá do svého softwaru peněženky cíl platby (adresu), částku platby a poplatek těžařům. Software peněženky vybere vstupní UTXO a vygeneruje change output (pokud existuje).
Change output při jednoduché útratě se vypočítá následujícím způsobem:
Vstupní částka – částka platby – velikost transakce (v vbytes) * poplatek za použití sítě (sat/vbyte)
Uživatel může jen těžko záměrně generovat change output pro „částku s kulatým číslem“. Při Simple Spend transakci je OUTPUT kulatého čísla pravděpodobě platba, která ze zbývajícího OUTPUTu dělá change output.
Existuje několik typů skriptů bitcoinových adres. Čtenáři budou nejčastěji znát následující typy skriptů:
Pokud je pro daný typ vstupního skriptu jeden output stejný typ jako input a zbývající output na nový typ adresního skriptu, je tento output na nový typ adresního skriptu pravděpodobně platbou.
Což z OUTPUT na stejný typ adresního skriptu dělá pravděpodobný change output.
Jinými slovy, OUTPUT na jiný typ skriptu je pravděpodobně OUTPUT platby. Tuto heuristiku lze také kombinovat s heuristikou pro platbu kulatým číslem.
Další jednoduchá heuristika předpokládá, že největší output amount je pravděpodobně change output. Jedná se o jednu z nejslabších heuristik, zejména pokud je používána samostatně, ale jak probereme v části 2, tato heuristika může být užitečná při analýze transakčního grafu.
V této části jsme představili mnoho základních pojmů týkajících se soukromí bitcoinových transakcí. Pseudonymní bitcoin poskytuje základní úroveň soukromí, která není přímo spojena s osobními identifikačními údaji.
Otevřenost bitcoinového protokolu však umožňuje sledování všech bitcoinových transakcí. Tento koncept se obecně označuje jako chain analysis neboli „transakční analýza“. Chain analysis se soustředí hlavně na detekci change outputs s využitím několika heuristik. Pokud jsou tyto heuristiky úspěšné, umožňují sledovat aktivitu jednoho uživatele v rámci více transakcí.
V části 2 budou představeny základní koncepty chain analysis, jako jsou:
Část 3 se zabývá základními koncepty zlepšování soukromí bitcoinu, včetně:
Část 4 pojednává o následujícím:
Elementární znalost bitcoinových transakcí a porozumnění souvislostem, které při používání Bitcoinu vznikají, jsou nezbytnými základy každého uživatele, který chce Bitcoin používat jako prostředek pro dosažení finanční svobody a svrchovanosti.