1. Ana Sayfa
  2. Kripto Para
  3. Sıfır bilgi anahtar beyanı kanıtı-CoinGeek-0x Haberleri

Sıfır bilgi anahtar beyanı kanıtı-CoinGeek-0x Haberleri

1. cümledeki Bileşik devrenin zk-SNARKS²'deki şematik diyagramı

Bu makale ilk olarak Medium’da yayınlandı.

“Sıfır Bilgili Anahtar İfade Kanıtı” başlıklı nChain teknik incelemesi #0488, belirli bir ortak anahtara karşılık gelen özel anahtarın özel anahtarın gizliliğini korurken belirli gereksinimleri karşıladığını kanıtlayan bir sıfır bilgi kanıtı (ZKP) sunar. Bunu uyguladık ve Bitcoin makyaj adreslerini güvenle satın almak için uyguladık. Güvenilir bir üçüncü taraf olmadan birbirine güvenmeyen taraflar arasında gizli bilgilerin satın alınabileceği çok çeşitli uygulamalara genişletilebilir.

Sıfır bilgi anahtar beyanı kanıtı

Daha önce tanıttığımız gibi, sıfır bilgi ispatı, bir tarafın diğer tarafı doğrulama ifadesinin sırrını bildiğine, sırrı ifşa etmeden ikna etmesine izin verir.

Sıfır bilgi anahtar ifadesi kanıtı (ZKKSP), sırrın bilinen açık anahtara karşılık gelen özel anahtar olduğu özel bir ZKP türüdür. Özel anahtar, belirli bir değere hashing gibi diğer kısıtlamaları karşılar.

Hash ile anahtar ifade

nChain teknik incelemesi, etkili bir ZKKSP yöntemini tanıtır. Zk-SNARKS gibi genel cümlelerin sıfır bilgi ispatıyla karşılaştırıldığında, ZKKSP aşağıdaki önemli avantajlara sahiptir:

  1. ZKKSP, bazılarının (örneğin, çift tabanlı) zk-SNARKS’ın karşılaştığı bir sorun olan güvenilir ayarlar gerektirmez.
  2. zk-SNARKS’daki anahtar ifade kanıtı, kanıt üretimi için son derece yüksek hesaplama gereksinimlerine yol açan bir eliptik eğri çarpma devresi gerektirir ve kanıtlayıcının kanıt boyutu çok büyüktür. Buna karşılık, ZKKSP devreyi aşağıdaki şekillerde kaldırır:
  • Genel anahtarla aynı ECDSA eliptik eğrisini kullanın
  • Oluşturulan zk-proof ile ortak anahtarın tutarlılığını kontrol edin; özellikle, zk-proof¹ içine yerleştirilmiş söz ile tutarlılığı kontrol edin.

ZKP’de cümleler/hesaplamalar genellikle aritmetik devrelerde kodlanır ve toplama ve çarpma kapılarından oluşur. Şekil 1’de gösterildiği gibi, zk-SNARKS, özet fonksiyonu ve eliptik eğri çarpımı için alt devreler içerir. Aşağıdaki devre, bilinen ECDSA ortak anahtarına dayalı olarak tutarlılığı kontrol eder. ZKKSP yalnızca karma devreyi kullanır ve öncekinden en az bir büyüklük sırası olan diğer devreleri kaldırır. İlgilenen okuyucular daha fazla ayrıntı için teknik incelemeye başvurabilir. Alan sınırlamaları nedeniyle burada atlayacağız.

1. cümledeki Bileşik devrenin zk-SNARKS²'deki şematik diyagramıŞekil 1: zk-SNARKS²’de 1. cümlenin birleşik devre şemasıCümle 1'in ZKKSP³'deki bileşik devre şemasıŞekil 2: ZKKSP³’de cümle 1’in Bileşik devresinin şematik diyagramı

uygulamak

SHA256 aritmetik devreleri oluşturmak için ZoKrates adlı mevcut bir kitaplığı çatalladık. Devre formatını değiştirdikten sonra, teknik incelemede listelenen kalan anahtar ifade kanıtlarını uyguladık.

Zokratz

ZoKrates⁴, Ethereum’daki zkSNARK’lar için bir araç kutusudur. Akıllı sözleşmeleri kanıtlamak ve doğrulamak için alana özgü diller, derleyiciler ve oluşturuculardan oluşur. Aşağıda, sha256(preimage) == h⁵’yi kontrol etmek için ZoKrates’te yazılmış bir kaynak program bulunmaktadır.

github-doğrulama sha256sha256.zok: zokratta sha256(preimage) == h’yi doğrulayın

iş süreci

Kanıtlayıcı, sertifikayı oluşturmak için aşağıdaki komutları sırayla çalıştırır.

Kanıtlayıcı sertifikayı oluştururKanıtlayıcı sertifikayı oluşturur

Prova, oluşturulan prova.json’daki kanıtı doğrulayıcıya gönderir. Doğrulayıcı, ortak anahtarın karma değerle eşleşip eşleşmediğini kontrol etmek için aşağıdaki komutu çalıştırır. Lütfen fiat-Shamir buluşsal yöntemi nedeniyle, bu kanıtın etkileşimli olmadığını ve doğrulayıcı ile doğrulayıcı arasında etkileşim gerektirmediğini unutmayın.

Doğrulayıcı doğrulama sertifikasıDoğrulayıcı doğrulama sertifikası

Kodun tamamını Github’ımızda bulabilirsiniz.

Uygulama: Sanal adres üretimi için dış kaynak kullanımı

Bu bölüm, ZKKSP’nin dış kaynaklı Bitcoin sanal adres üretimine uygulamasını tanıtmaktadır.

Sanal adreslerin aranması hesaplama açısından pahalı olabileceğinden, aramayı dışarıdan temin etmek yaygındır. Geleneksel olarak, ya alıcı gerekli değeri satıcı ödeme almadan önce alır ya da satıcı gerekli değer serbest bırakılmadan önce ödeme alır ya da hepsinin emanet hizmetine güvenmeleri gerekir. ZKKSP kullanarak sahte adreslerin satışını güven olmadan yapabilirsiniz.

zincir“nChain” makyaj desenli Bitcoin ana ağ adresi

Bu anlaşmanın detayları aşağıdaki gibidir.

  1. Alıcı ve satıcı, gerekli makyaj modeli ve fiyatı (BSV) üzerinde anlaşırlar ve bir iletişim kanalı kurarlar (güvenlik gerekmez).
  2. Alıcı, eliptik eğriye karşılık gelen güvenli rastgele anahtar sk_Band’i oluşturur genel anahtar pk_B = sk_B * G
  3. Alıcı, satıcıya pk_B gönderir.
  4. Ardından satıcı, i’yi değiştirerek pk = pk_B + i * G’den türetilen Base58 kodlu adreste istediği kalıbı arar.
  5. İstenilen kalıba sahip bir adres bulunduğunda, satıcı değeri kaydeder, alıcıya bir sinyal gönderir ve onlara pk_S = i * G ve SHA256 hash değerini gönderir.
  6. Satıcı ayrıca alıcıya, ön görüntüsü pk_S’ye karşılık gelen özel anahtar olan bir ZKKSP sağlar.
  7. Alıcı kanıtı doğrular ve ayrıca pk = pk_B + pk_Scorresponding adresinin kararlaştırılan modelle eşleştiğini onaylar. Bu noktada (kanıta göre), alıcı öğrenilen i değerinin sanal adresin (sk_B + i) tam özel anahtarını türetmesini sağlayacağını bilir ve özel değer h = H(i) olarak hashlenir. .
  8. Ardından alıcı, kararlaştırılan ücreti içeren bir çıktı içeren bir karma zaman kilitli sözleşme (HTLC) işlemi Tx_1 oluşturur. Bu çıktının kilidi iki şekilde açılabilir:
    Bir nesil. Satıcının imzası ve hash’in orijinal görüntüsü, ben, her zaman var.
    ii. Belirtilen süreden sonra alıcı tarafından imzalanmıştır (OP_CLTV⁶)
  9. Alıcı daha sonra işlemi imzalar ve bir bloğa çıkarıldığı blok zincirine yayınlar.
  10. Onaylandıktan sonra satıcı, Tx_2 işlemini sağlayarak Tx_1 çıktısındaki ücreti talep edebilir, imzalarını ve hash kilidini açmak için i değerini sağlayabilir ve ardından bunu blok zincirinde görüntüleyebilir.
  11. Alıcı nihai sanal adresi özel anahtar sk = sk_B + i hesaplar, burada pk = sk * G
  12. Satıcı değeri belirtilen OP_CLTV zamanından önce sağlayamazsa, alıcı ücreti yeniden yüklemek için (alıcının işbirliği yapmaması nedeniyle ücretin kaybolmasını önlemek için) imzasını atabilir.

Değişim tamamen Atom ve güvenilmezdir; bu, alıcıların yalnızca blok zincirinde kamuya açıklanmış geçerli bir gizli değer sağladıklarında ödeme alabilecekleri anlamına gelir. Ayrıca özel anahtarın bölünmesi nedeniyle satıcı bile özel anahtarın tamamını bilmiyor.

genelleştirmek

Gizli özel anahtarın belirli bir değere hash edildiği anahtar ifadesinin nasıl kanıtlanacağını gösterdik. İlk bakışta ilkel olmasına rağmen, ZKKSP çok güçlüdür ve birçok Atom fuarı alışverişi iki genel adımda uygulanabilir:

  1. Satıcı, alıcıya, alıcının ihtiyaç duyduğu bir sırrı bildiğini kanıtlamak için ZKKSP’yi kullanır ve bunu belirli bir değere getirir;
  2. Alıcı bir akıllı sözleşme kurar ve yalnızca karma ön görüntü verildiğinde ödeme yapar.

Lütfen 1. adımın zincir dışında yapıldığını ve çok fazla hesaplama gerektirebileceğini, 2. adımın ise zincir üzerinde yapıldığını ve son derece hafif olduğunu unutmayın.

Aynı teknik, özel anahtarın belirli bir modelde başlama veya bitiş gibi diğer gereksinimleri (yani devreleri) karşılamasını istemek için de uygulanabilir.

***

[1] Bunlar, devre tatmin ediciliği için özlü olmayan kanıtlama sistemleri veya ayrı logaritmalara dayalı SNARK’lar aracılığıyla elde edilebilir. Eskiyi uyguladık.

[2] Dahili kapılar yalnızca örnekleme amaçlıdır – gerçek devrede 1000 kapı olacaktır.

[3] Devre, hash çıktısının EC ortak anahtarına eşit olup olmadığını kontrol eder: mavi ile vurgulanan değer doğrulayıcıya gösterilir ve diğer tüm değerler şifrelenir.

[4] ZoKrates ile ölçeklenebilir gizlilik koruması zincir dışı bilgi işlem, 2018

[5] Hem orijinal görüntü hem de h iki bölüme ayrılmıştır, çünkü temel tür alanı 256 bit tutamaz.

[6] BSV’de “OP_CLTV”

teşekkürler

Bu, nChain Limited ve sCrypt Inc.’in ortak çalışmasıdır.

İzleyin: CoinGeek New York konuşması, Kensei: nihai blok zincirine açılan kapı

Bitcoin’de yeni misiniz? Bitcoin (başlangıçta Satoshi Nakamoto tarafından tasarlandı) ve blok zinciri hakkında daha fazla bilgi edinmek için nihai kaynak kılavuzu olan CoinGeek’in Bitcoin yeni başlayanlar bölümüne göz atın.

Bilgi kaynağı: COINGEEK’ten 0x bilgisi ile derlenmiştir.Telif hakkı yazarına aittir ve izinsiz çoğaltılamaz

Yorum Yap

Bültenimize Katılın

Hemen ücretsiz üye olun ve yeni güncellemelerden haberdar olan ilk kişi olun.

Yorum Yap