ฉันกำลังอ่านคำอธิบายของ zkSnarks ที่เขียนโดย Maksym Petkus - http://www.petkus.info/papers/WhyAndHowZkSnarkWorks.pdf
ในส่วน 4.5 ไฟล์ PDF จะอธิบายวิธีการแสดงการดำเนินการต่อไปนี้
$a$ x $b = r1$
$r1$ x $c = r2$
เช่น $ล(x)ร(x) - o(x)$ ที่ไหน $l(x)$ คือพหุนามตัวถูกดำเนินการทางซ้าย $r(x)$ เป็นพหุนามตัวถูกดำเนินการ & $o(x)$ เป็นเอาต์พุตพหุนาม
นี่ถ้าคุณเห็นว่า $a$ ใช้เพียงครั้งเดียวใน LHS ของการดำเนินการชุดแรก - ใช้เฉพาะในการดำเนินการชุดแรก (เช่น $a$ x $b = r1$) - ไม่มีในอันที่ 2
ใน 4.6 เขาจะพูดถึงวิธีการทำสิ่งเดียวกันเมื่อ $a$ ซ้ำ เช่น.
$a$ x $b = r1$
$a$ x $c = r2$
ที่นี่ $a$ มีอยู่ในการดำเนินการทั้งสอง
ดังนั้นเขาจึงพูดว่า
อย่างไรก็ตาม เนื่องจากโปรโตคอลของเราอนุญาตให้ผู้พิสูจน์สามารถตั้งค่าสัมประสิทธิ์ใด ๆ ให้เป็นพหุนามได้ เขาจึงไม่ถูกจำกัดไม่ให้ตั้งค่าต่าง ๆ ของ $a$ สำหรับการดำเนินการต่างๆ (เช่น แสดงด้วย x บางตัว)
อิสระนี้ทำลายความสอดคล้องและอนุญาตให้ผู้พิสูจน์สามารถพิสูจน์การดำเนินการของโปรแกรมอื่น ๆ ซึ่งไม่ใช่สิ่งที่ผู้ตรวจสอบสนใจ ดังนั้นเราต้องตรวจสอบให้แน่ใจว่าตัวแปรใด ๆ สามารถมีค่าได้เพียงค่าเดียวในทุก ๆ การดำเนินการที่ใช้ใน
ไปข้างหน้าใน 4.6.1 เขากล่าวว่า
ดังนั้น หากผู้ตรวจสอบจำเป็นต้องบังคับให้ผู้พิสูจน์ตั้งค่าเดียวกันในการดำเนินการทั้งหมด จึงควรแก้ไขเฉพาะสัดส่วนเท่านั้น ไม่ใช่ค่าสัมประสิทธิ์แต่ละค่า
ฉันไม่สามารถเข้าใจสิ่งนี้ - ค่าสัมประสิทธิ์ของ $l(x)$ มาจากการดำเนินการทั้งหมด (คุณพบว่า $l(x)$ โดยใช้บางอย่างเช่นการแก้ไขพหุนามของ Lagrange กับการดำเนินการทั้งสอง) ดังนั้นผู้พิสูจน์จะใช้ค่าสัมประสิทธิ์ที่แตกต่างกันสำหรับการดำเนินการที่แตกต่างกันได้อย่างไร บางคนสามารถอธิบายด้วยตัวอย่างได้หรือไม่?