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

Digitech One ร่วมกับ Ruckus ลงนามสัญญาตัวแทนจำหน่ายในประเทศไทย ขับเคลื่อนด้วยเครือข่ายไร้สายเทคโนโลยี AI ยกระดับสู่สากล

บริษัท ดิจิเทควัน จำกัด และ RUCKUS ได้ร่วมลงนามในสัญญาแต่งตั้งตัวแทนจำหน่าย (Distributor Agreement) อย่างเป็นทางการ เพื่อจัดจำหน่ายระบบเครือข่ายไร้สายที่ขับเคลื่อนด้วยโซลูชัน AI อัจฉริยะอย่างเป็นทางการโดยมีเป้าหมายเพื่อเสริมสร้างศักยภาพด้านการเชื่อมต่อของระบบเครือข่ายให้กับภาคธุรกิจไทย พร้อมขับเคลื่อนการพัฒนาโครงสร้างพื้นฐานด้านดิจิทัลให้มีประสิทธิภาพสูงสุด โดย บริษัท …

Huge Kof ปรับกลยุทธ์รับการเติบโต 300 เท่า บริหารธุรกิจด้วย SAP Business One จาก NDBS

ไม่บ่อยครั้งนักที่เราจะเห็นธุรกิจไทยที่สามารถเติบโตก้าวกระโดดได้อย่างรวดเร็วภายในระยะเวลาเพียงไม่กี่ปี ซึ่ง Huge Kof โรงงานผลิตกาแฟและอาหารเสริมก็เป็นหนึ่งในธุรกิจที่เติบโตได้อย่างน่าจับตามอง ด้วยการเติบโตมากกว่า 300 เท่าภายในระยะเวลาเพียง 4 ปี ก้าวสู่การเป็นผู้ผลิตกาแฟรายใหญ่ติดอันดับ 1 ใน 3 ของประเทศไทยได้อย่างรวดเร็ว