Zero-Knowledge Proof คืออะไร?

การยืนยันความเป็นเจ้าของอะไรสักอย่าง เราย่อมต้องบอกเกี่ยวกับสิ่งที่เชื่อมโยงหรืออยู่ในนั้นได้ ก็ในเมื่อเราเป็นเจ้าของ การใช้รหัสผ่านก็คือการยืนยันวิธีการหนึ่งถึงสิ่งที่เรารู้และยืนยันว่าเราเป็นเจ้าของ คำถามคือแล้วจะเป็นไปได้ไหมที่จะเราจะพิสูจน์หรือตรวจสอบหาความจริง โดยที่ไม่ต้องเปิดเผยข้อมูลนั้น ซึ่งแนวคิดนี้เรียกว่า Zero-Knowledge Proof ที่กำลังมีบทบาทในงานดิจิทัลมากมายทั้ง Blockchain, Web3 แม้กระทั่งระบบพิสูจน์ตัวตนอื่นก็สามารถนำไปประยุกต์ใช้ได้

หากว่ากันตามศาสตร์วิทยาการเข้ารหัส Zero-Knowledge Proof คือโปรโตคอลหนึ่งที่ใช้คณิตศาสตร์ตรวจสอบหรือพิสูจน์ความจริงของข้อมูลโดยไม่ต้องเปิดเผยข้อมูลโดยละเอียดหรือข้อมูลอื่นๆภายใต้ ซึ่งทำให้ฝ่ายหนึ่งสามารถโน้มน้าวอีกฝ่ายได้ว่าคำพูดนั้นเป็นจริง ฟังดูเหมือนจะเข้าใจได้ใช่ไหมครับ แต่ก็ยากที่จะเข้าใจไอเดียได้เพราะอันที่จริงแล้วทฤษฎีนี้ถูกนำเสนอตั้งแต่ปี 1985 โดย 3 นักวิจัยคือ Shafi Goldwasser, Silvio Micali และ Charles Rackoff ผ่านงานวิจัยชื่อ “The Knowledge Complexity of Interactive Proof-Systems” แน่นอนว่าการอธิบายเรื่องพวกนี้ส่วนใหญ่เป็นการตีความทางภาษาคณิตศาสตร์ ดังนั้นเรื่องจะง่ายลงหากเราเรียนรู้ผ่านสถานการณ์สมมติ ระหว่าง Victor และ Peggy

ก่อนที่จะเข้าเรื่องต้องอธิบายก่อนว่า Zero-Knowledge Proof มีผู้เกี่ยวข้อง 2 ฝ่ายหลักๆ ก็คือ ผู้พิสูจน์(Prover) และ ผู้ตรวจสอบ(Verifier) โดยเหตุการณ์สมมติของเรื่องราวก็คือ Peggy หญิงสาวรายหนึ่งผู้ที่ค่อนข้างเก็บตัวไม่ค่อยเปิดรับโลกภายนอก เธออ้างว่าเธอรู้มนต์ลับที่สามารถเปิดประตูวิเศษที่ขวางทางถ้ำที่เป็นรูปวงแหวน ซึ่งก็คือเมื่อเข้าอีกด้านจะวนกลับมาจุดเริ่มต้นได้ หากผ่านประตูวิเศษนี้ได้จริง อย่างไรก็ตาม Victor จึงพยายามหาวิธีการที่จะพิสูจน์ว่า Peggy นั้นรู้มนต์วิเศษจริงไหม แต่ก็ต้องเป็นวิธีการที่เธอจะไม่ต้องบอกมนต์นี้แก่ Victor หรือใครอื่นก็ตาม ทั้งคู่จึงตกลงกันเพื่อทำการทดสอบดังนี้

เครดิตภาพ : Wikipedia

1.) Victor ยืนรออยู่หน้าปากถ้ำโดยไม่เข้าไปภายในทำให้ไม่เห็นว่า Peggy เลือกเดินเข้าไปด้านซ้ายหรือขวา

เครดิตภาพ : Wikipedia

2.) Peggy ตัดสินใจเดินสักทางหนึ่งเข้าไปก่อน แล้ว Victor จึงตามเข้ามารอที่จุดเริ่มต้นของ Peggy

เครดิตภาพ : Wikipedia

3.) Victor ยืนรออยู่จุดนี้แล้วตะโกนบอกให้ Peggy เดินออกมาทางที่ตนกำหนด ซึ่งแน่นอนว่าหาก Peggy รู้มนต์เปิดประตูจริงย่อมสามารถเดินออกทางไหนก็ได้

4.) อีกนัยหนึ่งหาก Peggy ไม่รู้มนต์วิเศษ Peggy ก็ยังมีโอกาสสวมรอยได้อยู่ดีหาก Victor เผอิญเลือกทางที่ Peggy เพิ่งเดินเข้าไป

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

จะเห็นได้ว่าวิธีการนี้เป็นสิ่งที่ผู้ทดสอบและผู้ตรวจสอบต้องตกลงปฏิบัติตามกติกากันก่อน นอกจากนี้ยังมีเงื่อนไขเล็กน้อยในกระบวนการแม้กระทั่งว่า Victor สุ่มเรียกตามการทายเหรียญก็ยังผิดกฏเพราะคนที่เห็นบันทึกวีดีโออาจถูกชวนเชื่อได้จากหลักฐานนี้เช่นกัน หากคิดต่อไปอีกนิดเมื่อกำหนดจุดยืนของ Victor จากปากถ้ำที่ไม่เห็นว่า Peggy เลือกทางไหน ไปเป็นการยืนที่จุดเดียวกันที่ทำให้ Victor รู้ว่า Peggy ไปทางไหน ดังนั้นถ้า Peggy รู้มนต์เปิดประตูจริงย่อมออกมาฝั่งตรงข้ามได้ นั่นจะเป็นการพิสูจน์ความจริงได้ในการทดสอบเดียว แต่วิธีการนี้ก็อาจเป็นการโน้มน้าวผู้ที่เห็นบันทึกวิดีโออยู่ดี เงื่อนไขเหล่านี้จะถูกอิมพลีเม้นต์จริงในรูปแบบของคณิตศาสตร์ต่อไป แต่ที่อธิบายมาทั้งหมดคือภาพง่ายๆในการอธิบาย Zero-Knowledge Proof

Zero-Knowledge Proof มีคุณสมบัติที่ถูกบัญญัติไว้ 3 ประการ คือ

1.) ครบถ้วน(Completeness) – ทุกฝ่ายต้องกระทำตามกติกามีส่วนในกระบวนการ ดังนั้นหากผลลัพธ์ออกมาถูกต้อง ผู้ตรวจสอบก็จะถูกโน้มน้าวให้เชื่อในผลลัพธ์ที่ถูกพิสูจน์

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

3.) ไร้ความรู้ในข้อมูล (Zero-Knowledge) – แม้ผลลัพธ์จะถูกต้องจะไม่มีผู้ตรวจสอบใดที่ล่วงรู้ข้อมูลอื่นใดนอกเหนือจากถ้อยแถลงที่เป็นข้อเท็จจริง อีกนัยหนึ่งก็คือผู้ตรวจสอบไม่สามารถเข้าถึงข้อมูลผู้ใช้ได้

จะเห็นได้ว่าคุณสมบัติข้อที่ให้เรื่องของแนวคิดนี้จริงๆก็คือข้อ 3 แต่ในสองข้อแรกก็เป็นไปตามกลไกของระบบทั่วไปที่เรียกว่ ‘interactive proof system’ สิ่งหนึ่งที่น่าสนใจเกี่ยวกับ Zero-Knowledge Proof ก็คืออัตราการกระจายของผลจำลองอย่างที่เห็นไปแล้วว่าสถานการณ์อาจต้องทำซ้ำๆ ซึ่งนำไปสู่ความผันผวนทางผลลัพธ์ ซึ่งวิเคราะห์ในแง่ของการกระจายของข้อมูลได้อีก เช่น ผลลัพธ์การจำลองและโปรโตคอลตรวจสอบมีการกระจายเหมือนเดิม(Perfect) หรือ การกระจายตัวไปเหมือนเดิมโดยอาจจะเข้าใกล้ค่าทางสถิติได้(Statistical) โดยการประมวลผลที่เรียกได้ว่าเป็น Zero-Knowledge คือการที่ไม่มีอัลกอริทึมได้สามารถแบ่งแยกสองการกระจายได้

ในทางปฏิบัติแล้วทฤษฏี Zero-Knowledge Proof อาศัยการประมวลผลทางคณิตศาสตร์ได้หลายวิธี เช่น Hash-based Cryptography, pairing-based cryptography, multi-party computation และ lattice-based cryptography

นอกจากนี้ Zero-Knowledge Proof ยังทำได้ในมุมของการมีปฏิสัมพันธ์(interactive) ระหว่างผู้ทดสอบและผู้ตรวจสอบ นั่นนำไปสู่วิธีการของโปรโตคอลบางตัว หรืออีกรูปแบบหนึ่งคือไร้การปฏิสัทพันธ์ระหว่างกัน (noninteractive) ซึ่งก็คือผู้ตรวจสอบเชื่อโดยการพิสูจน์ครั้งเดียวไม่ต้องสื่อสารกันเยอะ ถ้าย้อนกลับไปคือสถานการณ์ที่ Victor ไปยืนจุดที่รู้ว่า Peggy เลือกทางใด โดยแนวคิดเหล่านี้ก็จะนำไปสู่ทฤษฎีทางคณิตศาสตร์ว่านำไปแก้ปัญหาแบบใด

1.) ระบบพิสูจน์ตัวตน – อันที่จริงแล้วงานวิจัยด้าน Zero-Knowledge Proof ก็ได้รับแรงบันดาลใจจากเรื่องระบบพิสูจน์ตัวตน โดยหวังว่าจะสามารถระบุทราบตัวตนได้โดยที่ไม่ต้องเปิดเผยข้อมูลความลับต่อบุคคลอื่น เช่น รหัสผ่าน ซึ่งมีชื่อเรียกว่า ‘Zero-Knowledge Proof of knowledge’ แต่รหัสผ่านค่อนข้างเล็กหรือมีการสุ่มไม่เพียงพอต่อหลายๆแผนด้าน Zero-Knowledge Proof of knowledge นั่นยังนำไปสู่การแก้ไขปัญหาเรื่องขนาดของรหัสผ่านในงานที่ชื่อ zero-knowledge password proof ทั้งนี้ในปี 2015 มี proof protocol ตัวหนึ่งเกิดขึ้นชื่อว่า Sigma โดยในปี 2021 Cloudflare ได้หยิบวิธีการนี้ไปใช้ในการทำการตรวจสอบเว็บส่วนตัวโดยใช้ฮาร์ดแวร์ของตน

2.) Decentralize Identifier – การยืนยันตัวตนในแอปพลิเคชันที่กระจายกันโดยไม่เผยข้อมูลส่วนตัว เช่น ชื่อ-สกุล เลขบัตรประชาชน โดยอาจต้องการเพียงแค่ตรวจสอบว่ามีคุณสมบัติตามเกณฑ์บางอย่างที่กำหนด

3.) Blockchain – สกุลเงินคริปโต Zcash ได้อาศัยวิธีการ zero-knowledge proof วิธีการหนึ่งที่เรียกว่า Zero-Knowledge Succinct Non-Interactive Argument of Knowledge (zk-SNARK) สำหรับการทำธุรกรรมโดยทำให้ไม่ต้องเผยข้อมูลชื่อที่อยู่หรือจำนวนเงิน ต่อมาก็มีหลายสกุลเงินที่ถูกสร้างขึ้นมาโดยพื้นฐานของ non-interactive zero-knowledge ด้วยเหตุนี้เองในหลายหน้าเว็บที่ให้บริการเงินดิจิทัลจึงมักกล่าวถึง zero-knowledge proof แต่อันที่จริงแล้วเป็นเพียงแอปพลิเคชันหนึ่งเท่านั้น

4.) การปลดอาวุธนิวเคลียร์ – ข้อมูลเกี่ยวกับนิวเคลียร์ย่อมเป็นความลับระดับสูง ซึ่งในปี 2016 ก็มีการสาธิตเทคนิคที่ว่าจะนำแนวคิดที่จะพิสูจน์ทราบการปลดอาวุธนิวเคลียร์จากผู้สังเกตโดยไม่ต้องล่วงรู้ถึงข้อมูลสำคัญภายใน

ยังมีเคสอีกมากมายที่ zero-knowledge proof น่าจะนำไปใช้ได้อย่างเป็นรูปธรรม เพื่อพิสูจน์ให้ความเชื่อมั่นโดยที่ไม่ต้องเผยข้อมูลสำคัญ เช่น การโหวตออนไลน์ การพิสูจน์ผลของโมเดล AI การเงินการธนาคาร รวมถึงแนวคิดของ Web3 ด้วย

1.) ใช้ทรัพยากรสูง

อย่างที่ทราบไปแล้วในข้างต้นว่า Zero-knowledge proof อาศัยการประมวลผลทางคณิตศาสตร์อย่างเข้มข้น เช่น Elliptic Curve เป็นต้น นั่นหมายความว่าระบบต้องรองรับการประมวลผลตัวเลขมากมาย หรือมีการคำนวณค่า Hash ร่วมด้วยในวิธีการ ตลอดจนหากมีความต้องการเพิ่มขึ้นจาก Transaction ที่พุ่งสูง ผู้ออกแบบจะทำอย่างไร ด้วยเหตุนี้อุปกรณ์ที่มีทรัพยากรน้อยอาจไม่เหมาะกับแนวทาง Zero-knowledge proof

2.) ความซับซ้อนในการจัดตั้งระบบ

ปฏิเสธไม่ได้ว่าในทางปฏิบัตินั้นการสร้างระบบ zero-knowledge proof ต้องมีผู้เชี่ยวชาญทั้งด้านการเข้ารหัสและการโปรแกรม เริ่มต้นจากความเข้าใจในโปรโตคอล zero-knowledge proof ที่มีหลากหลายเพื่อเลือกมาใช้ให้เหมาะสมกับปัญหา ตลอดจนอาจต้องมีการปรับปรุงระบบในหลายส่วน ทั้งมาตรฐานด้านการเข้ารหัส พารามิเตอร์ที่สำคัญ หรือระบบ Smart Contract และ Blockchain เป็นต้น

3.) ความหลากหลาย

ต้องยอมรับว่า ณ ปัจจุบันนี้ zero-knowledge proof มีแนวทางไปได้มากมาย เช่น การเลือกวิธีการทางคณิตศาสตร์ โปรโตคอล blockchain และพารามิเตอร์ ซึ่งยังไม่มีมาตรฐานชัดเจนที่ทำให้ผู้นำไปใช้เริ่มต้นได้ตรงกัน

4.) ความน่าเชื่อถือ

ปัญหาของความน่าเชื่อถือเป็นอีกจุดที่สำคัญของ zero-knowledge proof ยกตัวอย่างเช่น ZK-SNARK ต้องอาศัยความไว้ใจในคณะผู้จัดตั้ง แต่คำถามคือหากผู้ให้บริการไม่น่าเชื่อถือไม่ปลอดภัย หรือแม้แต่คำถามในเรื่องจริยธรรมระหว่างน้ำหนักด้านการรักษาความเป็นส่วนตัวกับประเด็นด้านการป้องกันกิจกรรมที่ผิด รวมไปถึงต้องมีมาตรการด้านความมั่นคงปลอดภัยสำหรับการป้องกันข้อมูลสำคัญที่สอดคล้องกับมุมมองด้านกฏหมายด้วย

ที่มา :

  1. https://simpleswap.io/blog/technical-and-practical-challenges-of-zero-knowledge-proofs
  2. https://en.wikipedia.org/wiki/Zero-knowledge_proof
  3. https://www.scb10x.com/blog/zero-knowledge-proof
  4. https://chain.link/education/zero-knowledge-proof-zkp

About nattakon

จบการศึกษา ปริญญาตรีและโท สาขาวิศวกรรมคอมพิวเตอร์ KMITL เคยทำงานด้าน Engineer/Presale ดูแลผลิตภัณฑ์ด้าน Network Security และ Public Cloud ในประเทศ ปัจจุบันเป็นนักเขียน Full-time ที่ TechTalkThai

Check Also

ERP on Cloud เทรนด์ใหม่อุตสาหกรรมการผลิตไทย : Digiwin Thailand จับมือ GWS CLOUD โชว์โซลูชันในงาน ME EXPO 2026 [Guest Post]

Digiwin Thailand และ GWS CLOUD เตรียมเข้าร่วมจัดแสดงโซลูชัน “Digiwin ERP on GWS CLOUD” ซึ่งถือเป็นเทรนด์ใหม่ในอุตสาหกรรมการผลิตไทย เป็นครั้งแรก ในงาน ME …

ศรีเจริญ ปาล์ม ออยล์ ยกระดับ การบริหารธุรกิจน้ำมันปาล์ม ด้วย SAP Business One โดย NTT DATA Business Solutions (Thailand) Ltd.

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