Prywatność i anonimowość w świecie kryptowalut to dość gorący temat. Wiele projektów twierdzi, że transakcje na ich blockchainie są anonimowe a użytkownicy nie muszą bać się potencjalnego wykrycia ich tożsamości. Najpopularniejszą z nich jest Bitcoin, który choć oficjalnie jest anonimowy to jednak jest w 100% transparentny. W blockchain explorer najpopularniejszej kryptowaluty wszystko widać jak na dłoni. Wiemy, kto, do kogo, kiedy i ile wysłał Bitcoinów. Jeżeli więc cenimy sobie prywatność to z pomocą przychodzi nam jeden z najpopularniejszych projektów skupiających się na tym aspekcie: Zcash. Pomimo tego, że działa zupełnie inaczej niż inne anonimowe kryptowaluty i ma odmienne spojrzenie na aspekt prywatności, to tak samo jak jego konkurenci dąży do tego samego celu: przesyłać środki tak aby nikt nie był ich w stanie wyśledzić. Wybierzesz więc Zcasha, który daje dużo więcej możliwości w przypadku stopnia prywatności aby ukryć swoje kryptowaluty na blockchainie?
Dowód bez dowodu
Technologia, która kryje się za Zcashem to zk-SNARK lub inaczej Zero-Knowledge Succinct Non-Interactive Arguments of Knowledge. W wolnym tłumaczeniu odpowiada to zwięzłej i nieinteraktywnej wiedzy argumentów. W ludzkim języku można to wytłumaczyć jako potrzebę udowadniania czegoś bez zasadniczego dowodu. Czyli jak udowodnić daltoniście w sklepie, że jabłka naprawdę są czerwone i zielone, a nie monotonne.
Aby lepiej wytłumaczyć sposób w jaki działa zk-SNARK, wyobraźmy sobie sytuację, w której mamy dwie osoby. Jedna z nich jest w pełni zdrowa i nic jej nie dolega. Druga jest daltonistą, czyli nie rozróżnia barwy czerwonej i zielonej. W pokoju, w którym znajdują się te dwie osoby, są również dwie małe, identyczne piłki. Jedna czerwona i druga zielona. Osoba nie cierpiąca na daltonizm nie jest w stanie przekonać daltonisty, że dwie piłki różnią się kolorem. Wpada jednak na pomysł przeprowadzeniu małego testu. Daltonista bierze dwie tak samo wyglądające dla niego piłki i chowa je za plecami. Staje przodem do osoby z w pełni zdrowym wzrokiem, tak aby ona nie mogła widzieć piłek. Następnie daltonista wyciąga przed siebie jedną rękę, w której ma piłkę. Nie ma pojęcia jakiego jest koloru. Osoba zdrowa, mówi mu, że piłka jest koloru czerwonego. Następnie daltonista chowa rękę z powrotem za siebie. Zamienia teraz piłki w rękach (czerwona jest więc w innej ręce) i wyciąga drugą rękę. Osoba zdrowa ponownie mówi mu, że piłka jest czerwona. W tym momencie daltonista może założyć dwie opcje. Albo piłki są naprawdę różnego koloru, albo osoba zdrowa po prostu miała szczęście i przewidziała to, że zamiennie piłki w rękach.
Daltonista może jednak powtórzyć tę próbę sto razy i uzyskać dowód na to, że piłki są dwóch różnych kolorów. Prawdopodobieństwo, że osoba zdrowa zgadnie poprawnie sto razy z rzędu czy piłki zostały zmienione w rękach czy nie (w przypadku, gdyby były jednak one jednego koloru) jest dość niska. Test ten można przeprowadzić więc nieskończenie wiele razy a jego wynik powinien być zawsze stu procentowy (w przypadku uczciwości osoby zdrowej).
(Nie)wszystko ukryte
W Zcashu mamy do czynienia z dwoma głównymi typami transakcji: ukryte i transparentne. Ukryte transakcje (shielded transactions) przebiegają tak samo jak transparentne transakcje, za wyjątkiem procesu generowania dowodu zerowej wiedzy (zero-knowledge proof). Dzięki temu ukryte transakcje mogą być zweryfikowane bez ujawniania ich danych. W Zcashu istnieją cztery typy transakcji. Przedstawia je poniższa grafika:
Jeżeli zatem zależy nam na anonimowości to możemy ukryć naszą transakcję, która w blockchain explorerze będzie wyglądać tak:
Źródło: Zcash Blog
Brak adresu wysyłającego i odbierającego. Brak wartości transakcji. Brak stanu kont adresów. Widzimy jedynie fee i ilość potwierdzeń.
Więc jeżeli nie chcesz aby ktokolwiek wiedział cokolwiek o dokonywanych przez Ciebie transakcjach to Zcash na pewno Ci pomoże. A może jednak wolisz Monero lub starego dobrego Dasha?
Maciej Kmita