Zero-knowledge proofs — jak udowodnić, że znamy pewną informację, bez ujawniania tej informacji?

Iweta Laskowska
4 min readMay 18, 2023

--

Czy możemy udowodnić, że posiadamy daną rzecz, bez konieczności pokazywania jej?

Albo, że znamy szyfr do zamka, bez ujawniania go? (weryfikacja haseł?;))

Mamy 18 lat, bez ujawniania daty urodzin? (i przy okazji miejsca zamieszkania i innych danych na dowodzie osobistym…np. poprzez skanowanie kodu QR zamiast sprawdzania dowodu osobistego)

Potwierdzenie tożsamości użytkownika bez ujawnienia jego prywatnych danych?

Okazuje się, że odpowiedzią na te zagadnienia są Zero-knowledge proofs (ZKProofs).

Ucząc się technologii rozwiązujących aktualne niedoskonałości blockchaina, w większości przypadków okazuje się, że rozwiązania są z nami od dawna. Problem skalowalności, bezpieczeństwa oraz prywatności rozwiązywany jest poprzez wykorzystanie zlepku technologii, które są z nami od lat (wiecie, że sformułowanie ‘smart kontrakt’ po raz pierwszy zostało użyte przez Nicka Szabo w 1994 roku?!).

Podobna sytuacja ma miejsce z ZKProofs, które po raz pierwszy pojawiły się w 1985 roku w publikacji zatytułowanej “The knowledge complexity of interactive proof systems’.

The knowledge complexity of interactive proof systems

ZKProofs stanowiły przełom w kryptografii, obiecując zwiększenie bezpieczeństwa, będąc odpowiedzią na narastający problem kradzieży tożsamości oraz trendzie ochrony prywatności i minimalizacji udostępniania wrażliwych danych.

Czym jest Zero-Knowledge Proof (ZKProof)?

To rodzaj protokołu kryptograficznego, który umożliwia jednej stronie (tzw. dowodzącemu) udowodnienie drugiej stronie (tzw. weryfikującemu), że zna pewną informację, bez ujawniania samej tej informacji.

Ponadto ZKP dostarczają gwarancje, które zapewniają, że informacje zostały uzyskane w legalny sposób oraz nie zostały zmodyfikowane.

Wyobraźcie sobie sytuację, w której chcecie komuś udowodnić, że znacie szyfr do zamkniętej skarbonki, bez ujawniania samego ciągu znaków. Rozwiązaniem byłoby włożenia czegoś do środka skarbonki (np. kartki papieru z wiadomością) przez osobę weryfikującą.

Jeżeli osoba dowodząca przeczyta weryfikującej wiadomość, która znajdowała się w skarbonce, udowodni, że zna szyfr. Jednak osoba weryfikująca wciąż nie poznała samego szyfru! Wierzy, że go znacie, ale sama nigdy go nie widziała.

Zero-knowledge proofs explained in 3 examples

ZkProofs są wykorzystywane w wielu dziedzinach, takich jak bezpieczeństwo sieciowe, kryptowaluty, prywatność danych, identyfikacja użytkowników itp. Ich podstawowa cecha polega na tym, że pozwalają na uzyskanie zaufania do pewnej informacji, jednocześnie zachowując jej poufność.

Są one budowane w oparciu o różne technologie kryptograficzne, takie jak teoria grup, funkcje skrótu, czy kryptografia oparta na krzywych eliptycznych (których, dla Waszego i mojego dobra, nie staram się zrozumieć w tym poście ;)).

ZkProofy umożliwiają dowodzenie różnych typów zdań matematycznych, takich jak np. “dane hasło jest poprawne”, “dane konto bankowe należy do danej osoby”, czy “dane zapytanie spełnia określone warunki”.

Jak wynika z raportu opublikowanego przez a16z, dostrzegalny jest znaczny wzrost zainteresowania tematem — w samym 2022 powstało o 230 publikacji akademickich poświęconych ZK.

2023 State of Crypto Report

Zastosowanie w kryptowalutach

  • Prywatność
    Pozwalają na potwierdzenie, że użytkownik ma prawo do wykonania transakcji, bez ujawniania ilości i/lub źródła posiadanych środków. ZKP zostało w ten sposób po raz pierwszy użyte w tzw. privacy-coinie, Zcash.
  • Skalowalność

    ZK rollups, oparte o ZKProofs to jedna z propozycji rozwiązania problemu skalowalności Ethereum.
https://www.blockdata.tech/blog/general/blockchain-scaling-solutions-101-an-overview

To technologia umożliwiająca skalowanie blockchainów, czyli zwiększenie przepustowość głównej sieci (Layer 1, tzw. Mainnet), poprzez przenoszenie większości obliczeń poza główny łańcuch (off-chain). W ten sposób czasochłonne obliczenia, które byłyby za drogie do wykonania na L1, wykonywane są poza łańcuchem, a na L1 przenoszone już jedynie wyniki obliczeń, których weryfikacja nie wymaga dużego nakładu pracy.

np. co zajmie Wam więcej czasu — zgadnięcie czynników x*y = 45712360642, czy obliczenie iloczynu 675439*67678 = ?

ZkRollupy umożliwiają przetworzenie dużej ilości transakcji poza łańcuchem bloków, a następnie kompresowanie i publikowanie ich na Mainnecie, co skutkuje zwiększoną wydajnością, skalowalnością i obniżonymi kosztami transakcji w sieci blockchain.

ROLLUPS — The Ultimate Ethereum Scaling Strategy?

ZK Rollups znajdują się w top 5 rozwiązań (dYdX, zkSync, Loopring) z najwyższą TVL (Total Value Locked).

https://l2beat.com/scaling/tvl, 17/05

Rodzaje dowodów Zero knowledge (technologie rozwiązujące ten sam problem, innym sposobem)

  • zk-SNARKs (2012)
    Succinct (zwięzły) — dowód jest znacznie mniejszy niż dane, które reprezentuje i możne zostać szybko zweryfikowany,
    Non-Interactive — brak bezpośrednich interakcji między podmiotem dowodzącym i weryfikującym
    Argument of Knowledge

Są to bardzo skondensowane dowody, które umożliwiają weryfikację poprawności danych. Dowody zk-SNARK zostały zastosowane w Zcash, aby zapewnić prywatność transakcji.

  • zk-STARKs (2018)
    Scalable Transparent Arguments of Knowledge.

Rodzaj dowodów ZKP, który jest skalowalny i zapewnia transparentność. Wymaga minimalnej interakcji między podmiotem dowodzącym i weryfikującym, przez co są szybsze niż SNARKS.
Wspierane przez Ethereum Foundation.

https://ethworks.io/assets/download/zero-knowledge-blockchain-scaling-ethworks.pdf

Wady ZKP

  • Generowanie i weryfikacja dowodów ZK może być czasochłonna i wymaga dużych zasobów obliczeniowych m.in. wynikające z faktu, że algorytm wymaga tłumaczenia kodu na format zrozumiały przez ZK.
  • Wymagane jest zaufanie do strony generującej dowód.
  • Ze względu na swoją naturę, dowody zero-wiedzy mogą być trudne do audytowania. Brak jawności szczegółów transakcji może utrudnić weryfikację poprawności działania systemu przez osoby zewnętrzne.
  • Niektóre rozwiązania nie są zabezpieczone przed komputerami kwantowymi.

--

--

Iweta Laskowska

ig: @iweta.web3 | Nowy kurs video na stronie Videopoint! 'Blockchain i kryptowaluty od podstaw'