İş akışı
ZCash Adlandırma Hizmeti (zNS), kullanıcıların kaydolmasına, çözümleme adresini güncellemesine, başka sahiplere aktarmasına ve pazardaki insanlar tarafından okunabilen alan adlarını (myname.zcash gibi) listelemesine ve bunları güvenli bir şekilde ZCash adresleriyle eşlemesine olanak tanır.
ZCash genel amaçlı akıllı sözleşmelere sahip olmayan UTXO tabanlı bir blok zinciri olduğundan, alan adı kaydı gibi karmaşık bir veritabanı sistemini yerel olarak çalıştıramaz. Bunu çözmek için zNS, işlemleri zincir dışında yürüten, verileri ZCash üzerinde depolayan ve güvenliği Arbitrum'a bağlayan Toplama tarzı bir Mimari kullanır.
Sistem birbirine bağlı beş bileşenden güç alır:
1. ZCash Blockchain: Veri Kullanılabilirliği Katmanı
Kullanıcının gerçekleştirdiği her eylem (bir adın kaydedilmesi (REG), bir adresin güncellenmesi (UPD), mülkiyetin aktarılması (CHG), pazarda listelenmesi (LST), listeden çıkarılması (ULT) veya satın alınması (BUY) - yerel bir ZCash işlemi olarak başlar. İşlem, işlem notu alanında yapılandırılmış bir metin komutu içerir (örn. zNS:1:REG:domain:address:pubkey:nonce:signature).
- ZCash zinciri gerçeğin kaynağıdır. Her etki alanı komutunu kalıcı olarak saklar. Kaydedilmiş bir ZCash işlemi olmadan hiçbir durum değişikliği gerçekleşemez.
2. Kayıt Şirketi Düğümü: Sıralayıcı
Otomatik bir kayıt şirketi düğümü ZCash blok zincirini tarar. Etki alanı komutlarını okur, kullanıcının doğru işlem ücretini ödediğini doğrular ve işlemleri sıraya alır. Kayıt şirketi her 10 dakikada bir bu işlemleri tek bir Grup halinde birleştirir.
3. SP1 zkVM: Sıfır Bilgi Motoru (Succinct tarafından)
İşlem toplu işlemi SP1 Sıfır Bilgi Sanal Makinesine (zkVM) gönderilir. zkVM, sıkı bir protokol hakemi olarak görev yapan özel bir Rust misafir programını yürütür. Prover, gruptaki her işlemi kontrol eder:
- İmzalar geçerli ve gerçek alan adı sahipleri tarafından imzalanmış mı?
- Tekrar saldırılarını önlemek için nonce'lar kesinlikle artıyor mu?
- Alan önekleri doğru biçimlendirilmiş mi?
- Bir
BUYişlemi,LSTişleminde belirtilen fiyatın tamamını öder mi? old_rootmatematiksel Merkle kanıtlarını kullanaraknew_root'ye doğru bir şekilde geçiş yapıyor mu?
Tüm kurallar karşılanırsa zkVM bir ZK-SNARK şifreleme kanıtı oluşturur (Groth16'yı kullanarak). Bu kanıt, matematiksel olarak şunları beyan eden küçük bir sertifikadır: "Durum kökü A ile başlayarak, bu geçerli işlem kümesi uygulandıktan sonra yeni durum kökü B'dir."
Bu konuk programının derlenen her sürümü, Doğrulama Anahtarı (vkey) adı verilen benzersiz bir şifreleme tanımlayıcı sağlar. vkey, derlenmiş konuk programının yapısının 32 baytlık bir karmasıdır. Doğrulama kodunun tek bir satırı bile değiştirilse program tamamen farklı bir vkey'ye derlenir.
4. Arbitrum Akıllı Sözleşmesi: Çapa
Oluşturulan ZK kanıtı ve genel girişleri Arbitrum'daki zNSANchor akıllı sözleşmesine gönderilir. Sözleşme, uzlaşma ağ geçidi görevi görür.
- Şifreleme Bağlaması: Akıllı sözleşmenin içinde
programVkey(konuk programının beklenen 32 baytlık karma değeri) zincir üzerinde depolanır. Bir kanıt gönderildiğinde sözleşme, kanıtı veprogramVkey'yi Succinct SP1 Verifier Gateway'e iletir. - Anahtar Kilidi Doğrulaması: Doğrulama ağ geçidi, kanıtı yalnızca kayıtlı
programVkeyile eşleşen tam konuk programı tarafından oluşturulmuşsa onaylayacaktır. - Kanıt geçerliyse ve kayıtlı
programVkeyile doğrulandıysa, sözleşme resmi, küresel olarak kabul edilen durum kökünüBolarak günceller ve geçmişine kaydeder. - Tek bir kural ihlal edildiyse veya kanıt, değiştirilmiş bir konuk programı kullanılarak oluşturulduysa (ki bu, farklı bir
vkeyüretecektir), sözleşme, yetkisiz durum geçişlerini önleyerek işlemi reddeder.
5. Dağıtılmış Dizin Oluşturucular: Çözümleyiciler
Herkes bağımsız bir Dizin Oluşturucu Düğümü çalıştırabilir. Dizin oluşturucular, alan adı işlemleri için ZCash blok zincirini tarar ve doğrulanmış kök kontrol noktaları için Arbitrum sözleşmesini tarar. İşlemleri yerel olarak uygularlar, kendi Merkle Ağacını hesaplarlar ve yerel köklerinin Arbitrum kontrol noktasıyla eşleştiğini doğrularlar.
- Bu, tüm dizin oluşturucuların, nerede çalıştırılırsa çalıştırılsın, etki alanlarını her zaman tamamen aynı hedef adrese çözümlemesini sağlar (dağıtılmış uçlarda tek bir birleşik durumu korur).