ฉันพยายามที่จะเข้าใจ Zero Knowledge Proof และแอปพลิเคชันของมัน สัญชาตญาณแรกของฉันคือบล็อกเชน (ฉันจะใช้เหมือน Bitcoin เพื่อความเรียบง่าย)
ฉันกำลังพยายามทำความเข้าใจโดยอธิบายขั้นตอนเชิงตรรกะสำหรับธุรกรรมบล็อกเชนสาธารณะ ทุกสิ่งที่ฉันอ่านพูดถึงการส่งต่อค่าให้กับผู้อื่นโดยการแลกเปลี่ยนข้อความกับบุคคลอื่น (zkp แบบโต้ตอบ) แต่ฉันไม่พบสิ่งใดที่จะตรวจสอบว่าค่านั้นถูกต้องหรือไม่ในพื้นที่สาธารณะ (ไม่ใช่ zkp แบบโต้ตอบ) เพื่อหลีกเลี่ยงการใช้จ่ายซ้ำซ้อนหรือแม้แต่การจัดเก็บ ข้อมูลอย่างปลอดภัย สัญชาตญาณของฉันคือมันต้องมีการประเมินค่าแบบโฮโมมอร์ฟิคด้วย เพื่อให้ผู้รับเท่านั้นที่รู้ว่าค่าใดถูกเก็บไว้ แต่ยังช่วยให้สามารถเปรียบเทียบระหว่างค่าที่เข้ารหัสได้ จนถึงตอนนี้คือสิ่งที่ฉันมี (ในขั้นตอนเชิงตรรกะ)
A และ B เป็นคู่คีย์ที่มีคุณสมบัติดังต่อไปนี้
A (ผับ): รหัสสาธารณะ
A(priv): รหัสส่วนตัว
A(env): คีย์สาธารณะ (การประเมิน)
V เป็นผู้ตรวจสอบความถูกต้อง
A ต้องการโอน 12 เหรียญให้ B และมี 15 เหรียญในกระเป๋าของเขา โดยอิงตาม UTxI ล่าสุดที่เพิ่มเข้ามา
A เข้ารหัสค่า UTxI และ UTxO (12 และ 3) ของ Tx ด้วย (B)env ดังนั้นตอนนี้จึงกลายเป็น H(i) และ H(o)
A สร้างหลักฐานสำหรับแต่ละค่าที่เข้ารหัส (H) เป็น PH(i) และ PH(o) และส่งธุรกรรม
Tx = H, UTxI => H(i), UTxO => H(o), In => A(pub), Out => B(pub), Proof of In => PH(i), Proof of Out = > พีเอช(o),
V ต้องการทราบว่า A มีเหรียญมากพอที่จะส่ง Tx ให้ B หรือไม่
V ใช้การประเมินแบบโฮโมมอร์ฟิกเพื่อเพิ่ม UTxO (H(o)) ทั้งหมดของ TX และเปรียบเทียบกับอินพุตทั้งหมดบน A(pub) ซึ่งเข้ารหัสด้วย
V ควรทำเช่นเดียวกันกับ UTxI + UTxO เพื่อตรวจสอบว่าเท่ากับยอดคงเหลือใน A(pub) หรือไม่
V ตรวจสอบหลักฐาน PH(i) และ PH(o) ถ้าถูกต้อง ดำเนินการยอมรับ Tx
B ได้รับ Tx และควรสามารถถอดรหัส UTxI และ UTxO ทั้งหมดเพื่อให้ทราบว่าเขาได้รับเหรียญกี่เหรียญโดยใช้ (B)priv
และ B(env) เพื่อย้อนกลับการคำนวณโฮโมมอร์ฟิค
นอกจากนี้เขายังมีหลักฐานของแต่ละรายการเพื่อให้บุคคลที่สามตรวจสอบว่าเขามีเงินจำนวนนั้นแน่นอน
ตัวอย่างนี้ใช้ระบบ Bitcoin เช่น UTx ซึ่งคำนวณจำนวนเหรียญในกระเป๋าเงินโดยเพิ่มอินพุตธุรกรรมที่ยังไม่ได้ใช้ในที่อยู่นี้ (ขออภัยหากมีข้อผิดพลาดเกี่ยวกับตรรกะ) แต่สิ่งที่ฉันพยายามทำความเข้าใจข้างต้นคือวิธีที่จะ บล็อกเชนจำเป็นต้องได้รับการอัปเกรดเพื่อให้สามารถทำธุรกรรมส่วนตัวได้อย่างสมบูรณ์และยังคงได้รับการตรวจสอบโดยบุคคลที่สาม
ตรรกะที่อธิบายถูกต้องหรือฉันขาดอะไรไปหรือไม่
ขอบคุณสำหรับเวลา!