Hlavní navigace

Nedostatečná vyměnitelnost a slabá privátnost Bitcoinu je čím dál vážnějším problémem

16. 12. 2020
Doba čtení: 11 minut

Sdílet

 Autor: Depositphotos
Bitcoin se zrodil jako pseudonymní systém, transakční transparentnost je dnes neodmyslitelnou součástí jeho designu a není tak dávno doba, kdy byla obhajována jako jedna z jeho velkých výhod. Časy se ale mění.

Snadná dohledatelnost historie transakcí byla dlouho prezentována jako jeden z výdobytků blockchainu. Přesto se o jejích negativních dopadech na fungibilitu (vyměnitelnost – jednu z esenciálních vlastností dobrých peněz) jednotlivých bitcoinů od počátků hovořilo. Léta se ovšem tato diskuze nesla hlavně v rovině intelektuálních úvah. 

V podobném duchu se donedávna hovořilo také o zapnutí vyšší míry anonymity na první vrstvě. Jenže s tím, jak Bitcoin rychle získal mainstreamovou pozornost, nejprve koncových uživatelů a později institucí, z abstraktního problému se stal velice rychle problém reálný a přístup komunity se postupně mění.

Zdvižený (varovný) prst

Centralizované mixéry kryptoměn byly v hledáčku úřadů již dlouho, jejich explicitní kriminalizace s odkazem na AML zákony (zákony proti praní špinavých peněz) je ale záležitost relativně nová. 

Letos v říjnu například vzbudil v komunitě rozruch obří pokuty (60 milionů dolarů) pro mixér Helix ze strany amerického FinCEN. Ani decentralizované služby tohoto typu (například Wasabi Wallet využívající trustless CoinJoin transakce skrze Tor) ale nemají zrovna na růžích ustláno. Investorské fondy, které podobnými mixéry prošly, jsou odmítány burzami. 

Objevují se také oficiální blacklisty konkrétních bitcoinových adres, a to je poměrně velmi znepokojivý trend. Zatím se tak sice děje hlavně za velkou louží, například Francie se svým novým návrhem na přísnější dohled nad libovolnými kryptoměnovými transakcemi ale není za USA příliš pozadu.

Kdo za to může

Na vině je do značné míry rychle rostoucí popularita služeb na obfuskaci bitcoinových transakcí mezi podvodníky. Podle reportu britské společnosti Elliptic se dnes více než 13 % všech výnosů z trestné činnosti spojené s bitcoiny nechává prohnat právě podobnými službami. Ještě loni to přitom bylo pouze něco okolo 2 %.

Právě trustless privacy peněženky si oblíbili zločinci nejvíce. Mezi jejich velkou výhodu totiž patří eliminace rizika krádeže/zabavení fondů provozovatelem nebo vložení kryptoměn do honeypotu oficiálních úřadů. Za letošní rok mělo být přes privacy peněženky vypráno jen bitcoinů asi za 160 milionů dolarů. 

Například již zmiňovaná Wasabi Wallet figurovala v praní větší části obnosu z letošního Twitter scamu s prominentními uživatelskými účty, ale také u zářijového hacku burzy KuCoin. Podobná popularita dělá těmto nástrojům medvědí službu a nic nepomůže, že se zatím mnohem častěji využívají k legitimním scénářům.

Řešení v dohlednu, nebo dokonce přímo před očima?

Pochopit lze jak motivaci regulátorů, tak i kriminálníků, neoddiskutovatelným faktem ale zůstává, že jejich počínání dohromady ohrožuje jeden z fundamentálních principů „systému peer to peer elektronické hotovosti“, jak Bitcoin nazval ve svém legendárním whitepaperu Satoshi Nakamoto. Přestože je současný bitcoin mnohem více vzácnou komoditou než měnou, na jeho základních stavebních kamenech se nic nemění, a pokud by přeci jen mělo, bylo by to s fatálními následky pro všechny participanty sítě. Jak z toho ven?

Bitcoin se chtě nechtě dotýká oficiálního finančního systému na více místech, než by bylo leckomu milé, a tak regulace bude přitvrzovat a vzdorovat proti tomu je trochu dětinské. Ponechat situaci jen tak by ale také bylo chybou a vývojáři a další účastníci sítě si to naštěstí uvědomují. Bitcoin je kus počítačového kódu. To má řadu výhod, lze jej například snadno upravit, v demokratickém režimu je extrémně obtížné jej zakázat, a hlavně – může se vyvíjet a to se také děje.

V ideálním světě by měl samozřejmě Bitcoin povinnou anonymitu (privátnost) na první vrstvě, pak bychom tu současný problém nemuseli vůbec řešit. Jsou věci, o kterých se totiž smlouvat nemá. V ideálním světě nicméně nežijeme. Podobná ostrakizace ale naštěstí vyvolává protiakci ve snaze podobné vlastnosti do sítě alespoň dodatečně doplnit. Ta samozřejmě nepřichází až nyní, rozhodně ale časem zesiluje.

Řada technologií pro zvyšování transakčního soukromí je zde s námi přitom prakticky od kryptoměnového pravěku – pomineme-li relativně nebezpečné centralizované mixéry, které pomalu, ale jistě míří na smetiště dějin, vždy tu byla možnost využívat vlastní fullnode v kombinaci s jednorázovými adresami, stealth adresy, služby jako Coin Control, JoinMarket (využívající principu CoinJoinu) nebo třeba Ricochet, a v posledních letech dokonce Chaumian CoinJoin.

Letošní rok ale v tomto ohledu přeci jen přinesl něco, co zde již dlouho nebylo. Úpravu protokolu, o které je nutné hlasovat, neboť si žádá změnu na úrovni úpravy konsensus protokolu. 

V lednu totiž přišel jeden z nejaktivnějších Bitcoin Core vývojářů (a spoluzakladatel společnosti Blockstream) Pieter Wuille s návrhem implementovat do první vrstvy bitcoinového protokolu Taproot (BIP 341), technologii, která přináší přímo do bitcoinového protokolu výrazné zlepšení ochrany transakčního soukromí. 

Návrh představil spolu s implementací Schnorr Signatures (BIP 0340) a rychle si jimi naklonil většinu zbývajících Bitcoin Core přispěvatelů. Do ladění se pustila spousta v komunitě zvučných jmen (Anthony Towns, Johnson Lau, Jonas Nick, Andrew Poelstra, Tim Ruffing, Rusty Russell či Gregory Maxwell). V současnosti již probíhá hlasování minerů o aktivaci Taprootu formou softforku, pro je přitom již 82,6 % hashpower v síti, takže k ní velmi pravděpodobně dojde velmi brzy. 

Taproot a Schnorrovy podpisy, aby všechny transakce vypadaly stejně

O Schnorrových podpisech coby elegantním řešení, jak odlehčit první vrstvě bitcoinového protokolu a získat přitom navíc trochu soukromí, jsme podrobně na Lupě psali hned v lednu a pak znovu v srpnu v souvislosti právě v souvislosti s technologií Taprootu. Jedna z výhod Schnorr Signatures (podle vynálezu Clause-Petera Schnorra z konce 80. let 20. století, byť samotný objev stojí z velké části také na pracích Davida Chauma, Tahera Eigamala, Amose Fiata a Adi Shamira) ve vztahu k soukromí spočívá v tom, že všechny transakce v jejich podání vypadají stejně.

Proč je to výhoda? Nepoznáte tak totiž, zda se jedná o běžnou transakci, nebo o MultiSig transakci. Problém dnešních bitcoinových transakcí z hlediska ochrany soukromí je ten, že lze u již utracených transakcí vidět podmínky, které byly stanoveny pro utracení kontraktu. Díky tomu je například možné celkem snadno rozlišit jednoduché transakce (podpis jedním klíčem) od složitějších chytrých kontraktů s časovými zámky, více podpisy (multisig), případně kombinací těchto a dalších podmínek.

Z této výhody Schnorr Signatures lze benefitovat především po propojení s dalšími technologiemi, jako je právě Taproot, nebo třeba Graftroot. 

Zatímco podmínky samotné nejsou před utracením transakce veřejně viditelné, v momentě, kdy se dostane transakce do blockchainu, je již situace jiná, majitel (nebo majitelé) transakce musí odhalit celý skript a jeho řešení, aby bylo možné ověřit, že skutečně došlo ke splnění podmínek pro utracení. Dochází přitom (typicky u multisig transakcí) k odhalení celého řešení, tedy i podmínek, které splněny nebyly (k utracení jsou například potřeba dva podpisy a nesmí k němu dojít před určitým datem, majitelů klíčů je ale více). 

To přináší hned několik nevýhod. První z nich je zbytečný nárůst posílaných dat, druhou pak, že je to velmi špatné řešení z hlediska ochrany soukromí. Útratou se totiž odhalí všechny možné způsoby, jak bylo možné transakci utratit, z čehož společnosti zabývající se blockchainovou analýzou dovedou odvodit spoustu zajímavých věcí (například jaká byla použita peněženka, kdo další mohl prostředky utratit atd.).

To lze teoreticky obejít tak, že všechny podmínky útraty transakce individuálně zahashujeme a vložíme do tzv. Merklova stromu, který z nich vytvoří jeden hash (Merkle root). Pokud následně dojde k útratě transakce, stačí k jejímu ověření jen samotný Merkle root. Ten postačuje k ověření toho, že v něm byla určitá specifická data obsažena, a neodhaluje přitom zbytek v něm zahashovaných dat. Dojde tak pouze k odhalení splněné podmínky a také k tomu, že byla pro danou transakci tato datová struktura využita. Takovému řešení se říká MAST (Merkelized Abstract Syntax Tree). Taproot a Schnorr pak dokáží celý proces vylepšit tím, že z utracené transakce nelze poznat, že byla MAST syntaxe vůbec užita.

V případě Schnorru dochází k agregaci více podpisů do jednoho, stejného triku lze využít právě u multisig transakcí, které pak vypadají jako jednoduché. Taproot pak využívá vlastností Schnorru, aby toto řešení ještě vylepšil. Zatímco Schnorr do bitcoinového protokolu přidává nový typ podpisu, Taproot na tom staví zavedením nové verze transakčního výstupu a nového způsobu definování podmínek utracení transakce. Jinými slovy jde o další sadu instrukcí, jak definovat podmínky utracení, která dokáže dokonale skrýt, jak složitá struktura (skript) se za transakcí skrývá.

Můžeme například daný pár klíčů (teď trochu zjednodušuji) vynásobit dvěma. Klíče budou stále platné a schopné podepsat transakci a při pohledu zvenku přitom nikoho ani nenapadne, že jsme klíče daným způsobem vylepšili. Navenek totiž budou vypadat jako jakékoli jiné páry klíčů. Díky Taprootu pak vypadá jakýkoli kooperativní výstup (včetně třeba uzavírání Lightning Network kanálů – varianta 2-of-2 multisig, nebo atomic swapů) na blockchainu jako jednoduchá transakce.

Taproot obsahuje vlastní verzi Merklova stromu nazvanou „script tree“. Ten, kdo definuje podmínky utracení transakce, může volit mezi útratou s pubkey (běžná transakce) a útratou se skriptem. Důležité je, že Merkle root stromu je v Taprootu skrytý a umožňuje přímé utrácení. Na blockchain míří jediný klíč a nikdo nevidí zbylé podmínky transakce.

Zjednodušeně řečeno, zatímco Schnorr zajišťuje, aby transakce s více podpisy (multisig) vypadaly jako „obyčejné “ Pay-to-Public-Key-Hash transakce, přidání Taprootu rozšiřuje množinu transakcí, které mohou ve finále na blockchainu vypadat podobně. V praxi tak již (doufejme) vůbec nebude možné rozlišit Pay-to-Public-Key-Hash od Pay-to-Script-Hash transakcí. Výsledkem je větší ochrana soukromí i úspora místa v blockchainu.

Když už je řeč o lepší ochraně soukromí, Taproot otevírá dveře také dalším vylepšením, například použití tzv. Adaptor Signatures u Atomic Swapů (metoda P2P výměny kryptoměn mezi dvěma stranami). Ty pak lze využít podobně, jako je dnes využíván mechanismus CoinJoin (způsob kombinování více plateb z různých zdrojů do jedné transakce), tedy coby mixovací nástroj. Také tyto transakce se budou na blockchainu jevit jako jakákoli jiná běžná transakce. Samotný CoinJoin ostatně může ze Schnorrových podpisů opět benefitovat, i když jinak, než bychom možná čekali. Díky schopnosti z více podpisů udělat jeden budou CoinJoin transakce výrazně menší a tím pádem se začne smazávat ekonomická incentiva používat nemixované transakce. Doporučený poplatek minerům se totiž nebude příliš lišit od toho u klasické transakce.

Vylepšený CoinJoin – vychvalovaná i zatracovaná technologie

Samotný CoinJoin je myšlenka na poměry kryptoměn velmi stará, její kořeny sahají až do roku 2013, kdy její implementaci do bitcoinového protokolu poprvé navrhl Gregory Maxwell. Princip je poměrně jednoduchý – někdo zkombinuje více transakcí do jedné velké, čímž se ztíží čitelnost toho, které „inputy“ patří ke kterým „outputům“. Jinými slovy, z kterých adres odešly bitcoiny a kam. 

Jedinou (velkou) slabinou původního řešení je, že někdo musí transakci vytvořit a taková osoba je logicky potenciální slabinou systému, neboť ví, ze kterých adres bitcoiny odešly a kam (jinak by nebylo možné transakci vůbec vytvořit). Akademické řešení tohoto problému existovalo od počátku, jmenuje se Chaumian CoinJoin (na počest kryptografa David Chauma a jeho ideje blind signatures), s implantací to ovšem již je horší. 

Řešení opět není dokonalé, protože pracuje s ideou centralizovaného bodu – Chaumian CoinJoin serveru, ale je o několik kroků dále než klasický CoinJoin. Účastníci transakce se nejprve připojí k serveru a dají k dispozici v zaslepené podobě své adresy (pro příjem i ty odchozí), ty server kryptograficky podepíše. Následně se účastníci transakce odhlásí a znovu přihlásí skrze anonymizující službu (třeba Tor) s nezaslepenými adresami. Ty server ověří proti původně vloženým adresám a proběhne samotná transakce. Mechanismus znemožňuje podvržení adresy vnějšího útočníka do procesu, a to bez nutnosti vědět, komu která z adres patří. 

První převedení tohoto nápadu do praxe se objevilo ve formě softwarového frameworku ZeroLink Adama Ficsora. Uživatelsky přívětivější implementace pak lze otestovat v na začátku zmiňované peněžence Wasabi Wallet, nebo u konkurenční privacy peněženky Samourai Wallet, která obsahuje dokonce jeho mobilní implementaci jménem Whirlpool. Mixovat bitcoiny přímo v kapse vašich džín? Proč ne. Nutno ale dodat, že právě Chaumian CoinJoinu vděčíme za současný zvýšený zájem autorit o obfuskační technologie v Bitcoinu.

Jak znepříjemnit špehování provozu v peer-to-peer síti

Oblíbenou technikou deanonymizace uživatelů Bitcoinu je provoz vlastních „špionážních“ nodů, které významně usnadňují vytrasování původce transakce. Idea za touto myšlenkou je jednoduchá, k (přibližnému) určení původce transakce postačí zjistit, který node transakci do sítě vyslal jako první. Tuto slabinu se snaží vyřešit návrh jménem Dandelion (BIP 156), poprvé představený v roce 2017.

Interka tip

Řešení vzniklé v rámci společného akademického výzkumu na Carnegie Mellon University, University of Illinois a MIT, odpovídá na tento druh útoku tak, že mění způsob, jakým se transakce v síti šíří. Za normálních okolností node vyšle transakci a nejbližší nody ji přeposílají dále (vždy co největšímu množství nodů). V případě Dandelionu je ale schéma o trochu více chaotické. Transakce je nejprve poslána pouze jednomu přímému nodu, ten následně náhodně rozhodne, zdali ji stejně náhodně předá dalšímu jednomu dále, nebo ne. Pokud ano, stejná volba se přenáší na další přímý node. Pokud ale ne, nastane klasický scénář, kdy node rozešle transakci všem nodům, na které vidí, a celý algoritmus se opakuje na jejich straně. Může to působit jako drobnost, ale podobný postup výrazně stěžuje trackovatelnost prapůvodce transakce v síti. V úspěšné implementaci Dandelionu Bitcoin letos předběhlo Monero. Třeba se jej ale nakonec také dočkáme.

Co říci závěrem? Sebelepší technologie pro ochranu soukromí ve veřejné peer-to-peer síti bude v konečném výsledku k ničemu, pokud bude pouze volitelná. Současný tlak na deanonymizaci bitcoinových transakcí nahrává implementaci řešení, která jdou naštěstí opačnou cestou. 

Autor článku

Redaktor serveru Lupa.cz a expert na blockchain a kryptoměny. Jako šéfredaktor v minulosti vedl ADASTRA Business Intelligence Magazine a server ITbiz.cz.