Bitcoin právě teď je opravdu anonymní. Ačkoli bitcoinové adresy nemusí nutně souviset s identitami reálného světa, mohou být. Monitorování nešifrované sítě peer-to-peer, analýza veřejného blockchainu a politika Know Your Customer (KYC) nebo regulace boje proti praní peněz (AML) mohou odhalit mnoho o tom, kdo používá bitcoin a za co.

To není z hlediska ochrany soukromí skvělé. Uživatelé bitcoinů nemusí nutně chtít, aby svět věděl, kde utrácejí peníze, co vydělávají nebo kolik vlastní, zatímco podniky možná nebudou chtít předávat podrobnosti transakcí konkurenci – abychom jmenovali několik příkladů.

Navíc bitcoiny, které lze vysledovat, případně „poskvrnit“ a které mají potenciálně nižší hodnotu než jiné bitcoiny, jsou v rozporu se zastupitelností. To by mohlo dokonce zpochybnit hodnotovou nabídku bitcoinu jako peníze.

Existují však potenciální řešení pro zvýšení soukromí a zlepšení zastupitelnosti.

Řešení, které už nějakou dobu existuje, je CoinJoin.

Pozadí

Bitcoinový protokol ve své podstatě sestává z transakcí. Všechny tyto transakce jsou na blockchainu zcela veřejné, což znamená, že kdokoli může vidět, které adresy zasílaly bitcoiny na které adresy. Pokud jsou některé z těchto adres spojeny s identitami skutečného světa, může to odhalit, kdo s kým obchodoval – nebo za co. To je v rozporu s ochranou soukromí a – zejména – zastupitelnosti.

Kromě toho každá konkrétní transakce utrácí jeden nebo několik „vstupů“, které odkazují na adresy, ze kterých jsou odesílány bitcoiny. (Tyto vstupy jsou utráceny za „výstupy“, odkazující na adresy, na které jsou bitcoiny odesílány.) To představuje další výzvu pro soukromí a zastupitelnost, protože všechny vstupní adresy by obvykle patřily stejnému uživateli: odesílateli transakce. Pokud lze dokonce jednu ze všech seskupených vstupních adres propojit se skutečnou identitou, pak všechny.

CoinJoin – navrhováno v roce 2013 Bitcoinové jádro a Blockstream vývojář Gregory Maxwell – je navržen k řešení obou těchto problémů. Zamlžuje stopu bitcoinů a ruší předpoklad, že všechny vstupní adresy patří stejnému uživateli.

Idea

Koncept CoinJoin je poměrně přímočarý.

CoinJoin v zásadě umožňuje více uživatelům kombinovat všechny vstupy a výstupy z několika transakcí do jedné velké transakce. Tato jediná transakce utrácí bitcoiny z různých adres na různé adresy – a protože žádná z odesílajících adres neplatí žádnou z přijímajících adres konkrétně; mezi nimi není žádná vazba.

(To lze přirovnat ke skupině lidí, kteří hodí své peníze dohromady a jdou nakupovat. I když se každý může ujistit, že nikdo neutratí více, než by měl, nakupující nemusí nutně utrácet přesné účty, které původně vložili do sdílené peněženky .)

V bitcoinech toho lze dosáhnout naprosto bezpečně. Všechny vstupy vyžadují odpovídající podpis od příslušného vlastníka, zatímco obsah transakce nelze po přidání podpisu změnit. Účastníci transakce CoinJoin jako tak jednoduše oznámí, které vstupy a výstupy chtějí do transakce zahrnout, a podepíší agregát, pouze pokud jsou tyto vstupy a výstupy správně zahrnuty. Jakmile všichni účastníci podepsali (a pouze poté, co podepsali), transakce se vysílá.

Klíčový rys CoinJoin: jakmile je transakce vysílána a zahrnuta do blockchainu, neexistuje způsob, jak zjistit, které bitcoiny šly kam; ani příjemci transakce nebudou vědět, z jakých adres dostali zaplaceno.

CoinJoin navíc zlepšuje soukromí i těch, kteří jej vůbec nepoužívají. Protože kombinace vstupů již nutně neznamená, že všechny vstupní adresy patří stejnému uživateli, stalo se shlukování obecně méně výkonným analytickým nástrojem.

V praxi

CoinJoin nevyžaduje žádné změny v bitcoinovém protokolu a existuje již několik jeho implementací. Hlavní rozdíl mezi některými verzemi je v tom, jak je vytvořena transakce CoinJoin.

Nejjednodušší způsob, jak vytvořit transakci CoinJoin, je prostřednictvím dedikovaného serveru. Každý, kdo chce použít CoinJoin, se jednoduše připojí k serveru a uvede, které vstupy a výstupy by transakce měla zahrnovat. Server poté vytvoří velkou agregovanou transakci a odešle ji zpět všem účastníkům k podpisu. DarkWallet – bitcoinová peněženka zaměřená na soukromí, která se zdá uvízlá ve své alfa fázi – využívá serverový model, stejně jako populární Blockchain webová peněženka, i když její účinnost byla ptal se v minulosti.

Hlavní problém se serverovým modelem spočívá v tom, že kdokoli ovládá server, má obvykle přístup k datům poskytnutým jednotlivými účastníky. Tento server jako takový představuje jediný bod selhání z hlediska ochrany osobních údajů a zastupitelnosti. Existují potenciální řešení pro kryptografické maskování údajů o transakcích i ze serveru, ale zatím je to pouze teoretické.

Existují také decentralizovaná řešení CoinJoin, která vytvářejí transakce CoinJoin peer-to-peer, nebo alespoň bez konkrétního centrálního zprostředkovatele. V tomto směru došlo k několika pokusům, včetně Coinmux, Coinjumble, CoinJoiner a bývalý vývojář DarkWallet Amir Taaki’s Nástroj CoinJoin. Ale žádný z nich není široce používán, a proto není příliš užitečný – „coinjoining“ má smysl pouze tehdy, když je někdo, s kým se spojit.

Novější přístup ke strategii CoinJoin, která má v úmyslu tento problém vyřešit, je Připojte se na trh: tržiště transakcí CoinJoin. Uživatelé mohou nabídnout místo v transakci CoinJoin na oplátku za malý poplatek – nebo si mohou koupit přístup k transakci CoinJoin sami. Tvůrci JoinMarket věřit že motivace míchat coiny výměnou za poplatky by měla generovat dostatek likvidity, aby byl trh úspěšný – zatímco jeho konkurenční povaha by měla udržovat nízké poplatky. Ve skutečnosti je JoinMarket relativně dobře využíván ve srovnání s alternativami a kniha objednávek (v době psaní) nabízí tisíce bitcoinů, se kterými se můžete smíchat.

A konečně další peněženka zaměřená na soukromí, Samourai peněženka, v současné době zahrnuje typ imitace CoinJoin, který je navržen tak, aby odhodil kohokoli, kdo analyzuje data blockchainu. Tato možnost umožňuje, aby se transakce zobrazovaly jako transakce CoinJoin, zatímco ve skutečnosti všechny vstupy a výstupy patří stejnému uživateli. (Peněženka Samourai plánuje v průběhu tohoto roku rozšířit možnosti míchání vestavěných a cross-peněženek, které by mohly také využívat funkce CoinJoin.)

Nevýhody a kompromisy

CoinJoin může být užitečný – není to dokonalé.

Nejdůležitější je, že zatímco CoinJoin odvádí skvělou práci při mixování vstupů a výstupů, není to dostačující, pokud částky odhalují. Pokud jeden vstup pošle 4,9 bitcoinu, další vstup pošle 2,7 bitcoinu a třetí vstup pošle 0,8 bitcoinu, zatímco jeden výstup obdrží 4,9 bitcoinu, jeden dostane 2,7 bitcoinu a třetí obdrží 0,8 bitcoinu, pak je snadné připojit vstupy na výstup.

Potenciální řešení tohoto problému samozřejmě existuje Důvěrné transakce. Protože Důvěrné transakce maskují odeslané částky (nikoli však vstupy a výstupy), jsou CoinJoin a Důvěrné transakce potenciálně výkonnou kombinací.

Dalším rizikem je riziko Útoky Sybil. Zdánlivě více účastníků transakce CoinJoin může být ve skutečnosti jednou a stejnou entitou, která sleduje konkrétního účastníka.

(Pokud devět z deseti vstupů a výstupů patří jednomu agentovi NSA, který si zasílá bitcoiny, věděl by, který zbývající výstup poslal bitcoiny, kterému zbývajícímu výstupu.)

Neexistuje snadné řešení problému útoků Sybil, ale s tím, jak si více originálních uživatelů mísí své coiny, je úspěšně úspěšně je vytáhnout.

Což nás přivádí k dalšímu bodu: CoinJoin je stále problém. Téměř žádná peněženka to nemá zabudované a ty, které se příliš nepoužívají (a spoléhají se na centrální server.) JoinMarket je pravděpodobně dosud nejúspěšnější implementace, ale stále vyžaduje speciální software a další poplatky (i když malé).

Ale zajímavý vývoj na obzoru by mohl tyto pobídky zkomolit: Schnorr podpisy. Povoleno Segregated Witness, podpisy Schnorr by mohly umožnit agregaci všech podpisů v transakci CoinJoin do jediného podpisu. Tato efektivita by měla vyústit v nižší transakční poplatky za vstup a možná stimulovat použití nejvíce soukromého a zastupitelného řešení.

Díky Gregory Maxwellovi za přidanou zpětnou vazbu.