Neden Kanıtlar?
Bir indeksleyici ZCash blok zincirini tarar ve bir ad kaydı oluşturur. Peki neden kimse buna güvenmeli? Peki ya:
- Zincirde hiç gerçekleşmemiş bir kayıt mı üretiyor?
- Yanlış ücret mi alıyor?
- Bir adı iki kez mi kaydettiriyor?
- Kayıt durumuna müdahale mi ediliyor?
ZK kanıtları bu soruları ortadan kaldırır. Her kanıt, kaydın doğru şekilde işlendiğini gösteren kriptografik bir sertifikadır. Herkes kanıtı bağımsız olarak doğrulayabilir.
Her Kanıt Neyi Doğruluyor
ZCash Prover, bir RISC-V sıfır bilgi sanal makinesi olan SP1 kullanır. Etki alanıyla yapılan her işlem için kanıtlayıcı, zkVM içinde aşağıdaki kontrolleri gerçekleştirir:
- Ad geçerliliği - 1-64 karakter, küçük harf alfasayısal + kısa çizgiler
- Ücret yeterliliği - işlemde İsim Uzunluğu için yeterli miktarda ZEC ödendi
- Protokol komut bütünlüğü - protokolün tüm koşulları karşılandı
- Ed25519 imzası --
memo commandüzerindeki imza geçerlidir - Merkle ağacı ekleme -- ad zaten mevcut değildi ve yeni durum kökü doğru
Herhangi bir kontrol başarısız olursa kanıt oluşturulamaz.
Genel Çıktılar
Her kanıt, kendisine kalıcı olarak bağlı olan 3 değeri taahhüt eder:
| Çıkış | Açıklama |
|---|---|
old_root | Merkle ağacı kökü bu kayıttan önce |
new_root | Merkle ağacı kökü bu kayıttan sonra |
end_block_height | Kayıt grubunun en son ZCash bloğu |
block_height kanıtı belirli bir ZCash bloğuna (bir kontrol noktası gibi) sabitler. Herkes ZCash düğümündeki işlemleri arayabilir ve not ile değer eşleşmesini onaylayabilir.