﻿---
title: "การพิสูจน์แบบไม่เปิดเผยข้อมูล"
description: "คู่มือที่แม่นยำเกี่ยวกับการพิสูจน์แบบไม่เปิดเผยข้อมูล: ความครบถ้วน ความถูกต้อง การจำลอง พยาน สมมติฐานการตั้งค่า การใช้งานบล็อกเชน และความเสี่ยงในการตรวจสอบ"
image: "https://wiki.fcontext.com/og.png"
---

> Documentation Index
> Fetch the complete documentation index at: https://wiki.fcontext.com/llms.txt
> Use this file to discover all available pages before exploring further.

# การพิสูจน์แบบไม่เปิดเผยข้อมูล

> เพื่อการศึกษาเท่านั้น ไม่ใช่คำแนะนำด้านการลงทุนหรือความปลอดภัย หลักฐานที่ใช้ได้จะรับรองเฉพาะข้อความที่เข้ารหัสไว้ภายใต้สมมติฐานของระบบพิสูจน์

<a id="answer"></a>

## คำตอบโดยตรง

การพิสูจน์แบบไม่เปิดเผยข้อมูล (ZKP) ช่วยให้ผู้พิสูจน์ทำให้ผู้ตรวจสอบเชื่อว่าข้อความหนึ่งเป็นจริง โดยไม่เปิดเผยพยานลับที่ใช้ยืนยันข้อความนั้น การรับรองเชิงรูปแบบไม่ได้หมายความว่าบันทึกไม่มีข้อมูลเลย แต่หมายความว่าสิ่งที่ผู้ตรวจสอบตามแบบจำลองเรียนรู้สามารถจำลองได้โดยไม่ต้องมีพยาน นอกเหนือจากสิ่งที่อนุมานได้จากข้อความสาธารณะ

ระบบพิสูจน์ต้องประเมินสามคุณสมบัติแยกกัน: **ความครบถ้วน** ทำให้ผู้พิสูจน์ที่ซื่อสัตย์และมีพยานถูกต้องได้รับการยอมรับ; **ความถูกต้อง** ทำให้ข้อความเท็จได้รับการยอมรับด้วยความน่าจะเป็นที่เล็กจนละเลยได้; และ **การไม่เปิดเผยข้อมูล** ทำให้พยานยังคงเป็นความลับตามแบบจำลองภัยคุกคาม ระบบที่ใช้งานจริงจำนวนมากเป็นข้อโต้แย้งเชิงคำนวณ ซึ่งความถูกต้องมีผลต่อผู้โจมตีที่มีทรัพยากรจำกัดและขึ้นกับสมมติฐานการเข้ารหัสที่ระบุไว้

การไม่เปิดเผยข้อมูลยังต่างจากความกระชับและความใช้ได้ หลักฐานอาจเป็น ZK แต่ตรวจสอบแพง กระชับแต่เปิดเผยข้อมูลสาธารณะ หรือพิสูจน์ความสัมพันธ์ที่เข้ารหัสอย่างถูกต้องแต่ไม่ตรงกับกฎที่แอปพลิเคชันตั้งใจใช้

<a id="mechanism"></a>

## หลักการทำงาน

เริ่มจากข้อความสาธารณะ `x` พยานส่วนตัว `w` และความสัมพันธ์ที่กำหนดอย่างแม่นยำ `R` ผู้พิสูจน์สร้างหลักฐานและผู้ตรวจสอบประเมินด้วยพารามิเตอร์สาธารณะหรือกุญแจตรวจสอบ ข้ออ้างด้านความถูกต้องสรุปได้ว่า:

`Verify(vk, x, proof) = 1 => exists w: R(x, w) = 1`

สมการนี้บอกเพียงว่ามีพยานที่เหมาะกับความสัมพันธ์ที่เข้ารหัสไว้ ไม่เปิดเผยพยาน ไม่รับรองอินพุต offchain และไม่แสดงว่า `R` ครอบคลุมกฎธุรกิจทั้งหมดที่ต้องการ

- **แบบโต้ตอบและไม่โต้ตอบ** โปรโตคอล ZK ยุคแรกแลกเปลี่ยนคำท้ากับคำตอบ ระบบไม่โต้ตอบรวมหลักฐานไว้ในชิ้นเดียว และมักพึ่งวัสดุตั้งค่า แบบจำลอง random oracle หรือทั้งสองอย่าง
- **แบบจำลองการตั้งค่า** Groth16 ให้หลักฐานขนาดเล็กมากแต่ใช้การตั้งค่าแบบมีโครงสร้างเฉพาะวงจร ระบบแบบ PLONK ใช้สตริงอ้างอิงแบบมีโครงสร้างที่เป็นสากลและอัปเดตได้ ส่วน STARK ไม่ต้องใช้ trusted setup แบบมีโครงสร้าง แต่มักมีหลักฐานใหญ่กว่าและพึ่งแฮชกับการทดสอบดีกรีต่ำ
- **การทำให้เป็นเลขคณิตและคอมมิตเมนต์** การใช้งานจะแปลงโปรแกรมเป็นข้อจำกัดพีชคณิต คอมมิตค่าที่ได้จากพยาน และใช้การตรวจแบบสุ่มเพื่อให้ตรวจการคำนวณได้โดยไม่ต้องทำซ้ำหรือดูพยาน
- **หลักฐานความรู้** บางระบบอ้างเพิ่มเติมว่าผู้พิสูจน์ที่ได้รับการยอมรับรู้พยาน โดยทำให้เป็นรูปแบบด้วยตัวสกัด นี่เป็นคุณสมบัติแยกต่างหากและอนุมานจากคำว่า “ไม่เปิดเผยข้อมูล” ไม่ได้

<a id="example"></a>

## ตัวอย่าง

สมมติว่า `x` มีคอมมิตเมนต์และเกณฑ์ `100 units` ส่วน `w` มียอดคงเหลือที่คอมมิตไว้และปัจจัยพราง ความสัมพันธ์ตรวจว่าคอมมิตเมนต์เปิดได้ถูกต้องและยอดอย่างน้อย `100 units` ZKP ที่ใช้ได้พิสูจน์สิ่งนี้โดยไม่เปิดยอดที่แน่นอน

ผลลัพธ์เพียงอย่างเดียวไม่พิสูจน์ว่าผู้พิสูจน์เป็นเจ้าของบัญชี เงินไม่มีภาระผูกพัน หรือไม่ได้ใช้คอมมิตเมนต์เดิมซ้ำ ข้ออ้างเหล่านี้ต้องมีข้อจำกัดและอินพุตสาธารณะเพิ่มเติม

ในคริปโทเคอร์เรนซีแบบปกปิด วงจรอาจบังคับการอนุญาต การรักษามูลค่า และการไม่ทำซ้ำพร้อมซ่อนรายละเอียดบางอย่าง ใน validity rollup หลักฐานอาจรับรองการเปลี่ยนสถานะแบบชุด แต่ข้อมูลธุรกรรมยังอาจเปิดเผย ดังนั้น “ZK Rollup” ไม่ได้หมายถึงธุรกรรมส่วนตัวโดยอัตโนมัติ

<a id="risks"></a>

## ความเสี่ยง

- วงจรที่ไม่ครบหรือผิดอาจพิสูจน์กฎที่ผิดได้อย่างสมบูรณ์
- การขาดการแยกโดเมน ตัวระบุเชน ราก หรือคอมมิตเมนต์อาจผูกหลักฐานกับบริบทที่ผิด
- การตั้งค่าที่ถูกเจาะหรือ toxic waste ที่ยังอยู่ อาจทำลายความถูกต้องของระบบที่ต้องใช้ trusted setup
- บั๊กในผู้พิสูจน์ ผู้ตรวจสอบ บันทึก เส้นโค้ง แฮช คอมไพเลอร์ หรือสมาร์ตคอนแทรกต์อาจทำให้การรับรองทางทฤษฎีใช้ไม่ได้
- อินพุตสาธารณะ เวลา กราฟธุรกรรม ค่าธรรมเนียม และเมทาดาทาเครือข่ายอาจรั่วข้อมูลนอกข้อความ ZK
- ช่องทางข้างเคียงในการสร้างพยาน เบราว์เซอร์ ฮาร์ดแวร์ หรือบริการระยะไกลอาจเปิดเผยความลับก่อนสร้างหลักฐาน
- การตรวจหลักฐานไม่ได้ให้ความพร้อมใช้ของข้อมูล ความต่อเนื่องของซีเควนเซอร์ ความสิ้นสุด การต้านการเซ็นเซอร์ หรือการอัปเกรดที่ปลอดภัย
- สมมติฐานและส่วนเผื่อความปลอดภัยต่างกัน ขนาดหลักฐานหรือความเร็วตรวจสอบอย่างเดียวไม่ใช่อันดับความปลอดภัย

<a id="misconceptions"></a>

## ความเข้าใจผิดที่พบบ่อย

- **“ไม่เปิดเผยข้อมูลหมายถึงไม่เปิดข้อมูลใดเลย”** ข้อความสาธารณะและเอาต์พุตที่ตั้งใจเผยยังมองเห็นได้ และเมทาดาทานอกแบบจำลองอาจรั่วไหล
- **“หลักฐานใช้ได้แปลว่าแอปถูกต้อง”** หมายถึงความสัมพันธ์ที่เข้ารหัสได้รับการยอมรับ แต่ข้อผิดพลาดในวงจร การผสาน และนโยบายยังเกิดได้
- **“ระบบ ZK ทุกแบบมีสมมติฐานความไว้วางใจเหมือนกัน”** พิธีตั้งค่า เส้นโค้ง แฮช แบบจำลองบันทึก และการควบคุมอัปเกรดต่างกันอย่างมาก
- **“ZK คือการเข้ารหัส”** การเข้ารหัสซ่อนข้อมูลให้ผู้มีสิทธิ์ถอดรหัส ส่วน ZKP ยืนยันข้ออ้างโดยไม่ส่งพยานไปถอดรหัส

<a id="related"></a>

## หัวข้อที่เกี่ยวข้อง

- [แฮชเชิงเข้ารหัส](/th/crypto/cryptographic-hash/)
- [เหรียญความเป็นส่วนตัว](/th/crypto/privacy-coin/)
- [หลักฐานความถูกต้อง](/th/crypto/validity-proof/)
- [ZK Rollup](/th/crypto/zk-rollup/)

<a id="sources"></a>

## แหล่งข้อมูล

- [The Knowledge Complexity of Interactive Proof Systems](https://people.csail.mit.edu/silvio/Selected%20Scientific%20Papers/Zero%20Knowledge/The_Knowledge_Complexity_Of_Interactive_Proof_Systems.pdf) - SIAM Journal on Computing (เข้าถึง: 2026-08-22)
- [On the Size of Pairing-based Non-interactive Arguments](https://eprint.iacr.org/2016/260.pdf) - IACR Cryptology ePrint Archive (เข้าถึง: 2026-08-22)
- [Scalable, transparent, and post-quantum secure computational integrity](https://eprint.iacr.org/2018/046.pdf) - IACR Cryptology ePrint Archive (เข้าถึง: 2026-08-22)
- [PLONK: Permutations over Lagrange-bases for Oecumenical Noninteractive arguments of Knowledge](https://eprint.iacr.org/2019/953.pdf) - IACR Cryptology ePrint Archive (เข้าถึง: 2026-08-22)
- [Zcash Protocol Specification](https://zips.z.cash/protocol/protocol.pdf) - Zcash Protocol Specification (เข้าถึง: 2026-08-22)

Source: https://wiki.fcontext.com/th/crypto/zero-knowledge-proof/index.mdx
