Czym jest Zcash i jak działa ta skoncentrowana na prywatności kryptowaluta?

Czym jest Zcash?
Zcash to publiczna, zdecentralizowana kryptowaluta z własnym tokenem: ZEC. To, co wyróżnia Zcash, to możliwość wyboru sposobu wysyłania ZEC. Możesz wykonać przejrzystą płatność, w której najważniejsze dane są publiczne, albo osłoniętą płatność, w której te dane pozostają znacznie lepiej ukryte.
Zcash działa w oparciu o publiczny blockchain. Oznacza to, że transakcje są zapisywane w sieci i weryfikowane przez uczestników. W przypadku przejrzystych transakcji przypomina to mocno Bitcoin: adresy i kwoty są widoczne w blockchainie.
Przy transakcjach osłoniętych działa to inaczej. Zcash wykorzystuje do tego zero-knowledge proofs, a konkretnie zk-SNARKs. Są to dowody kryptograficzne, które pozwalają wykazać, że płatność jest poprawna, bez ujawniania od razu wrażliwych danych. Chodzi na przykład o kwotę, adres nadawcy i adres odbiorcy.
Ta możliwość wyboru jest ważna. Zcash nie jest więc automatycznie w pełni prywatny przy każdej płatności. Prywatność zależy od rodzaju transakcji, z którego korzystasz, od Twojego walleta kryptowalutowego oraz od sposobu, w jaki przesyłasz swoje ZEC.
Maksymalna podaż wynosi 21 milionów ZEC (tak jak w przypadku Bitcoina). Jeden ZEC można podzielić na 100 milionów mniejszych jednostek, które nazywają się zatoshi.
Najważniejsze informacje
- Zcash to publiczny blockchain i kryptowaluta z ZEC jako własnym tokenem.
- Możesz wysyłać ZEC przejrzyście albo osłonięcie.
- Osłonięte płatności wykorzystują zk-SNARKs, aby ukryć dane.
- Przejrzyste płatności publicznie pokazują adresy i kwoty.
- Łącznie może istnieć maksymalnie 21 milionów ZEC.
Jak działa Zcash?
Zcash działa dzięki temu, że transakcje są zapisywane w publicznym blockchainie i sprawdzane według stałych zasad. Sieć zawsze weryfikuje więc, czy płatność jest ważna i czy te same ZEC nie są wydawane dwa razy.
W przypadku przejrzystej płatności łatwo to śledzić. Adresy i kwoty są widoczne w blockchainie. Przy płatności osłoniętej węzły, czyli komputery kontrolujące sieć, nadal muszą móc potwierdzić, że wszystko się zgadza. Nie widzą jednak wrażliwych danych płatniczych.
Jak to działa? Nadawca tworzy zk-SNARK, czyli rodzaj dowodu matematycznego. Dzięki niemu udowadnia na przykład, że ma prawo wydać odpowiednią ilość ZEC i że przestrzega zasad. Dowód nie pokazuje publicznie, z którego osłoniętego adresu pochodzi płatność, na jaki adres trafiają środki ani ile ZEC jest wysyłane.
Osłonięte kwoty są zapisywane jako kryptograficzne commitments. Można je traktować jak zapieczętowany cyfrowy zapis wartości: sieć może na nich liczyć i je weryfikować, ale nie widzi od razu, jaka kwota się w nich znajduje.
Gdy ta wartość zostaje później wydana, pojawia się nullifier. To unikalny znacznik, który może być ważny tylko raz. Jeśli sieć zobaczy ten sam nullifier ponownie, wie, że ktoś próbuje wydać tę samą osłoniętą wartość jeszcze raz. W ten sposób Zcash zapobiega podwójnemu wydaniu.
Zcash ma kilka generacji technologii osłoniętej. Od Network Upgrade 5 w maju 2022 roku dostępny jest też Orchard. Orchard wykorzystuje Halo 2 i nie wymaga trusted setup. Trusted setup to wcześniejszy etap, podczas którego tworzy się specjalne parametry kryptograficzne. Starsze systemy, Sprout i Sapling, korzystały z takich parametrów, ale poprzez ceremonie z udziałem wielu uczestników.
Krótko mówiąc: Zcash próbuje połączyć dwie rzeczy. Płatności mają pozostać weryfikowalne, ale wrażliwe szczegóły nie muszą być widoczne dla wszystkich w blockchainie.
Jak Zcash chroni prywatność transakcji?
Przy w pełni osłoniętej płatności Zcash może ukryć przed publicznością adres nadawcy, adres odbiorcy, kwotę oraz ewentualną notatkę memo. Memo to dodatkowa wiadomość, którą można dołączyć do takiej płatności i która jest przesyłana w zaszyfrowanej formie.
zk-SNARK potwierdza, że płatność jest ważna, bez publicznego pokazywania, która dokładnie wcześniejsza osłonięta płatność jest wydawana. Dzięki temu sieć może egzekwować zasady, nie ujawniając wszystkich informacji o płatności publicznie.
Przykład: Załóżmy, że wysyłasz ZEC do kogoś w ramach w pełni osłoniętej płatności. Blockchain pokaże wtedy, że istnieje transakcja i że została zapłacona opłata. Publicznie nie będzie jednak można odczytać kwoty ani zaangażowanych osłoniętych adresów.
Zcash ma też viewing keys. Taki klucz pozwala nadać komuś prawa do odczytu odpowiednich danych transakcyjnych, bez możliwości wydawania Twoich ZEC. Może to być przydatne, jeśli chcesz dobrowolnie udostępnić wgląd na przykład do księgowości, kontroli lub raportowania podatkowego.
Warto jednak wiedzieć, że prywatność nie oznacza całkowitej niewidoczności transakcji. Sama transakcja nadal znajduje się w publicznym blockchainie, a opłata jest widoczna. Zcash nie ukrywa też domyślnie Twojego adresu IP. Osoba obserwująca ruch sieciowy może potencjalnie powiązać czas i inne metadane sieciowe z transakcjami.
Znaczenie ma również Twoje własne zachowanie. Jeśli przesyłasz kwoty przez przejrzystą część, udostępniasz informacje albo tworzysz rozpoznawalne wzorce, może to osłabić prywatność.
Jaka jest różnica między transakcjami przejrzystymi a osłoniętymi?
Największa różnica dotyczy tego, jakie dane są publicznie widoczne. Transakcje przejrzyste przypominają zwykłe transakcje Bitcoina: adresy i kwoty po przejrzystej stronie każdy może zobaczyć w blockchainie.
W pełni osłonięta płatność przechodzi z osłoniętego adresu na inny osłonięty adres. W takim przypadku adres nadawcy, adres odbiorcy, kwota i opcjonalna notatka memo nie są publicznie czytelne.
Możesz też przenieść ZEC z części przejrzystej do osłoniętej. Nazywa się to shielding. W takim przypadku przejrzyste dane wejściowe i kwota opuszczająca widoczną część są publiczne.
Odwrotna operacja to deshielding: przenosisz ZEC z części osłoniętej do przejrzystej. Wtedy widoczne są przejrzyste dane wyjściowe i kwota, która tam trafia.
Osłonięcie nie jest więc magicznym przyciskiem, który usuwa wszystkie ślady z całej historii płatności. Przy przejściu między obiema częściami kwoty i czas pozostają widoczne po stronie przejrzystej. Dodatkowo publicznie widoczne pozostają sama transakcja i opłata.
Do czego używa się Zcash?
Zcash służy do przechowywania, odbierania i bezpośredniego wysyłania ZEC do innych osób. Można to robić za pomocą walleta kryptowalutowego obsługującego Zcash.
Jednym z zastosowań może być płatność, przy której nie chcesz, aby kwota i powiązane adresy były publicznie widoczne w blockchainie. W takim przypadku zarówno Twój wallet kryptowalutowy, jak i ścieżka płatności muszą obsługiwać transakcje osłonięte. Nie jest to standardem w każdej usłudze.
Zaszyfrowane memo również może być przydatne. Możesz dzięki niemu dołączyć dodatkowe informacje do osłoniętej płatności, bez publicznej czytelności tej wiadomości.
Jeśli chcesz natomiast dobrowolnie udostępnić wgląd, możesz użyć viewing key. Osoba posiadająca taki klucz może zobaczyć odpowiednie osłonięte dane transakcyjne, ale nie zyskuje automatycznie możliwości wydawania Twoich ZEC.
Technicznie ZEC można wykorzystywać do płatności dla osób prywatnych, usługodawców, sklepów lub darowizn. W praktyce akceptacja zależy od regionu, sprzedawcy, walleta i usługi płatniczej. Również płatność przez giełdę kryptowalut lub inną usługę powierniczą nie jest automatycznie osłonięta. Sprawdź więc wcześniej, jakie typy transakcji są naprawdę obsługiwane.
Jaka jest różnica między Zcash a Bitcoinem?
Zcash opiera się na bitcoinowym sposobie płatności, ale dodaje osłonięte transakcje z wykorzystaniem zero-knowledge proofs. Bitcoin i Zcash korzystają z publicznego blockchaina, ale Zcash oferuje obok przejrzystych płatności także wbudowaną opcję ukrywania wrażliwych danych płatniczych.
Transakcje Bitcoina działają na publicznie śledzalnych UTXO. UTXO można traktować jako kawałek niewydanej wartości bitcoina, który służy jako wejście do nowej płatności. W Zcash istnieją dodatkowo shielded notes: osłonięte fragmenty wartości, które są kontrolowane za pomocą commitments i nullifiers.
Zcash powstał w 2016 roku na bazie otwartego kodu Bitcoina, z dodatkową kryptografią dla transakcji osłoniętych. Bitcoin na poziomie protokołu nie oferuje takiej samej ochrony nadawcy, odbiorcy i kwoty opartej na zk-SNARKs.
Istnieją też podobieństwa. Oba protokoły mają zgodnie ze swoimi zasadami maksymalną podaż 21 milionów jednostek. Nie oznacza to jednak, że technologia, sposób użycia czy ryzyka są takie same.
Zcash ma również funkcje, których Bitcoin nie posiada w taki sam sposób w protokole, takie jak zaszyfrowane memo i viewing keys. Adresy Bitcoina są zresztą pseudonimami: nie pokazują automatycznie prawdziwego imienia i nazwiska, ale potwierdzone transakcje i kwoty są publicznie widoczne.
Jakie zalety ma Zcash?
Najważniejszą zaletą Zcash jest możliwość zapewnienia silnej poufności on-chain przy w pełni osłoniętych płatnościach. Publiczni obserwatorzy nie widzą wtedy automatycznie, kto płaci, kto otrzymuje środki, jaka kwota jest wysyłana ani jaka memo została dołączona.
Inne zalety to:
- Kontrola bez ujawniania wszystkich szczegółów: zk-SNARKs pozwalają sieci sprawdzić, czy płatność jest ważna, bez publikowania wrażliwych danych płatniczych.
- Możliwość wyboru: możesz zdecydować się na transakcje przejrzyste albo osłonięte, zależnie od celu i obsługi w Twoim walletcie.
- Selektywny wgląd: dzięki viewing keys możesz pozwolić komuś zobaczyć odpowiednie dane bez oddawania możliwości wydawania środków.
- Zaszyfrowane memo: możesz dołączyć dodatkowe informacje do osłoniętej płatności.
- Stała maksymalna podaż: protokół ustala limit 21 milionów ZEC.
Te zalety mają przede wszystkim charakter techniczny. Nie gwarantują, że każda płatność w praktyce pozostanie prywatna. To, jak dobra jest Twoja prywatność, zależy też od sposobu korzystania z walleta, widocznych przejść między częściami oraz metadanych sieciowych.
Jakie wady ma Zcash?
Zcash ma też wyraźne ograniczenia. Prywatność jest opcjonalna, więc przejrzysta transakcja w ogóle nie ukrywa adresów ani kwot po przejrzystej stronie.
Również przejście między częścią przejrzystą a osłoniętą może ujawniać informacje. Przy shielding i deshielding widoczne kwoty i czas mogą być ze sobą powiązane. Jeśli używasz rozpoznawalnych wzorców, takie dane mogą zmniejszyć Twoją prywatność.
Historyczne analizy transakcji Zcash pokazały, że rozpoznawalny sposób korzystania może zmniejszać anonymity set. Anonymity set to po prostu grupa możliwych transakcji lub użytkowników, w której trudniej Cię odróżnić. Nie oznacza to, że każda obecna osłonięta płatność jest możliwa do śledzenia, ale pokazuje, że prywatność wymaga ostrożnego korzystania.
Jeszcze jedna rzecz, na którą trzeba uważać: Zcash nie ukrywa domyślnie Twojego adresu IP. Obserwator sieci może potencjalnie połączyć dane IP z metadanymi transakcji. Same osłonięte dane płatnicze nie rozwiązują więc tego automatycznie.
Poza tym nie każdy wallet kryptowalutowy, giełda kryptowalut czy usługa płatnicza obsługuje transakcje osłonięte. Trzeba wcześniej sprawdzić, czy rzeczywiście możesz odbierać, przechowywać i wysyłać ZEC w osłoniętej formie za pośrednictwem wybranej usługi.
Na koniec technologia jest dość złożona. Zcash ma kilka generacji protokołów osłoniętych. Starsze systemy korzystały z trusted setup, natomiast Orchard z Halo 2 usuwa ten wymóg dla Orchard. Te różne techniki sprawiają, że protokół jest trudniejszy do zrozumienia niż całkowicie przejrzysty system płatności.
Podsumowanie
Zcash to kryptowaluta, która daje Ci wybór między przejrzystymi a osłoniętymi płatnościami. Token ZEC działa w publicznym blockchainie, ale zk-SNARKs umożliwiają udowodnienie poprawnej płatności bez publicznego pokazywania nadawcy, odbiorcy i kwoty przy w pełni osłoniętych transakcjach.
To sprawia, że Zcash jest interesujący dla osób, które chcą większej prywatności przy płatnościach, ale ta prywatność nie pojawia się sama z siebie. Przejrzyste transakcje pozostają widoczne, przejścia między obiema częściami mogą ujawniać informacje, a metadane sieciowe również mogą coś zdradzić. Dlatego zawsze sprawdź, czy Twój wallet kryptowalutowy lub ścieżka płatności obsługuje transakcje osłonięte, i pamiętaj o tym, co sam ujawniasz.