zkDocs: Tietojen jakaminen ilman tietämystä PlatoBlockchain-tiedonvälitys. Pystysuuntainen haku. Ai.

zkDocs: Tietojen jakaminen ilman tietämystä

Suurin osa blockchain-transaktioista on suunniteltu julkisia, ja ne ovat kaikkien saatavilla, jotka haluavat tarkastaa ne. Vaikka ne ovat erinomaiset tarkastettavaksi, tämä tekee niistä vähemmän ilmeisen vaihtoehdon yksityisten tietojen välittämiseen. Et halua sitoa sosiaaliturvatunnustasi esimerkiksi Ethereum-lohkoketjuun. Voimme kuitenkin käyttää nollatieto-todisteet (jotka antavat meille mahdollisuuden todistaa kryptografisesti tietoja tiedoista paljastamatta tietoja) ei vain suojella yksityisyyttä, vaan myös parantaa nykypäivän perinteisiä tiedon jakamis- ja varmennustyönkulkuja.

Esimerkiksi monet organisaatiot ja laitokset luottavat yksityisten tietojen huolelliseen jakamiseen ja niiden aitouden tarkistamiseen hakemuksissa asuntolainasta yliopistoon pääsyyn. Mutta käytännössä nämä yksityisyyttä suojaavat työnkulut sisältävät sarjan subjektiivisia pääsyvahvistuksia, kun ihmiset tiedustelevat muilta ihmisiltä. Ne ovat usein virhealttiita, tehottomia ja vuotavia prosesseja, jotka paljastavat tarpeettomia tietoja, eivätkä välttämättä sovellu kaikkein arkaluontoisimpien tietojemme käsittelyyn.

Tässä esittelemme, kuinka useat web3-liikkeen kehittämät ja popularisoimat kryptografiset primitiivit voivat parantaa tiedonvarmennustyönkulkuja säilyttäen samalla sekä yksityisyyden että hajautuksen äskettäin julkaistun julkaisumme avulla. zkDocs repo. Se on työkalu, jolla luodaan "nolla-tietoa tukevia asiakirjoja", joiden avulla tietyn työnkulun eri osapuolet voivat jakaa ja tarkistaa tietoja ja varmistaa, että ne täyttävät tietyt kriteerit – paljastamatta niitä tarpeettomasti.

[Upotetun sisällön]

Mutta ensin: miten se toimii, keskeiset mekanismit ja paljon muuta

Aloitetaan nopealla yleiskatsauksella kolmesta tärkeästä toimijasta zkDocs-työnkulussa ja siitä, kuinka he voivat olla vuorovaikutuksessa asuntolainan hakemisessa ja hyväksymisessä.

  • Todentaja: zkDoc-skeeman järjestelmänvalvoja tai luoja. Esimerkissämme todentaja on asuntolainanantaja.
  • Lähettäjä: Henkilö tai henkilöt, jotka haluavat saada tietoja skeeman varmentamisesta. Tämä on lainanhakija tai mahdollinen asunnon ostaja.
  • Todistaja: Luotettu henkilö tai laitos, joka voi todistaa yhden tai useamman lähettäjän kentän totuuden. Tämä voi olla työnantaja tai kodin arvioija.

Tyypillisesti asuntolainahakemus käynnistää varmennustyönkulun, jossa asuntolainanantaja (varmentaja) ottaa käyttöön muita luotettuja laitoksia varmistaakseen, että hakija (lähettäjä) täyttää heidän vaatimukset. Kun hakemus pomppii laitoksesta toiseen (todistajat), alkuperäinen lainanantaja voi hyväksyä lainan.

Esittämämme arkkitehtuuri antaa todentajalle mahdollisuuden määrittää kentät ja luotetut todistajat, ja määritä sitten joitain rajoituksia näille kentille. Asuntolainahakemuksen yhteydessä lainanantaja voi täsmentää, että hakijan vakuusarvon summa on suurempi kuin hänen maksamatta oleva velka.

zkDocs sallii myös lähettäjän jakaa vain asiaankuuluvat tiedot kunkin todistajan kanssa. Työnantaja voi vain todistaa esimerkiksi hakijan palkan ja työsuhteen näkemättä tarpeettomia taloudellisia yksityiskohtia. 

Lähettäjä voi sitten luoda nollatietotodistuksen, joka osoittaa, että skeema on täytetty totuudenmukaisesti – ja että jokainen kenttä on asianmukaisesti todistettu – paljastamatta mitään taustalla olevia tietoja. Kuka tahansa osapuoli (mukaan lukien todentaja) voi vahvistaa nollatietotodistuksen kevyellä laskennalla.

Huomioitavaa on kaksi ensisijaista mekanismia: todistukset ja nollatieto-todisteet.

Lohkoketjujen käyttäminen todistuksiin

Julkisilla lohkoketjuilla on useita ominaisuuksia, jotka tekevät niistä ihanteellisia todistuksia varten: sensuurin vastustuskyky, julkisten tietojen saatavuus, tarkastettavuus ja salaiset allekirjoitusavaimet. Todistajat voivat käyttää yksityistä avaintaan kaikkien lohkoketjuun lähetettyjen tapahtumien allekirjoittamiseen, mikä varmistaa, ettei todistuksia voi väärentää tai väärentää.

Kuitenkin yksi haittapuoli todistusten lähettämisessä lohkoketjuun on, että taustalla olevat arvot ovat julkisesti näkyvissä. zkDocs ratkaisee tämän lähettämällä kryptografiset sitoumukset arvoihin selkeän tekstin arvojen sijaan. Nämä sitoumukset ovat julkisesti saatavilla, mutta niiden taustalla olevat arvot eivät näy.

Mikä on kryptografinen sitoumus?

Salaussitoumus antaa yhden osapuolen luoda sitoumuksen joihinkin yksityisiin tietoihin. Myöhemmin sitoutuja voi avata sitoumuksen paljastaa sitoutuneet tiedot. 

Sitoumusjärjestelmien tulee olla (1) piilossa, eli sitoumus ei paljasta tiedoista mitään, ja (2) sitovia, eli sitoutuja ei löydä sitoumusta, jonka se voi avata kahdella eri tavalla. 

Yksinkertaisin sitoumusjärjestelmä on rakennettu kryptografisesta hash-funktiosta - esimerkiksi Poseidon hash. Sitoutuakseen joihinkin tietoihin sitoutuja laskee: sitoutuminen ← poseidon(tiedot, nuntiuksen), missä nuntiuksen on satunnainen 512-bittinen merkkijono. Avatakseen sitoumuksen myöhemmin, sitoutuja paljastaa tiedot ja nuntiuksen. Kuka tahansa voi varmistaa, että sitoumus avattiin oikein.

Yksityisten tietojen tarkistaminen nollatietotodistuksilla

Nollatietotodisteet ovat tapa todistaa fakta datasta paljastamatta mitään taustalla olevista tiedoista. zkDocsilla lähettäjä voi luoda nollatietoisen todisteen siitä, että kaikki tiedot on sitoutunut ja täyttävät vaaditut rajoitukset. Kuka tahansa kolmas osapuoli voi suorittaa varmennuslaskelman tietämättä taustalla olevia tietoja tai tietoja niistä.

Tuloksena on, että zkDoc-skeeman lähetyksen vahvistamiseen tarvittavat tiedot ovat julkisesti saatavilla ja täysin tarkastettavissa, mutta ne ovat aina yksityisiä.

Tarkemmin sanottuna lähettäjä luo nollatietotodistuksen siitä, että se tuntee joukon (arvo, nuntiuksen) pareja siten, että:

  • poseidon(value[i], nonce[i]) == prior_commitment[i]ja
  • value[0], …, value[n] täyttää rajoitukset

Lähettäjä voi luoda nollatietotodistuksen käyttämällä tätä piiriä ja lähettää sen kaikille osapuolille, jotka ovat kiinnostuneita tarkistamaan tietonsa. Kuka tahansa voi suorittaa todisteen ja vahvistaa skeeman kenttien oikeellisuuden.

Tämän havainnollistamiseksi katsotaanpa kahta lyhyttä tapaustutkimusta.

Esimerkki: asuntolainahakemus

Palataan ensin asuntolainahakemukseen, joka on loistava esimerkki tietojen todistamisen työnkulusta, jota voidaan parantaa zkDocsilla.

Asuntolainanantaja (tässä tapauksessa varmentaja) luo skeeman zkDocille seuraavasti:


{
  "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..."
    }
  ]
}

Ensin skeema määrittelee useita kenttiä, joista lainanantaja on kiinnostunut: palkka, 401(k) tulot, tilisaldon tarkistus, omaisuuden arvo ja lainan arvo. 

Sitten kaksi rajoitusta näille kentille: 

  1. Kiinteistön arvon ja pankkitilin saldon summa on suurempi kuin lainan arvo
  2. 401(k) tulon ja palkan summa on yli 65,000 XNUMX dollaria vuodessa

Ja lopuksi viisi laitosta, joihin se luottaa, todistamaan nämä tiedot:

  1. Työnantaja
  2. Kodin arvioija
  3. 401 (k) tarjoaja
  4. Sekkitilin tarjoaja
  5. Velkoja

Hakeakseen asuntolainaa hakija täyttää "kentät" -osiossa luetellut kentät zkDocs-käyttöliittymällä ja julkaisee ketjun salaussitoumuksen jokaiselle. Hakija lähettää sitten asiaankuuluvat selkeät kentät sekä kunkin sitoumuksen poikkeukset, jokaiselle todistuksen myöntävälle laitokselle (alla luetellusta joukosta trusted_institutions). zkDocs-käyttöliittymä tekee tämän hyperlinkkien kautta.

Jokainen todistaja vahvistaa asiaankuuluvat selkeätekstitiedot ja todistaa sitoumuksen allekirjoittamalla yksityisellä Ethereum-avaimellaan. Tämän jälkeen hakija voi toimittaa lohkoketjulle tapahtuman, joka sisältää todisteen sitoumusten ja rajoitusten pätevyydestä ilman tietoa, ja näin ollen hänet voidaan hyväksyä päteväksi asuntolainan saajaksi. Todentavan asuntolainalaitoksen ei tarvitse suorittaa lisätarkastuksia hakemuksen eheyden vahvistamiseksi.

Esimerkki: MakerDAO RWA -lainat

MakerDAO on lainausprotokolla, joka on tähän mennessä julkaistu 6 miljardia dollaria lainoja DAI (USD-sidottu token) määräinen. Makerin Real World Assets (RWA) -divisioona pyrkii tarjoamaan DAI-määräisiä lainoja loppupään lainanantajille, jotta DAI voi suoraan ruokkia reaalimaailman talouskasvua. Mutta Maker on DAO, jonka hallintotunnuksen omistaa noin 78,000 XNUMX ainutlaatuista lompakkoa, joilla jokaisella on oikeus osallistua hallintoprosessiin ja ohjata protokollan tulevaisuutta. 

Useimpia suuria Tekijän päätöksiä, kuten uuden vakuuslähteen ottamista, käsitellään tässä julkisilla foorumeilla. Mutta Makerilta lainaa hakeva laitos tai henkilö ei ehkä ole kiinnostunut jakamaan kaikkia taloustietojaan yleisölle useista syistä, yksityisyydestä liikesalaisuuksiin. Maker voisi sen sijaan julkaista zkDocin seuraavan kaltaisella skeemalla:


{
  "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"
    }
  ]
}

Tämän mallin avulla hallintoon osallistujat voivat varmistaa, että protokolla ei ota kohtuuttomia riskejä vaatimatta kaikkia RWA-lainanhakijoita loukkaamaan yksityisyyttään.

***
zkDocs, sellaisena kuin se on tällä hetkellä toteutettu, käyttää:

  • Allekirjoitetut tapahtumat (tai mikä tahansa EVM-yhteensopiva ketju) todistusten aitouden varmistamiseksi
  • Julkinen lohkotila sekä sitoumusten että todistusten tallentamiseen
  • Älykkäät sopimukset nollatietotodisteiden tarkistamiseksi 

ZkDocsin tarkastettavuuden ja tietosuojaominaisuuksien lisäksi on toinen mielenkiintoinen akseli: Kun yksityisten tietojen vahvistus on käynnissä julkisessa lohkoketjussa, käyttäjät ja kehittäjät voivat luoda zkDoc-varmennettuja tietoja omilla sovelluksillaan. Voitaisiin kuvitella lainahistorian vaikuttavan DAO:n maineeseen, yhteisön vahvistamia neljännesvuosittaisia ​​ilmoituksia protokollaparametrien säätämiseksi, välittömiä korkeakoulusovelluksia, alennettuja protokollahintoja käyttäjille, joihin luotetaan toisessa yhteisössä, ja paljon muuta.

Tavoitteenamme tämän konseptin todisteen jakamisella on osoittaa, kuinka näitä uusia laskentaprimitiivejä voidaan käyttää tuotannossa nykyään, ja nopeuttaa niiden käyttöönottoa tuomalla lisää sovelluksia verkkoon. Jos aiot ottaa zkDocsia käyttöön tuotantoon tai käyttää vastaavaa järjestelmää, ota rohkeasti yhteyttä Twitter.

Aikaleima:

Lisää aiheesta Andreessen Horowitz