เพื่อการศึกษาเท่านั้น ไม่ใช่คำแนะนำด้านการลงทุนหรือความปลอดภัย หลักฐานที่ใช้ได้จะรับรองเฉพาะข้อความที่เข้ารหัสไว้ภายใต้สมมติฐานของระบบพิสูจน์
คำตอบโดยตรง
การพิสูจน์แบบไม่เปิดเผยข้อมูล (ZKP) ช่วยให้ผู้พิสูจน์ทำให้ผู้ตรวจสอบเชื่อว่าข้อความหนึ่งเป็นจริง โดยไม่เปิดเผยพยานลับที่ใช้ยืนยันข้อความนั้น การรับรองเชิงรูปแบบไม่ได้หมายความว่าบันทึกไม่มีข้อมูลเลย แต่หมายความว่าสิ่งที่ผู้ตรวจสอบตามแบบจำลองเรียนรู้สามารถจำลองได้โดยไม่ต้องมีพยาน นอกเหนือจากสิ่งที่อนุมานได้จากข้อความสาธารณะ
ระบบพิสูจน์ต้องประเมินสามคุณสมบัติแยกกัน: ความครบถ้วน ทำให้ผู้พิสูจน์ที่ซื่อสัตย์และมีพยานถูกต้องได้รับการยอมรับ; ความถูกต้อง ทำให้ข้อความเท็จได้รับการยอมรับด้วยความน่าจะเป็นที่เล็กจนละเลยได้; และ การไม่เปิดเผยข้อมูล ทำให้พยานยังคงเป็นความลับตามแบบจำลองภัยคุกคาม ระบบที่ใช้งานจริงจำนวนมากเป็นข้อโต้แย้งเชิงคำนวณ ซึ่งความถูกต้องมีผลต่อผู้โจมตีที่มีทรัพยากรจำกัดและขึ้นกับสมมติฐานการเข้ารหัสที่ระบุไว้
การไม่เปิดเผยข้อมูลยังต่างจากความกระชับและความใช้ได้ หลักฐานอาจเป็น ZK แต่ตรวจสอบแพง กระชับแต่เปิดเผยข้อมูลสาธารณะ หรือพิสูจน์ความสัมพันธ์ที่เข้ารหัสอย่างถูกต้องแต่ไม่ตรงกับกฎที่แอปพลิเคชันตั้งใจใช้
เครื่องพิสูจน์จะดำเนินการชุดหรือการคำนวณและบันทึกการเปลี่ยนแปลงสถานะที่เกิดขึ้น
หลักการทำงาน
เริ่มจากข้อความสาธารณะ x พยานส่วนตัว w และความสัมพันธ์ที่กำหนดอย่างแม่นยำ R ผู้พิสูจน์สร้างหลักฐานและผู้ตรวจสอบประเมินด้วยพารามิเตอร์สาธารณะหรือกุญแจตรวจสอบ ข้ออ้างด้านความถูกต้องสรุปได้ว่า:
Verify(vk, x, proof) = 1 => exists w: R(x, w) = 1
สมการนี้บอกเพียงว่ามีพยานที่เหมาะกับความสัมพันธ์ที่เข้ารหัสไว้ ไม่เปิดเผยพยาน ไม่รับรองอินพุต offchain และไม่แสดงว่า R ครอบคลุมกฎธุรกิจทั้งหมดที่ต้องการ
- แบบโต้ตอบและไม่โต้ตอบ โปรโตคอล ZK ยุคแรกแลกเปลี่ยนคำท้ากับคำตอบ ระบบไม่โต้ตอบรวมหลักฐานไว้ในชิ้นเดียว และมักพึ่งวัสดุตั้งค่า แบบจำลอง random oracle หรือทั้งสองอย่าง
- แบบจำลองการตั้งค่า Groth16 ให้หลักฐานขนาดเล็กมากแต่ใช้การตั้งค่าแบบมีโครงสร้างเฉพาะวงจร ระบบแบบ PLONK ใช้สตริงอ้างอิงแบบมีโครงสร้างที่เป็นสากลและอัปเดตได้ ส่วน STARK ไม่ต้องใช้ trusted setup แบบมีโครงสร้าง แต่มักมีหลักฐานใหญ่กว่าและพึ่งแฮชกับการทดสอบดีกรีต่ำ
- การทำให้เป็นเลขคณิตและคอมมิตเมนต์ การใช้งานจะแปลงโปรแกรมเป็นข้อจำกัดพีชคณิต คอมมิตค่าที่ได้จากพยาน และใช้การตรวจแบบสุ่มเพื่อให้ตรวจการคำนวณได้โดยไม่ต้องทำซ้ำหรือดูพยาน
- หลักฐานความรู้ บางระบบอ้างเพิ่มเติมว่าผู้พิสูจน์ที่ได้รับการยอมรับรู้พยาน โดยทำให้เป็นรูปแบบด้วยตัวสกัด นี่เป็นคุณสมบัติแยกต่างหากและอนุมานจากคำว่า “ไม่เปิดเผยข้อมูล” ไม่ได้
ตัวอย่าง
สมมติว่า x มีคอมมิตเมนต์และเกณฑ์ 100 units ส่วน w มียอดคงเหลือที่คอมมิตไว้และปัจจัยพราง ความสัมพันธ์ตรวจว่าคอมมิตเมนต์เปิดได้ถูกต้องและยอดอย่างน้อย 100 units ZKP ที่ใช้ได้พิสูจน์สิ่งนี้โดยไม่เปิดยอดที่แน่นอน
ผลลัพธ์เพียงอย่างเดียวไม่พิสูจน์ว่าผู้พิสูจน์เป็นเจ้าของบัญชี เงินไม่มีภาระผูกพัน หรือไม่ได้ใช้คอมมิตเมนต์เดิมซ้ำ ข้ออ้างเหล่านี้ต้องมีข้อจำกัดและอินพุตสาธารณะเพิ่มเติม
ในคริปโทเคอร์เรนซีแบบปกปิด วงจรอาจบังคับการอนุญาต การรักษามูลค่า และการไม่ทำซ้ำพร้อมซ่อนรายละเอียดบางอย่าง ใน validity rollup หลักฐานอาจรับรองการเปลี่ยนสถานะแบบชุด แต่ข้อมูลธุรกรรมยังอาจเปิดเผย ดังนั้น “ZK Rollup” ไม่ได้หมายถึงธุรกรรมส่วนตัวโดยอัตโนมัติ
ความเสี่ยง
- วงจรที่ไม่ครบหรือผิดอาจพิสูจน์กฎที่ผิดได้อย่างสมบูรณ์
- การขาดการแยกโดเมน ตัวระบุเชน ราก หรือคอมมิตเมนต์อาจผูกหลักฐานกับบริบทที่ผิด
- การตั้งค่าที่ถูกเจาะหรือ toxic waste ที่ยังอยู่ อาจทำลายความถูกต้องของระบบที่ต้องใช้ trusted setup
- บั๊กในผู้พิสูจน์ ผู้ตรวจสอบ บันทึก เส้นโค้ง แฮช คอมไพเลอร์ หรือสมาร์ตคอนแทรกต์อาจทำให้การรับรองทางทฤษฎีใช้ไม่ได้
- อินพุตสาธารณะ เวลา กราฟธุรกรรม ค่าธรรมเนียม และเมทาดาทาเครือข่ายอาจรั่วข้อมูลนอกข้อความ ZK
- ช่องทางข้างเคียงในการสร้างพยาน เบราว์เซอร์ ฮาร์ดแวร์ หรือบริการระยะไกลอาจเปิดเผยความลับก่อนสร้างหลักฐาน
- การตรวจหลักฐานไม่ได้ให้ความพร้อมใช้ของข้อมูล ความต่อเนื่องของซีเควนเซอร์ ความสิ้นสุด การต้านการเซ็นเซอร์ หรือการอัปเกรดที่ปลอดภัย
- สมมติฐานและส่วนเผื่อความปลอดภัยต่างกัน ขนาดหลักฐานหรือความเร็วตรวจสอบอย่างเดียวไม่ใช่อันดับความปลอดภัย
ความเข้าใจผิดที่พบบ่อย
- “ไม่เปิดเผยข้อมูลหมายถึงไม่เปิดข้อมูลใดเลย” ข้อความสาธารณะและเอาต์พุตที่ตั้งใจเผยยังมองเห็นได้ และเมทาดาทานอกแบบจำลองอาจรั่วไหล
- “หลักฐานใช้ได้แปลว่าแอปถูกต้อง” หมายถึงความสัมพันธ์ที่เข้ารหัสได้รับการยอมรับ แต่ข้อผิดพลาดในวงจร การผสาน และนโยบายยังเกิดได้
- “ระบบ ZK ทุกแบบมีสมมติฐานความไว้วางใจเหมือนกัน” พิธีตั้งค่า เส้นโค้ง แฮช แบบจำลองบันทึก และการควบคุมอัปเกรดต่างกันอย่างมาก
- “ZK คือการเข้ารหัส” การเข้ารหัสซ่อนข้อมูลให้ผู้มีสิทธิ์ถอดรหัส ส่วน ZKP ยืนยันข้ออ้างโดยไม่ส่งพยานไปถอดรหัส
หัวข้อที่เกี่ยวข้อง
แหล่งข้อมูล
- The Knowledge Complexity of Interactive Proof Systems - SIAM Journal on Computing (เข้าถึง: 2026-08-22)
- On the Size of Pairing-based Non-interactive Arguments - IACR Cryptology ePrint Archive (เข้าถึง: 2026-08-22)
- Scalable, transparent, and post-quantum secure computational integrity - IACR Cryptology ePrint Archive (เข้าถึง: 2026-08-22)
- PLONK: Permutations over Lagrange-bases for Oecumenical Noninteractive arguments of Knowledge - IACR Cryptology ePrint Archive (เข้าถึง: 2026-08-22)
- Zcash Protocol Specification - Zcash Protocol Specification (เข้าถึง: 2026-08-22)