zkDocs: Udostępnianie informacji przy wykorzystaniu wiedzy zerowej PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

zkDocs: Udostępnianie informacji o zerowej wiedzy

Większość transakcji blockchain jest z założenia publiczna, dostępna dla każdego, kto chce je sprawdzić. Chociaż doskonale nadają się do kontroli, sprawiają, że są one mniej oczywistym wyborem do przekazywania prywatnych informacji. Na przykład nie chciałbyś przypisywać swojego numeru ubezpieczenia społecznego do łańcucha bloków Ethereum. Możemy jednak skorzystać dowody zerowej wiedzy (które pozwalają nam kryptograficznie udowodnić fakty dotyczące informacji bez ujawniania informacji), aby nie tylko chronić prywatność, ale także poprawić dzisiejsze tradycyjne przepływy pracy związane z udostępnianiem i weryfikacją informacji.

Na przykład, wiele organizacje i instytucje polegają na starannym udostępnianiu prywatnych informacji i weryfikowaniu ich autentyczności w przypadku wniosków od kredytów hipotecznych po przyjęcia na studia. Jednak w praktyce te przepływy pracy chroniące prywatność obejmują szereg subiektywnych potwierdzeń dostępu, gdy ludzie pytają innych ludzi. Są to często podatne na błędy, nieefektywne i nieszczelne procesy, które ujawniają niepotrzebne informacje i mogą nie być odpowiednie do obsługi naszych najbardziej wrażliwych danych.

Tutaj pokazujemy, w jaki sposób kilka prymitywów kryptograficznych opracowanych i spopularyzowanych przez ruch web3 może usprawnić przepływy pracy weryfikacyjne informacji, zachowując jednocześnie prywatność i decentralizację, dzięki naszej nowo wydanej repozytorium zkDocs. Jest to narzędzie do tworzenia „dokumentów o zerowej wiedzy”, które umożliwiają różnym stronom danego przepływu pracy udostępnianie i weryfikację informacji oraz zapewnianie, że spełniają one określone kryteria — bez niepotrzebnego ich ujawniania.

[Osadzone treści]

Ale najpierw: jak to działa, kluczowe mechanizmy i nie tylko

Zacznijmy od krótkiego przeglądu trzech ważnych aktorów w przepływie pracy zkDocs i ich interakcji w celu ubiegania się o kredyt hipoteczny i zatwierdzania go.

  • Weryfikator: Administrator lub twórca schematu zkDoc. W naszym przykładzie weryfikatorem jest pożyczkodawca hipoteczny.
  • Zgłaszający: Osoba lub osoby chcące zweryfikować dane za pomocą schematu. To jest wnioskodawca pożyczki lub potencjalny nabywca domu.
  • Atestator: Zaufana osoba lub instytucja, która może zaświadczyć o prawdziwości co najmniej jednego pola osoby przesyłającej. Może to być pracodawca lub rzeczoznawca majątkowy.

Zazwyczaj wniosek o kredyt hipoteczny uruchamia proces weryfikacji, w którym kredytodawca hipoteczny (weryfikator) angażuje inne zaufane instytucje, aby potwierdzić, że wnioskodawca (zgłaszający) spełnia ich wymagania. Gdy wniosek zostanie odesłany od instytucji do instytucji (atestatorów), pierwotny pożyczkodawca może zatwierdzić pożyczkę.

Przedstawiona przez nas architektura pozwala weryfikatorowi na określenie schematu pól i zaufanych atestatorów, a następnie określ pewne ograniczenia dotyczące tych pól. W przypadku wniosku o kredyt hipoteczny kredytodawca może określić, że suma wartości zabezpieczenia wnioskodawcy jest większa niż jego niespłacony dług.

zkDocs pozwala również zgłaszającemu udostępniać każdemu atestatorowi tylko istotne informacje. Pracodawca może być w stanie jedynie potwierdzić zarobki i status zatrudnienia wnioskodawcy, nie widząc niepotrzebnych szczegółów finansowych. 

Zgłaszający może następnie wygenerować dowód z wiedzą zerową pokazujący, że schemat został wypełniony zgodnie z prawdą — i że każde pole zostało prawidłowo poświadczone — bez ujawniania jakichkolwiek danych bazowych. Każda strona (w tym weryfikator) może zweryfikować dowód wiedzy zerowej za pomocą lekkiego obliczenia.

Należy zwrócić uwagę na dwa podstawowe mechanizmy: zaświadczenia i dowody zerowej wiedzy.

Używanie łańcuchów bloków do atestacji

Publiczne łańcuchy bloków mają szereg właściwości, które czynią je idealnymi do poświadczania: odporność na cenzurę, dostępność danych publicznych, możliwość audytu i tajne klucze podpisywania. Atestatorzy mogą używać swojego klucza prywatnego do podpisywania wszystkich transakcji wysyłanych do łańcucha bloków, zapewniając, że poświadczenia nie mogą zostać sfałszowane ani sfałszowane.

Jednak jedną z wad publikowania poświadczeń w blockchain jest to, że podstawowe wartości są publicznie widoczne. zkDocs rozwiązuje to poprzez transmisję zobowiązania kryptograficzne do wartości zamiast wartości zwykłego tekstu. Zobowiązania te pozostają publicznie dostępne, ale ich wartości nie są widoczne.

Co to jest zobowiązanie kryptograficzne?

Zobowiązanie kryptograficzne umożliwia jednej ze stron wygenerowanie zobowiązania na niektóre prywatne dane. Później osoba zatwierdzająca może otworzyć zobowiązanie w celu ujawnienia zatwierdzonych danych. 

Schematy zobowiązań muszą być (1) ukryte, co oznacza, że ​​zobowiązanie nie ujawnia niczego na temat danych, oraz (2) wiążące, co oznacza, że ​​zlecający nie może znaleźć zobowiązania, które może otworzyć na dwa różne sposoby. 

Najprostszy schemat zobowiązań jest zbudowany z kryptograficznej funkcji skrótu — na przykład hasz Posejdona. Aby dokonać zatwierdzenia niektórych danych, osoba zatwierdzająca oblicza: zobowiązanie ← posejdon(dane, nuncjusz), gdzie nuncjusz jest losowym 512-bitowym ciągiem. Aby otworzyć zobowiązanie później, osoba dokonująca popełnienia ujawnia dane oraz nuncjusz. Każdy może sprawdzić, czy zobowiązanie zostało prawidłowo otwarte.

Weryfikacja prywatnych danych za pomocą dowodów z wiedzą zerową

Dowody z wiedzą zerową to metoda udowadniania faktów dotyczących danych bez ujawniania niczego na temat danych leżących u ich podstaw. Dzięki zkDocs, zgłaszający może stworzyć dowód z wiedzą zerową, że wszystkie dane zostały zatwierdzone i spełniają wymagane ograniczenia. Każda strona trzecia może przeprowadzić obliczenia weryfikacyjne bez wiedzy lub informacji o danych bazowych.

W rezultacie dane wymagane do weryfikacji przedłożenia schematu zkDoc są publicznie dostępne i w pełni podlegają kontroli, a jednocześnie zawsze pozostają prywatne.

W szczególności zgłaszający generuje dowód z wiedzą zerową, że zna tablicę (wartość, nuncjusz) pary takie, że:

  • poseidon(value[i], nonce[i]) == prior_commitment[i],
  • value[0], …, value[n] spełnić ograniczenia

Zgłaszający może wygenerować dowód wiedzy zerowej za pomocą tego obwodu i przesłać go do dowolnej strony zainteresowanej weryfikacją swoich danych. Każdy może uruchomić dowód i potwierdzić poprawność pól w schemacie.

Aby to zademonstrować, spójrzmy na dwa krótkie studia przypadków.

Przykład: wniosek o kredyt hipoteczny

Najpierw wróćmy do wniosku o kredyt hipoteczny, świetnego przykładu obiegu poświadczania informacji, który można usprawnić za pomocą zkDocs.

Pożyczkodawca hipoteczny (w tym przypadku weryfikator) stworzyłby schemat dla zkDoc w następujący sposób:


{
  "fields": [
    {
      "field_name": "salary"
    },
    {
      "field_name": "401k_income"
    },
    {
      "field_name": "bank_account_balance"
    },
    {
      "field_name": "property_value"
    },
    {
      "field_name": "loan_value"
    }
  ],
  "constraints": [
    {
      "fieldA": "bank_account_balance",
      "fieldB": "property_value",
      "op": "ADD",
      "constraint": "GT",
      "fieldCompare": "loan_value"
    },
    {
      "fieldA": "salary",
      "fieldB": "401k_income",
      "op": "ADD",
      "constraint": "GT",
      "constant": 65000
    }
  ],
  "trusted_institutions": [
    {
      "human_name": "Employer",
      "address": "0xabcd..."
    },
    {
      "human_name": "Home Appraiser",
      "address": "0xabcd..."
    },
    {
      "human_name": "401k Provider",
      "address": "0xabcd..."
    },
    {
      "human_name": "Checking Account Provider",
      "address": "0xabcd..."
    },
    {
      "human_name": "Creditor",
      "address": "0xabcd..."
    }
  ]
}

Najpierw schemat określa kilka pól, którymi interesuje się pożyczkodawca: wynagrodzenie, dochód 401(k), stan konta czekowego, wartość nieruchomości i wartość pożyczki. 

Następnie dwa ograniczenia dotyczące tych pól: 

  1. Suma wartości nieruchomości i salda rachunku bankowego jest większa niż wartość kredytu
  2. Suma 401(k) dochodów i pensji przekracza 65,000 XNUMX USD rocznie

I wreszcie pięć instytucji, którym ufa, aby poświadczyć te informacje:

  1. Pracodawca
  2. Rzeczoznawca domowy
  3. 401(k) dostawca
  4. Sprawdzam dostawcę konta
  5. Wierzyciel

Aby ubiegać się o kredyt hipoteczny, wnioskodawca wypełnia pola wymienione w sekcji „pola” za pomocą interfejsu użytkownika zkDocs i publikuje dla każdego z nich zobowiązanie kryptograficzne. Wnioskodawca przesyła następnie odpowiednie pola w postaci zwykłego tekstu wraz z numerami jednorazowymi dla każdego zobowiązania, do każdej z instytucji poświadczających (ze zbioru wymienionego poniżej) trusted_institutions). Interfejs użytkownika zkDocs robi to za pomocą hiperłączy.

Każdy atestator weryfikuje odpowiednie informacje w postaci zwykłego tekstu i potwierdza zobowiązanie, podpisując się swoim kluczem prywatnym Ethereum. Następnie wnioskodawca może przesłać transakcję do łańcucha bloków, w tym dowód z wiedzą zerową na temat ważności zobowiązań i ograniczeń, kwalifikując się w ten sposób jako ważny odbiorca kredytu hipotecznego. Weryfikująca instytucja hipoteczna nie będzie musiała przeprowadzać dodatkowej weryfikacji w celu potwierdzenia integralności wniosku.

Przykład: pożyczki MakerDAO RWA

MakerDAO to protokół kredytowy, który do dnia dzisiejszego wydał 6 miliardów dolarów w pożyczkach denominowany w DAI (token powiązany z USD). Dział Real World Assets (RWA) firmy Maker pracuje nad udzielaniem pożyczek denominowanych przez DAI pożyczkodawcom niższego szczebla, umożliwiając DAI bezpośrednie napędzanie wzrostu gospodarczego w świecie rzeczywistym. Ale Maker to DAO, którego token zarządzania jest własnością około 78,000 XNUMX unikalnych portfeli, z których każdy ma prawo do uczestniczenia w procesie zarządzania i kierowania przyszłością protokołu. 

Większość dużych decyzji Makera, takich jak przejęcie nowego źródła zabezpieczenia, omówiono w: fora publiczne. Ale instytucja lub osoba ubiegająca się o pożyczkę od Maker może nie być zainteresowana udostępnianiem całości swoich finansów publicznych z wielu powodów, od prywatności po tajemnice handlowe. Maker może zamiast tego opublikować zkDoc ze schematem podobnym do następującego:


{
  "fields": [
    {
      "field_name": "custodian_name"
    }, 
    {
      "field_name""total_loan"
    },
    {
      "field_name": "total_collateral_value"
    },
    {
      "field_name": "amount_repaid"
    }
  ],
  "constraints": [
    {
      "fieldA": "total_loan",
      "fieldB": "amount_repaid",
      "op": "SUB",
      "constraint": "LT",
      "fieldCompare": "total_collateral_value"
    }
  ],
  "trusted_institutions": [
    {
      "address": "0xabcd…",
      "human_name": "Bob the Custodian"
    }
  ]
}

Ten schemat umożliwiłby uczestnikom zarządzania zapewnienie, że protokół nie podejmuje nieuzasadnionego ryzyka, bez wymagania, aby wszyscy wnioskujący o pożyczkę RWA naruszali ich prywatność.

***
zkDocs w obecnej formie wykorzystuje:

  • Podpisane transakcje (lub dowolny łańcuch zgodny z EVM) w celu weryfikacji autentyczności poświadczeń
  • Przestrzeń publiczna do przechowywania zarówno zobowiązań, jak i poświadczeń
  • Inteligentne kontrakty do weryfikacji dowodów z wiedzą zerową 

Poza właściwościami audytowalności i prywatności zkDocs, istnieje inna interesująca oś: gdy weryfikacja prywatnych informacji zostanie uruchomiona na publicznym blockchainie, użytkownicy i programiści mogą tworzyć zweryfikowane w zkDoc informacje za pomocą własnych aplikacji. Można sobie wyobrazić, że historia pożyczek wpływa na reputację DAO, kwartalne raporty sprawdzane przez społeczność w celu dostosowania parametrów protokołu, natychmiastowe aplikacje na studia, obniżone stawki protokołów dla użytkowników zaufanych w innej społeczności i wiele więcej.

Naszym celem w dzieleniu się tym dowodem koncepcji jest zademonstrowanie, w jaki sposób te nowe prymitywne metody obliczeniowe mogą być obecnie używane w środowisku produkcyjnym, oraz pomoc w przyspieszeniu ich przyjęcia poprzez udostępnienie większej liczby aplikacji w trybie online. Jeśli planujesz wdrożyć zkDocs do prod lub skorzystać z podobnego schematu, skontaktuj się z Twitter.

Znak czasu:

Więcej z Andreessen Horowitz