Jak zmylić przeciwnika, czyli kryptowalutowe tumblery

Przemek/ 28 listopada, 2022

Blockchain, szczególnie ten publiczny, to technologia, dzięki której nic się nie ukryje. Jest to oczywiście ogromną zaletą, ponieważ przy jej pomocy można budować całkowicie przejrzyste rozwiązania. Niestety utrudnia to pozostanie anonimowym, szczególnie jeśli mówimy o transferach kryptowalut, a w niektórych sytuacjach cecha ta może być bardzo pożądana. Na szczęście istnieją sposoby poradzenia sobie i z tym wyzwaniem i właśnie dzisiaj przedstawię jeden z nich, a mowa o kryptowalutowych tumblerach. Z dzisiejszego wpisu dowiesz się, czym one są i jak z grubsza działają.

Ukryty w tłumie

W dzisiejszych czasach prywatność staje się powoli dobrem luksusowym. Są ludzie, którzy twierdzą, że jeżeli jest się w porządku to nie ma się nic do ukrycia i tylko kryminaliści potrzebują anonimowości. Całkowicie się nie zgadzam z tą tezą i myślę, że nie jestem jedyny. Niestety w erze cyfrowej bankowości i pełnej inwigilacji kont bankowych przez urzędy skarbowe, prywatność naszych wydatków jest, delikatnie mówiąc, zagrożona. Nie wspominając już o nadchodzących zewsząd CDBC (Central Bank Digital Currency), które tę sprawę jedynie pogarsza, ale to temat na osobny wpis. 

Dopóki istnieje gotówka, to wciąż możemy sobie jakoś poradzić z tym problemem. Jednak gdy zniknie (a wygląda na to, że stanie się to szybciej niż myślimy), kryptowaluty mogą stać się jedyną deską ratunku. Trzeba przyznać, że większość blockchainów nie jest anonimowa. Istnieją oczywiście takie rozwiązania jak chociażby Monero, które zapewniają prywatność, ale w większości pozostałych przypadków, jeżeli tylko powiążemy adres z jego właścicielem to możemy dowiedzieć się o wszystkich jego transakcjach i tutaj z pomocą przychodzą tumblery.

Jak to często bywa na tym blogu, zanim przejdę do technicznych detali, posłużę się analogią, która pomoże Ci lepiej zrozumieć dzisiejsze zagadnienie.

Ściga Cię policja i jedyne, co o Tobie wie to to, że nosisz niebieską koszulkę i czarne spodnie. Prawie Cię złapali, kiedy udało Ci się wejść na stadion, na którym odbywał się ogromny zlot miłośników niebiesko-czarnego ubioru. Kiedy policja wkroczyła do środka ujrzała tysiące osób, ubranych w niemal identyczny sposób. Ponieważ nie da się Ciebie odróżnić w prosty sposób, jedyna metoda to przepytywanie wszystkich po kolei. Jest to bardzo czasochłonny sposób, a na dodatek możesz wraz z wychodzącymi tłumami opuścić niepostrzeżenie to miejsce. Tym sposobem udało Ci się uciec.

Przykład z ucieczką przed policją pewnie nie jest najlepszym wyborem, kiedy chce się przekonywać ludzi, że blockchain i kryptowaluty są okej, niemniej jednak w tym wypadku dobrze obrazuje działanie tumblerów. Wystarczy sprawić aby nasza transakcja znalazła się wśród ogromnej liczby identycznych operacji, a wykrycie czy kupujemy chipsy, płacimy za prąd lub przelewamy rodzinie nasze pieniądze stanie się niemożliwe. Możemy też wykorzystać takie rozwiązania jeżeli ktoś powiąże nasze środki z naszymi danymi. Wtedy wystarczy, że stworzymy nowy portfel i prześlemy wszystko na niego, przepuszczając w międzyczasie kryptowaluty przez tumbler. Po takim zabiegu znowu możemy cieszyć się anonimowością.

Bardzo ważne jest aby wspomniana liczba była duża, ponieważ w innym przypadku wykrycie wszystkiego nie będzie stanowić wyzwania. Jeżeli na stadionie znajdowałyby się oprócz nas jedynie cztery inne osoby, to policja szybko poradziłaby sobie z odnalezieniem poszukiwanego. Dodatkowo, jak wspomniałem, transakcje muszę być do siebie podobne, czyli np. wszystko co wchodzi do tumblera powinno wynosić 1 BTC i to co z niego wychodzi również. Jeżeli kwoty będą się od siebie różnić, to nie będzie żadnego problemu, żeby powiązać wszystko ze sobą. Oczywiście poszczególne rozwiązania mogą różnić się szczegółami implementacyjnymi oraz konkretnym podejściem do problemu, ale z grubsza ich zasada polega na przykładzie opisanym powyżej. Dlatego teraz przejdę do jednego z nich, które nie spodobało się władzom w USA i wtrąciła twórcę do więzienia, ale o tym pod koniec wpisu.

Zmieszajmy wszystko razem

Tornado Cash, bo o nim mowa, to chyba jedno z najbardziej popularnych rozwiązań typu tumbler. Poniżej znajdziesz nieco technikaliów na temat jego działania, ale mam nadzieję, że uda mi się je wytłumaczyć w prosty i zrozumiały sposób. 

Tomek, chciałby wykorzystać Tornado Cash do przelanie swoich środków na inny, anonimowy portfel. Na początku wpłaca do protokołu 1 ETH podająć równocześnie hasz z z dwóch wcześniej losowo wygenerowanych wartości, nazywanych “secret” oraz “nullifier”. Następnie pojawia się Piotrek i robi dokładnie to samo, czyli wysyła 1 ETH razem z wygenerowanych haszem. Po nich jeszcze to samo zrobiła Ola, Ania i Maciek.

Dlaczego każdy z nich wpłaca po 1 ETH? Tak jak wcześniej wspomniałem, wszystkie transakcje muszą być identyczne, aby nikt nie był w stanie wyśledzić później kto jaką zrobił. Jeżeli Tomek wpłaciłby 100 ETH, reszta po 1 ETH, a następnie zaczęliby wypłacać, to zidentyfikowanie Tomka byłoby dziecinnie proste.

Środki znajdują się już w protokole, teraz można zacząć je wypłacać. Na pierwszy rzut oka można by pomyśleć, że wystarczy aby każdy z nich podał “secret” oraz “nullifier” i jeżeli ich wyliczony hasz będzie pasował do tego zapisanego wcześniej, to mogą odebrać kryptowaluty. Niestety w takim wypadku również moglibyśmy każdego z nich zidentyfikować, ponieważ jeżeli jawnie podadzą te wartości, to znaczy, że to właśnie oni wprowadzili je podczas wpłaty do protokołu. Dlatego trzeba znaleźć inny sposób.

Podczas wypłaty środków osoba musi udowodnić, że zna “secret” i “nullifier” bez ich bezpośredniego ujawniania, a przy pomocy takiego dowodu protokół sprawdza jedynie, czy na liście wszystkich wartości znajduje się powiązany hasz, przy czym nie musimy śledzić jaki konkretnie. Technika ta nazywa się Zero Knowledge Proof, a więcej na jej temat znajdziesz w jednym z poprzednich wpisó). Nie ma tutaj potrzeby wchodzenia w szczegóły tego rozwiązania, wspomnę jedynie, że matematyka wykorzystana w tym wypadku opiera się o tzw. Zk-SNARK.

Po dostarczeniu takiego dowodu można jedynie stwierdzić, że któraś z tych pięciu osób dokonała wypłaty, ale nie wiadomo dokładnie która. Tak jak mówiłem wcześniej, im więcej osób bierze udział w całej akcji, tym bardziej anonimowe stają się transakcje. Może przy pięciu osobach nie ma tutaj dużego benefitu, ale jakby było ich tam milion, to całkowicie zmienia to zasady gry.

Zostaje jeszcze tylko jedna kwestia. Jeżeli Tomek wypłaci swoje kryptowaluty, a dowód jedynie wskaże, że hasz znajduje się na liście, to nic nie stoi na przeszkodzie, aby Tomek powtórzył operację i tym sposobem zabrał środki innym użytkownikom. Dlatego podczas próby dokonania wypłaty Tomek musi podać również hasz wartości “nullifier”. Z takimi danymi i użyciem matematyki protokół jest w stanie sprawdzić, czy Tomek może wypłacić środki i czy już tego czasem nie zrobił. Oczywiście wypłaty nie musi dokonywać sam Tomek, ale dowolna osoba, która będzie w stanie dostarczyć wymagane dane, co w praktyce oznacza, że zna “secret” i “nullifier” podany przez Tomka. Dlatego jeśli dane te nie zostaną od niego wykradzione może mieć on pewność, że dostęp do środków będzie miał jedynie on lub osoba, której sam powierzył te informacje.

W całym procesie wykorzystywane również jest mechanizm zwany Merkel Tree, który opisywałem jakiś czas temu na łamach tego bloga. Więcej informacji na jego temat znajdziesz w tym wpisie.

Czyli podsumowując, cały proces wygląda następująco. Dowolna osoba wpłaca swoje środki do protokołu podając równocześnie hasz z tylko sobie znanych dwóch wartości. Następnie ktokolwiek, kto zna wcześniej wymyślone wartości może wypłacić środki, dostarczając odpowiednie informacje. I na tym polega cała zabawa.

Nielegalne interesy

Ataki na świat kryptowalut często polegają na twierdzeniu, że są one używane do nielegalnych transakcji. Stwierdzenie to jest częściowo prawdziwe, jednak sytuacja nie wygląda tak, jak niektórzy by chcieli ją przedstawić. Nie będę tu przytaczał danych, ponieważ jest bardzo wiele różnych opracowań na ten temat, ale chciałbym spojrzeć na to jedynie z logicznego punktu widzenia.

Jeżeli wszystkie transakcje na Bitcoinie oraz Ethereum są publicznie dostępne, a ich historia nigdy nie będzie mogła być zmanipulowana, to użycie tych monet do opłacania nielegalnych interesów byłoby bardzo głupie, ponieważ jak nie teraz, to w przyszłości ktoś to odkryje. Zdecydowanie lepszą metodą jest używanie gotówki, która jest obecnie najbardziej prywatną formą dokonywania płatności.

Po drugie całkowita wartość rynku krypto jest stosunkowo mała. Odliczając od niej monety posiadane przez uczciwych użytkowników, pula pozostała na szemrane biznesy pozostaje strasznie mała. Niemniej jednak dochodzi również do tego. W takim wypadku pojawia się pytanie czy aplikacje takie jak tumblery powinny być legalne? Jeżeli ktoś użyje krypto do nielegalnych interesów, a następnie zatrze całkowicie ślad, to może nie jest to najlepszy pomysł, żeby udostępniać całemu światu taką funkcjonalność? Może powinniśmy karać ludzi, którzy używają tumblerów oraz samych programistów tworzących takie rozwiązania.

Z takim podejściem spotkał się twórca Tornado Cash, który w chwili pisania tego tekstu przesiaduje w więzieniu i prawdopodobnie prędko z niego nie wyjdzie. Został on oskarżony o pranie pieniędzy, mimo że jedyne co zrobił, to stworzenie aplikacji pozwalającej na zachowanie przysługującej nam prywatności. Przez to nie znajdziesz już działającej strony Tornado Cash, ale na szczęście na blockchainie nic nie ginie, więc sam kontrakt dalej tam jest i jedyne co trzeba teraz zrobić, to stworzyć nową aplikację webową. Jednak takie podejście rządów może skutecznie odstraszać od tego ludzi. 

Z tej perspektywy ciekawe jest podejście władz do Sama Bankman-Frieda, czyli byłego CEO upadłej giełdy FTX. Mimo tego, że zdefraudował miliardy dolarów, a pieniędzy użytkowników używał do opłacania prywatnego majątku, to obecnie spędza ona sobie wygodnie czas w swojej willi na Bahama. Co więcej, został zaproszony, aby wystąpić na konferencji w Nowym Jorku, a światowe media robią wszystko, żeby go wybielić. Jak widać są równi i równiejsi, ale wnioski zostawiam już w Twoich rękach.

Wracając do Tornado Cash. Nie tylko twórca ma problemy, ale również użytkownicy, którzy korzystali z tej aplikacji. Niektóre protokoły blokują adresy, które kiedykolwiek korzystały z tego rozwiązania. Jeżeli sądzisz, że to dobrze i takie osoby powinny być ukarane, to pomyśl, że Twój portfel również może być zagrożony i to nawet jeśli Ty sam nie skorzystasz z takiego aplikacji. Jak to możliwe?

Podam tylko dwa najprostsze przypadki. Pierwszy z nich to sytuacja, w której Twój portfel miał powiązanie z adresem, który korzystał z Tornado Cash. Nie musisz nawet robić bezpośredniej transakcji z taką osobą, ale wystarczy, że ktoś gdzieś kiedyś użył aplikacji i jest teraz w łańcuchu Twoich transakcji.

Drugi przypadek, to kiedy ktoś celowo zagrozi Ci wysłaniem środków. I tutaj pojawia się duży problem. Jeżeli posiadasz dużo środków na swoim portfelu, to może istnieć duża szansa, że ktoś będzie chciał je od Ciebie uzyskać i wykorzysta do tego właśnie taki rodzaj szantażu.

W takim wypadku, czy tumblery oraz inne rozwiązania zapewniające prywatność powinny być zakazane? Moja odpowiedź brzmi: zdecydowanie nie. Uważam, że nie powinno się blokować rozwoju technologii. Oczywiście trzeba walczyć z nielegalnymi transakcjami, ale wymaga to innego podejście. Czy jeśli złodziej ucieknie pociągiem, to powinniśmy zakazać podróżowania tym środkiem transportu każdej osobie? Myślę, że zgodzisz się, że byłoby to przynajmniej dziwne. Dokładnie tak samo sprawa wygląda według mnie, jeśli mowa o tumblerach.

Temat zapewnienie prywatności jest według mnie bardzo ważny, a blockchain może stać się technologią, która nam w tym pomoże. Tumblery to tylko jedno z rozwiązań poprawiających ten aspekt, dlatego w przyszłości wrócę jeszcze do tematu i omówię inne sposoby:)

Share this Post
Subscribe
Powiadom o
guest
0 komentarzy
Inline Feedbacks
View all comments