สารสกัดต่อไปนี้นำมาจากหน้า Zero-Knowledge Proof ใน Wikipedia:
ในวิทยาการเข้ารหัสลับ การพิสูจน์ด้วยความรู้เป็นศูนย์หรือโปรโตคอลที่ไม่มีความรู้เป็นวิธีการที่ฝ่ายหนึ่ง (ผู้พิสูจน์) สามารถพิสูจน์ให้อีกฝ่ายหนึ่ง (ผู้ตรวจสอบ) เห็นว่าข้อความที่กำหนดนั้นเป็นความจริง ในขณะที่ผู้พิสูจน์หลีกเลี่ยงการถ่ายทอดข้อมูลเพิ่มเติมใด ๆ นอกเหนือจาก ความจริงที่ว่าข้อความนั้นเป็นจริง สาระสำคัญของการพิสูจน์ด้วยความรู้ที่ไม่มีศูนย์คือการพิสูจน์ว่ามีความรู้ในข้อมูลบางอย่างโดยการเปิดเผยข้อมูลนั้นเป็นเรื่องเล็กน้อย ความท้าทายคือการพิสูจน์ความครอบครองดังกล่าวโดยไม่ต้องเปิดเผยข้อมูลหรือข้อมูลเพิ่มเติมใด ๆ
หากการพิสูจน์ข้อความกำหนดให้ผู้พิสูจน์มีข้อมูลที่เป็นความลับ ผู้ตรวจสอบจะไม่สามารถพิสูจน์ข้อความต่อบุคคลอื่นได้หากไม่มีข้อมูลที่เป็นความลับ ข้อความที่ได้รับการพิสูจน์ต้องรวมถึงการยืนยันว่าผู้พิสูจน์มีความรู้ดังกล่าว แต่ไม่รวมหรือส่งต่อความรู้นั้นในการยืนยัน มิฉะนั้น ข้อความจะไม่ได้รับการพิสูจน์ด้วยความรู้ที่เป็นศูนย์ เนื่องจากเป็นการให้ข้อมูลเพิ่มเติมแก่ผู้ตรวจสอบเกี่ยวกับข้อความในตอนท้ายของโปรโตคอล การพิสูจน์ความรู้ที่ไม่มีความรู้เป็นกรณีพิเศษเมื่อคำสั่งประกอบด้วยข้อเท็จจริงที่ว่าผู้พิสูจน์มีข้อมูลลับเท่านั้น
อ้างอิง: https://en.wikipedia.org/wiki/Zero-knowledge_proof
ตัวอย่างเช่น สมมติว่าอลิซรู้เรื่องนั้น เอ็กซ์ เป็น 123 และ วาย เป็น 456และอลิซต้องการพิสูจน์ให้บ็อบเห็น เอ็กซ์ น้อยกว่า วาย. อลิซจึงต้องสร้างหลักฐานในลักษณะที่ว่า เอ็กซ์ และ วาย ไม่เปิดเผยต่อบ๊อบ
สมมติว่ามีการใช้โปรโตคอล ZKP ตามสมมติฐานต่อไปนี้:
- ก อาจจะมาจาก เอ็กซ์
- ข อาจจะมาจาก วาย
- เอ็กซ์ ไม่สามารถหาได้จาก ก โดยอลิซหรือบ็อบ (อลิซสามารถสืบทอดได้เท่านั้น ก จาก เอ็กซ์)
- วาย ไม่สามารถหาได้จาก ข โดยอลิซหรือบ็อบ (อลิซสามารถสืบทอดได้เท่านั้น ข จาก วาย)
ก = ฉ(X)
ข = ฉ(ย)
A < B // จริง
ตอนนี้ Bob สามารถตรวจสอบได้ว่า เอ็กซ์ ย่อมน้อยกว่า วาย หมดจดโดยการคำนวณ เอ < บี
และโดยที่อลิซไม่เคยเปิดเผย เอ็กซ์ และ วาย ถึงบ๊อบ
คำถามของฉันคือ Bob รับประกันได้อย่างไร ก และ ข มีที่มาจาก เอ็กซ์ และ วาย (และรู้ว่าอลิซไม่ได้มีเจตนาร้าย) โดยไม่รู้ว่าอะไร เอ็กซ์ และ วาย เป็น?