Pełna wiedza
James Austgen, Kushal Babel, Vitalik Buterin, Phil Daian, Ari Juels i Mahimna Kelkar
— W tym życiu pragniemy tylko Faktów, panie; tylko fakty!
— Charles Dickens, Ciężkie czasy
W opublikowanym dzisiaj artykule przedstawiamy nowe pojęcie kryptograficzne, które nazywamy dowodami pełnej wiedzy (CK). Opowiadamy również o prototypie, który oferuje ścieżkę do uczynienia CK praktycznym do użytku ze smartfonami.
Dowody wiedzy, jak sama nazwa wskazuje, umożliwiają jednej stronie, np. Alicji, przekonanie drugiej strony, np. Boba, że zna określoną tajemnicę — na przykład klucz prywatny SK . Przykładem są podpisy cyfrowe. Rozważmy transakcję kryptowalutową T utworzoną przez Alicję, która wydaje środki z jej adresu A . Aby był ważny, T musi być podpisany cyfrowo za pomocą ważnego klucza prywatnego SK dla A . Cyfrowy podpis tutaj dowodzi, że Alicja, jako twórca T , zna klucz SK . To dowód znajomości SK sprawia, że transakcja jest ważna: W systemie kryptowalutowym właściciel adresu Ajest z definicji tym, kto zna SK .
Dowody wiedzy są podstawą projektowania systemów kryptograficznych. Okazuje się jednak, że istniejące systemy potwierdzania wiedzy mają poważne ograniczenia: Alicja może być w stanie stworzyć przekonujący dowód na to, że zna SK , ale nadal może go nie znać .
Oto analogia. Załóżmy, że Mallory chce wystąpić jako uczestnik Jeopardy . Udziela wywiadu gospodarzowi programu (Mayim Bialik). Mallory wie, że podczas wywiadu usłyszy pytania o stolice stanów USA, których nigdy nie uczyła się w szkole. (Była zajęta odwracaniem NFT podczas lekcji geografii.) Więc postanawia oszukiwać. Przyjaciółka Mallory, Alice, zna wszystkie stolice stanów we wschodniej części Stanów Zjednoczonych, podczas gdy jej przyjaciel Bob zna stolice na zachodzie. Dlatego Mallory ukrywa bezprzewodowe urządzenie komunikacyjne w każdym uchu. To w jej lewym uchu komunikuje się z Alice. To w jej prawym uchu komunikuje się z Bobem. Dzięki oszustwom Mallory, kiedy podczas wywiadu pyta stolice różnych stanów USA, zawsze odpowiada poprawnie.
Ale czy Mallory zna wszystkie stolice stanów USA? Oczywiście, że nie. Alicja czy Bob? Odpowiedź wciąż brzmi nie. Można chyba powiedzieć, że Alicja i Bob razem znają wszystkie stolice stanów USA. Ale załóżmy, że Alicja jest dziwnie przesądna i odmawia odpowiedzi na pytania dotyczące stolicy stanu w piątki. Czy nadal możemy powiedzieć, że Alicja i Bob razem znają wszystkie stolice stanów USA? Tak i nie. Wiedza istnieje w głowach Alicji i Boba, ale niekoniecznie jest możliwe wydobycie jej zgodnie z życzeniem . Jeśli Mallory udzieli wywiadu Jeopardy w piątek, będzie miała kłopoty.
Kompletna wiedza odpowiada na tego rodzaju lukę w tym, co to znaczy mieć wiedzę. W naszej analogii odmowa odpowiedzi Alicji na pytania w piątek jest ograniczeniem w dostępie do wiedzy, które nazywamy obciążeniem. Aby wyjaśnić, gdzie zawodzą istniejące dowody wiedzy w kryptografii, warto zacząć od kilku potencjalnie problematycznych przykładów, w szczególności obciążania tajnych kluczy.
Problem obciążenia
Istnieją dwie różne technologie, które mogą obciążać tajemnice: zaufane środowiska wykonawcze (TEE) i bezpieczne przetwarzanie wielostronne (MPC).
TEE to środowiska obliczeniowe przypominające czarne skrzynki: ich stan wewnętrzny jest nieprzejrzysty i odporny na manipulacje. Wykorzystując sprzęt lub oprogramowanie, egzekwują zarówno integralność , jak i prywatność wykonywanych aplikacji, zapewniając ochronę przed manipulacją i obserwacją nawet przez właściciela samej maszyny, na której działa kod. Przykładami TEE są enklawy (np. ARM Trustzone) na urządzeniach mobilnych oraz Intel Software Guard eXtensions (SGX), który jest dostępny na niektórych serwerach w chmurze.
Z drugiej strony MPC to algorytmiczne podejście do osiągania takich samych celów bezpieczeństwa. Dzieli tajemnice i obliczenia między zbiór serwerów, często nazywany komitetem. Bezpieczeństwo MPC zależy od prawidłowego zachowania się kworum serwerów w komitecie (np. większości).
Ponieważ TEE są obecnie znacznie bardziej praktyczne i rozpowszechnione niż MPC, w poniższych przykładach skupimy się na TEE, zaczynając od opartego na TEE ataku na systemy głosowania oparte na technologii blockchain. Oto przykład ataku na systemy głosowania.
Problem silnego, ukradkowego przekupstwa w tym przykładzie dotyczy nie tylko naiwnie zaprojektowanych schematów głosowania opartych na technologii blockchain, ale nawet tych zaprojektowanych specjalnie w celu przeciwdziałania przekupstwu, takich jak minimalna infrastruktura przeciwdziałająca zmowom (MACI) .
Co gorsza, TEE może ukradkiem zachęcać i powiększać społeczność użytkowników do zunifikowanego ataku na protokół — koncepcję, którą wcześniej nazwaliśmy Dark DAO . Takie ataki mogą obejmować nie tylko manipulowanie głosami, ale także manipulowanie cenami aktywów i prawdopodobnie atakowanie systemów poza łańcuchem .
Szczególnie zgubne jest to, że jeśli Alicja wyśle podpisaną transakcję do inteligentnego kontraktu przy użyciu obciążonego klucza SK , nie ma sposobu, aby umowa o tym wiedziała. Transakcja Alice będzie wyglądać identycznie jak transakcja utworzona z nieobciążonym kluczem. Wydaje się więc, że po prostu niemożliwe jest zapobieganie atakom przekupstwa, takim jak zilustrowane w naszym przykładzie.
Ale czy tak jest naprawdę?
Zapewnienie pełnej wiedzy
Okazuje się, że istnieje sposób , aby zapewnić, że klucz SK jest nieobciążony — w szczególności, że ktoś ma bezpośredni dostęp do SK . Nieformalnie to właśnie rozumiemy przez Kompletną Wiedzę. Efektem CK jest to, że schematy przekupstwa, takie jak w naszym przykładzie, nie zadziałają, ponieważ złośliwy użytkownik, taki jak Mallory, nie ma sposobu, aby uniemożliwić użytkownikowi użycie jej klucza w dowolny sposób.
Istnieją dwa podstawowe podejścia do egzekwowania CK. Oba umożliwiają generowanie tzw. dowodów pełnej wiedzy (PoCK), a konkretnie takich, które są zerową wiedzą , czyli nie ujawniają SK:
- Metoda walki ogniem ogniem
Większość użytkowników ma TEE na swoich telefonach komórkowych. W naszym artykule pokazujemy, jak można je wykorzystać w schemacie CK do głosowania lub dowolnej innej aplikacji.
Jak omówiliśmy w naszym artykule, istnieją jednak pewne ograniczenia techniczne dotyczące TEE, szczególnie tych w telefonach komórkowych. Rozważamy więc również drugie podejście.
2. Podejście oparte na dowodzie pracy
To podejście jest nieco sprzeczne z intuicją. Wiąże się to z użyciem górniczego ASIC, tj. sprzętu do wydobycia typu proof-of-work, takiego jak używany w przypadku Bitcoina. Układy ASIC mają dwie ładne właściwości dla celów CK. Mogą wykonywać pewne obliczenia, a mianowicie haszować , znacznie szybciej niż zwykłe procesory lub procesory graficzne — rzędu miliona razy szybciej niż najnowocześniejszy procesor! I nie obejmują TEE.²
Opierając się i modyfikując techniki z literatury dotyczącej teorii dowodów wiedzy, zaprojektowaliśmy protokół, który obejmuje użycie ASIC do wydobywania w sposób, który obejmuje SK (ale sprytnie to ukrywa). Protokół ten generuje dowód, że SK został wysłany do ASIC, tj. PoCK. Ponieważ ASIC nie ma TEE, oznacza to, że SK jest skutecznie wystawiony na działanie użytkownika ASIC. Ta właściwość jest zasadniczo równoważna z tym, co robi specjalna aplikacja TEE RBU: wypluwanie SK bezpośrednio do użytkownika. Ponieważ ASIC jest o wiele szybszy niż platformy obsługujące TEE, nie ma możliwości wygenerowania równoważnego PoCK przy użyciu TEE.
Nasz artykuł pokazuje eksperymentalnie, że nawet przy użyciu taniego (około 200 USD), przestarzałego (około 2017 r.) ASIC, możliwe jest wdrożenie PoCK o wysokim poziomie bezpieczeństwa.
Zastosowania CK Poza odpornością na przekupstwo
Chociaż początkowo zaprojektowaliśmy CK w celu przeciwdziałania zagrożeniu przekupstwem w programach głosowania, istnieje wiele innych zastosowań. CK może pomóc w zapobieganiu obciążaniu zdecentralizowanych poświadczeń tożsamości, np. zaświadczenia, że użytkownik został poddany starannemu przeciwdziałaniu praniu pieniędzy. Jest to niezbędne, aby zapobiec wielu rodzajom psot, jakie mogą wystąpić, jeśli użytkownicy mogą wynajmować swoje dane uwierzytelniające, np. rynek poświadczeń tożsamości w celu obejścia sankcji.
CK ma również ciekawe zastosowania na rynkach NFT. Może na przykład pomóc w zapewnieniu egzekwowania opłat licencyjnych dla artystów. Obecnie opłaty licencyjne są egzekwowane wyłącznie poza łańcuchem, tj. dobrowolnie , przez rynki NFT. Zamiast tego mogłyby być zasadniczo egzekwowane w łańcuchu w inteligentnej umowie, w którym to przypadku egzekwowanie byłoby obowiązkowe. Jednym z powodów, dla których obowiązkowe opłaty licencyjne nie są uważane za dobrą praktykę, jest to, że byłoby niesprawiedliwe, gdyby użytkownicy przesyłający NFT między własnymi adresami musieli płacić tantiemy. Problem polega na tym, że nie ma możliwości rozróżnienia adresu nadawcy S od adresu odbiorcy R należącego do jednego użytkownika oraz adresów S i Rnależące do różnych użytkowników. Dlatego nie ma możliwości odróżnienia transferu jednego użytkownika od zmiany właściciela NFT.
Jednak w przypadku CK możliwe jest rozróżnienie. Umowa rynkowa NFT może wymagać w przypadku transferów nieodpłatnych, aby PoCK był stosowany jednocześnie do R i S , co dowodzi, że jeden podmiot zna oba te elementy . Ta właściwość jest całkiem dobrym przybliżeniem do pojedynczej własności. Przynajmniej wierzymy, że to podejście oparte na CK może silnie zniechęcić do uchylania się od płacenia honorariów3
Innym interesującym zastosowaniem CK do NFT jest pojęcie, które nazywamy atomowymi NFT . Powszechne jest frakcjonowanie kosztownych NFT, to znaczy dzielenie ich własności na małe części, jak to miało miejsce na przykład w przypadku Doge NFT .
Jednak wielu artystów, z którymi rozmawialiśmy, woli, aby ich prace były własnością jednej osoby i były przez nią doceniane. Atomowe NFT oferują sposób na tworzenie NFT, które szanują to pragnienie i zapewniają wyłączną własność. Aby zademonstrować te możliwości, stworzyliśmy naszą własną małą kolekcję atomowych NFT, pokazaną tutaj.
Wniosek
Dowody wiedzy to dobrze przestudiowana, istniejąca od dziesięcioleci koncepcja kryptografii. Ale potężne nowe (ish) technologie, takie jak TEE i MPC, grożą wywróceniem do góry nogami klasycznego krajobrazu dowodu wiedzy poprzez obciążenie tajemnic. CK oferuje sposób na uniknięcie takiego obciążenia i przywrócenie intuicyjnego wyobrażenia o przyporządkowaniu wiedzy do pojedynczego podmiotu lub jednostki. Oprócz oferowania środka zaradczego na ataki oparte na obciążeniach — takich jak przekupstwo w systemach głosowania — oferuje również szereg nowych aplikacji.
Wierzymy, że CK może być praktyczne. Wdrożyliśmy kompleksowy system oparty na ASIC z inteligentnym kontraktem , który weryfikuje dowody PoCK. Nasz prototypowy system obejmuje opartą na inteligentnych umowach rejestr adresów, które okazały się zgodne z CK. Wdrożyliśmy również prototypowy system wykorzystujący TEE oparte na telefonach komórkowych. Nasze prototypy nie są jeszcze gotowe do premiery, ale wierzymy, że istnieje droga do praktycznego wdrożenia produkcyjnego. Wersję open source naszych narzędzi można znaleźć tutaj . Zapraszamy do współpracy projekty zainteresowane jego realizacją.
¹ Na szczęście TEE nie mogą być zagnieżdżane, więc Mallory nie ma sprytnego sposobu na opakowanie aplikacji TEE RBU, a tym samym nadal obciąża klucze użytkowników.
² Większość układów ASIC ma bardzo mało zabezpieczeń na pokładzie. Nie obsługują nawet szyfrowanej sieci, co odkryliśmy, gdy nasz układ ASIC został najwyraźniej kilka razy naruszony przez zdalnego hakera w trakcie naszych eksperymentów.
³ Jest tu zastrzeżenie. Jak omawiamy w naszym artykule, gdyby mechanizmy odzyskiwania społecznego stały się powszechne, dowody CK równoczesnej znajomości kluczy przestałyby działać.

![Czym w ogóle jest lista połączona? [Część 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































