เท่าที่ฉันรู้ คุณมีประเด็น "การย้อนกลับ" เป็นเพียงกลยุทธ์ "มองไปข้างหน้า" ซึ่งเป็นไปได้โดยการเข้าถึงตัวจำลองของ oracle ไปยังตัวตรวจสอบ
โดยปกติจะเรียกว่า "มหาอำนาจ" เนื่องจากเป็นความสามารถที่ Prover ไม่มีระหว่างการดำเนินการตามโปรโตคอลปกติ มิฉะนั้น ความสมบูรณ์อาจถูกประนีประนอม (เนื่องจากตัวจำลองสามารถสร้างการถอดเสียงที่น่าเชื่อถือของการโต้ตอบโดยที่ไม่รู้อะไรเลย มันอาจแอบอ้างเป็นการโกง ผู้พิสูจน์แกล้งพิสูจน์ข้อเท็จริง)
เกี่ยวกับความจริงที่ว่าการจำลองเป็นสิ่งที่ผู้ตรวจสอบสามารถทำได้โดยลำพัง นั่นเป็นความจริง: ผู้จำลองต้องไม่รู้อะไรเลยเพื่อพิสูจน์ ZKness และใครคือผู้สมัครที่ดีกว่าผู้ตรวจสอบสำหรับบทบาทของคนที่ไม่รู้!
แก้ไขเพื่อตอบความคิดเห็นที่ตามมา:
ในบทที่ 6 ของบทช่วยสอนเกี่ยวกับรากฐานของการเข้ารหัส (Springer) Yehuda Lindell เขียนว่า:
อันดับแรก บางคนอาจสงสัยว่าเป็นไปได้อย่างไรที่จะย้อนกลับเครื่องมือตรวจสอบความถูกต้องในทางเทคนิค อันที่จริง เมื่อพิจารณาถึงความรู้ที่เป็นศูนย์ของกล่องดำ นี่เป็นเรื่องเล็กน้อย โดยเฉพาะอย่างยิ่ง ตัวจำลองได้รับสิทธิ์ให้ Oracle เข้าถึงฟังก์ชันข้อความถัดไป V*(x, z, r, ·) ของตัวตรวจสอบ ซึ่งหมายความว่ามีการถอดเสียง m' = (m1, m2, . . .) ของข้อความขาเข้าและรับกลับข้อความถัดไปที่ส่งเมื่อ V* มีอินพุต x, อินพุตเสริม z, เทปสุ่ม r และข้อความขาเข้า m'
ดังนั้นจึงเป็นเพียงข้อความถัดไป ไม่ใช่ข้อความถอดเสียงทั้งหมดเมื่อสิ้นสุดการโต้ตอบ (หากคุณสงสัย)
จากคำจำกัดความข้างต้นของฟังก์ชั่นข้อความถัดไป (ซึ่งการท้าทายของผู้พิสูจน์เป็นของข้อความที่ผู้ตรวจสอบได้รับก่อนหน้านี้) "วิธีการที่ชัดเจน" ของคุณดูเหมือนจะผิดสำหรับฉันสำหรับผู้ตรวจสอบทั่วไป (หรือที่เรียกว่าอาจโกง) V*
หากผู้ตรวจสอบมีความซื่อสัตย์ (ดังนั้นความท้าทายจึงเป็นการ "สุ่ม" โดยสุจริต - แม้ว่าจะไม่จำเป็นต้องกระจายอย่างสม่ำเสมอก็ตาม) คุณสามารถเปลี่ยนลำดับที่ตัวจำลองได้รับข้อความ (อันดับแรกคือผลลัพธ์ จากนั้นจึงท้าทายตามด้วยความมุ่งมั่น): BTW, เป็นกลยุทธ์ในการพิสูจน์ว่าโปรโตคอลการระบุตัวตนของ Schnorr คือ HVZKP (ละเว้น -เพื่อความเรียบง่าย- ที่เรากำลังจัดการกับการแจกแจงและไม่ใช่แค่ค่าจริง)
แต่ถ้าเราต้องจัดการกับผู้ตรวจสอบ V* ที่อาจโกง (และนั่นคือกรณีที่ควรอยู่ในหัวข้อ 8.7 ของการบรรยายของคุณ) ความท้าทายอาจเป็นหน้าที่ของข้อผูกพัน ดังนั้นจึงไม่เป็นอิสระต่อกัน ดังนั้นกลยุทธ์ที่ดีที่สุดของคุณคือลองผลลัพธ์ทั้งหมด จนกว่าคุณจะพบสิ่งที่ถูกต้อง (หรือนำมุมมองการบรรยายของคุณมาใช้ ผลลัพธ์คือคุณเริ่มลองใช้ข้อผูกพันทั้งหมดจนกว่าฟังก์ชันจะสร้างความท้าทายที่ "ถูกต้อง")... อย่างไรก็ตาม คุณต้องทดสอบจำนวนกรณีที่เพิ่มขึ้นอย่างทวีคูณหาก คุณมีอิสระเพียงระดับเดียว ดังนั้น PPT Simulator จึงไม่สามารถจัดการได้ หรือที่เรียกว่า ZK ไม่ได้รับการพิสูจน์:
ซึ่งหมายความว่าหลังจากเครื่องจำลองย้อนกลับ จะเหมือนกับว่าโปรโตคอลทั้งหมดเริ่มต้นใหม่ตั้งแต่ต้น นี่หมายความว่าจำนวนการย้อนกลับที่คาดหวังนั้นเป็นเลขชี้กำลัง และเราไม่สามารถสร้างโปรแกรมจำลอง PPT ได้ หมายความว่าเราไม่สามารถพิสูจน์คุณสมบัติที่ไม่มีความรู้ได้
ดังนั้นจึงไม่มีข้อขัดแย้งระหว่างคำนิยามของการกรอกลับก่อนหน้านี้กับบทสรุปของย่อหน้าแรกในส่วนที่ 8.7 ของการบรรยายของคุณ
ฉันยอมรับว่าฉันไม่ได้คิดมากว่าทำไมเครื่องจำลองจึงต้องเป็น PPT และไม่สามารถ - สมมุติว่าไม่มีขอบเขตทางการคำนวณ อย่างน้อยในหลักการ: ฉันต้องการทราบจากผู้อื่นเกี่ยวกับเรื่องนี้
ในขณะเดียวกัน การเดาที่มีการศึกษาของฉันคือ:
- "เราพิจารณางานที่ยากซึ่งเครื่อง PPT ไม่สามารถทำได้" (Goldreich, Foundation of Cryptography Volume I หน้า 19)
- สำหรับการใช้งานจริงใดๆ เรามักถูกจำกัดให้ใช้เอนทิตีที่มีประสิทธิภาพ (รวมถึงผู้พิสูจน์ แม้ว่าในทางทฤษฎีจะไม่มีปัญหาในการพิจารณาว่าไม่มีขอบเขต)
- การมีอยู่ของตัวจำลองเป็นเงื่อนไขที่เพียงพอแต่ไม่จำเป็นสำหรับ ZK ดังนั้นการใช้กระบวนทัศน์นี้หมายความว่าขาดสมมติฐานที่ครอบคลุมมากที่สุด: ในสถานการณ์นี้ ดูเหมือนว่าจะยอมรับได้หากใช้คำจำกัดความที่ระมัดระวังมากเกินไป