5 maja 2021 7:24

Zk-SNARK

Co to jest ZK-SNARK?

Zk-SNARK to akronim, który oznacza „Zwięzły, nieinteraktywny argument wiedzy o zerowej wiedzy”. Zk-SNARK to dowód kryptograficzny, który pozwala jednej ze stron udowodnić, że posiada określone informacje bez ujawniania tych informacji. Dowód ten jest możliwy dzięki tajnemu kluczowi utworzonemu przed dokonaniem transakcji. Jest używany jako część protokołu kryptowaluty Zcash.

Kluczowe wnioski

  • Zk-SNARK jest protokołem o zerowej wiedzy używanym w szyfrowaniu i jest akronimem, który oznacza „Zero-Knowledge Succinct Non-Interactive Argument of Knowledge”.
  • Ten dowód został po raz pierwszy opracowany i wprowadzony pod koniec lat 80. XX wieku, a obecnie jest wykorzystywany przez kryptowalutę Zcash do rozwiązania postrzeganego problemu anonimowości w łańcuchach bloków typu Bitcoin.
  • Dowody Zk-SNARK opierają się na początkowej konfiguracji „systemu zaufania”, która została skrytykowana jako nieodłączna luka w zabezpieczeniach.

Zrozumieć zk-SNARK

Dla wielu pierwotnych członków społeczności kryptowalut – głównie społeczności Bitcoin – prywatność była założonym celem i cechą kryptowalut. Jednak prywatność zawsze była kwestią drugorzędną, biorąc pod uwagę potrzebę stworzenia „pozbawionego zaufania” systemu gwarantującego integralność elektronicznej waluty i transakcji cyfrowych.

Na początku 2010 roku użytkownicy ponowna identyfikacja osób, które przekazały pseudonimowe dane wielu źródłom, jest nie tylko możliwa, ale i stosunkowo łatwa.

Z powodu postrzeganego braku prywatności niektórych oryginalnych kryptowalut, takich jak Bitcoin, programiści zaczęli pracować nad monetami skoncentrowanymi na prywatności. Najwybitniejszym z nich był Zcash, wspierany przez technologię znaną jako ZK-SNARKs.

Dowód braku wiedzy

ZK-Snark ( „zero-wiedza zwięzłe nieinteraktywny argumentem wiedzy”) wykorzystuje koncepcję znaną jako „dowód zerowej wiedzy.” Idea stojąca za tymi dowodami została po raz pierwszy opracowana w latach 80. Mówiąc prościej, dowód wiedzy zerowej to sytuacja, w której każda z dwóch stron transakcji jest w stanie zweryfikować między sobą, że posiada określony zestaw informacji, jednocześnie nie ujawniając, czym są te informacje.

W przypadku większości innych rodzajów dowodów przynajmniej jedna z dwóch stron musi mieć dostęp do wszystkich informacji. Tradycyjny dowód można porównać do hasła używanego w celu uzyskania dostępu do sieci online. Użytkownik podaje hasło, a sama sieć sprawdza zawartość hasła, aby zweryfikować, czy jest poprawne. W tym celu sieć musi mieć również dostęp do treści hasła.

Wersja tej sytuacji z potwierdzeniem zerowej wiedzy wymagałaby od użytkownika pokazania sieci (za pomocą dowodu matematycznego), że ma poprawne hasło, bez faktycznego ujawniania samego hasła. Korzyści związane z prywatnością i bezpieczeństwem w tej sytuacji są oczywiste: jeśli w sieci nie ma gdzieś przechowywanego hasła do celów weryfikacji, hasła nie można ukraść.

Matematyczne podstawy zk-SNARKS są złożone. Niemniej jednak tego typu dowody pozwalają jednej ze stron wykazać nie tylko, że istnieje określona część informacji, ale także, że dana strona ma wiedzę o tych informacjach. W przypadku Zcash, zk-SNARKs można zweryfikować niemal natychmiast, a protokół nie wymaga żadnej interakcji między dowodem a weryfikatorem.

Krytyka zk-SNARKs

Istnieją oczywiście obawy związane z zk-SNARKs. Na przykład, jeśli ktoś był w stanie uzyskać dostęp do klucza prywatnego, który został użyty do stworzenia parametrów protokołu dowodowego, mógłby stworzyć fałszywe dowody, które mimo to wyglądałyby na prawidłowe dla weryfikatorów. Pozwoliłoby to tej osobie na tworzenie nowych tokenów Zcash poprzez proces fałszowania. Aby temu zapobiec, Zcash został zaprojektowany w taki sposób, aby protokoły sprawdzające były opracowane i rozłożone na wiele stron.

Podczas gdy budowa procesu dowodzenia Zcash została zakończona w taki sposób, aby zminimalizować możliwość fałszowania tokenów za pomocą fałszywych dowodów, istnieje co najmniej jeszcze jedna obawa związana z kryptowalutą. Zcash został utworzony z 20% „podatkiem” nałożonym na wszystkie bloki utworzone w ciągu pierwszych kilku lat istnienia tokena. Podatek ten jest znany jako „podatek założycielski” i służy do zrekompensowania twórcom kryptowaluty.

Krytycy zasugerowali, że założyciele mogliby potencjalnie wykorzystać ten aspekt systemu do stworzenia nieskończonej liczby tokenów Zcash, tak aby nikt inny nie był świadomy istnienia tych tokenów. Z tego powodu nie jest całkowicie możliwe poznanie dokładnej liczby tokenów Zcash istniejących w tym momencie.

Od 2019 roku niektórzy programiści pracują nad ulepszeniem zk-SNARKs, usuwając zaufaną konfigurację. Zespół o nazwie Suterusu opracował system o nazwie zK-ConSNARK, który twierdzi, że działa bez zaufanej konfiguracji, może zapewnić ochronę prywatności dla głównych łańcuchów bloków, takich jak Bitcoin, i ma najniższą inflację spośród wszystkich istniejących kryptowalut.