zkDocs: Sıfır Bilgi Bilgi Paylaşımı PlatoBlockchain Veri İstihbaratı. Dikey Arama. Ai.

zkDocs: Sıfır Bilgi Bilgi Paylaşımı

Blockchain işlemlerinin çoğu, tasarım gereği halka açıktır ve bunları incelemek isteyen herkesin kullanımına açıktır. Denetlenebilirlik için mükemmel olsa da, bu onları özel bilgileri iletmek için daha az belirgin bir seçim haline getirir. Örneğin, sosyal güvenlik numaranızı Ethereum blok zincirine vermek istemezsiniz. Ancak kullanabiliriz sıfır bilgi delilleri (bu, bilgileri ifşa etmeden bilgi hakkındaki gerçekleri kriptografik olarak kanıtlamamıza izin verir) yalnızca gizliliği korumakla kalmaz, aynı zamanda günümüzün geleneksel bilgi paylaşımı ve doğrulama iş akışlarını da geliştirir.

Örneğin, çok kuruluşlar ve kurumlar, ipotek kredisinden üniversiteye girişlere kadar olan uygulamalar için özel bilgileri dikkatli bir şekilde paylaşmaya ve gerçekliğini doğrulamaya güvenir. Ancak uygulamada, bu gizliliği koruyan iş akışları, insanlar diğer insanları sorgularken bir dizi öznel erişim onayını içerir. Genellikle gereksiz bilgileri açığa çıkaran hataya açık, verimsiz ve sızdıran süreçlerdir ve en hassas verilerimizi işlemek için uygun olmayabilirler.

Burada, web3 hareketi tarafından geliştirilen ve yaygınlaştırılan birkaç kriptografik ilkenin, yeni piyasaya sürülen uygulamamız aracılığıyla hem mahremiyeti hem de ademi merkeziyetçiliği korurken bilgi doğrulama iş akışlarını nasıl iyileştirebileceğini gösteriyoruz. zkDocs deposu. Belirli bir iş akışındaki çeşitli tarafların bilgileri paylaşmasına ve doğrulamasına ve gereksiz yere ifşa etmeden belirli kriterleri karşıladığından emin olmasına izin veren “sıfır bilgi etkin belgeler” oluşturmak için bir araçtır.

[Gömülü içerik]

Ama önce: nasıl çalışır, temel mekanizmalar ve daha fazlası

zkDocs iş akışındaki üç önemli aktöre ve bir ipotek başvurusunda bulunmak ve onaylamak için nasıl etkileşim kurabileceklerine hızlı bir genel bakışla başlayalım.

  • Doğrulayıcı: Bir zkDoc şemasının yöneticisi veya yaratıcısı. Örneğimizde, doğrulayıcı ipotek kredisidir.
  • Gönderen: Şema tarafından doğrulanmış verilere sahip olmak isteyen kişi veya kişiler. Bu, kredi başvurusunda bulunan veya potansiyel ev alıcısıdır.
  • tasdik eden: Göndericinin alanlarından birinin veya daha fazlasının doğruluğunu onaylayabilen güvenilir bir kişi veya kurum. Bu bir işveren veya ev değerleme uzmanı olabilir.

Tipik olarak, bir ipotek başvurusu, bir ipotek kredisi verenin (doğrulayıcı), başvuranın (teslim edenin) gereksinimlerini karşıladığını doğrulamak için diğer güvenilir kurumlarla bağlantı kurduğu bir doğrulama iş akışını başlatır. Başvuru kurumdan kuruma (onaylayanlar) sıçradığında, asıl borç veren krediyi onaylayabilir.

Yerleştirdiğimiz mimari, bir doğrulayıcının alanlar ve güvenilir onaylayıcılardan oluşan bir şema belirlemesine olanak tanır., ve ardından bu alanlar üzerinde bazı kısıtlamalar belirtin. Bir ipotek başvurusu durumunda, borç veren, başvuranın teminat değerinin toplamının ödenmemiş borcundan daha büyük olduğunu belirtebilir.

zkDocs ayrıca, gönderenin her bir onaylayanla yalnızca ilgili bilgileri paylaşmasına izin verir. Bir işveren, örneğin, gereksiz mali ayrıntıları görmeden yalnızca başvuranın ücretlerini ve istihdam durumunu doğrulayabilir. 

Gönderici daha sonra, şemanın doğru bir şekilde doldurulduğunu ve her alanın uygun şekilde onaylandığını gösteren sıfır bilgi kanıtı oluşturabilir, temel verileri açıklamadan. Herhangi bir taraf (doğrulayıcı dahil), hafif bir hesaplama yoluyla sıfır bilgi kanıtını doğrulayabilir.

Dikkat edilmesi gereken iki ana mekanizma vardır: tasdikleri ve sıfır bilgi delilleri.

Onaylar için blok zincirleri kullanma

Genel blok zincirleri, onları tasdik için ideal kılan bir dizi özelliğe sahiptir: sansür direnci, genel veri kullanılabilirliği, denetlenebilirlik ve gizli imzalama anahtarları. Onaylayanlar, blok zincirine gönderilen tüm işlemleri imzalamak için özel anahtarlarını kullanabilirler ve bu, onayların sahte veya sahte olmamasını sağlar.

Bununla birlikte, bir blok zincirine tasdik göndermenin dezavantajlarından biri, temel değerlerin herkes tarafından görülebilmesidir. zkDocs bunu yayınlayarak çözer kriptografik taahhütler açık metin değerleri yerine değerlere. Bu taahhütler kamuya açık kalır, ancak temel değerleri görünür değildir.

Kriptografik taahhüt nedir?

Bir kriptografik taahhüt, bir tarafın bazı özel verilere bir taahhüt oluşturmasına izin verir. Daha sonra taahhüt eden, taahhüt edilen verileri ortaya çıkarmak için taahhüdü açabilir. 

Taahhüt şemaları (1) gizleme, yani taahhüt veriler hakkında hiçbir şey ortaya çıkarmaz ve (2) bağlayıcı, yani taahhüt edenin iki farklı şekilde açabileceği bir taahhüt bulamaması gerekir. 

En basit taahhüt şeması, bir kriptografik hash işlevinden oluşturulmuştur - örneğin, Poseidon karma. Bazı verileri taahhüt etmek için, taahhüt eden kişi şunları hesaplar: taahhüt ← pozidon(veri, papalık elçisi), nerede papalık elçisi rastgele 512 bitlik bir dizedir. Taahhüdü daha sonra açmak için, taahhüt eden kişi veri ve papalık elçisi. Taahhüdün doğru bir şekilde açıldığını herkes doğrulayabilir.

Sıfır bilgi kanıtlarıyla özel verilerin doğrulanması

Sıfır bilgi kanıtları, temel veriler hakkında hiçbir şey açıklamadan verilerle ilgili bir gerçeği kanıtlama yöntemidir. zkDocs ile, teslim eden kişi, tüm verilerin taahhüt edildiğine ve gerekli kısıtlamaları karşıladığına dair sıfır bilgi kanıtı oluşturabilir. Herhangi bir üçüncü taraf, doğrulama hesaplamasını, temel alınan veriler hakkında bilgi sahibi olmadan veya bu veriler hakkında bilgi sahibi olmadan çalıştırabilir.

Sonuç olarak, bir zkDoc şema gönderimini doğrulamak için gereken veriler herkese açık ve tamamen denetlenebilirken her zaman gizli kalır.

Spesifik olarak, gönderen, bir dizi bildiğine dair sıfır bilgi kanıtı oluşturur (değer, papalık elçisi) şu şekilde çiftler:

  • poseidon(value[i], nonce[i]) == prior_commitment[i], ve
  • value[0], …, value[n] kısıtlamaları karşılamak

Gönderici, bu devreyi kullanarak sıfır bilgi kanıtı oluşturabilir ve verilerini doğrulamakla ilgilenen herhangi bir tarafa yayınlayabilir. İspatı herkes çalıştırabilir ve şema içindeki alanların geçerliliğini onaylayabilir.

Göstermek için, iki kısa vaka çalışmasına bakalım.

Örnek: ipotek başvurusu

Önce, zkDocs ile geliştirilebilecek bir bilgi doğrulama iş akışına harika bir örnek olan ipotek uygulamasına dönelim.

İpotek kredisi veren (bu durumda doğrulayıcı), bir zkDoc için aşağıdaki gibi bir şema oluşturur:


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

İlk olarak şema, borç verenin ilgilendiği birkaç alanı belirtir: maaş, 401(k) gelir, çek hesabı bakiyesi, mülk değeri ve kredi değeri. 

Ardından bu alanlar üzerinde iki kısıtlama: 

  1. Mülk değeri ve banka hesap bakiyesi toplamı kredi değerinden büyük
  2. 401(k) gelir ve maaşın toplamı yılda 65,000 dolardan fazla

Ve son olarak, bu bilgiyi tasdik edeceğine güvendiği beş kurum:

  1. Işveren
  2. ev değerleme uzmanı
  3. 401(k) sağlayıcı
  4. Hesap sağlayıcıyı kontrol etme
  5. alacaklı

İpotek başvurusunda bulunmak için başvuru sahibi, zkDocs kullanıcı arayüzünü kullanarak "alanlar" bölümünde listelenen alanları doldurur ve her birine zincirleme kriptografik taahhüt yayınlar. Başvuru sahibi daha sonra ilgili açık metin alanlarını her taahhüt için nonces ile birlikte gönderir, tasdik eden kurumların her birine (aşağıda listelenen gruptan) trusted_institutions). zkDocs kullanıcı arayüzü bunu köprüler aracılığıyla yapar.

Her onaylayıcı, ilgili açık metin bilgilerini doğrular ve Ethereum özel anahtarıyla imzalayarak taahhüdü onaylar. Ardından başvuru sahibi, taahhütlerin ve kısıtlamaların geçerliliğine ilişkin sıfır bilgi kanıtı da dahil olmak üzere blok zincirine bir işlem sunabilir ve böylece geçerli bir ipotek alıcısı olarak nitelendirilebilir. Doğrulayan ipotek kurumunun, başvurunun bütünlüğünü doğrulamak için ek doğrulama yapması gerekmeyecektir.

Örnek: MakerDAO RWA kredileri

MakerDAO, bugüne kadar yayınlamış olduğu bir borç verme protokolüdür. 6 milyar dolarlık kredi DAI (USD ile sabitlenmiş bir token) cinsinden ifade edilir. Maker'ın Gerçek Dünya Varlıkları (RWA) bölümü, alt kredi kuruluşlarına DAI cinsinden krediler sağlamak için çalışıyor ve DAI'nin gerçek dünyadaki ekonomik büyümeyi doğrudan desteklemesini sağlıyor. Ancak Maker, her biri yönetişim sürecine katılma ve protokolün geleceğini yönlendirme hakkına sahip yaklaşık 78,000 benzersiz cüzdanın yönetim belirtecine sahip bir DAO'dur. 

Yeni bir teminat kaynağı almak gibi en büyük Yapıcı kararları, aşağıdaki bölümlerde tartışılmaktadır: halka açık forumlar. Ancak Maker'dan kredi başvurusunda bulunan bir kurum veya kişi, gizlilikten ticari sırlara kadar çeşitli nedenlerle mali bilgilerinin tamamını kamuoyuyla paylaşmakla ilgilenmeyebilir. Maker bunun yerine aşağıdakine benzer bir şemaya sahip bir zkDoc yayınlayabilir:


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

Bu şema, yönetişim katılımcılarının, tüm RWA kredisi başvuru sahiplerinin gizliliklerini ihlal etmelerini gerektirmeden protokolün makul olmayan riskler almadığından emin olmalarını sağlayacaktır.

***
zkDocs, şu anda uygulandığı şekliyle şunları kullanır:

  • Onayların gerçekliğini doğrulamak için imzalanmış işlemler (veya herhangi bir EVM uyumlu zincir)
  • Hem taahhütleri hem de tasdikleri saklamak için herkese açık blok alanı
  • Sıfır bilgi kanıtlarını doğrulamak için akıllı sözleşmeler 

zkDocs'un denetlenebilirlik ve gizlilik özelliklerinin ötesinde, başka bir ilginç eksen daha vardır: Özel bilgi doğrulaması, halka açık bir blok zincirinde yayınlandığında, kullanıcılar ve geliştiriciler, kendi uygulamalarıyla zkDoc tarafından doğrulanmış bilgileri oluşturabilir. Kredi geçmişinin bir DAO itibarına dönüştüğü, protokol parametrelerini ayarlamak için topluluk tarafından doğrulanmış üç ayda bir yapılan başvurular, anlık üniversite başvuruları, başka bir toplulukta güvenilen kullanıcılar için indirimli protokol oranları ve çok daha fazlası hayal edilebilir.

Bu kavram kanıtını paylaşmaktaki amacımız, bu yeni bilgi işlem ilkellerinin bugün üretimde nasıl kullanılabileceğini göstermek ve daha fazla uygulamayı çevrimiçi hale getirerek bunların benimsenmesini hızlandırmaya yardımcı olmaktır. Benzer bir şema üretmek veya kullanmak için zkDocs'u dağıtmayı planlıyorsanız, lütfen bize ulaşmaktan çekinmeyin. Twitter.

Zaman Damgası:

Den fazla Andreessen Horowitz