Kryptografia, czyli nauka stojąca za kryptowalutami to skomplikowana dziedzina, w której cały czas powstają nowe rozwiązania. Jednym z nich jest zero knowledge proof, czyli po polsku dowód zerowej wiedzy i to na nim skupimy się w tym artykule. Wyjaśnimy co to jest zero knowledge proof, jak działa, jaka jest jego historia, gdzie wykorzystywana jest ta technologia i wiele więcej. Tak więc, zaczynajmy!
Zero knowledge proof - czym jest i historia powstania
Zero knowledge proof (dowód zerowej wiedzy) to protokół kryptograficzny, który pozwala jednej stronie (stronie udowadniającej)
potwierdzić prawdziwość twierdzenia innej stronie (weryfikatorowi) bez ujawniania jakichkolwiek dodatkowych informacji na jego temat (ani treści, ani źródła, z którego strona udowadniająca dowiedziała się prawdy).
Definicja ta została po raz pierwszy zaproponowana przez naukowców z MIT: Shafi Goldwassera, Silvio Micali i Charlesa Rakoffa w pracy badawczej zatytułowanej
"The complexity of proof in interactive systems".
Jak działa zero knowledge proof?
Wyobraź sobie, że jesteś w pokoju z osobą, która ma zawiązane oczy. Na stole przed tobą leżą dwie kulki - biała i czarna. Musisz udowodnić drugiej osobie (weryfikatorowi), że kulki są naprawdę różnych kolorów, nie zdradzając, jakich.
Aby to zrobić, powinieneś poprosić go o schowanie obu kulek pod stół. Po tym poproś, aby wyjął tylko jedną, tak abyś mógł ją zobaczyć. Następnie kulka znów jest ukryta i następnym razem weryfikator może znów pokazać biały lub czarny kolor. Jednak będziesz w stanie udowodnić roszczenie, ponieważ dokładnie wiesz, czy zmienił je pod stołem.
Niemniej jednak weryfikator nie będzie całkowicie pewny prawdziwości faktu. Osoba mogła bowiem mieć szczęście lub dopuścić się oszustwa.
Problem ten rozwiązuje się przez powtórzenie eksperymentu n razy. Z każdą rundą szansa na przypadkową rację zmniejszy się o połowę:
po pięciu powtórzeniach prawdopodobieństwo pomyłki wynosi 1 na 32, po 10 rundach - 1 na 1024, a po 20 rundach - około 1 na 1 000 000.
Dzięki powtórzeniom możliwe jest osiągnięcie pożądanego poziomu wiarygodności dowodu. Nie da się jednak osiągnąć absolutnej pewności.
Zero knowledge proofs - gdzie wykorzystywana jest ta technologia
Jednym z oczywistych zastosowań dowodu zerowego ujawnienia w kryptowalutach jest weryfikacja, że użytkownik ma środki na transakcję bez ujawniania uczestnikom sieci,
kim jest użytkownik lub ile pieniędzy ma na swoim koncie.
Protokół ten może być również stosowany w obszarach, w których konieczne jest zabezpieczenie danych (np. informacji osobowych) lub transakcji finansowych.
Zero knowledge proof może pełnić rolę narzędzia zapewniającego weryfikację danych i użytkowników, uprzywilejowany dostęp i zaufane połączenia.
Jakie są rodzaje dowodu zerowej wiedzy?
- Interaktywny (weryfikator samodzielnie przeprowadza rozmowę z osobą udowadniającą w czasie rzeczywistym);
- Nieinteraktywny (nie wymaga bezpośredniej komunikacji między weryfikatorem a osobą udowadniającą; ten pierwszy może zweryfikować prawdziwość twierdzenia dopiero po fakcie).
Dowody zerowej wiedzy można również podzielić na dwie grupy w oparciu o
obecność lub brak fazy uwierzytelniania twierdzenia przez wielu weryfikatorów - tzw. trusted setup z wykorzystaniem funkcji boolowskiej.
Dla niektórych protokołów, takich jak zk-SNARKs (Zero-Knowledge Succinct Non-Interactive ARgument of Knowledge), jest to warunek konieczny. Weryfikatorzy generują specjalny sekret, który jest niszczony natychmiast po zaufanej instalacji. Jeśli sekret nadal istnieje, dane w sieci mogą być manipulowane, co neguje korzyści z używania protokołu.
Istnieją protokoły, które nie wymagają zaufanej instalacji (np. zk-STARK (Zero-Knowledge Scalable Transparent ARguments of Knowledge).
Dowód zerowej wiedzy - zalety i wady
Zero knowledge proof niesie za sobą sporo korzyści. Najważniejsze z nich to:
- Zwiększenie prywatności użytkowników w publicznych blockchainach i innych sieciach.
- Wzmocnienie bezpieczeństwa informacji poprzez zastąpienie nieefektywnych metod uwierzytelniania i weryfikacji.
- Zwiększenie przepustowości blockchaina i poprawa skalowalności.
Niestety, rozwiązanie to ma także wady, do których należą:
- Wymaga znacznej mocy obliczeniowej.
- Jest narażony na hacki.
- Potencjalna słabość do obliczeń kwantowych.
Zero knowledge proof - które projekty wykorzystują tą technologię?
ZCash, kryptowaluta skupiona na zwiększeniu prywatności użytkowników, wykorzystuje zmodyfikowany protokół zk-SNARKs. Ten sam protokół został częściowo wdrożony w sieci Ethereum w ramach hardforka Byzantium.
QEDIT opracował SDK (Software Development Kit), który umożliwia wdrożenie dowodów zerowej wiedzy w już istniejących blockchainach, aby zwiększyć prywatność transakcji, a jednocześnie umożliwić walidację przez węzły. Projekt został nagrodzony przez Komisję Europejską Seal of Excellence, a wśród jego partnerów są tak znane firmy jak VMWare, Ant Financial czy Deloitte.
Firma
StarkWare stworzyła rozwiązania oparte na protokole zk-STARKs, które można zaimplementować również w istniejących sieciach. Projekt pozyskał finansowanie od Vitalika Buterina, Pantera Capital, Intel Capital, Sequoia Capital i innych inwestorów.
Holenderski
bank ING wydał zmodyfikowaną wersję Zero-Knowledge Range Proof (ZKRP). Protokół ten może udowodnić, że pensja klienta znajduje się w zakresie wymaganym do zakwalifikowania się do kredytu hipotecznego bez ujawniania samej kwoty.
Komentarze