Zarówno w prawdziwym życiu, jak iw cyfrowym świecie często chcemy udowadniać coś innym. Przed wejściem do biurowca pracownicy zazwyczaj przed wejściem do środka przekazują jakiś dowód tożsamości.
Gdy użytkownicy próbują zalogować się do aplikacji, takiej jak Facebook lub Twitter, usługi te muszą najpierw poprosić użytkownika o zalogowanie się za pomocą hasła, a od czasu do czasu na ich urządzenie mobilne wysyłany jest jednorazowy kod dostępu (OTP).
Wadą dostarczania dowodów jest to, że często przekazujemy inne rodzaje informacji. Podanie hasła do witryny nadal oznacza, że witryna sama przechowuje kopię zaszyfrowanego hasła na swoich serwerach. Jeśli ktoś zhakuje skaner tożsamości pracowników biurowca, może uzyskać klucze prywatne wszystkich osób.
Dowody o zerowej wiedzy lub ZKP umożliwiają weryfikację tożsamości lub transakcji bez konieczności podawania dodatkowych informacji. Ze względu na swoje zastosowania w kryptografii, ZKP zostały zaadaptowane przez: blockchains do tworzenia bezpiecznych i skalowalnych protokołów walidacji.
Co to są dowody o zerowej wiedzy?
Dowody z wiedzą zerową zostały po raz pierwszy zaproponowane przez badaczy z MIT Silvio Micali, Charlesa Rackoffa i Shafi Goldwassera w 1985 roku w ich artykule „Złożoność wiedzy interaktywnych systemów dowodowych”
Artykuł ten wprowadził pojęcie złożoności wiedzy. Odnosi się to do ilości wiedzy o dowodzie przekazanej od udowadniającego do weryfikatora. Dowody z wiedzą zerową mają na celu umożliwienie stronie udowodnienia, że określone oświadczenie jest prawdziwe w stosunku do innej strony, bez konieczności ujawniania jakichkolwiek innych informacji.
ZKP mogą być używane jako bezpieczna alternatywa dla obecnych systemów uwierzytelniania, a także mogą być dodawane do protokołów blockchain, aby zachować prywatność transakcji.
Jak działają ZKP?
Przykład ze świata rzeczywistego
Aby zilustrować, jak działają dowody z wiedzą zerową, spójrzmy na abstrakcyjny przykład ZKP.
Powiedzmy, że masz przyjaciela, który jest daltonistą od czerwono-zielonych kolorów. Masz ze sobą dwie identyczne kule, które różnią się tylko kolorem: jedną czerwoną i jedną zieloną. Dla twojego przyjaciela wyglądają identycznie, ale jako osoba bez daltonizmu możesz je łatwo odróżnić.
Czy możesz udowodnić swojemu przyjacielowi, że mają inny kolor, nie ujawniając, która piłka jest czerwona czy zielona?
W rzeczywistości istnieje sposób, aby to udowodnić bez ujawniania kolorów kulek. Najpierw musisz pozwolić swojemu przyjacielowi umieścić obie piłki za jego plecami i powiedzieć mu, aby pokazał dowolną piłkę i ponownie ją schował. Następnie mówisz swojemu przyjacielowi, że może ponownie pokazać tę samą piłkę lub zamienić ją z drugą.
Za każdym razem, gdy pokazywana jest nowa piłka, możesz powiedzieć mu, czy zmienił piłkę, czy nie. Jeśli ciągle zgadujesz właściwy znak, coraz bardziej prawdopodobne staje się, że kule mają inny kolor. Twój przyjaciel powinien być teraz przekonany, że kulki mają inny kolor, bez konieczności informowania go, które kulki mają jaki kolor.
Praktyczne zastosowania
Większość praktycznych przykładów dowodów z wiedzą zerową można podzielić na dwa typy.
Po pierwsze, ZKP można wykorzystać przy projektowaniu protokołów. Możemy zapewnić, że różne strony nie będą mogły oszukiwać ani korzystać z protokołu. Po drugie, ZKP można wykorzystać do identyfikacji.
Na przykład możemy użyć ZKP do bezpiecznego logowania się do aplikacji internetowej bez konieczności ujawniania samego hasła.
Przyjrzyjmy się kilku przykładom wykorzystania dowodów z wiedzą zerową.
Głosowanie elektroniczne
Jednym z powszechnie dyskutowanych zastosowań ZKP jest ich ewentualna rola w głosowaniu on-line. Załóżmy, że zbliża się referendum, w którym użytkownicy będą mogli głosować nad proponowaną polityką. Każdy uprawniony wyborca może oddać 1 lub 0 w głosowaniu.
Za pomocą ZKP wyborcy mogą udowodnić swoje prawo do oddania głosu bez ujawniania swojej tożsamości. Gwarantuje to, że każdy głos będzie naprawdę anonimowy. Dodatkowy ZKP posłuży również do wykazania, że głos danego użytkownika jest częścią ostatecznej liczby głosów.
Jeśli chodzi o samą treść kart do głosowania, system głosowania może również wygenerować dowód z wiedzą zerową, że każda karta do głosowania zawiera 1 lub 0. Jest to realizowane bez konieczności znajomości samej treści karty do głosowania.
Prywatność Blockchain
Blockchainy, takie jak Bitcoin i Ethereum, nie obsługują natywnie transakcji prywatnych. Dopóki Twój portfel Bitcoin jest publiczny, każdy może przejść do eksploratora bloków, takiego jak Blockstream aby zobaczyć wszystkie transakcje, których częścią jest portfel.
Tymczasem korzystanie z usług takich jak bank lub usług płatniczych, takich jak Cash App lub Venmo, daje możliwość zawierania transakcji prywatnych. Ta wygoda wiąże się jednak z kosztem ujawnienia informacji scentralizowanemu serwisowi.
Możemy połączyć anonimowość z decentralizacją, dodając ZKP do protokołu blockchain. Kryptowaluty, takie jak ZCash, wykorzystują ZKP do tworzenia prywatnych transakcji, które pozwalają posiadaczom monet zachować anonimowość. Kilka z tych kryptowalut używa typu ZKP znanego jako zk-SNARK.
Te ZKP nie wymagają interakcji pomiędzy kontrolującym a weryfikatorem.
Pakiety zbiorcze z wiedzą zerową
Rollupy ZK to skalowalne rozwiązanie, które umożliwia natychmiastową weryfikację transakcji poza łańcuchem przy minimalnych opłatach za gaz. Są sposobem na połączenie dużej liczby transakcji warstwy 2 i przesłanie ich do protokołu warstwy 1.
Poza zapewnieniem prywatności, ZKPs pozwala na skalowanie złożonych systemów. Protokoły Blockchain mogą wykorzystywać ZKP do udowodnienia, że użytkownicy rozliczyli właściwe transakcje, mają odpowiednie saldo i tak dalej. Te bezpieczne, ale skalowalne rozwiązania są możliwe tylko dzięki dowodom matematycznym wykonywanym poza łańcuchem w ZKP.
Protokoły takie jak Loopring wykorzystują dowody z wiedzą zerową, aby pomóc w przetwarzaniu transakcji poza łańcuchem bez konieczności narażania bezpieczeństwa.
Korzyści z dowodów z zerową wiedzą
- ZKP zastępują mniej niezawodne formy uwierzytelnienia, takie jak kody PIN czy karty identyfikacyjne
- ZKPS zwiększa skalowalność blockchainów
- Wdrożenie ZKP wymaga prostych metod szyfrowania
- Zastosowanie ZKPS może zwiększyć bezpieczeństwo systemów, nie wymagając przechowywania zbędnych informacji w systemie.
Wnioski
Prywatność danych jest już poważnym problemem zarówno w systemach scentralizowanych, jak i zdecentralizowanych. Dowody z wiedzą zerową umożliwiają różnym stronom udowodnienie lub zweryfikowanie transakcji i tożsamości bez konieczności ujawniania tych transakcji lub tożsamości.
Ponieważ technologia blockchain staje się coraz szerzej stosowana, przyjęcie ZKP do bezpiecznej obsługi weryfikacji będzie kluczem do problemów związanych ze skalowalnością.
Dodaj komentarz