Wstęp
Bitcoin jest często postrzegany jako cyfrowa gotówka, ale jest to kwestią dyskusyjną. Jeśli Alicja zapłaci Bobowi 10 dolarów w gotówce, Bob nie ma możliwości dowiedzenia się, skąd pochodzi ta gotówka. Kiedy Bob przekazuje 10 dolarów Carol, Carol nie ma możliwości dowiedzenia się, że 10 dolarów pierwotnie pochodziło od Alice.
Jednak nieodłączny publiczny charakter Bitcoina sprawia, że sytuacja jest inna. Historia danego tokena (niewydane wyniki transakcji, a dokładnie UTXO) jest dostępna dla każdego. Przypomina to zapisanie kwoty transakcji i nazwisk uczestników na rachunku.
Adresy publiczne można jednak zanonimizować, co pozwala użytkownikom łatwo ukryć swoją tożsamość. Jednak Bitcoin nie jest w stanie całkowicie ukryć swoich śladów. Technologia analizy blockchain staje się coraz bardziej dojrzała i może skutecznie dopasowywać adresy do tożsamości. Oprócz innych technik nadzoru, dedykowane podmioty mogą również deanonimizować użytkowników kryptowalut. Aby rozwiązać ten problem, na rynku pojawiło się wiele technologii rozdzielania transakcji.
Co to jest mieszanie tokenów?
Ogólnie rzecz biorąc, mieszanie tokenów odnosi się do wszystkich operacji, które mieszają fundusze poprzez swapy. Jednak w świecie kryptowalut mieszanie monet zapewniają strony trzecie. Dostawca usług zazwyczaj pobiera tokeny użytkownika (wraz z niewielką opłatą), a później zwraca część tokenów, które nie mają żadnego związku z wysłanymi tokenami. Usługi takie znane są również jako kubki lub mieszalniki monet.
Oczywiście bezpieczeństwo i anonimowość takich scentralizowanych usług są wątpliwe. Użytkownicy nie mają gwarancji, że mikser zwróci środki lub że zwrócone tokeny nie zostaną w jakiś sposób skażone. Ponadto podczas korzystania z miksera adresy IP i Bitcoin mogą być również rejestrowane przez osoby trzecie. W wyniku mieszania tokenów użytkownicy rezygnują z kontroli nad swoimi środkami w nadziei na uzyskanie niepowiązanych tokenów.
Obecnie istnieje nowy schemat o nazwie „Transakcja CoinJoin”, który daje użytkownikom duże pole do odmowy. Innymi słowy, po użyciu CoinJoin usuwany jest dokładny dowód powiązania między użytkownikiem a przeszłymi transakcjami. Wiele rozwiązań CoinJoin staje się zdecentralizowaną alternatywą dla mikserów. Chociaż koordynator może interweniować, użytkownicy nie muszą rezygnować z praw do zarządzania funduszami.
Co to jest CoinJoin?
Handel CoinJion pojawił się w 2013 roku i został po raz pierwszy zaproponowany przez programistę Bitcoin Gregory'ego Maxwella. W poście pokrótce przedstawił strukturę takich transakcji oraz sposób uzyskania wysokich prywatnych zysków bez modyfikacji protokołu.
Zasadniczo transakcje CoinJoin obejmują dane wejściowe od wielu użytkowników. Zanim wyjaśnimy, jak działa ta technologia, przyjrzyjmy się najpierw strukturze podstawowej transakcji.
Transakcje Bitcoin składają się z wejść i wyjść. Gdy użytkownik chce przeprowadzić transakcję, jako dane wejściowe przyjmuje UTXO, określa dane wyjściowe i podpisuje dane wejściowe. Należy pamiętać, że każde wejście jest podpisane niezależnie, ale użytkownik może skonfigurować wiele wyjść (kierując na różne adresy).

Biorąc za przykład daną transakcję składającą się z czterech wejść (po 0,2 BTC) i dwóch wyjść (0,7 BTC i 0,09 BTC), możemy poczynić na jej temat szereg założeń. Najpierw obserwuj, jak odbywa się płatność – nadawca wysyła komuś jeden z wyników, a następnie otrzymuje resztę. Transakcja ta wykorzystuje cztery wejścia, więc większy wynik powinien być skierowany do odbiorcy. Należy pamiętać, że musimy zapłacić górnikowi opłatę, a wydobycie straci 0,01 BTC.
Nadawca może również chcieć utworzyć duży UTXO, łącząc w ten sposób małe dane wejściowe, aby osiągnąć docelowy wynik wynoszący 0,7 BTC.
Możemy również założyć, że każde wejście jest podpisane niezależnie. W tej transakcji dane wejściowe podpisują co najwyżej cztery strony. Dokładnie tak działa CoinJoin.
Jak działa CoinJoin?
Podstawową ideą jest to, że wiele stron współpracuje przy tworzeniu transakcji, a każda ze stron zapewnia dane wejściowe i oczekiwane wyniki. Kiedy wszystkie dane wejściowe zostaną zmieszane, inne nie będą w stanie zidentyfikować zgodności między danymi wyjściowymi a użytkownikiem. Spójrzmy na następujący diagram:

Jak widać na rysunku, czterech uczestników chce przełamać korelację pomiędzy transakcjami. Koordynują działania między sobą (lub za pośrednictwem dedykowanego koordynatora), aby zadeklarować dane wejściowe i wyjściowe, które mają być liczone.
Koordynator pobierze wszystkie te informacje i włączy je do transakcji, prosząc każdego uczestnika o podpisanie jej przed przesłaniem jej do sieci. Po podpisaniu przez użytkownika transakcja nie może zostać zmieniona, dopóki nie stanie się nieważna. W związku z tym koordynator nie może ukraść środków.
Ta transakcja działa jak czarna skrzynka do mieszania monet. Nie zapominaj, że niszczymy początkowe UTXO, aby utworzyć nowe UTXO. Jedynym połączeniem pomiędzy starym i nowym UTXO jest sama transakcja i oczywiście nie możemy rozróżnić jej uczestników. Idealną sytuacją jest po prostu świadomość, że istnieją uczestnicy, którzy wnoszą wkład i mogą być właścicielami wyników.
Mimo to nie możemy być pewni na 100 procent. Kto, widząc opisaną powyżej transakcję, może być pewien, że uczestniczy w niej czterech uczestników? A może jest tylko jedna osoba, która wysyła środki na swoje cztery adresy? A może dwie osoby kupują dwa razy i każdy adres otrzymuje 0,2 BTC? Możliwe jest również, że cztery osoby wysłały środki nowym uczestnikom lub że środki wróciły do tej osoby. Nie jesteśmy w stanie określić konkretnych okoliczności.
Ochrona prywatności poprzez „zaprzeczanie”
Pojawienie się wdrożenia CoinJoin wystarczyło, aby poddać w wątpliwość metody analizy transakcji. W wielu przypadkach możesz wywnioskować, że doszło do CoinJoin, ale nie możesz określić właściciela wyniku. W miarę upowszechniania się tej technologii założenie, że wszystkie dane wejściowe należą do tego samego użytkownika, stopniowo słabnie. W szerokim i kompleksowym ekosystemie prywatność uległa radykalnej poprawie.
W powyższym przykładzie zakładamy, że anonimowy zestaw transakcji ma 4 właścicieli wejściowych, a właścicielem wyjściowym może być dowolna z tych 4 osób. Im większy zestaw anonimowości, tym mniejsze prawdopodobieństwo znalezienia zgodności pomiędzy transakcją a pierwotnym właścicielem. Na szczęście najnowszy program CoinJoin umożliwia dziesiątkom użytkowników łączenie danych wejściowych w sposób pozbawiony zaufania, co znacznie poprawia „zaprzeczalność”. Ostatnio CoinJoin pomyślnie przeprowadził setki transakcji.
Podsumować
Dla użytkowników, którzy przywiązują dużą wagę do prywatności, mieszanie walut jest bardzo skuteczną metodą uzupełniającą. W przeciwieństwie do proponowanych ulepszeń prywatności, takich jak poufne transakcje, technologia ta jest kompatybilna z istniejącymi protokołami.
Dla użytkowników, którzy ufają uczciwości i skutecznym metodom stron trzecich, usługi mieszania walut są proste i wygodne. Dla użytkowników, którzy preferują rozwiązanie weryfikowalne lub nie wymagające nadzoru, CoinJoin jest doskonałym wyborem. Użytkownicy znający się na technologii mogą ręcznie wyodrębnić bardziej złożone mechanizmy lub korzystając z narzędzi programowych. Dziś, wraz ze wzrostem zapotrzebowania na prywatność, tego typu narzędzia będą coraz bardziej popularne na rynku.


