ฉันกำลังอ่านคำอธิบายของ zkSnarks ที่เขียนโดย Maksym Petkus - http://www.petkus.info/papers/WhyAndHowZkSnarkWorks.pdf
คำถามของฉันเกี่ยวกับหัวข้อ 4.6.1
ติดตั้ง
- สร้างพหุนามตัวถูกดำเนินการตามลำดับ $l(x)$ ด้วยค่าสัมประสิทธิ์ที่สอดคล้องกัน
- ตัวอย่างสุ่ม $\alpha$ และ $s$
- ตั้งรหัสพิสูจน์ด้วยการเข้ารหัส $l(s)$ และเป็นคู่ "เลื่อน": $(g^{l(s)}, g^{{\alpha}l(s)})$
- ตั้งรหัสยืนยัน: $(g^{\alpha})$
1) ฉันจะทำขั้นตอนแรกของการตั้งค่าด้านบน
สร้างพหุนามตัวถูกดำเนินการตามลำดับ $l(x)$ ด้วยค่าสัมประสิทธิ์ที่สอดคล้องกัน
เรายังคงอยู่ในส่วนของข้อความที่ทั้งหมด $l(x)$ เป็น $a$. เรายังไม่ถึง 4.6.2 ที่พวกเขาสำรวจกรณีที่ออก 3 $l(x)$, 2 คือ $a$ และอันที่ 3 คือ $d$.
ถ้าผมสร้าง 3 จุดด้วย a เหมือนกัน มันจะออกมาเป็นแบบนี้
$a * x = r1$
$a * y = r2$
$a * z = r2$
ด้วยจำนวนจริงก็เป็นได้
$2 * 2 = 4$
$2 * 3 = 6$
$2 * 4 = 8$
ดังนั้น 3 $l$ จุดคือ $[(1, 2), (2, 2), (3,2)]$
ถ้าฉันใช้การแก้ไขของ Lagrange ใน 3 จุดนี้ มันจะทำให้ฉัน $l(x) = 2$.
ถ้าแทน ผมใช้ $a = 1$, แล้ว $l(x)$ ที่ได้รับจาก langrange จะเป็นเสมอ $l(x) = 1$เช่น lagrange's จะให้ฉันเสมอ $l(x) = a$
ดังนั้นฉันจึงไม่เข้าใจวิธีการไปที่ $l$ พหุนามซึ่งมีลักษณะเหมือนกับใน 4.6.1 ด้วย $a=1$ & เดอะ $l$ พหุนามคือ $x^2 - 3x + 3$. ฉันไม่ได้พูด $x^2 - 3x + 3$ ไม่เข้ากับเคส - $l = 1$ ที่ $x \ใน {1,2}$ - มันพอดีกับกรณี แต่ฉันไม่เคยจะได้รับ $l$ พหุนามซึ่งดูเหมือนว่าจากลากรองจ์ - ฉันจะจบลงด้วยเสมอ $l(x) = a$.
2) ต่อไปคือขั้นตอนที่ 3 ของการตั้งค่า นั่นคือ
ตั้งรหัสพิสูจน์ด้วยการเข้ารหัส $l(s)$ และเป็นคู่ "เลื่อน": $(g^{l(s)}, g^{{\alpha}l(s)})$
ในทุกโปรโตคอลของเราจนถึงตอนนี้ เราใช้มาโดยตลอด $l(x)$ เป็นขั้นตอนขั้นกลาง - เช่น ผู้พิสูจน์ไม่เคยคำนวณ $E(ล(x=s))$ และมอบให้ผู้ตรวจสอบ เขามักจะใช้ $l(x)$ เพื่อสร้าง $h(x)$ - เช่น $h(x) = \frac {l(x) * r(x) - o(x)}{t(x)}$
ดังนั้นฉันจึงสับสนเล็กน้อยกับขั้นตอนการตั้งค่าที่นี่? ตอนนี้ผู้พิสูจน์ส่งการเข้ารหัสของสิ่งกลาง ($l(x)$) เพื่อยืนยันแทน $E(h)$? - ผู้ตรวจสอบต้องการเพียง $E(h)$ & $อี(พี)$ และเขายืนยันหลักฐานโดยการตรวจสอบ $E(p) = E(h)^t$ - ผมจึงไม่ชัดเจนว่าจะให้อย่างไร $(g^{l(s)}, g^{{\alpha}l(s)})$ เหมาะสมที่จะมาถึงขั้นตอนสุดท้ายนี้หรือไม่?