Dowód z wiedzą zerową

667

Dowód zerowej wiedzy (ang. Zero-Knowledge Proofs), czasami nazywany także protokołem ZK, jest metodą weryfikacji, która zachodzi między dowcipem a weryfikatorem. W systemie dowodu zerowej wiedzy, dowodzący jest w stanie udowodnić weryfikatorowi, że posiada wiedzę na temat konkretnej informacji (takiej jak rozwiązanie równania matematycznego) bez ujawniania samej informacji. Z tych systemów dowodowych mogą korzystać współcześni kryptografowie, aby zapewnić wyższy poziom prywatności i bezpieczeństwa.

Koncepcja dowodu braku wiedzy została po raz pierwszy opisana w artykule MIT z 1985 roku, opublikowanym przez Shafi Goldwassera i Silvio Micali. Wykazali, że można udowodnić niektóre właściwości liczby bez ujawnienia numeru lub żadnych dodatkowych informacji na jego temat. W tym artykule wprowadzono również matematycznie znaczące odkrycie, że interakcje między dowcipnisiem a weryfikatorem mogą zmniejszyć ilość informacji wymaganych do udowodnienia danego twierdzenia.

Dowód ZK musi spełniać dwa podstawowe wymagania zwane kompletnością i solidnością. Kompletność odnosi się do zdolności dowodu do wykazania znajomości istotnych informacji z wysokim prawdopodobieństwem dokładności. Aby dowód był wiarygodny, weryfikator musi być w stanie rzetelnie ustalić, czy osoba faktycznie posiada informacje. Wreszcie, aby być naprawdę zerową wiedzą, dowód musi osiągnąć zarówno kompletność, jak i rzetelność, bez konieczności przekazywania tych informacji między osobą dowodzącą a weryfikatorem.

Dowody zerowej wiedzy są używane głównie w aplikacjach, w których prywatność i bezpieczeństwo są niezbędne. Na przykład systemy uwierzytelniania mogą wykorzystywać proofy ZK do weryfikacji poświadczeń lub tożsamości bez ich bezpośredniego ujawnienia. Jako prosty przykład można go użyć do sprawdzenia, czy dana osoba ma hasło do systemu komputerowego, bez potrzeby ujawniania hasła.

Jednym z wiodących przypadków użycia dowodów zerowej wiedzy w świecie rzeczywistym jest technologia kryptowalut i blockchain. Korzystając z pewnego rodzaju dowodu znanego jako zwięzły, nieinteraktywny, nieinteraktywny argument wiedzy (zk-SNARK), kryptowaluty zorientowane na prywatność, takie jak Zcash, mogą oferować swoim użytkownikom transakcje blockchain o podwyższonym poziomie prywatności. Ethereum współpracuje również z proofami ZK-SNARK od czasu aktualizacji Bizancjum w 2017 roku.