Wyjaśnienie Zk-SNARKs i Zk-STARKs

Udostępnij
Copied to clipboard!
Wyjaśnienie Zk-SNARKs i Zk-STARKs
Posłuchaj tego artykułu
00:00 / 00:00

Objaśnienie tematyki zk-SNARKs i zk-STARKs

Prywatność w świecie kryptowalut od zawsze postrzegana była przez entuzjastów i społeczność krypto jako jeden z ważniejszych aspektów. Większość posiadaczy kryptowalut nie chce, aby posiadane przez nich aktywa oraz historia ich transakcji były całkowicie publiczne. Pośród wielu różnych technik kryptograficznych skupionych na zapewnieniu prywatności w sieciach blockchain, dowody Zk-SNARK i Zk-STARK są dwoma przykładami, które są zdecydowanie godne poświęcenia im większej uwagi.

Zk-SNARK to skrót od angielskiego zero-knowledge succinct non-interactive argument of knowledge, co w dosłownym tłumaczeniu na język polski oznacza: zwięzły i nieinteraktywny dowód oparty o wiedzę zerową. Z kolei Zk-STARK oznacza zwięzły i transparentny dowód oparty o wiedzę zerową. Zk-SNARK jest już wykorzystywane m.in w Zcash, systemie płatności JP Morgan Chase opartym na technologii blockchain oraz jako sposób bezpiecznego uwierzytelniania klientów przez serwery danych. Podczas gdy dowody Zk-SNARK są już bardzo powszechnie wykorzystywane i implementowane w wielu systemach, Zk-STARK są obecnie reklamowane jako nowa i ulepszona wersja ich pierwowzoru, która jednocześnie rozwiązuje wiele istniejących wad w protokole Zk-SNARK.


Przypowieść o Jaskini Ali Baby

W 1990 r. kryptolog Jean-Jacquesa Quisquater (wraz z innymi autorami) opublikował artykuł zatytułowany "Jak wyjaśnić protokoły oparte o wiedzę zerową swoim dzieciom". Artykuł przedstawia koncepcję dowodów ZK w formie przypowieści o Jaskini Ali Baby. Od momentu opublikowania przypowieść została już kilkakrotnie zaadaptowana i obecnie funkcjonuje wiele jej odmian. Mimo to podstawowe informacje oraz przekaz jaki niesie są zasadniczo takie same.

Wyobraźmy sobie jaskinię w kształcie pierścienia posiadającą jedynie jedno wejście oraz magiczną drzwi oddzielającą dwie boczne ścieżki przez nią biegnące. Aby przejść przez magiczne drzwi należy szepnąć w prawidłowej kolejności tajne hasło. Wyobraźmy sobie również, że Alicja (kolor żółty) chce udowodnić Piotrowi (kolor niebieski), że wie, jakie brzmi hasło - ale jednocześnie chce zachować je w tajemnicy przed nim. Aby to zrobić, Piotrek zgadza się zaczekać na zewnątrz, podczas gdy Alicja wejdzie do jaskini i pójdzie do końca jedną z dwóch możliwych ścieżek. W tym przykładzie postanawia przejść ścieżkę nr 1.

Wyjaśnienie Zk-SNARKs i Zk-STARKs

Po pewnym czasie Piotr wchodzi do jaskini i głośno krzyczy po której stronie jaskini chciałby aby pojawiła się Alicja (w tym przypadku Ścieżka nr. 2).

Wyjaśnienie Zk-SNARKs i Zk-STARKs

Jeśli Alicja naprawdę zna hasło otwierające drzwi, bez żadnego zająknięcia pojawi się na ścieżce na której chciałby ją zobaczyć Piotr.

Wyjaśnienie Zk-SNARKs i Zk-STARKs

Cały proces może zostać powtórzony kilka razy, aby potwierdzić, że Alicja nie wybiera właściwej ścieżki przez przypadek.

Przypowieść o Jaskini Ali Baby przedstawia koncepcję dowodów wiedzy zerowej, które są częścią protokołów ZK-SNARK i ZK-STARK. Dowody ZK mogą zostać użyte do udowodnienia posiadania pewnej wiedzy bez ujawniania jakichkolwiek informacji na jej temat.


Zk-SNARK

Zcash jest jednym z pierwszych powszechnie dostępnych systemów wykorzystujących Zk-SNARK. Podczas gdy większość projektów kryptowalut skupionych na prywatności użytkowników oraz transakcji, jak np. Monero, wykorzystuje sygnatury okrężne (ang. ring signatures) oraz inne techniki kryptograficzne - w skuteczny sposób anomizując tożsamość inicjującego daną transakcję - Zk-SNARKS zasadniczo zmienia jedynie sposób udostępniania danych. Prywatność użytkowników korzystających z kryptowaluty Zcash charakteryzuje się tym, że transakcje transmitowane do sieci mogą pozostać zaszyfrowane, ale nadal umożliwiać ich weryfikację przy użyciu dowodów wiedzy zerowej. Dzięki temu ci, którzy dbają przestrzeganie i poprawne wykonywanie się reguł konsensusu wcale nie muszą znać wszystkich danych leżących u podstaw każdej z transakcji transmitowanej do sieci. Przy tej okazji jednak warto wspomnieć, że funkcje prywatności w Zcash nie są domyślnie aktywne - są opcjonalne i wymagają ręcznej konfiguracji.

Dowody wiedzy zerowej umożliwiają jednej osobie udowodnić innej, że przesłane przez nią oświadczenie jest prawdziwe, bez ujawniania jakichkolwiek informacji wykraczających poza ważność samego oświadczenia. Strony zaangażowane w taką interakcję powszechnie nazywane są odpowiednio: osobą udowadniającą (ang. prover) oraz weryfikatorem (ang. verifier). Z kolei oświadczenie przechowywane przez obydwie strony interakcji w tajemnicy określa się angielskim witness. Głównym celem Zero-knowledge Proofs jest ujawnienie jak najmniejszej ilości danych obu stronom interakcji. Innymi słowy, z dowodów wiedzy zerowej korzysta się, aby udowodnić, że obie strony posiadają pewną wiedzę, ale jednocześnie nie ujawniając żadnych informacji o samej wiedzy.

Określenie “zwięzły” ze skrótu SNARK oznacza, że dowody te są krótkie (czyt. niewielkie) dzięki czemu można je szybko i łatwo zweryfikować. "Nieinteraktywny" z kolei oznacza, że pomiędzy samym udowadniającym, a weryfikującym odbywa się niewielka lub nawet żadna interakcja. Starsze wersje protokołów ZK zwykle wymagają, aby prover i verificator komunikowali się ze sobą w jedną i drugą stronę, a co za tym idzie uważane są za "interaktywne". Obecnie wykorzystywane wersje ZK wymagają wymiany zaledwie jednego dowodu między stroną udowadniającą, a weryfikującą. 

Systemy korzystające z nowoczesnych rozwiązań zk-SNARK są zależne od początkowej i zaufanej konfiguracji, która tworzona jest pomiędzy udowadniającym i weryfikatorem. Oznacza to, że do skonstruowania dowodów zero-knowledge, a tym samym prywatnych transakcji wymagany jest zestaw publicznych parametrów. Parametry te można przyrównać do reguł gry komputerowej: są zakodowane w protokole i są jednym z niezbędnych czynników do udowodnienia, że wykonana właśnie interakcja była prawidłowa. Taka konstrukcja stwarza jednak potencjalną możliwość wystąpienia centralizacji, ponieważ parametry często są formułowane przez bardzo wąską grupę uczestników danego systemu.

Podczas gdy wstępna konfiguracja publicznych parametrów ma fundamentalne znaczenie dla systemów wykorzystujących Zk-SNARKs, kryptografowie stale pracują nad znalezieniem innych alternatyw, pozwalających zmniejszyć wymagany poziom zaufania potrzebny do poprawnego przeprowadzenia tego procesu. Faza konfiguracji jest o tyle ważnym i krytycznym procesem, ponieważ zapewnia odporność systemu na nadużycia i fałszerstwa. Gdyby ktoś uzyskał dostęp do “losowości” (ang. randomness), która generuje parametry, to byłby w stanie stworzyć fałszywe dowody, które każdy weryfikator odczytywał by jako prawidłowe. W Zcash początkowa faza konfiguracji znana jest pod nazwą Ceremonii Generacji Parametrów (Parameter Generation Ceremony).

Określenie "ARguments" z akronimu Zk-SNARK odnosi się do tego, że dowody te uważane są odporne na ich złamanie przy użyciu komputerów (ang. computationally sound proof). Oznacza to, że nieuczciwy prover ma bardzo niską szansę na skuteczne oszukanie systemu. Właściwość ta określana jest angielskim słowem soudness i w dużej mierze polega na założeniu, że prover posiada ograniczoną moc obliczeniową. Teoretycznie każdy prover z komputerem charakteryzującym się niespotykaną dotąd mocą obliczeniową byłby w stanie tworzyć fałszywe dowody i jest to jeden z powodów, dla których komputery kwantowe są uważane przez wielu za zagrożenie dla Zk-SNARK jak i samych sieci blockchain.

Ostatnim elementem układanki z akronimu Zk-SNARK jest "Wiedza" (ang. Knowledge), co oznacza, że udowadniający nie jest w stanie skonstruować dowodu na poparcie swojego oświadczenia bez posiadania odpowiedniej wiedzy (lub świadectwa wiedzy).

Dowody zerowej wiedzy cechują się tym, że weryfikacja ich poprawności zajmuje niewiele czasu oraz zazwyczaj generują i zajmują znacznie mniej danych niż standardowe transakcje w np. sieci Bitcoin. To właśnie te cechy Zk-SNARKs mogą potencjalnie sprawić, że będą one wykorzystywane zarówno jako rozwiązanie zapewniające prywatność, jak i skalowalność.


zk-STARK

Zk-STARK został stworzony jako alternatywa dla Zk-SNARK i jest obecnie uważany za szybszą i tańszą implementację tej technologii. Co istotne, Zk-STARK nie wymaga przeprowadzenia początkowej konfiguracji (stąd litera "T" w nazwie, oznaczająca transparentność; ang. transparency).

Technicznie rzecz biorąc, Zk-STARK nie wymaga początkowej konfiguracji, ponieważ polega na uproszczonej symetrycznej kryptografii i odpornych na kolizję funkcjach skrótu. Dzięki temu nawet ZK-Stark nie jest podatne na ataki wykonywane przy użyciu komputerów kwantowych.

Jednym z głównych powodów dla których ZK-STARK oferuje tańszą i szybszą implementację, jest fakt, iż liczba koniecznych do przeprowadzenia interakcji (czyt. komunikacji) między stroną udowadniającą, a weryfikującą pozostaje stała. Z kolei konstrukcja Zk-SNARK sprawia, że wraz ze wzrostem ilości wymaganych obliczeń, wzrasta również ilość koniecznych do przeprowadzenia pomiędzy stronami interakcji. To właśnie dlatego rozmiar danych (czyt. transakcji) zabezpieczanych przez Zk-SNARK jest znacznie większa od tych, które są zabezpieczane przy użyciu Zk-STARK.

Na dzień dzisiejszym oczywistym jest fakt, że dowody Zk-SNARKs, jak i ZK-STARK, idealnie wypełniają lukę, która powstała przez rosnącą niepewność różnych społeczeństw naszego globu związaną z kwestią prywatności. W świecie kryptowalut protokoły wnoszą za sobą ogromny potencjał i mogą stać się jednym z kluczowych elementów na drodze do ich powszechnej adopcji.

Loading