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ı P(x)P(x) polinomumuz var. Polinomun derecesinin ll‘dan küçük olduğunu varsayacağız.

KZG taahhütleri eliptik eğri eşleştirmelerine dayanmaktadır. G1\mathbb{G}_1 ve G2\mathbb{G}_2 pp düzeyinde iki eliptik eğri grubu olsun ve önemsiz olmayan bir çift doğrusal eşleme olsun. e:G1×G2GTe: \mathbb{G}_1 \times \mathbb{G}_2 \rightarrow \mathbb{G}_T. gg, G1\mathbb{G}_1 oluşturucusu olsun ve hh, G2\mathbb{G}_2 oluşturucusu olsun. [x]1:=xg[x]_1 := x \cdot g ve [x]2:=xh[x]_2 := x \cdot h gösterimini kullanacağız, burada xFpx \in \mathbb{F}_p.

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 τFp\tau \in \mathbb{F}_p
  • lZl \in \mathbb{Z} taahhüt etmek istediğimiz polinomların maksimum derecesi olsun
    • Güvenilir kurulum yalnızca l\leq l derecesindeki polinomlara yönelik taahhütleri etkinleştirir
  • ([τ0]1,[τ1]1,[τ2]1,[τl]1)([\tau^0]_1,[\tau^1]_1,[\tau^{2}]_1\ldots,[\tau^{l}]_1) ve ([τ]2)([\tau]_2) hesaplayın ve bu değerleri herkese açık olarak yayınlayın.

τ\tau‘ı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 P(x)=i=0lpixiP(x) = \sum_{i=0}^{l} p_i x^i polinomu verildiğinde
  • Taahhüdü hesaplayın ve çıktısını alın c=[P(τ)]1c = [P(\tau)]_1
    • Her ne kadar taahhüt eden P(τ)P(\tau)‘ı doğrudan hesaplayamasa da (τ\tau‘ı bilmediğinden), güvenilir kurulumun çıktısını kullanarak bunu hesaplayabilir:
      • [P(τ)]1=[i=0lpiτi]_1=i=0lpi[τi]_1[P(\tau)]_1 = [\sum_{i=0}^{l} p*i \tau^i]\_1 = \sum*{i=0}^{l} p_i [\tau^i]\_1

3. Bir değerlendirmeyi kanıtlayın

  • Bir değerlendirme verildiğinde P(a)=bP(a) = b
  • π=[Q(τ)]1\pi = [Q(\tau)]_1 kanıtını hesaplayın ve çıktısını alın
    • Burada Q(x):=P(x)bxaQ(x) := \frac{P(x)-b}{x-a}
      • Buna “bölüm polinomu” denir. Böyle bir Q(x)Q(x)‘ın ancak ve ancak P(a)=bP(a) = b olması durumunda var olduğuna dikkat edin. Dolayısıyla bu bölüm polinomunun varlığı değerlendirmenin bir kanıtıdır.

4. Değerlendirme kanıtını doğrulayın

  • c=[P(τ)]1c = [P(\tau)]_1 taahhüdü, P(a)=bP(a) = b değerlendirmesi ve π=[Q(τ)]1\pi = [Q(\tau)]_1 kanıtı verildiğinde
  • e(π,[τa]2)=e(c[b]1,h)e(\pi, [\tau - a]_2) = e(c - [b]_1, h) olduğunu doğrulayın
    • Bazı cebir çalışmaları bunun, bölüm polinomunun τ\tau‘da doğru şekilde oluşturulduğunu kontrol etmeye eşdeğer olduğunu gösterir: Q(τ)=P(τ)bτaQ(\tau) = \frac{P(\tau) -b}{\tau-a} e(π,[τa]2)=e(c[b]1,h)    e([Q(τ)]1,[τa]2)=e([P(τ)]1[b]1,h)    Q(τ)(τa)e(g,h)=(P(τ)b)e(g,h)    Q(τ)(τa)=P(τ)b\begin{align*} & e(\pi, [\tau - a]_2) = e(c - [b]_1, h) \\ \iff & e([Q(\tau)]_1, [\tau -a]_2) = e([P(\tau)]_1 - [b]_1, h) \\ \iff & Q(\tau) \cdot (\tau - a) \cdot e(g, h) = (P(\tau)-b) \cdot e(g,h) \\ \iff & Q(\tau) \cdot (\tau -a) = P(\tau) - b \end{align*}
    • Çift doğrusal eşleme ee, gizli kurulum parametresi τ\tau‘ı 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

Sırada ne var?

Scroll Geliştirici haberlerini yakından takip edin
Güncellemeler, online ve yüz yüze etkinlikler, ekosistemdeki fırsatlar ve daha fazlası
Takip ettiğiniz için teşekkür ederiz!

Kaynaklar

Bizi Takip Edin