ให้ฉันแนะนำบริบทก่อน: สมมติว่าเรามีการประเมินฟังก์ชันแฮช: $$h = H(x, y),$$ ที่ไหน $x$ และ $y$ เป็นอินพุตสาธารณะและอินพุตส่วนตัวของฟังก์ชันแฮช $H$ตามลำดับ
แล้วถ้าผมต้องการพิสูจน์ให้ใครเห็นว่าการคำนวณนี้คำนวณถูกต้องโดยไม่ได้เปิดเผยจริง $x$จากนั้นฉันต้องสร้างหลักฐานความรู้ที่เป็นศูนย์ $\pi$ (ซึ่งสามารถรับได้จากวัตถุประสงค์ทั่วไป ZKPoK เช่น SNARKS, STARKS, ...) ของ $x$ ดังนั้น $h = H(x, y)$.
จนถึงจุดนี้ทุกอย่างโอเค
จะทำอย่างไรถ้าฉันต้องการให้คนอื่นตรวจสอบการประเมินแฮชโดยไม่เปิดเผยอินพุตส่วนตัว $x$ไม่ผ่านวัตถุประสงค์ทั่วไป ZKPoK; และ ที่สำคัญกว่า: การรักษาฟังก์ชันแฮชบางอย่าง คุณสมบัติ เช่น ความกำหนด ความเสมอภาค และความเป็นสากล?
ความคิดแรกของฉันในการแก้ปัญหานี้คือการค้นหาฟังก์ชัน $f$ ดังนั้น:
- $ฉ(x)$ สามารถเผยแพร่ต่อสาธารณะได้ (เพื่อให้ทุกคนสามารถตรวจสอบการคำนวณได้ง่าย $H(f(x), y)$).
- $ฉ(x)$ ยังเป็นไปตามระดับที่กำหนด ความสม่ำเสมอ และความเป็นสากล
ในความเป็นจริงหากฟังก์ชั่นดังกล่าว $f$ มีอยู่ จากนั้นฉันก็สามารถแทนที่ได้ $H$ กับ $f$. สมมติว่าสิ่งที่ฉันพยายามค้นหาคือการคำนวณบางอย่างที่แบ่งปันคุณสมบัติบางอย่างที่ฟังก์ชันแฮชมี แต่มีประสิทธิภาพมากกว่ามาก (เช่น โดยไม่ต้องพิสูจน์วัตถุประสงค์ทั่วไป) สามารถตรวจสอบได้
แนวคิดที่สองคือการแทนที่กลไกการแฮชด้วยสิ่งอื่น (เช่น การเข้ารหัสที่เชื่อมต่อกันด้วยลายเซ็น ...) ที่สามารถตรวจสอบได้อย่างมีประสิทธิภาพในขณะเดียวกันก็รักษาคุณสมบัติที่กล่าวถึง