KZG Taahhüt Şeması
En yaygın kullanılan polinom taahhüt planlarından biri KZG taahhüt şemasıdır. Plan ilk olarak 2010 yılında Kate, Zaverucha ve Goldberg tarafından yayınlanmıştır.
KZG, Ethereum’un Proto-Danksharding’inde ve ayrıca Scroll’un kanıt sisteminde kullanılır.
Bu makale KZG taahhüt planına genel bir bakış sunacaktır.
Ön bilgiler ve notasyon
Polinom taahhüt şemalarının önermesini hatırlayın. Taahhüt etmek istediğimiz bazı polinomumuz var. Polinomun derecesinin ‘dan küçük olduğunu varsayacağız.
KZG taahhütleri eliptik eğri eşleştirmelerine dayanmaktadır. ve düzeyinde iki eliptik eğri grubu olsun ve önemsiz olmayan bir çift doğrusal eşleme olsun. . , oluşturucusu olsun ve , oluşturucusu olsun. ve gösterimini kullanacağız, burada .
1. Güvenilir kurulum
Herhangi bir KZG taahhüdünü hesaplamadan önce tek seferlik güvenilir kurulum gerçekleştirilmelidir. Güvenilir kurulum tamamlandıktan sonra, istenildiği kadar farklı polinomun kaydedilmesi ve ortaya çıkarılması için yeniden kullanılabilir. Güvenilir kurulum şu şekilde çalışır:
- Rastgele bir alan öğesi seçin
- taahhüt etmek istediğimiz polinomların maksimum derecesi olsun
- Güvenilir kurulum yalnızca derecesindeki polinomlara yönelik taahhütleri etkinleştirir
- ve hesaplayın ve bu değerleri herkese açık olarak yayınlayın.
‘ın açıklanmaması gerektiğini unutmayın; bu, kurulumun gizli bir parametresidir ve güvenilir kurulum töreni tamamlandıktan sonra kimsenin değerini anlayamaması için atılmalıdır.
Çok taraflı hesaplamayı (MPC) kullanarak, zayıf güven varsayımlarıyla (N’den 1’i güven varsayımı) güvenilir kurulum törenleri yürütmenin yerleşik yöntemleri vardır. Güvenilir kurulumların nasıl çalıştığı hakkında daha fazla bilgi için Vitalik’in bu yazısına bakın.
2. Bir polinoma bağlı kalmak
- Bir polinomu verildiğinde
- Taahhüdü hesaplayın ve çıktısını alın
- Her ne kadar taahhüt eden ‘ı doğrudan hesaplayamasa da (‘ı bilmediğinden), güvenilir kurulumun çıktısını kullanarak bunu hesaplayabilir:
- Her ne kadar taahhüt eden ‘ı doğrudan hesaplayamasa da (‘ı bilmediğinden), güvenilir kurulumun çıktısını kullanarak bunu hesaplayabilir:
3. Bir değerlendirmeyi kanıtlayın
- Bir değerlendirme verildiğinde
- kanıtını hesaplayın ve çıktısını alın
- Burada
- Buna “bölüm polinomu” denir. Böyle bir ‘ın ancak ve ancak olması durumunda var olduğuna dikkat edin. Dolayısıyla bu bölüm polinomunun varlığı değerlendirmenin bir kanıtıdır.
- Burada
4. Değerlendirme kanıtını doğrulayın
- taahhüdü, değerlendirmesi ve kanıtı verildiğinde
- olduğunu doğrulayın
- Bazı cebir çalışmaları bunun, bölüm polinomunun ‘da doğru şekilde oluşturulduğunu kontrol etmeye eşdeğer olduğunu gösterir:
- Çift doğrusal eşleme , gizli kurulum parametresi ‘ı bilmeden bu özelliği kontrol etmemizi sağlar.
- Bu doğrulama tamamlandıktan sonra, bölüm polinomunun doğru şekilde oluşturulduğu ve dolayısıyla değerlendirmenin (çok yüksek olasılıkla) doğru olduğu sonucuna varabiliriz.
Daha fazla bilgi edin
- https://dankradfeist.de/ethereum/2020/06/16/kate-polynomial-commitments.html
- https://alinush.github.io/2020/05/06/kzg-polynomial-commitments.html
- https://www.iacr.org/archive/asiacrypt2010/6477178/6477178.pdf