Score:1

zkSnarks: ตรวจสอบให้แน่ใจว่าตัวแปรมีค่าเดียวในการดำเนินการทั้งหมดที่ใช้

ธง et

ฉันกำลังอ่านคำอธิบายของ 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 กับการดำเนินการทั้งสอง) ดังนั้นผู้พิสูจน์จะใช้ค่าสัมประสิทธิ์ที่แตกต่างกันสำหรับการดำเนินการที่แตกต่างกันได้อย่างไร บางคนสามารถอธิบายด้วยตัวอย่างได้หรือไม่?

Score:1
ธง gb

สมมติว่าคุณต้องการใช้ $a$ ในสองข้อ จำกัด ตามที่คุณได้เขียนไว้ คุณต้องการสันนิษฐานว่า $l(x_1) = $ และ $l(x_2) = $, ที่ไหน $x_1$ และ $x_2$ เป็นดัชนีของข้อจำกัดทั้งสอง แต่ $l(x)$ ถูกสร้างขึ้นโดยผู้พิสูจน์ และพวกเขาสามารถเลือกได้อย่างแน่นอน $l(x)$ ซึ่งประเมินเป็นสอง แตกต่าง ค่าที่ $x_1$ และ $x_2$. จากนั้นคุณมีตัวแปรอิสระสองตัวแทนที่จะใช้ $a$ สองครั้ง. ซึ่งแสดงไว้ที่ด้านบนของหน้า 36 ใน PDF ที่ลิงก์

จนถึงจุดนั้น ข้อจำกัดทุกอย่างจะได้รับการตรวจสอบโดยอิสระ หมายความตามนี้ครับ $l(x_i)*r(x_i) - o(x_i) = 0$ ในแต่ละดัชนี $x_i$ซึ่งตรวจสอบโดยให้มั่นใจว่า $(x-x_i)$ เป็นรากของพหุนาม ตอนนี้ เราต้องการวิธีตรวจสอบความเท่าเทียมกันของตัวแปรระหว่างสองข้อจำกัดที่แตกต่างกันกล่าวอีกนัยหนึ่งเพื่อสร้างสิ่งต่าง ๆ เช่น $l(x_1) = ล(x_2)$ ระหว่างดัชนีต่างๆ

วิธีนี้ทำได้โดยการจำกัดวิธีที่ผู้พิสูจน์สามารถสร้างพหุนามได้มากขึ้น (เช่น $l(x)$) ดังนั้นพวกเขาจึงไม่สามารถสอดแทรกค่าใดๆ ที่พวกเขาต้องการได้ วิธีหนึ่งในการทำเช่นนี้คือการให้พหุนามที่แตกต่างกันแก่ผู้พิสูจน์ $l_a(x)$ ซึ่งประเมินเป็น 1 เมื่อใดก็ตามที่ $a$ ถูกใช้และ 0 ที่อื่น ตัวอย่างเช่นพหุนามที่ไหน $l_a(x_1) = l_a(x_2) = 1$และเป็นศูนย์ทุกที่ จากนั้นพวกเขาสามารถคูณสิ่งนี้ด้วย $a$ เพื่อตั้งค่าเดียวกันของ $a$ ในทุกสถานที่ที่มีการใช้งาน เพื่อบังคับให้ผู้พิสูจน์ใช้สิ่งนี้ เราเข้ารหัสอีกครั้งและจัดเตรียม $\alpha$ รุ่นเลื่อน: $$g^{l_a(x)}, g^{\alpha l_a(x)}$$ (อย่างที่เคยทำมาหลายครั้งแล้ว) จากนั้นผู้พิสูจน์สามารถยกแต่ละข้อเหล่านี้ให้อยู่ในอำนาจของ $a$ เพื่อตั้งค่านั้นในทุกที่

ถ้าเรามีคู่ดังกล่าวสำหรับตัวแปรอื่น $d$: $$g^{l_d(x)}, g^{\alpha l_d(x)}$$ จากนั้นผู้พิสูจน์สามารถตั้งค่าทั้งสองอย่างได้ $a$ และ $d$ แล้วคูณพหุนามที่เข้ารหัสเข้าด้วยกัน (ซึ่งสอดคล้องกับการบวกพหุนามในเลขยกกำลังเข้าด้วยกัน)

เช่นเดียวกับที่ทำ $R(x)$ และ $O(x)$.

มีอีกข้อหนึ่งที่กล่าวถึงในส่วน 4.9.3 ซึ่งช่วยให้ผู้พิสูจน์สามารถบวกสิ่งพิเศษให้กับพหุนามได้โดยการคูณด้วยอีกชื่อหนึ่ง $g^1$ และ $g^{\alpha}$. สิ่งนี้ได้รับการแก้ไขโดยการแนะนำกะลับอื่นโดย $\gamma$.

meshcollider avatar
gb flag
> "เป็นกรณีนี้แม้ในกรณีก่อนหน้านี้ แม้ในกรณีก่อนหน้านี้ ผู้พิสูจน์สามารถเลือกอะไรก็ได้ที่ต้องการ" - ใช่ และนั่นคือเหตุผลที่เราต้องค่อย ๆ จำกัดสิ่งที่ผู้พิสูจน์สามารถเลือกได้ตลอดทั้ง PDF ดังนั้นโดย พอเสร็จเรามั่นใจว่าโกงไม่ได้
et flag
มีตัวอย่างวิธีการที่ผู้พิสูจน์สามารถใช้ประโยชน์จากบางสิ่งในกรณีที่ผู้พิสูจน์ไม่ได้ถูกจำกัดไว้หรือไม่?
meshcollider avatar
gb flag
อย่างแน่นอน. สมมติว่าคุณกำลังพยายามพิสูจน์บางสิ่งที่ลดทอนข้อจำกัดบางประการ เช่น $b = a + 1$ และ $c = a - 1$ หากไม่มีการรับประกันว่าค่าของ $a$ ที่ใช้ในข้อจำกัดทั้งสองนี้จะเหมือนกัน $b$ และ $c$ สามารถกำหนดค่าตามอำเภอใจได้โดยอิสระ และเช็คจะยังคงผ่าน สมมติว่าผู้พิสูจน์ที่เป็นอันตรายใช้ค่า $b = 8$ และ $c = 0$ เห็นได้ชัดว่าไม่มี $a$ ที่ทั้งสองสิ่งนี้สามารถเป็นจริงได้ แต่การใช้ $a = 7$ ในเงื่อนไขแรกและ $a = 1$ ในเงื่อนไขที่สอง ข้อจำกัดทั้งสองจะตรวจสอบแยกกัน
et flag
เมื่อตัวพิสูจน์ที่เป็นอันตรายสร้าง $l(x)$, $o(x)$ & $r(x)$ ด้วยค่าที่แตกต่างจากค่าที่ถูกต้องจริง ๆ แล้ว Lagrange Interpolation จะทำงานอย่างไร ผู้พิสูจน์จะไม่สะดุดในจุดนั้นหรือ?
meshcollider avatar
gb flag
การแก้ไข Lagrange ใช้ได้กับค่าใด ๆ ที่คุณต้องการ ตัวอย่างเช่น ถ้า $l(x)$ ควรเท่ากับ $a$ ที่ $l(x_1)$ และ $l(x_2)$ ไม่มีอะไรหยุดผู้พิสูจน์จากการประมาณค่า $l(x_1) = a$ และ $ l(x_2) = b$ ได้รับ $l(x)$ ที่แตกต่างจากที่คุณจะได้รับหากคุณตั้งค่า $a$ ทั้งสองเป็นค่าเดียวกันโดยสุจริต สิ่งที่คุณต้องทำคือหาพหุนามที่ผ่านจุด $(x_1, a)$, $(x_2, b)$ แทนที่จะเป็น $(x_1, a)$, $(x_2, a)$
et flag
ฉันได้สร้างห้องสนทนาสำหรับสิ่งนี้ - https://chat.stackexchange.com/rooms/134216/temp-zksnark - ฉันถามคำถามที่นั่น - คุณช่วยดูหน่อยได้ไหม

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา