Wyja艣nienie Zk-SNARKs i Zk-STARKs
Strona G艂贸wna
Artyku艂y
Wyja艣nienie Zk-SNARKs i Zk-STARKs

Wyja艣nienie Zk-SNARKs i Zk-STARKs

Zaawansowany
Opublikowane Feb 26, 2019Zaktualizowane Aug 7, 2023
6m

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.

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).

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.

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 鈥渮wi臋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 鈥渓osowo艣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.
Udost臋pnij Posty
Zarejestruj konto
Wykorzystaj swoj膮 wiedz臋 w praktyce, otwieraj膮c konto Binance ju偶 dzi艣.