อลิซหยิบลูกบอลสองลูกต่อหน้าบ็อบ ลูกบอลสีน้ำเงินในมือซ้ายและลูกบอลสีแดงในมือขวา จากนั้นเอามือทั้งสองข้างไพล่หลังเพื่อไม่ให้บ็อบเห็นลูกบอลในมืออลิซ และอลิซสุ่มสลับลูกบอล ลูกบอลในมือซ้ายและขวาของเธอไว้ด้านหลัง หลังจากแลกเสร็จ Alice ยื่นมือออกมาถาม Bob ว่าลูกบอลทั้งสองมีการแลกเปลี่ยนตำแหน่งกันหรือไม่ ถ้า Bob มองเห็นสีบนลูกบอล แสดงว่าทุกครั้งที่ Alice เปลี่ยนตำแหน่ง ของลูกบอล บ็อบสามารถตอบคำถามของอลิซได้อย่างถูกต้อง
เป็นครั้งแรกที่อลิซแอบเปลี่ยนตำแหน่งของลูกบอลในมือของเธอ แล้วอลิซก็ถาม Bob ว่าเธอเปลี่ยนตำแหน่งของลูกบอลหรือไม่ ถ้า Bob ตอบว่าใช่ แสดงว่า Alice มีโอกาส 50% ที่ Bob สามารถแยกแยะสีของลูกบอลได้ บอลสองลูกเพราะ Bob มีโอกาส 1/2 ที่จะทำให้ถูกต้อง ดังนั้น Alice จึงสามารถลองอีกครั้งได้ ถ้าบ๊อบตอบว่าไม่ อลิซก็มั่นใจได้ว่าบ๊อบไม่สามารถแยกแยะสีของลูกบอลสองลูกได้
การตีความหลักฐานที่ไม่มีความรู้
บทความนี้ประกอบด้วยสิ่งต่อไปนี้: 1. การพิสูจน์ที่ไม่มีความรู้คืออะไร 2. เหตุใดเราจึงต้องการหลักฐานที่ไม่มีความรู้ 3. สถานการณ์การใช้งานของการพิสูจน์ความรู้เป็นศูนย์ 4. การพิสูจน์ความรู้เป็นศูนย์ทำงานอย่างไร 5. การจำแนกประเภทและกรณีการประยุกต์ใช้การพิสูจน์ที่ไม่มีความรู้ 6. ข้อบกพร่องของการพิสูจน์ที่ไม่มีความรู้
ส่วน.01
** Zero Knowledge Proof คืออะไร **
**Zero-Knowledge Proof (Zero-Knowledge Proof) เสนอโดย S.Goldwasser, S.Micali และ C.Rackoff ในช่วงต้นทศวรรษ 1980 หมายถึงความสามารถของผู้พิสูจน์ในการโน้มน้าวให้ผู้ตรวจสอบยืนยันว่าการยืนยันบางอย่างถูกต้องโดยไม่ต้องให้ข้อมูลที่เป็นประโยชน์แก่ผู้ตรวจสอบ **
ยกตัวอย่างง่ายๆ พัฟบอกว่าเขาเป็นเชฟและทำอาหารจีน เกาหลี อิตาเลียนได้ แม่ไม่เชื่อเพราะที่บ้านไม่ได้ทำกับข้าวกินเอง แล้วฉันจะพิสูจน์ได้อย่างไรว่าฉันทำอาหารได้ในเวลานี้?
ฉันสามารถให้แม่ดูฉันทำอาหารในครัวได้และพิสูจน์ว่าฉันรู้วิธีทำอาหารจริงๆ แต่ฉันไม่อยากให้แม่เห็นฉันทำกับข้าวเลอะเทอะในครัว ไม่งั้นฉันจะโดนดุอีก ฉันจะทำอย่างไรดี? ฉันเข้าไปในครัวคนเดียวและพ่อแม่รออยู่ข้างนอกหลังจากที่ฉันทำอาหารและเก็บข้าวของเสร็จฉันก็นำจานออกมา นี่ยังพิสูจน์ได้ว่าฉันทำอาหารได้ ส่วนฉันใช้วัตถุดิบอะไร ปรุงรสอะไร และครัวเละเทะแค่ไหนระหว่างทำ ฉันไม่ต้องการ ตราบใดที่แม่รู้ว่าฉันทำอาหารได้ก็จะพิสูจน์ได้ว่าฉันไม่ โกหก.
พูดง่ายๆ ก็คือ การพิสูจน์ความรู้เป็นศูนย์กำลังพยายามสร้างความไว้วางใจระหว่างสองฝ่ายด้วยการแลกเปลี่ยนข้อมูลจำนวนน้อยที่สุด โดยไม่ต้องเปิดเผยข้อมูลเพิ่มเติม ฝ่ายหนึ่ง (ผู้พิสูจน์, ผู้พิสูจน์) สามารถพิสูจน์ให้อีกฝ่ายหนึ่ง (ผู้ตรวจสอบ, ผู้ตรวจสอบ) ว่าสิ่งหนึ่งเป็นจริง
ส่วน.02
ทำไมคุณถึงต้องการหลักฐานที่ไม่มีความรู้
** ปกป้องข้อมูลส่วนตัว **
ผู้ขายที่หลอกลวงต้องการรวบรวมข้อมูลผู้ใช้ให้ได้มากที่สุด และใบเสร็จบางรายการที่ไม่เกี่ยวข้องกับธุรกิจของพวกเขายังขออนุญาตจากผู้ใช้ด้วย (เกลียดพวกเขาจริงๆ) พวกเขาใส่ข้อมูลประจำตัวส่วนบุคคลของผู้ใช้ (PII) ที่รวบรวมไว้ในฐานข้อมูลส่วนกลางซึ่งฐานข้อมูลเหล่านี้มีความเสี่ยงสูงที่จะถูกโจมตี เมื่อถูกโจมตี ข้อมูลประจำตัวส่วนบุคคลจะรั่วไหลซึ่งนำไปสู่ปัญหาการฉ้อโกงต่างๆ
การตรวจสอบ
เมื่อใช้เว็บไซต์ ผู้ใช้สามารถพิสูจน์ให้เว็บไซต์เห็นว่าตนมีคีย์ส่วนตัว หรือรู้คำตอบที่มีแต่เขาเท่านั้นที่รู้ เว็บไซต์ไม่จำเป็นต้องรู้คีย์ แต่สามารถยืนยันตัวตนของผู้ใช้ผ่านการพิสูจน์ที่ไม่มีความรู้ เซิร์ฟเวอร์สามารถพิสูจน์ให้ผู้ใช้เห็นว่าข้อมูลได้รับการเก็บรักษาอย่างเหมาะสมและไม่รั่วไหลผ่านพื้นที่เก็บข้อมูลแบบกระจายอำนาจ
การบีบอัดคอมพิวเตอร์และการขยาย blockchain
ในสถาปัตยกรรมบล็อกแบบดั้งเดิม การคำนวณเดียวกันซ้ำหลายครั้ง เช่น การตรวจสอบลายเซ็น การตรวจสอบความถูกต้องของธุรกรรม การดำเนินการตามสัญญาอัจฉริยะ และสถานที่อื่นๆ เพราะด้วยหลักฐานการคำนวณ การคำนวณเดียวกันไม่จำเป็นต้องทำซ้ำหลายครั้ง กระบวนการคำนวณ สามารถพิสูจน์ได้ว่าถูกบีบอัดโดยเทคโนโลยีที่ไม่มีความรู้
**การพิสูจน์ด้วยความรู้เป็นศูนย์ช่วยแก้ปัญหาความน่าเชื่อถือของข้อมูล ตระหนักถึงการปกป้องข้อมูลส่วนตัว และทำให้บล็อกเชนตระหนักถึงแนวคิดของเครื่องจักรที่เชื่อถือได้อย่างแท้จริง **
ส่วน.03
** สถานการณ์การสมัครของการพิสูจน์ความรู้เป็นศูนย์ **
**สถานการณ์การใช้งานหลักของการพิสูจน์ด้วยความรู้เป็นศูนย์คือ: การชำระเงินโดยไม่ระบุชื่อ การพิสูจน์ตัวตน การคำนวณที่ตรวจสอบได้ และการลงคะแนนแบบไม่ระบุชื่อ **
การชำระเงินแบบไม่ระบุตัวตน
การทำธุรกรรมของ Cryptocurrency นั้นเปิดเผยต่อสาธารณะในเครือข่ายสาธารณะ ผู้ใช้ทำธุรกรรมโดยไม่ระบุชื่อ แต่ยังเชื่อมโยงกับข้อมูลระบุตัวตนในโลกแห่งความเป็นจริง (เช่น โดยรวมที่อยู่ ETH ในโปรไฟล์ Twitter หรือ GitHub ของพวกเขา) หรือสามารถรับข้อมูลระบุตัวตนในโลกแห่งความเป็นจริงผ่านการวิเคราะห์ข้อมูลแบบออนไลน์และออฟไลน์
มี "เหรียญความเป็นส่วนตัว" เฉพาะที่ออกแบบมาสำหรับธุรกรรมที่ไม่ระบุชื่อโดยสมบูรณ์ ตัวอย่าง ได้แก่ Zcash และ Monero ซึ่งปกปิดรายละเอียดธุรกรรม รวมถึงที่อยู่ผู้ส่ง/ผู้รับ ประเภทสินทรัพย์ จำนวนเงิน และลำดับเวลาการทำธุรกรรม ด้วยการรวมเทคนิคที่ไม่มีความรู้ไว้ในโปรโตคอล เครือข่ายบล็อกเชนที่เน้นความเป็นส่วนตัวช่วยให้โหนดสามารถตรวจสอบธุรกรรมได้โดยไม่ต้องเข้าถึงข้อมูลธุรกรรม
การพิสูจน์ความรู้ที่ไม่มีศูนย์ยังถูกนำไปใช้กับธุรกรรมที่ไม่ระบุตัวตนบนบล็อกเชนสาธารณะ เช่น Tornado Cash ซึ่งเป็นบริการที่ไม่มีการคุมขังแบบกระจายอำนาจซึ่งช่วยให้ผู้ใช้สามารถทำธุรกรรมส่วนตัวบน Ethereum Tornado Cash ใช้การพิสูจน์ที่ไม่มีความรู้เพื่อสร้างความสับสนในรายละเอียดธุรกรรมและรับประกันความเป็นส่วนตัวทางการเงิน
รหัสส่วนตัว
ในกรณีที่ไม่เปิดเผยข้อมูลประจำตัวเฉพาะจะมีการออกใบรับรองประจำตัวเฉพาะ ตัวอย่างเช่น การใช้บริการออนไลน์จำเป็นต้องพิสูจน์ตัวตนของผู้ใช้และสิทธิ์ในการเข้าถึงแพลตฟอร์มเหล่านั้น โดยปกติจะต้องให้ข้อมูลส่วนบุคคล เช่น ชื่อ ที่อยู่อีเมล วันเดือนปีเกิด เป็นต้น
การพิสูจน์ด้วยความรู้ที่ไม่มีศูนย์สามารถทำให้การรับรองความถูกต้องของแพลตฟอร์มและผู้ใช้ง่ายขึ้น การพิสูจน์ ZK ถูกสร้างขึ้นโดยใช้อินพุตสาธารณะ (เช่น ข้อมูลที่พิสูจน์ว่าผู้ใช้เป็นสมาชิกของแพลตฟอร์ม) และอินพุตส่วนตัว (เช่น รายละเอียดของผู้ใช้) ซึ่งผู้ใช้สามารถแสดงเพื่อยืนยันตัวตนเมื่อต้องการเข้าถึงบริการ ตัวอย่างเช่น การพิสูจน์ว่าผู้ใช้เป็นผู้ใหญ่หรือไม่ ไม่จำเป็นต้องออกข้อมูลบัตรประจำตัวประชาชนหรือปีเกิดเฉพาะ แต่เพียงสรุปว่าผู้ใช้มีอายุสิบแปดปีหรือไม่
การคำนวณตรวจสอบได้
เมื่ออุปกรณ์ของผู้ใช้ไม่สามารถรองรับการประมวลผลที่จำเป็น หรือต้นทุนของการประมวลผลภายในเครื่องสูงเกินไป บริการของบุคคลที่สามจะได้รับการพิจารณา บริการของบุคคลที่สามเหล่านี้สามารถส่งคืนผลลัพธ์เอาต์พุตไปยังผู้ใช้ได้อย่างรวดเร็วและราคาถูก (เช่น บริการ oracle ของ Chainlink) การพิสูจน์ด้วยความรู้เป็นศูนย์ในสถานการณ์นี้ทำให้ผู้ให้บริการพลังงานการประมวลผลบุคคลที่สามสามารถแสดงผลการพิสูจน์ความสมบูรณ์ของการคำนวณเพื่อให้แน่ใจว่าผลลัพธ์เอาต์พุตที่ผู้ใช้ได้รับนั้นถูกต้อง
การลงคะแนนแบบไม่ระบุชื่อ
ภายใต้หลักการของการไม่เปิดเผยตัวตนเฉพาะ ตัวตนของผู้ใช้จะได้รับการพิสูจน์และมีอำนาจในการลงคะแนนเพื่อให้การลงคะแนนเสร็จสมบูรณ์
ส่วน.04
วิธีการทำงานของ Zero-Knowledge Proofs
การพิสูจน์ความรู้เป็นศูนย์ได้รับการเสนอครั้งแรกโดย Shafi Goldwasser และ Silvio Micali จาก MIT ในบทความปี 1985 หัวข้อ "Knowledge Complexity of Interactive Proof Systems" ผู้เขียนกล่าวถึงในกระดาษว่าเป็นไปได้ที่ผู้พิสูจน์จะโน้มน้าวผู้ตรวจสอบความถูกต้องของข้อมูลโดยไม่ต้องเปิดเผยข้อมูลเฉพาะ Zero-knowledge Proof สามารถเป็นแบบโต้ตอบได้ กล่าวคือ ผู้พิสูจน์ต้องพิสูจน์ความถูกต้องของข้อมูลหนึ่งครั้งต่อผู้ตรวจสอบแต่ละคน นอกจากนี้ยังสามารถเป็นแบบไม่มีปฏิสัมพันธ์ได้ กล่าวคือ ผู้พิสูจน์สร้างหลักฐาน และใครก็ตามที่ใช้หลักฐานนี้สามารถ ได้รับการตรวจสอบ ปัจจุบันมีการใช้งานการพิสูจน์ที่ไม่มีความรู้จำนวนมาก เช่น zk-SNARKS, zk-STARKS, PLONK และ Bulletproofs แต่ละวิธีมีข้อดีและข้อเสียในแง่ของขนาดการพิสูจน์ เวลาพิสูจน์ และเวลาการตรวจสอบ
การพิสูจน์ความรู้เป็นศูนย์มีคุณสมบัติพื้นฐาน 3 ประการ ได้แก่:
โดยสรุป เพื่อสร้างการพิสูจน์ที่ไม่มีความรู้ ผู้ตรวจสอบจำเป็นต้องให้ผู้พิสูจน์ดำเนินการตามลำดับของการดำเนินการที่ผู้พิสูจน์สามารถดำเนินการได้อย่างถูกต้องหากทราบข้อมูลพื้นฐานเท่านั้น หากผู้พิสูจน์เข้าใจผิดในผลลัพธ์ ผู้ตรวจสอบก็มีแนวโน้มที่จะพบและพิสูจน์ข้อผิดพลาดของเขาในการตรวจสอบ
PART.05
การจัดประเภทของการพิสูจน์ความรู้เป็นศูนย์
Zero-knowledge Proof สามารถแบ่งออกเป็น "การพิสูจน์ด้วยความรู้เป็นศูนย์แบบโต้ตอบ" และ "การพิสูจน์ด้วยความรู้เป็นศูนย์แบบไม่โต้ตอบ" ตามวิธีการโต้ตอบ
** หลักฐานการโต้ตอบที่ไม่มีความรู้ **
ผู้พิสูจน์และผู้ตรวจสอบจำเป็นต้องโต้ตอบกันหลายครั้ง ผู้ตรวจสอบจะยังคงถามคำถามต่อไปเพื่อท้าทายผู้พิสูจน์ และผู้พิสูจน์จะยังคงตอบสนองต่อความท้าทายเหล่านี้ต่อไปจนกว่าผู้ตรวจสอบจะเชื่อ
** Interactive Zero-Knowledge Proof - เกมคนตาบอดสี **
อลิซตาบอดสี แต่บ็อบไม่ตาบอดสี บ๊อบมีลูกบอลสองลูกที่มีขนาดและรูปร่างเหมือนกัน แต่สีของลูกบอลสองลูกนี้ต่างกัน ลูกหนึ่งเป็นสีน้ำเงิน และอีกลูกเป็นสีแดง เนื่องจากอลิซตาบอดสี ดังนั้นอลิซจึง ไม่สามารถบอกได้ว่าลูกบอลสองลูกนั้นเหมือนกันหรือไม่ บ็อบจำเป็นต้องพิสูจน์ให้อลิซเห็นว่าลูกบอลทั้งสองนั้นแตกต่างกัน ในที่นี้เรียกว่า อลิซ ผู้ตรวจสอบ ต้องตรวจสอบว่าคำกล่าวของบ็อบถูกต้องหรือไม่ บ๊อบเรียกว่า ผู้พิสูจน์ เขาต้องพิสูจน์คำกล่าวของตน (มีลูกบอล 2 ลูกที่มีสีต่างกัน) ในกรณีของสองสี พิสูจน์ให้อลิซเห็นว่าสีของลูกบอลทั้งสองต่างกัน ซึ่งสอดคล้องกับคำจำกัดความของการพิสูจน์ด้วยความรู้ที่ไม่มีศูนย์
อลิซหยิบลูกบอลสองลูกต่อหน้าบ็อบ ลูกบอลสีน้ำเงินในมือซ้ายและลูกบอลสีแดงในมือขวา จากนั้นเอามือทั้งสองข้างไพล่หลังเพื่อไม่ให้บ็อบเห็นลูกบอลในมืออลิซ และอลิซสุ่มสลับลูกบอล ลูกบอลในมือซ้ายและขวาของเธอไว้ด้านหลัง หลังจากแลกเสร็จ Alice ยื่นมือออกมาถาม Bob ว่าลูกบอลทั้งสองมีการแลกเปลี่ยนตำแหน่งกันหรือไม่ ถ้า Bob มองเห็นสีบนลูกบอล แสดงว่าทุกครั้งที่ Alice เปลี่ยนตำแหน่ง ของลูกบอล บ็อบสามารถตอบคำถามของอลิซได้อย่างถูกต้อง
เป็นครั้งแรกที่อลิซแอบเปลี่ยนตำแหน่งของลูกบอลในมือของเธอ แล้วอลิซก็ถาม Bob ว่าเธอเปลี่ยนตำแหน่งของลูกบอลหรือไม่ ถ้า Bob ตอบว่าใช่ แสดงว่า Alice มีโอกาส 50% ที่ Bob สามารถแยกแยะสีของลูกบอลได้ บอลสองลูกเพราะ Bob มีโอกาส 1/2 ที่จะทำให้ถูกต้อง ดังนั้น Alice จึงสามารถลองอีกครั้งได้ ถ้าบ๊อบตอบว่าไม่ อลิซก็มั่นใจได้ว่าบ๊อบไม่สามารถแยกแยะสีของลูกบอลสองลูกได้
ครั้งที่สอง อลิซไม่เปลี่ยนตำแหน่งของลูกบอลในมือของเธอ จากนั้นอลิซถามบ็อบว่าเขาเปลี่ยนตำแหน่งของลูกบอลหรือไม่ ถ้าบ๊อบตอบว่าไม่ อลิซก็มีโอกาส 75% ที่จะเชื่อว่าบ๊อบสามารถแยกแยะสีของลูกบอลสองลูกได้
หลังจากการทำซ้ำครั้งแรก อลิซสามารถพูดได้ว่าการยืนยันที่ Bob ระบุมีความเป็นไปได้ 50% ที่จะเป็นจริง ถ้าบ๊อบตอบถูกเป็นครั้งที่สอง อลิซสามารถพูดได้ว่าคำพูดของบ็อบเป็นจริงโดยมีความน่าจะเป็น 75% หลังจากการทำซ้ำครั้งที่สามจะเป็น 87.5% ถ้าบ๊อบผ่านการตรวจสอบติดต่อกัน n ครั้ง อลิซมีความน่าจะเป็น 1-(1/2)^n และคิดว่าสิ่งที่บ๊อบพูดเป็นความจริง และลูกบอลสองลูกเป็นสีแดงและสีน้ำเงินจริงๆ
การพิสูจน์ด้วยความรู้เป็นศูนย์เชิงโต้ตอบเป็นวิธีการยืนยันตามความน่าจะเป็น ผู้ตรวจสอบจะถามคำถามกับผู้พิสูจน์ตามการสุ่ม หากผู้พิสูจน์สามารถให้คำตอบที่ถูกต้องได้ แสดงว่าผู้พิสูจน์มีความเป็นไปได้สูงที่จะมี "ความรู้ทั้งหมดที่อ้างสิทธิ์" ". การพิสูจน์ด้วยความรู้เป็นศูนย์ไม่ใช่การพิสูจน์ในแง่คณิตศาสตร์ เนื่องจากมีความเป็นไปได้น้อยที่จะเกิดข้อผิดพลาด และผู้พิสูจน์ที่หลอกลวงอาจหลอกลวงผู้ตรวจสอบผ่านข้อความเท็จ กล่าวอีกนัยหนึ่ง การพิสูจน์ด้วยความรู้เป็นศูนย์เป็นการพิสูจน์ความน่าจะเป็นมากกว่าการพิสูจน์เชิงกำหนด แต่มีเทคนิคที่สามารถลดข้อผิดพลาดเป็นค่าเล็กน้อยได้
วิธีการโต้ตอบนี้มีข้อจำกัดบางประการ:
การพิสูจน์ความรู้เป็นศูนย์แบบไม่โต้ตอบ
การพิสูจน์ความรู้ที่ไม่มีความรู้เชิงโต้ตอบจำเป็นต้องมีทั้งสองฝ่ายเพื่อให้พร้อมใช้งานและโต้ตอบซ้ำ ๆ แม้ว่าผู้ตรวจสอบจะมั่นใจว่าผู้พิสูจน์มีความซื่อสัตย์ แต่หลักฐานนั้นไม่สามารถใช้สำหรับการตรวจสอบโดยอิสระได้ (การคำนวณหลักฐานใหม่จำเป็นต้องมีชุดข้อความใหม่ระหว่างผู้พิสูจน์และผู้ตรวจสอบ)
เพื่อแก้ปัญหาที่ต้องเผชิญกับการพิสูจน์ความรู้เป็นศูนย์เชิงโต้ตอบ จึงเริ่มใช้การพิสูจน์ความรู้เป็นศูนย์แบบไม่โต้ตอบ Manuel Blum, Paul Feldman และ Silvio Micali เสนอการพิสูจน์แบบไม่มีความรู้เชิงโต้ตอบเป็นครั้งแรก ซึ่งผู้พิสูจน์และผู้ตรวจสอบมีความลับร่วมกัน สิ่งนี้ทำให้ผู้พิสูจน์สามารถพิสูจน์ความรู้ของพวกเขาเกี่ยวกับข้อมูลบางอย่างโดยไม่ต้องให้ข้อมูลเอง
** การพิสูจน์ความรู้เป็นศูนย์แบบไม่โต้ตอบ --- เกมซูโดกุ **
Sudoku เป็นเกมคณิตศาสตร์ที่มีต้นกำเนิดในสวิตเซอร์แลนด์ในศตวรรษที่ 18 เป็นเกมตรรกะที่ใช้กระดาษและปากกาในการคำนวณ ผู้เล่นต้องอนุมานจำนวนของช่องว่างที่เหลือทั้งหมดตามจำนวนที่ทราบบนกระดาน 9×9 และพึงพอใจว่าตัวเลขในแต่ละแถว แต่ละคอลัมน์ และแต่ละพระราชวังที่มีเส้นหนา (3*3) มี 1- 9. ทำซ้ำ
เพื่อพิสูจน์ให้บ็อบเห็นว่าเธอไขปริศนาซูโดกุได้แล้ว อลิซจึงสร้างเครื่องป้องกันการงัดแงะสำหรับสิ่งนี้ อลิซใส่คำตอบของซูโดกุที่สร้างขึ้นลงในเครื่อง และเครื่องสามารถส่งหลักฐานให้บ๊อบได้ เครื่องของอลิซปฏิบัติตามโปรโตคอลที่ตรวจสอบได้โดยสาธารณะดังต่อไปนี้ ขั้นแรก อลิซใส่ปริศนาซูโดกุดั้งเดิมที่ยังไม่ได้แก้ลงในเครื่อง และไพ่ปริศนาสามใบในซูโดกุหงายขึ้น จากนั้น อลิซวางคำตอบคว่ำหน้าลงในช่องที่ตรงกันบนเครื่อง และวางไพ่สามใบในแต่ละช่องด้วย ในที่สุด Bob ได้รับหลักฐานจากเครื่อง และเครื่องก็ส่งคืนถุง 27 ใบให้ Bob:
เครื่องหยิบไพ่ 9 ใบจากแต่ละแถวของ Sudoku ผสมแยกกันและใส่ลงในถุง มีทั้งหมด 9 แถวและใช้ 9 ถุง เครื่องดึงไพ่ 9 ใบจากแต่ละแถวของ Sudoku ผสมเข้าด้วยกันและ ใส่ลงในถุง มีทั้งหมด 9 คอลัมน์ และใช้ 9 ถุง เครื่องจะนำไพ่ในแต่ละวังเส้นหนา (3*3) ในซูโดกุ ผสมเข้าด้วยกันและใส่ลงใน กระเป๋า และมีทั้งหมด 9 ใบ ใช้หมด 9 ใบ;
Bob ตรวจสอบแต่ละถุงจาก 27 ใบแยกกัน และถ้าไพ่ในแต่ละถุงมีหมายเลข 1 ถึง 9 และไม่มีตัวเลขใดขาดหายหรือซ้ำกัน Bob ก็สามารถยืนยันได้ว่า Alice แก้ Sudoku ได้จริงและ Bob ไม่ได้ทำ ตัวเลขใด ๆ จากเครื่อง ความรู้ใด ๆ เกี่ยวกับโซลูชัน Sudoku สามารถรับได้จากหลักฐานที่ส่งคืนเนื่องจากข้อมูลที่เครื่องส่งคืนไปยังกระเป๋าของ Bob จะถูกสับแบบสุ่ม
การพิสูจน์ที่ไม่มีความรู้เป็นศูนย์แบบไม่โต้ตอบสามารถเอาชนะข้อบกพร่องบางประการของการพิสูจน์ด้วยความรู้เป็นศูนย์แบบโต้ตอบได้ ไม่ต้องการการโต้ตอบออนไลน์ที่ยาวนาน สามารถเชื่อถือได้โดยคนจำนวนมาก (หรือแม้แต่ทุกคน) และการพิสูจน์นั้นใช้ได้เสมอ แต่เครื่องและโปรแกรมเพิ่มเติม อาจจำเป็นต้องกำหนดลำดับการทดลอง ตัวอย่างเช่น ในกรณีของ Sudoku โปรแกรมจะตัดสินใจว่าจะตรวจสอบคอลัมน์หรือแถวใด ลำดับการตรวจสอบจะต้องเก็บเป็นความลับ มิฉะนั้น ผู้ตรวจสอบอาจผ่านการตรวจสอบโดยไม่ทราบ "ความรู้" ที่แท้จริง
การพิสูจน์ความรู้เป็นศูนย์แบบโต้ตอบ VS การพิสูจน์ความรู้เป็นศูนย์แบบไม่โต้ตอบ
การตรวจสอบหลักฐานเชิงโต้ตอบแต่ละครั้งต้องมีการสื่อสารรอบใหม่ และหลักฐานที่ไม่ใช่เชิงโต้ตอบต้องการการสื่อสารเพียงรอบเดียวระหว่างผู้เข้าร่วม (ผู้พิสูจน์และผู้ตรวจสอบ) ผู้พิสูจน์จะส่งข้อมูลลับไปยังอัลกอริธึมพิเศษเพื่อคำนวณการพิสูจน์ที่ไม่มีความรู้ หลักฐานนี้ถูกส่งไปยังผู้ตรวจสอบซึ่งใช้อัลกอริธึมอื่นเพื่อตรวจสอบว่าผู้พิสูจน์รู้ความลับหรือไม่
การพิสูจน์แบบไม่โต้ตอบลดการสื่อสารระหว่างผู้พิสูจน์และผู้ตรวจสอบ ทำให้การพิสูจน์ ZK มีประสิทธิภาพมากขึ้น นอกจากนี้ เมื่อมีการสร้างหลักฐานแล้ว บุคคลอื่นจะสามารถตรวจสอบได้ (ด้วยการเข้าถึงความลับที่ใช้ร่วมกันและอัลกอริทึมการตรวจสอบ)
**PART.**06
โซลูชันทางเทคนิคและการประยุกต์ใช้การพิสูจน์ความรู้เป็นศูนย์
เทคโนโลยี Zero-knowledge ช่วยให้นักพัฒนาไม่เพียงใช้ประโยชน์จากความปลอดภัยของบล็อกเชนพื้นฐาน เช่น Ethereum เท่านั้น แต่ยังปรับปรุงปริมาณงานและความเร็วของธุรกรรมสำหรับ dApps และในขณะเดียวกันก็นำข้อมูลส่วนบุคคลของผู้ใช้ออกจากเครือข่ายเพื่อปกป้องความเป็นส่วนตัวของผู้ใช้ ธุรกรรมจะถูกบรรจุและอัปโหลดไปยังห่วงโซ่เพื่อลดต้นทุนการใช้งานสำหรับผู้ใช้ปลายทาง ในท้ายที่สุด โครงการสามารถใช้ประโยชน์จากความสามารถเหล่านี้เพื่อสร้าง dApps ขั้นสูงที่ไม่เพียงแข่งขันกับระบบ Web2 ในด้านประสิทธิภาพ แต่ยังรักษาผลประโยชน์จากการกระจายอำนาจของ Web3 อีกด้วย
(แหล่งรูปภาพ: Chainlink)
ใน Layer2 นั้น zk-rollup จะรวมธุรกรรมหลายรายการเข้าด้วยกันและเผยแพร่บน Layer1 blockchain และยังเผยแพร่หลักฐานที่ไม่มีความรู้เพื่อตรวจสอบความถูกต้องของการคำนวณ หลักฐานที่โพสต์บนเครือข่ายเรียกอีกอย่างว่า "หลักฐานความถูกต้อง" **เทคโนโลยีพิสูจน์ความถูกต้องแบ่งออกเป็นสองประเภท: SNARK และ STARK **
zk-SNAR
ชื่อเต็มของ SNARK คือ "zero-knowledge succinct non-interactive argument on knowledge" (การพิสูจน์ความรู้แบบไม่มีปฏิสัมพันธ์โดยรวบรัดแบบไม่โต้ตอบ) นี่เป็นหลักฐานการเข้ารหัสว่าไฟล์มีขนาดเล็กและตรวจสอบได้ง่าย มันสร้างหลักฐานการเข้ารหัสโดยใช้เส้นโค้งวงรีที่อนุมานว่าไม่พบลอการิทึมที่ไม่ต่อเนื่องขององค์ประกอบเส้นโค้งวงรีแบบสุ่มจากจุดฐานสาธารณะ ต้นทุนการคำนวณของเส้นโค้งวงรีต่ำกว่าฟังก์ชันแฮชของ STARK ดังนั้นต้นทุนก๊าซของโปรโตคอล SNARK จึงต่ำกว่า
เคส:Zcash, Loopring, zkSync1.0, zkSync 2.0, Zigzag, Mine
zk-สตาร์ค
ชื่อเต็มของ STARK คือ "zero-knowledge scalable transparent argument of knowledge" (ความรู้เป็นศูนย์ปรับขนาดได้ พิสูจน์ความรู้อย่างโปร่งใส) การพิสูจน์การเข้ารหัสนี้แทบไม่ต้องมีการโต้ตอบระหว่างผู้พิสูจน์และผู้ตรวจสอบ ข้อได้เปรียบที่ใหญ่ที่สุดของ STARK ที่เหนือกว่า SNARK คือเวลาในการพิสูจน์จะสั้นกว่าและขยายได้ง่ายกว่า นอกจากนี้ เนื่องจาก STARK ใช้ฟังก์ชันแฮช พวกมันจึงทนทานต่อการโจมตีแบบควอนตัม
เป็นมูลค่าการกล่าวขวัญว่าผู้ประดิษฐ์ STARK คือ Eli Ben-Sasson ผู้ร่วมก่อตั้ง StarkWare ซึ่งเป็นทีมที่พัฒนา StarkEx และ StarkNet
ตัวอย่าง: StarkEx, StarkNet, Immutable X, Starkware
PART.07
ข้อเสียของการพิสูจน์ความรู้เป็นศูนย์
ต้นทุนฮาร์ดแวร์สูง
ขึ้นอยู่กับระบบการพิสูจน์ กระบวนการสร้างการพิสูจน์ความรู้เป็นศูนย์นั้นแตกต่างกันไป แต่ท้ายที่สุด คุณจะพบปัญหายากๆ นั่นคือ การคูณเวกเตอร์จำนวนมาก (ฟิลด์หรือกลุ่ม) โดยเฉพาะการคูณหลายสเกลาร์ (MSM) ด้วยฐานที่แปรผันและคงที่ หรือการแปลงฟูริเยร์แบบเร็ว (FFT) และ FFT ผกผัน
ทั้ง MSM และ FFT นั้นทำงานช้า ในระบบที่มีทั้ง FFT และ MSM นั้น ประมาณ 70% ของเวลาการสร้างหลักฐานจะใช้กับ MSM และ 30% ใน FFT จำเป็นต้องมีการเร่งด้วยฮาร์ดแวร์เพื่อใช้ในการคำนวณที่ซับซ้อน โดยทั่วไปถือว่าเทคโนโลยีที่สำคัญที่สุดสำหรับการเร่งฮาร์ดแวร์ ZK คือ FPGA มากกว่า GPU (เนื่องจากต้นทุนและประสิทธิภาพพลังงาน) หรือ ASIC (เนื่องจากความไม่ยืดหยุ่นและวงจรการวนซ้ำที่ยาวนาน) FPGA ยอดนิยมมีราคาถูกกว่า GPU ยอดนิยมถึง 3 เท่า นอกจากนี้ FPGA ยังประหยัดพลังงานมากกว่า GPU มากกว่า 10 เท่า ส่วนใหญ่เป็นเพราะ GPU ต้องเชื่อมต่อกับอุปกรณ์โฮสต์ซึ่งใช้พลังงานมาก
ค่าใช้จ่ายในการตรวจสอบ
การตรวจสอบหลักฐานต้องใช้การคำนวณที่ซับซ้อนมาก ซึ่งจะเพิ่มต้นทุนในการคำนวณด้วย ตัวอย่างเช่น ZK-rolluos ต้องจ่ายเงินประมาณ 500,000 แก๊สเพื่อตรวจสอบการพิสูจน์ AK-SNARK เดียวบน Ethereum และ ZK-STARK ต้องการค่าธรรมเนียมที่สูงกว่านั้น
สมมติฐานความเชื่อ
ข้อพิสูจน์ของการไม่มีความรู้คือการที่ทั้งสองฝ่ายมีความซื่อสัตย์และต้องการทราบคำตอบที่แท้จริง และจะไม่ปลอมแปลงข้อมูล ใน ZK-SNARK การสร้างพารามิเตอร์สาธารณะเพียงครั้งเดียวสามารถนำมาใช้ซ้ำได้โดยฝ่ายต่างๆ ที่เข้าร่วมในโปรโตคอลที่ไม่มีความรู้ ซึ่งหมายความว่าข้อมูลที่ผู้เข้าร่วมให้มานั้นถูกต้องตามค่าเริ่มต้น
แต่ในความเป็นจริง ผู้ใช้ไม่มีทางที่จะประเมินความซื่อสัตย์ของผู้เข้าร่วม แม้ว่าผู้เข้าร่วมจะป้อนข้อมูลเท็จ ผู้ใช้ก็ต้องเชื่อ ไม่มีข้อสันนิษฐานที่เชื่อถือได้ใน ZK-STARK และตอนนี้ นักวิจัยกำลังทำงานเกี่ยวกับการตั้งค่าที่ไม่น่าเชื่อถือสำหรับ ZK-SNARK เพื่อปรับปรุงความปลอดภัยของกลไกการพิสูจน์
ภัยคุกคามคอมพิวเตอร์ควอนตัม
ZK-SNARK ใช้ Elliptic Curve Digital Signature Algorithm (ECDSA) ในการเข้ารหัส ดูเหมือนว่าอัลกอริทึม ECDSA จะปลอดภัยในปัจจุบัน แต่การพัฒนาคอมพิวเตอร์ควอนตัมในอนาคตมีแนวโน้มที่จะถอดรหัสอัลกอริทึมนี้
เป็นที่เชื่อกันโดยทั่วไปว่า ZK-STARK จะไม่ถูกคุกคามจากควอนตัมคอมพิวติ้งเพราะมันถูกเข้ารหัสโดยใช้ anti-collision hashing ซึ่งแตกต่างจากคู่คีย์สาธารณะและไพรเวตของ ECDSA ตรง anti-collision hashing นั้นยากกว่าที่จะถอดรหัสด้วยควอนตัมคอมพิวติ้ง