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

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



เอาล่ะถ้าคุณหาตาคนนี้เจอแล้วพิสูจน์โดยที่ไม่ให้คนอื่นรู้ที่อยู่ของตา Waldo นี้ได้ถือว่าคุณพอจะเข้าใจละ หลักการของ Zero Knowledge Proof มีอยู่ด้วยกัน 3 ข้อคือ
- ถ้าเรื่องนี้เป็นเรื่องจริงผู้ตรวจสอบที่ซื่อสัตย์ย่อมเชื่อได้หากผู้พิสูจน์ซื่อสัตย์พิสูจน์อย่างตรงไปตรงมา
- ถ้าเรื่องที่จะพิสูจน์นี้เป็นเรื่องโกหก ไม่ว่าจะมีการโกงกันเกิดขึ้นก็ตามจะต้องไม่สามารถทำให้ผู้ตรวจสอบเชื่อถือได้เลย
- ถ้าเรื่องที่พิสูจน์นี้เป็นเรื่องจริงผู้ตรวจสอบจะรู้ข้อมูลอื่น ๆ เกี่ยวกับความจริงนี้ไม่ได้เลยนอกจากความจริงที่ต้องการพิสูจน์นี้
เอาล่ะสิงงกันล่ะสิ…
เรื่องนี้เป็นเรื่องพื้นฐานเรื่องหนึ่งที่ใช้ในการทำให้ความปลอดภัยของ Crypto Currency มีความน่าเชื่อถือ เป็นเรื่องที่เป็นทฤษฏีและสามารถนำมาคิดคำนวณความน่าเชื่อถือได้ อันนี้ถือว่าเป็นพื้นฐานละกัน…