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
V této příručce jsme se dosud seznámili se základními pojmy, které používá chain analysis, a s pojmy, které se používají k jejímu podkopání.
Je nepravděpodobné, že by se uživatelé, kteří čtou tuto příručku, chtěli stát „experty“ na chain analysis, ale základní pochopení nástrojů a konceptů aktuálně používaných k útoku na soukromí jim umožní lépe chránit své vlastní soukromí.
V této části nejprve představíme reálné dopady odesílání a přijímání transakcí na soukromí uživatelů. Poté představíme konkrétní technologie zvyšující ochranu soukromí, které lze použít k zachování soukromí při interakci s bitcoinem.
Bitcoin je ve svém výchozím nastavení pseudonymní. Bez dodatečných informací, které spojují aktivitu uživatele s on-chain aktivitou, nemá analýza žádný „Starting point“ (výchozí bod) pro sledování příslušné aktivity v bitcoinové síti.
Mezi starting points obvykle patří uživatelé, kteří dobrovolně zveřejňují adresy, jež ovládají. Poskytnuté adresy obvykle slouží k přijímání plateb. Starting points lze také získat z informací poskytnutých třetími stranami, obvykle jsou to dohody o výměně informací mezi surveillance firmami a burzami.
Pro začínající analytiky je k provedení analýzy obvykle nutný určitý „kontext“. Tento cenný kontext často pochází z analýzy jejich vlastních transakcí. Uživatelům, kteří vyhodnocují historii svých vlastních transakcí prostřednictvím block exploreru třetích stran, doporučujeme používat VPN nebo prohlížeč Tor, aby se zabránilo propojení jejich IP adresy s informacemi o transakcích.
Většina uživatelů vyhledává v block exploreru zadáním adresy jako výchozího bodu. Při dotazování OXT s adresou jako Starting pointem se související informace o transakci automaticky nezobrazí. Uživatelé by měli postupovat podle níže uvedených kroků a přejít na graf transakcí.
Zadejte požadovanou adresu do vyhledávacího řádku.
Klikněte na záložku TRANSACTION.
Odtud se vám otevře stránka transakce.
Poznámka: Pokud uživatelé již mají požadované ID transakce, mohou se vyhnout přihlášení do systému OXT a přejít přímo na stránku transakce pro přístup k transakčnímu grafu. Další podrobnosti o práci s transakčním grafem najdete v části II.
Analytici, kterým je předložena výchozí transakce a UTXO, mohou sledovat dva „směry“ vyšetřování.
Mohou hledat „zdroj“ finančních prostředků na základě vyhodnocení historie cílové UTXO. Vyhodnocení zdrojů v transakčním grafu s jedním Inputem je poměrně jednoduché, protože při vyhodnocování, kterou cestou se má Input UTXO ubírat, není třeba činit žádné „rozhodnutí“. Multi Input transakce však předkládají analytikům více zdrojů, které je třeba vyhodnotit.
Analytici mohou také hledat „cílovou destinaci“ budoucích výdajů (future spends) z asociovaného UTXO pomocí heuristiky change detection, uvedené v části I, a externích transakčních dat uvedených v části II.
Poznámka: Toky UTXO by neměly být sledovány napříč custodial službami. Je velmi nepravděpodobné, že by deposite UTXO bylo použito k výplatě subjektu, který deposite provedl.
Při odesílání nebo přijímání platby uživatelé nutně prozradí protistraně část svého souboru UTXO. U naivně spravovaných UTXO to může protistraně odhalit celý zůstatek peněženky uživatele.
Odhalení stavu majetku při provádění plateb je neblahým vedlejším efektem transparentnosti bitcoinu. Negativní důsledky tohoto odhalení protistranám by měly být každému zřejmé, zejména při provádění simple spends.
Kromě toho, platby provedené odesílatelem umožňují příjemci posoudit minulou transakční historii odesílatele. Platby také umožňují odesílateli vyhodnotit budoucí výdaje příjemce za přijatou platbu.
Níže uvedené techniky jsou navrženy tak, aby zmírnily negativní vedlejší efekty transparentnosti bitcoinu.
Velká část chain analysis je založena na následujících základních konceptech:
V části I a II jsme představili základní koncepty chain analysis. V části III jsme představili koncepty používané k podkopání těchto technik.
Tým OXT spolupracuje s vývojáři Samourai Wallet na testování a vytváření technik, které zmírňují již představené nedostatky v ochraně soukromí. Tyto techniky jsou popsány níže.
Při pokusu o sledování aktivit subjektu on-chain potřebují analytici Starting point. To obvykle znamená provázat online aktivity cíle s adresou, kterou zveřejnil pro příjem plateb nebo donations. Z této adresy může analytik vyhodnotit aktivitu uživatele včetně přijatých plateb, celkového zůstatku na adrese nebo jiných spending vzorů.
Uživatelé často sdílejí adresy pro příjem plateb. Sdílené adresy jsou tytéž adresy, které se zobrazují v blockchainu, a lze je prohlížet prostřednictvím kteréhokoli block exploreru.
Namísto výměny přímé adresy pro příjem platby si uživatelé mohou vyměňovat „Stealth addresses“. Stealth adresy jsou založeny na konceptech odvozených z Diffe-Hellmanovy výměny klíčů, což je důležitý kryptografický koncept, který je základem TLS/SSL, jedné z nejdůležitějších forem kryptografie používané k zabezpečení internetové komunikace.
Implementace Stealth adresy v Samourai Wallet je založena na návrhu BIP 47 od Open Bitcoin Privacy Project. Opakovaně použitelné platební kódy BIP 47 umožňují odesílateli vytvořit neomezené množství jedinečných bitcoinových adres pro platbu určenému příjemci, aniž by příjemce musel být online.
Opakovaně použitelné platební kódy připravují analytiky o „bezplatný“ Starting point v bitcoinovém blockchainu. Více informací o opakovaně použitelném platebním kódu Samourai Wallet naleznete zde.
Kombinace Inputů z více zdrojů při future spends může odesílatelům plateb umožnit vyhodnocování transakční historie dalších UTXO v kombinaci s jejich utracenými UTXO.
Pro zmírnění rizika úniku soukromí mohou uživatelé praktikovat „Coin Control“. Obecně se coin control skládá z několika kroků.
Při provádění plateb by si uživatelé měli také zvyknout na označování svých change UTXOs. Po přidání štítku k jednomu UTXO Samourai Wallet automaticky označí všechny další UTXOs (Change Outputs) ze stejné útraty stejným štítkem.
Ricochet je jednoduchý nástroj, který automaticky přidává „skoky“ neboli fiktivní transakce mezi počátečním UTXO a cílem platby. Transakce Ricochet nezakrývají zdroj prostředků ani nerozbíjejí transakční graf. Tyto transakce však zvyšují vzdálenost mezi místem určení platby a předchozí UTXO historií.
Vyhodnocování zdroje prostředků u transakcí s jedním Inputem je relativně snadné, ale přidání „skoků“ vyžaduje, aby přijímající subjekt vyhodnotil historii přesahující bezprostředně přijatý UTXO. Transakční analýzy procházením grafu se provádějí snadno, ale rozšíření historie příchozích UTXO znamená přidání dalších pochybností na základě „modelu UTXO ownership“, což zvyšuje šance na vznik falešně pozitivních výsledků.
Současná verze ricochetu obsahuje čtyři další skoky (HOPs). V budoucích aktualizacích se plánuje „dynamičtější“ ricochet s proměnlivým počtem skoků. Více informací o ricochetu naleznete zde.
STONEWALL a STONEWALLx2 používají stejný coin selection algoritmus pro vytváření transakcí s vlastnostmi coinjoin. STONEWALL je simulovaný coinjoin, který využívá Inputs z individuální peněženky. STONEWALLx2 je „pravý“ coinjoin, který využívá Inputy od 2 navzájem spolupracujících uživatelů/peněženek.
Použití stejného algoritmu znamená, že tyto transakce mají identické on-chain footprints a pro vnější pozorovatele jsou nerozlišitelné. V důsledku toho musí analytici zvážit možnost, že každá STONEWALL transakce je „pravý“ coinjoin.
Algoritmus STONEWALL je rozšířením vlastností transakcí, jehož cílem je překonat heuristiky při simple spend change detection, jako jsou like-type Output scripts a náhodná pozice change Output.
Díky svým coinjoin vlastnostem jsou transakce stonewall schopny porazit heuristickou interpretaci round output payment, kterou nelze porazit při Simple spend. Stonewall tyto heuristiky poráží tím, že vytváří transakce s „fiktivním“ Outputem, rovnajícím se plánované částce platby.
Transakce STONEWALL jsou skutečné platby, které stále obsahují deterministické linky pro své „change“ UTXOs. Protože STONEWALL může být two-wallet coinjoin, protistrana si nemůže být jistá, které change UTXO patří odesílateli transakce odpovědnému za provedení platby a které change UTXO patří kooperující straně coinjoinu.
Jak jsme popsali v části III, transakce payjoin podkopávají heuristiku společného vlastnictví Inputů neboli CIOH. Pokud jednotlivé UTXO nemá dostatečný balance k provedení požadované částky platby, software peněženky zahrne podle potřeby další Input, aby bylo možné požadovanou částku splnit. Analytici mohou potenciálně chybně usuzovat, že Inputy těchto transakcí jsou kontrolovány stejnou peněženkou.
Payjoiny obvykle nemají žádný nerozeznatelný on-chain fingerprint. Tím, že jsou do transakce zahrnuty Inputy od odesílatele a příjemce platby, jsou k jejímu sestavení použity dvě peněženky. Tím se podkopává CIOH a vytváří se „falešný cluster“. V důsledku toho, že příjemce přispívá Inputy do payjoinu transakce, je skryta i skutečná hodnota transakce.
Odesílatelé plateb mohou sledovat budoucí výdaje své platby UTXO a potenciálně získat další informace o složení peněženky protistrany. Příjemci plateb mohou v zájmu zachování svého soukromí provést coinjoin, a přerušit tak vazbu mezi potvrzením o platbě a future spend. Jinými slovy, odesláním UTXO přijatých jako platba prostřednictvím coinjoinu se vytvoří budoucí soukromí.
Whirlpool je jedinou implementací zerolink coinjoinu se 100% entropií. Coinjoiny Whirlpool totiž nezahrnují Outputy „unmixed change“ v rámci transakce coinjoin, které lze jinak použít k dalšímu sledování aktivity uživatele.
Proces transakce Whirlpool začíná transakcí Tx0, která zaplatí poplatek koordinátorovi, vytvoří premix UTXOs, které se rovnají nominální hodnotě poolu plus poplatky těžařům, a nakonec vytvoří oddělený change UTXO.
Inputy do Tx0 by měly být vybírány opatrně, aby nedošlo k propojení UTXO z různých zdrojů. Spojení více zdrojů Inputů totiž prozrazuje společné vlastnictví. S change UTXO by se také mělo zacházet opatrně, aby nedošlo k přímému propojení jakékoli future spending aktivity.
Po coinjoinu a přerušení vazeb mezi jejich původními (premix) UTXO a postmix UTXO si příjemci plateb mohou být jisti, že případní odesílatelé plateb nebudou moci spolehlivě sledovat future spend jejich platebních UTXO.
Bitcoin zachovává základní soukromí uživatelů díky své pseudonymní povaze tím, že nepropojuje identity z reálného světa s aktivitami v blockchainu.
Na úrovni protokolu bitcoinové transakce posílají bitcoiny na transparentní adresy a z nich za transparentní částky. Tato transparentnost vedla k rozšíření blockchain analýzy. Většina toho, co je považováno za chain analysis, zahrnuje payment change detection, analýzu transakčního grafu a určování „wallet clusteringu“ za použití metody CIOH.
Zatímco mnohé z těchto technik se spoléhají na heuristiku, použití externích transakčních informací, jako je „address reuse“ a posílání Inputů do nebo z centralizovaných služeb, může významně oslabit nejednoznačnost jednoduchých bitcoinových transakcí.
Software peněženky mohou zahrnovat náhodný fingerprint a like-type address Outputs, aby se zachovala nejednoznačnost při simple spend. I s použitím těchto nástrojů zůstávají toky bitcoinů on-chain „dohledatelné“ a deterministické. Vhodně zkonstruovaný equal coinjoin zůstává nejlepším způsobem, jak rozbít deterministické vazby a vnést do transakčního grafu věrohodnou popiratelnost.
Je pravděpodobné, že typický uživatel, který čte tuto příručku, se nechce stát odborníkem na chain analysis. Spíše se snaží zlepšit své soukromí při odesílání a přijímání plateb. Při odesílání a přijímání plateb se nevyhnutelně prozradí UTXO set informace o peněžence odesílatele. V důsledku toho jsou odesílatelé a příjemci plateb schopni vyhodnotit příslušné past a future spending těchto již známých UTXOs, což může odhalit další informace o jejich protějšku.
Uživatelé vyzbrojení znalostmi chain analysis jsou lépe připraveni na vyhodnocování dopadů posílání a přijímání bitcoinu, a mohou tak začít podnikat kroky k ochraně svého soukromí.
Mezi tyto kroky patří: nespojovat aktivity v blockchainu s online osobou, vyhýbat se opakovanému používání adres, oddělovat UTXO s různou historií, vytvářet budoucí soukromí pomocí funkce coinjoin a používat již pokročilé spending tools k podkopání heuristiky chain analysis.
Vědomé používání těchto technik může uživatelům umožnit získat základní úroveň soukromí, na které mohou být zvyklí z tradičního finančního systému.
Obecného průvodce soukromím bitcoinů a OXT si vyžádalo mnoho čtenářů. Doufáme, že vám poskytne výchozí bod pro další prohlubování znalostí o důležitém tématu bitcoin privacy.
Teď, když jste vyzbrojeni dalšími znalostmi a souvislostmi z tohoto průvodce, doporučujeme dlouhodobým čtenářům, aby se vrátili k našim předchozím studijním reportům. Zejména dříve přiloženým transakčním grafům.
Prosím, neváhejte nás kontaktovat ohledně jakékoliv zpětné vazby nebo požadavků na další průvodce.
Děkujeme za přečtení and stay safe.
Elementární znalost bitcoinových transakcí a porozumě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.