Vysvětlení coin mixingu a CoinJoins
Domů
Články
Vysvětlení coin mixingu a CoinJoins

Vysvětlení coin mixingu a CoinJoins

Středně pokročilí
Zveřejněno Mar 25, 2020Aktualizováno Dec 28, 2022
6m

Úvod

Bitcoin je často označován jako digitální hotovost, ale toto srovnání je sporné. Pokud Alice zaplatí Bobovi deset dolarů v hotovosti, Bob netuší, odkud peníze pochází. Pokud je později předá Carol, nebude schopna odvodit, že je předtím vlastnila Alice.
Bitcoin je jiný, protože je ze své podstaty veřejný. Historii daného coinu (přesněji řečeno neutracený výstup transakce neboli UTXO) může snadno sledovat kdokoli. Je to trochu podobné, jako když se na bankovku při každém použití napíše částka transakce a jména účastníků. 
Pseudonymita veřejné adresy však zajišťuje, že identita uživatelů není snadno odhalitelná. Přesto Bitcoin není zcela soukromý. Analýza blockchainu je stále sofistikovanější a dokáže stále efektivněji propojovat adresy s identitami. Vedle dalších sledovacích technik může specializovaný subjekt uživatele kryptoměn deanonymizovat. Aby se to napravilo, objevily se v průběhu let techniky pro zrušení propojení transakcí.


Co je coin mixing?

Obecně řečeno, coin mixing může znamenat jakoukoli činnost, která zahrnuje zastírání finančních prostředků jejich nahrazováním jinými. V oblasti kryptoměn však coin mixing běžně označuje službu poskytovanou třetí stranou. Poskytovatelé služeb obvykle přijímají coiny uživatelů (a malý poplatek) a vracejí coiny, které nemají žádnou souvislost s těmi odeslanými. Tyto služby jsou také známé jako tumblery nebo mixery.

Bezpečnost a anonymita těchto centralizovaných služeb jsou samozřejmě sporné. Uživatelé nemají žádnou záruku, že jim směnárna jejich peníze vrátí nebo že vrácené coiny nejsou nějakým způsobem znehodnocené. Dalším aspektem, který je třeba při používání mixeru zvážit, je skutečnost, že IP adresy a bitcoinové adresy mohou být zaznamenány třetí stranou. V konečném důsledku se uživatelé vzdávají kontroly nad svými prostředky v naději, že obdrží zpět ty nepropojené.

Bezpochyby zajímavější přístup existuje v podobě transakcí CoinJoin, které vytvářejí značnou míru věrohodného popření. To znamená, že po transakci CoinJoin nemůže žádný důkaz s jistotou spojit uživatele s jeho předchozími transakcemi. Mnohá řešení CoinJoin představují decentralizovanou alternativu k mixerům. Ačkoli může být zapojen koordinátor, uživatelé se nemusí vzdát úschovy svých prostředků.


Co je CoinJoin?

Transakce CoinJoin původně navrhl vývojář Bitcoinu Gregory Maxwell v roce 2013. Ve svém vlákně uvádí stručný přehled toho, jak jsou tyto transakce strukturovány a jak lze dosáhnout masivního zvýšení soukromí bez jakýchkoli změn v protokolu.
CoinJoin v podstatě zahrnuje kombinaci vstupů od více uživatelů do jedné transakce. Než si vysvětlíme jak (a proč), podívejme se na strukturu základní transakce.

Transakce Bitcoinu se skládají ze vstupů a výstupů. Když chce uživatel provést transakci, vezme jako vstupy své UTXO, zadá výstupy a podepíše vstupy. Je důležité si uvědomit, že každý vstup se podepisuje samostatně a uživatelé mohou nastavit více výstupů (směřujících na různé adresy).



Pokud se podíváme na danou transakci složenou ze čtyř vstupů (každý ve výši 0,2 BTC) a dvou výstupů (0,7 BTC a 0,09 BTC), můžeme učinit několik různých předpokladů. Prvním je, že sledujeme, jak probíhá platba – odesílatel někomu posílá jeden z výstupů a sobě vrací nějaké drobné. Protože použil čtyři vstupy, větší výstup je pravděpodobně pro příjemce. Všimněte si, že nám na výstupech chybí 0,01 BTC, což je poplatek odevzdaný těžaři.

Je také možné, že odesílatel chce vytvořit velké UTXO z menších, takže konsoliduje menší vstupy, aby dosáhl požadovaného výsledku 0,7 BTC.

Další předpoklad, který můžeme učinit, vychází ze skutečnosti, že každý vstup je podepsán nezávisle. U této transakce mohou vstupy podepisovat až čtyři různé strany. A právě v tom spočívá princip, díky němuž je CoinJoining efektivní.


Jak CoinJoin funguje?

Myšlenka spočívá v tom, že více stran bude koordinovat vytvoření transakce, přičemž každá z nich poskytne vstupy a požadované výstupy. Jakmile se všechny vstupy zkombinují, nelze s jistotou říci, který výstup patří kterému uživateli. Prohlédněte si obrázky níže:



Zde máme čtyři účastníky, kteří chtějí přerušit spojení mezi transakcemi. Koordinují mezi sebou (nebo prostřednictvím specializovaného koordinátora) oznamování vstupů a výstupů, které chtějí zahrnout. 

Koordinátor převezme všechny informace, vytvoří z nich transakci, kterou každý účastník podepíše a poté ji odešle do sítě. Jakmile uživatelé transakci podepíší, nelze ji změnit, aniž by se stala neplatnou. Nehrozí tedy, že by koordinátor s finančními prostředky utekl. 

Transakce slouží jako něco na způsob černé skříňky pro míchání coinů. Nezapomeňte, že efektivně ničíme UTXO, abychom vytvořili nové. Jediné spojení mezi starými a novými UTXO, které máme, je samotná transakce, ale samozřejmě nemůžeme rozlišovat mezi účastníky. V nejlepším případě můžeme říci, že účastník poskytl jeden ze vstupů a je možná novým vlastníkem výsledného výstupu.

Ani to však není v žádném případě zaručeno. Kdo může při pohledu na výše uvedenou transakci říci, že jsou v ní čtyři účastníci? Posílá snad jedna osoba své prostředky na čtyři vlastní adresy? Dvě osoby, které provedly dva oddělené nákupy a každá z nich vrátila 0,2 BTC zpět na své vlastní adresy? Čtyři lidé posílají prostředky novým účastníkům, nebo zpět sobě? Nemůžeme si být jisti.


Ochrana soukromí prostřednictvím popírání

Samotný fakt, že existují implementace CoinJoin, stačí k tomu, aby byly zpochybněny metody používané k analýze transakcí. V mnoha případech můžete odvodit, že došlo k transakci CoinJoin, ale stále nejste o nic moudřejší, pokud jde o to, kdo vlastní výstupy. S jejich rostoucí popularitou se oslabuje předpoklad, že všechny vstupy vlastní stejný uživatel – což je obrovský skok pro soukromí v širším ekosystému.

V předchozím příkladu jsme řekli, že transakce měla množinu anonymity 4 – vlastníkem výstupu mohl být kterýkoli ze čtyř participujících účastníků. Čím větší je množina anonymity, tím menší je pravděpodobnost, že transakce může být spojena se svým původním vlastníkem. Naštěstí nedávné implementace CoinJoin umožňují uživatelům jednoduše spojit své vstupy s desítkami dalších, což poskytuje vysoký stupeň popření. Nedávno byla úspěšně provedena transakce se 100 osobami.


Závěrem

Nástroje pro míchání coinů jsou důležitým doplňkem vybavení každého uživatele, který to myslí se svým soukromím vážně. Na rozdíl od navrhovaných vylepšení ochrany soukromí (jako jsou důvěrné transakce) jsou kompatibilní s protokolem v jeho současné podobě. 

Pro ty, kteří důvěřují integritě a metodologii třetích stran, představují služby míchání snadné řešení. Pro ty, kteří dávají přednost ověřitelné a alternativě bez úschovy, jsou lepší alternativy CoinJoin. Ty lze v případě technicky zdatných uživatelů provádět ručně nebo pomocí softwarových nástrojů, které abstrahují od složitějších mechanismů. Již nyní existuje několik těchto nástrojů, jejichž popularita jen roste s tím, jak uživatelé usilují o větší soukromí.