Score:1

zkSNARKS - ไม่สามารถเข้าใจการใช้พหุนามเพื่อตรวจสอบเงื่อนไขบางอย่าง

ธง et

จากบล็อกโพสต์ของ Vitalik Buterin - ข้อมูลเบื้องต้นเกี่ยวกับความเป็นไปได้ของ zk-SNARK

จากหัวข้อย่อย "การเปรียบเทียบพหุนามกับตัวเอง" ฉันเข้าใจจนถึงตรงนี้

กล่าวอีกนัยหนึ่ง พหุนามใดๆ ที่เท่ากับศูนย์ในทุกเซตคือ a (พหุนาม) ผลคูณของพหุนามที่ง่ายที่สุด (ดีกรีต่ำสุด) that เท่ากับศูนย์ในชุดเดียวกันนั้น

อย่างไรก็ตาม ฉันไม่สามารถเข้าใจได้ว่าเขาใช้สิ่งนั้นเพื่อตรวจสอบเงื่อนไขบางอย่างได้อย่างไร

นี่คือส่วนที่ฉันมีปัญหาในการทำความเข้าใจ

ถ้าเรามีพหุนามที่เข้ารหัสตัวเลขฟีโบนัชชี (ดังนั้นข้าม $F(x+2) = F(x) + F(x+1)$ ข้าม $x = $ { $0, 1, ..., 98$}) จากนั้นฉันสามารถโน้มน้าวใจคุณได้ $F$ เป็นไปตามเงื่อนไขนี้จริง ๆ โดยการพิสูจน์ว่าพหุนาม $P(x) = F(x+2) - F(x+1) - F(x)$ เป็นศูนย์ในช่วงนั้น โดยให้คุณหาร $H(x) = \frac {F(x+2) - F(x+1) - F(x)}{Z(x)}$ ที่ไหน $Z(x) = (x - 0) * (x - 1) ... (x - 98)$

ก่อนอื่น ฉันไม่เข้าใจว่าเขาหมายถึงอะไรโดย "ให้ผลหารแก่คุณ" - เขาจะให้ข้อมูลอะไรแก่ผู้ตรวจสอบ & ผู้ตรวจสอบจะตรวจสอบได้อย่างไร

Score:1
ธง cn

ถ้าเป็นพหุนาม $P(x)$ (คิดว่าเป็นฟังก์ชันที่รับอินพุต $x$ และส่งกลับผลการประเมิน) ประเมินเป็นศูนย์สำหรับค่าที่ป้อนเข้าสำหรับ $x$ (ยกตัวอย่างง่ายๆก็ได้ $x=x_1, x_2, x_3$) ตามที่ระบุไว้ในข้อความที่ยกมาครั้งแรกในคำถาม $P(x)$ จะเป็นผลคูณของพหุนามดีกรีต่ำสุด $Z(x)$ ที่เป็นศูนย์ในค่าอินพุตเหล่านั้นสำหรับ $x$ (นี่จะเป็น $Z(x)=(x-x_1)(x-x_2)(x-x_3)$). ซึ่งหมายความว่าหาก $P(x)$ หารด้วย $Z(x)$, ผลหาร (เรียกว่า $H(x)$) จะยังคงเป็นพหุนาม ผู้พิสูจน์คำนวณ $H(x)$ โดยปฏิบัติจริง ๆ คือ $P(x)/Z(x)$, และนี่ $H(x)$ ถูกส่งจากผู้พิสูจน์ไปยังผู้ตรวจสอบในฐานะ âProofâ จากนั้นผู้ตรวจสอบจะยืนยันว่าผลิตภัณฑ์ของ $H(x)$ และ $Z(x)$ ย่อมเท่ากับ $P(x)$และถ้าเป็นเช่นนั้น ผู้ตรวจสอบยอมรับการพิสูจน์ ผู้ตรวจสอบจำเป็นต้องยืนยันด้วยเช่นกัน $H(x)$ เป็นพหุนามจริง ๆ และไม่ใช่ฟังก์ชันประเภทอื่น (เช่น ไม่ควรเป็นฟังก์ชันตรรกยะ ซึ่งเป็นเศษส่วนที่ไม่สำคัญที่มีตัวเศษพหุนามและตัวส่วน) ในทางปฏิบัติ สิ่งนี้ค่อนข้างจะได้รับการยืนยันโดยค่าเริ่มต้นเนื่องจากวิธีการที่ Prover สื่อสารหรือคำนวณ $H(x)$. ตัวอย่างเช่น หากโปรโตคอลต้องการให้ Prover ส่งผ่านค่าสัมประสิทธิ์ของ $H(x)$แล้วจะเห็นได้ชัดว่ามันเป็นพหุนาม หรือถ้าโปรโตคอลกำหนดให้ Prover คำนวณ $H(ร)$ สำหรับค่าที่เป็นความลับ $r$ (หมายความว่า $H(x)$ ได้รับการประเมินที่ $x=r$) จากนั้นจะมี âCommon Reference Stringâ ให้กับ Prover ซึ่งมีการเข้ารหัส (เช่น ในเลขยกกำลังของตัวสร้างกลุ่มในกลุ่มที่เป็นมิตรต่อการจับคู่) ของพลังของ $r$ จนถึงกำลังสูงสุด (เช่น ${g^{r}, g^{r^2}, g^{r^3}, g^{r^4}, g^{r^5}}$) ดังนั้น Prover จึงถูกบังคับให้เสนอชื่อพหุนามเท่านั้น $H(x)$ (ประเมินที่ $x=r$) ที่มีระดับถึงกำลังสูงสุดนั้น (ในตัวอย่างง่ายๆ นี้ 5)

Score:1
ธง gb

แปลว่าเขาจะให้ $H(x)$เพื่อให้ผู้ตรวจสอบสามารถคำนวณได้ $H(x)*Z(x)$ และตรวจสอบว่าเท่ากับ $F(x+2) = F(x) + F(x+1)$. เห็นได้ชัดว่าเป็นพหุนามเพราะสิ่งที่เราทำคือหารแล้วคูณด้วยสิ่งเดียวกัน ($Z(x)$) กลับมาที่พหุนามเดิม อย่างไรก็ตาม หากเราประเมินพหุนามเหล่านี้ด้วยการสุ่ม $x=s$แล้วสมการด้านบนทั้งหมดยังคงอยู่ แต่ตอนนี้เราแค่คูณและตรวจสอบการเท่ากันของตัวเลข นั่นคือที่มาของความรวบรัดของ SNARK

ดังนั้นผู้พิสูจน์สามารถให้ได้ $H(s)$ เช่นเดียวกับ $F(s), F(s+2), F(s+1)$และผู้ตรวจสอบสามารถ (ล่วงหน้า) คำนวณได้ $Z(s)$แล้วใช้ความเท่าเทียมกัน $F(s+2) - F(s) - F(s+1) = H(s)*Z(s)$ เพื่อตรวจสอบว่าทุกอย่างตรงกัน ขึ้นอยู่กับความจริงที่ว่าสองชื่อพหุนามที่มีดีกรีน้อยกว่าหรือเท่ากับ $n$ สามารถตกลงกันได้มากที่สุด $n$ จุด (โดย Schwartz-Zippel lemma)นี่จึงเป็นการพิสูจน์ความเท่าเทียมกันที่น่าจะเป็น

เราต้องไปให้ไกลกว่านี้ เพราะแน่นอนว่าถ้าเรารู้ $s$เราสามารถสร้างค่าที่จะตรวจสอบได้ ดังนั้นเราจึงประเมินพหุนามทั้งหมดแทนค่าที่เข้ารหัส $E(s)$ โดยใช้การเข้ารหัสแบบโฮโมมอร์ฟิค

โพสต์คำตอบ

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