Czym jest Coin Mixing i CoinJoin
Strona G艂贸wna
Artyku艂y
Czym jest Coin Mixing i CoinJoin

Czym jest Coin Mixing i CoinJoin

Zaawansowany
Opublikowane Mar 25, 2020Zaktualizowane Dec 28, 2022
6m

Wprowadzenie

Bitcoin jest cz臋sto nazywany cyfrow膮 got贸wk膮, ale jest to w膮tpliwe por贸wnanie. Je艣li Alice zap艂aci Bobowi dziesi臋膰 dolar贸w w got贸wce, Bob nie ma poj臋cia, sk膮d pochodz膮 dostarczone pieni膮dze. Je艣li p贸藕niej przeka偶e je Carol, w 偶aden spos贸b nie b臋dzie mog艂a wywnioskowa膰, 偶e Alice by艂a kiedy艣 w ich posiadaniu.
Bitcoin jest inny ze wzgl臋du na jego nieod艂膮czny publiczny charakter. Historia danej monety (a dok艂adniej, niewydany output transakcji lub UTXO) mo偶e by膰 obserwowana przez ka偶dego. To troch臋 jak zapisanie kwoty transakcji i nazwisk uczestnik贸w na rachunku za ka偶dym razem, gdy jest on u偶ywany.聽
To powiedziawszy, pseudonimowo艣膰 adresu publicznego zapewnia, 偶e to偶samo艣ci u偶ytkownik贸w nie s膮 艂atwo ujawniane. Mimo to Bitcoin nie jest ca艂kowicie prywatny. Metody analizy blockchain贸w staj膮 si臋 coraz bardziej wyrafinowana i umo偶liwiaj膮 efektywniejsze 艂膮czenie adres贸w z to偶samo艣ciami u偶ytkownik贸w. Opr贸cz innych technik nadzoru dedykowany podmiot mo偶e deanonimizowa膰 u偶ytkownik贸w kryptowalut. Aby temu zaradzi膰, na przestrzeni lat pojawi艂y si臋 techniki zacieraj膮ce wszelkie po艂膮czenia mi臋dzy adresami i transakcjami.


Czym jest Coin Mixing?

M贸wi膮c og贸lnie, mieszanie monet (coin mixing) mo偶e odnosi膰 si臋 do ka偶dego dzia艂ania, kt贸re obejmuje zaciemnianie funduszy przez zast膮pienie ich innymi. Jednak w przestrzeni kryptowalut mieszanie monet zwykle oznacza us艂ug臋 艣wiadczon膮 przez firm臋 zewn臋trzn膮. Us艂ugodawcy bior膮 monety u偶ytkownik贸w (i niewielk膮 op艂at臋) i zwracaj膮 monety, kt贸re nie maj膮 偶adnego po艂膮czenia z wysy艂anymi. Us艂ugi te s膮 r贸wnie偶 znane tumblery lub miksery kryptowalut.

Oczywi艣cie bezpiecze艅stwo i anonimowo艣膰 takich scentralizowanych us艂ug jest w膮tpliwa. U偶ytkownicy nie maj膮 gwarancji, 偶e ich pieni膮dze zostan膮 zwr贸cone przez mikser lub 偶e przekazane monety nie zostan膮 w 偶aden spos贸b "ska偶one". Dodatkowym aspektem do rozwa偶enia podczas korzystania z miksera jest to, 偶e IP i bitcoinowe adresy mog膮 by膰 rejestrowane przez stron臋 trzeci膮. Ostatecznie u偶ytkownicy rezygnuj膮 z kontroli swoich funduszy w nadziei na odzyskanie niepowi膮zanych 艣rodk贸w i zachowanie prywatno艣ci.

Prawdopodobnie bardziej interesuj膮ce podej艣cie istnieje w postaci transakcji CoinJoin, kt贸re stwarzaj膮 znaczny stopie艅 prawdopodobnej zaprzeczalno艣ci. Po skorzystaniu z technologii CoinJoin nie istnieje 偶aden dow贸d, dzi臋ki kt贸remu mo偶na by powi膮za膰 u偶ytkownika z jego poprzednimi transakcjami. Wiele rozwi膮za艅 CoinJoin stanowi zdecentralizowan膮 alternatyw臋 dla scentralizowanych mikser贸w kryptowalut. Chocia偶 mo偶e by膰 zaanga偶owany koordynator, u偶ytkownicy nie musz膮 po艣wi臋ca膰 opieki nad swoimi 艣rodkami stronie trzeciej.


Co to jest CoinJoin?

Transakcje CoinJoin zosta艂y pierwotnie zaproponowane przez dewelopera Bitcoina, Gregory'ego Maxwella w 2013 roku. W swoim w膮tku da艂 on kr贸tki przegl膮d struktury tych transakcji i tego, jak mo偶na osi膮gn膮膰 ogromne zyski w zakresie prywatno艣ci bez wprowadzania fundamentalnych zmian w protokole.
Zasadniczo technologia CoinJoin obejmuje kombinacj臋 danych wej艣ciowych wielu u偶ytkownik贸w w jednej transakcji. Zanim wyja艣nimy, jak (i dlaczego), sp贸jrzmy na to, jak dok艂adnie zbudowana jest zwyk艂a transakcja bitcoinami.

Transakcje Bitcoin sk艂adaj膮 si臋 z wej艣膰 i wyj艣膰. Gdy u偶ytkownik chce dokona膰 transakcji, przyjmuje swoje dane UTXO jako dane wej艣ciowe, okre艣la dane wyj艣ciowe i podpisuje dane wej艣ciowe. Wa偶ne jest, aby pami臋ta膰, 偶e ka偶de wej艣cie jest podpisane niezale偶nie, a u偶ytkownicy mog膮 ustawi膰 wiele wyj艣膰 (pod r贸偶nymi adresami).



Je艣li spojrzymy na dan膮 transakcj臋 sk艂adaj膮c膮 si臋 z czterech danych wej艣ciowych (0,2 BTC ka偶da) i dw贸ch wynik贸w (0,7 BTC i 0,09 BTC), mo偶emy przyj膮膰 kilka r贸偶nych za艂o偶e艅. Po pierwsze, obserwujemy, jak odbywa si臋 p艂atno艣膰 鈥 nadawca wysy艂a komu艣 jedno z wyj艣膰 i zwraca cz臋艣膰 reszty sobie. Poniewa偶 u偶yto czterech wej艣膰, wi臋kszy output jest prawdopodobnie dla odbiorcy. Pami臋taj, 偶e brakuje nam 0,01 BTC na wyj艣ciu, kt贸re zosta艂y przekazane jako op艂ata dla g贸rnika obs艂uguj膮cego transakcj臋.

Mo偶liwe jest r贸wnie偶, 偶e nadawca chce utworzy膰 du偶y UTXO z mniejszych, wi臋c konsoliduje mniejsze wej艣cia, aby uzyska膰 po偶膮dany wynik, w postaci 0,7 BTC.

Kolejne za艂o偶enie, kt贸re mo偶emy przyj膮膰, opiera si臋 na fakcie, 偶e ka偶de wej艣cie zosta艂o podpisane niezale偶nie. Ta transakcja mo偶e obejmowa膰 do czterech r贸偶nych stron podpisuj膮cych dane wej艣ciowe. I na tym polega zasada, kt贸ra sprawia, 偶e CoinJoining jest skuteczny.


Jak dzia艂a CoinJoin?

Chodzi o to, 偶e wiele stron b臋dzie koordynowa膰 swoje dzia艂ania, aby utworzy膰 transakcje, z kt贸rych ka偶da zapewnia dane wej艣ciowe i po偶膮dane wyniki. Poniewa偶 wszystkie dane wej艣ciowe s膮 po艂膮czone, nie mo偶na z ca艂膮 pewno艣ci膮 stwierdzi膰, kt贸re dane wyj艣ciowe nale偶膮 do kt贸rego u偶ytkownika. Rozwa偶my poni偶szy schemat:



Tutaj mamy czterech uczestnik贸w, kt贸rzy chc膮 zerwa膰 powi膮zanie mi臋dzy transakcjami. Koordynuj膮 dzia艂ania mi臋dzy sob膮 (lub za po艣rednictwem dedykowanego koordynatora), aby nada膰 wej艣cia i wyj艣cia, kt贸re chcieliby uwzgl臋dni膰.聽

Koordynator we藕mie wszystkie te informacje, przekszta艂ci je w transakcj臋 i poprosi ka偶dego uczestnika o podpisanie przed transmisj膮 do sieci. Po podpisaniu przez u偶ytkownik贸w transakcji nie mo偶na modyfikowa膰 bez utraty wa偶no艣ci. Dlatego nie ma ryzyka, 偶e koordynator ucieknie z funduszami.聽

Transakcja s艂u偶y jako co艣 w rodzaju czarnej skrzynki do mieszania kryptowalut. Pami臋taj, 偶e skutecznie niszczymy UTXO, aby tworzy膰 nowe. Jedynym 艂膮czem mi臋dzy starym a nowym UTXO, kt贸ry mamy, jest sama transakcja, ale oczywi艣cie nie mo偶emy rozr贸偶ni膰 jej uczestnik贸w. W najlepszym wypadku mo偶emy powiedzie膰, 偶e uczestnik poda艂 jedn膮 z danych wej艣ciowych i by膰 mo偶e jest nowym w艂a艣cicielem wyj艣cia.

Ale nawet to nie jest w 偶aden spos贸b gwarantowane. Kto powie, patrz膮c na powy偶sz膮 transakcj臋, 偶e na pewno bra艂o w niej udzia艂 czterech uczestnik贸w? Czy ta jedna osoba wysy艂a fundusze na cztery adresy? Dwie osoby dokonuj膮ce dw贸ch osobnych zakup贸w i zwracaj膮ce po 0,2 BTC z powrotem na swoje adresy? Cztery osoby wysy艂aj膮 do nowych uczestnik贸w lub do siebie? Nie mo偶emy by膰 pewni.


Prywatno艣膰 poprzez nieufno艣膰

Sam fakt, 偶e istniej膮 implementacje CoinJoin, jest wystarczaj膮cy, aby podda膰 w w膮tpliwo艣膰 metody stosowane do analizy transakcji. Mo偶esz wywnioskowa膰, 偶e CoinJoin mia艂 miejsce w wielu przypadkach, ale nadal nie daje ci to informacji, o tym kto jest nowym w艂a艣cicielem monet. Wraz ze wzrostem popularno艣ci za艂o偶enie, 偶e wszystkie dane wej艣ciowe s膮 w艂asno艣ci膮 tego samego u偶ytkownika, s艂abnie聽鈥 i tworzy ogromny skok w zakresie prywatno艣ci w szerszym ekosystemie kryptowalut.

W poprzednim przyk艂adzie m贸wimy, 偶e transakcja mia艂a zbi贸r anonimowo艣ci r贸wny 4 鈥 w艂a艣cicielem wyniku mo偶e by膰 dowolny z czterech zaanga偶owanych uczestnik贸w. Im wi臋kszy zbi贸r anonimowo艣ci, tym mniej prawdopodobne jest, 偶e transakcje mo偶na powi膮za膰 z pierwotnym w艂a艣cicielem. Na szcz臋艣cie ostatnie implementacje CoinJoin sprawiaj膮, 偶e u偶ytkownicy swobodnie 艂膮cz膮 swoje dane wej艣ciowe z dziesi膮tkami innych, zapewniaj膮c wysoki stopie艅 zaprzeczalno艣ci. Ostatnio pomy艣lnie przeprowadzono 100-osobow膮 transakcj臋.


Wnioski ko艅cowe

Narz臋dzia do mieszania monet s膮 wa偶nym dodatkiem do arsena艂u ka偶dego u偶ytkownika powa偶nie traktuj膮cego swoj膮 prywatno艣膰. W przeciwie艅stwie do proponowanych aktualizacji prywatno艣ci (takich jak Transakcje Poufne), s膮 one zgodne z protoko艂em w obecnej formie.聽

Dla tych, kt贸rzy ufaj膮 uczciwo艣ci i metodologii stron trzecich, us艂ugi mikser贸w s膮 ciekaw膮 i 艂atw膮 w u偶ytku alternatyw膮. Dla tych, kt贸rzy preferuj膮 weryfikowaln膮 i niekustiodialn膮 alternatyw臋, CoinJoin b臋dzie lepszym rozwi膮zaniem. Z CoinJoin mo偶na korzysta膰 r臋cznie - dla zaawansowanych technicznie u偶ytkownik贸w lub za pomoc膮 specjalistycznych narz臋dzi programowych, kt贸re wyodr臋bniaj膮 bardziej z艂o偶one mechanizmy. Istnieje ju偶 kilka takich narz臋dzi, kt贸re wci膮偶 zyskuj膮 na popularno艣ci, gdy偶 u偶ytkownicy kryptowalut d膮偶膮 do wi臋kszej prywatno艣ci.