ทั้งในชีวิตจริงและโลกดิจิทัล เรามักต้องการพิสูจน์สิ่งต่างๆ ให้ผู้อื่นเห็น ก่อนเข้าไปในอาคารสำนักงาน พนักงานมักจะให้บัตรประจำตัวบางประเภทก่อนเข้าไปข้างใน
เมื่อผู้ใช้พยายามเข้าสู่ระบบแอพ เช่น Facebook หรือ Twitter บริการเหล่านี้ต้องขอให้ผู้ใช้เข้าสู่ระบบด้วยรหัสผ่านก่อน และในบางครั้ง รหัสผ่านแบบใช้ครั้งเดียว (OTP) จะถูกส่งไปยังอุปกรณ์มือถือของตน
ข้อเสียของการให้หลักฐานคือเรามักจะให้ข้อมูลประเภทอื่นออกไป การระบุรหัสผ่านไปยังเว็บไซต์ยังคงหมายความว่าเว็บไซต์จะเก็บสำเนารหัสผ่านที่แฮชไว้ในเซิร์ฟเวอร์ของตน ถ้ามีคนไปแฮ็คเครื่องสแกนบัตรประจำตัวพนักงานของอาคารสำนักงาน พวกเขาอาจได้รับกุญแจส่วนตัวของทุกคน
การพิสูจน์ความรู้ที่เป็นศูนย์หรือ ZKP เป็นวิธีในการตรวจสอบตัวตนหรือธุรกรรมโดยไม่ต้องให้ข้อมูลเพิ่มเติม เนื่องจากแอปพลิเคชันในการเข้ารหัส ZKP จึงได้รับการดัดแปลงโดย blockchains เพื่อสร้างโปรโตคอลการตรวจสอบความถูกต้องที่ปลอดภัยและปรับขนาดได้
หลักฐานที่ไม่มีความรู้คืออะไร?
การพิสูจน์ความรู้ที่เป็นศูนย์ได้รับการเสนอครั้งแรกโดยนักวิจัยของ MIT Silvio Micali, Charles Rackoff และ Shafi Goldwasser ในปี 1985 ในบทความ “ความซับซ้อนของความรู้ของระบบการพิสูจน์เชิงโต้ตอบ”
บทความนี้นำเสนอแนวคิดเรื่องความซับซ้อนของความรู้ หมายถึงจำนวนความรู้เกี่ยวกับหลักฐานที่ถ่ายโอนจากผู้พิสูจน์ไปยังผู้ตรวจสอบ หลักฐานที่ไม่มีความรู้มีจุดมุ่งหมายเพื่อให้ฝ่ายหนึ่งสามารถพิสูจน์ได้ว่าข้อความเฉพาะนั้นเป็นความจริงสำหรับอีกฝ่ายหนึ่งโดยไม่ต้องเปิดเผยข้อมูลอื่นใด
สามารถใช้ ZKP เป็นทางเลือกที่ปลอดภัยสำหรับระบบตรวจสอบความถูกต้องในปัจจุบัน และยังสามารถเพิ่มไปยังโปรโตคอลบล็อคเชนเพื่อให้ธุรกรรมเป็นส่วนตัว
ZKP ทำงานอย่างไร
ตัวอย่างในโลกแห่งความเป็นจริง
เพื่อแสดงให้เห็นว่าการพิสูจน์ความรู้ที่เป็นศูนย์ทำงานอย่างไร มาดูตัวอย่างนามธรรมของ ZKP
สมมุติว่าคุณมีเพื่อนที่ตาบอดสีแดง-เขียว คุณมีลูกบอลที่เหมือนกันสองลูกซึ่งมีสีต่างกันเท่านั้น: ลูกหนึ่งสีแดงและลูกสีเขียวหนึ่งลูก สำหรับเพื่อนของคุณ พวกเขาดูเหมือนกัน แต่ในฐานะคนที่ไม่มีตาบอดสี คุณสามารถแยกพวกเขาออกจากกันได้อย่างง่ายดาย
เป็นไปได้ไหมที่คุณจะพิสูจน์ให้เพื่อนเห็นว่าพวกเขามีสีต่างกันโดยไม่เปิดเผยว่าลูกไหนเป็นสีแดงหรือสีเขียว
อันที่จริงมีวิธีพิสูจน์สิ่งนี้โดยไม่เปิดเผยสีของลูกบอล อันดับแรก คุณต้องให้เพื่อนของคุณวางลูกบอลทั้งสองไว้ข้างหลังและบอกให้เขาเอาลูกบอลออกมาและซ่อนอีกครั้ง ต่อไป คุณบอกเพื่อนของคุณว่าเขามีทางเลือกที่จะแสดงลูกบอลเดิมอีกครั้งหรือสลับกับอีกลูกหนึ่ง
ทุกครั้งที่มีการแสดงลูกใหม่ คุณสามารถบอกเขาได้ว่าเขาเปลี่ยนลูกหรือไม่ หากคุณคาดเดาการโทรที่ถูกต้อง โอกาสที่ลูกบอลจะมีสีต่างกันมากขึ้นเรื่อยๆ เพื่อนของคุณควรจะมั่นใจว่าลูกบอลมีสีต่างกันโดยไม่ต้องบอกเขาว่าลูกไหนมีสีอะไร
การใช้งานจริง
ตัวอย่างในทางปฏิบัติส่วนใหญ่ของการพิสูจน์ความรู้เป็นศูนย์แบ่งออกเป็นสองประเภท
อันดับแรก สามารถใช้ ZKP เมื่อออกแบบโปรโตคอล เราสามารถมั่นใจได้ว่าฝ่ายต่างๆ ไม่สามารถโกงหรือใช้ประโยชน์จากโปรโตคอลได้ ประการที่สอง สามารถใช้ ZKP เพื่อระบุตัวตนได้
ตัวอย่างเช่น เราสามารถใช้ ZKP เพื่อเข้าสู่ระบบเว็บแอปพลิเคชันได้อย่างปลอดภัยโดยไม่ต้องเปิดเผยรหัสผ่านเอง
มาดูตัวอย่างกันว่าเราจะใช้การพิสูจน์ความรู้ที่เป็นศูนย์ได้อย่างไร
โหวตทางอิเล็กทรอนิกส์
แอปพลิเคชั่น ZKP ที่กล่าวถึงทั่วไปอย่างหนึ่งคือบทบาทที่เป็นไปได้ในการลงคะแนนออนไลน์ สมมติว่าเรามีการลงประชามติที่กำลังจะมีขึ้นซึ่งผู้ใช้สามารถลงคะแนนในนโยบายที่เสนอได้ ผู้มีสิทธิเลือกตั้งที่มีสิทธิ์แต่ละคนสามารถลงคะแนนเสียงได้ทั้ง 1 หรือ 0 ในการลงคะแนนเสียง
การใช้ ZKP ผู้มีสิทธิเลือกตั้งสามารถพิสูจน์สิทธิ์ของตนในการลงคะแนนเสียงโดยไม่ต้องเปิดเผยตัวตน สิ่งนี้ทำให้มั่นใจได้ว่าการโหวตแต่ละครั้งจะไม่เปิดเผยตัวตนอย่างแท้จริง นอกจากนี้ ZKP เพิ่มเติมจะถูกใช้เพื่อพิสูจน์ว่าการโหวตของผู้ใช้รายใดรายหนึ่งเป็นส่วนหนึ่งของการนับคะแนนขั้นสุดท้าย
ในส่วนของเนื้อหาของบัตรลงคะแนนนั้น ระบบการลงคะแนนยังสามารถสร้างหลักฐานที่ปราศจากความรู้ว่าบัตรลงคะแนนแต่ละใบประกอบด้วย 1 หรือ 0 ซึ่งทำได้โดยไม่จำเป็นต้องรู้เนื้อหาของบัตรลงคะแนนเอง
ความเป็นส่วนตัวของบล็อคเชน
Blockchains เช่น Bitcoin และ Ethereum ไม่รองรับการทำธุรกรรมส่วนตัว ตราบใดที่กระเป๋าเงิน Bitcoin ของคุณเป็นสาธารณะ ทุกคนสามารถไปที่ Block explorer เช่น Blockstream เพื่อดูธุรกรรมทั้งหมดที่กระเป๋าเงินเป็นส่วนหนึ่งของ
ในขณะเดียวกัน การใช้บริการเช่นธนาคารหรือบริการชำระเงิน เช่น Cash App หรือ Venmo ช่วยให้คุณสามารถทำธุรกรรมแบบส่วนตัวได้ อย่างไรก็ตาม ความสะดวกนี้มีค่าใช้จ่ายในการเปิดเผยข้อมูลของคุณต่อบริการส่วนกลาง
เราสามารถรวมการไม่เปิดเผยตัวตนกับการกระจายอำนาจโดยเพิ่ม ZKP ลงในโปรโตคอลบล็อกเชน Cryptocurrencies เช่น ZCash ใช้ ZKP เพื่อสร้างธุรกรรมส่วนตัวที่ช่วยให้ผู้ถือเหรียญสามารถปกปิดตัวตนของตนได้ สกุลเงินดิจิตอลเหล่านี้หลายสกุลใช้ ZKP ประเภทหนึ่งที่เรียกว่า zk-SNARK
ZKP เหล่านี้ไม่ต้องการการโต้ตอบระหว่างผู้พิสูจน์และผู้ตรวจสอบ
โรลอัพความรู้เป็นศูนย์
ZK-rollups เป็นโซลูชันที่ปรับขยายได้ซึ่งช่วยให้สามารถตรวจสอบธุรกรรมนอกเครือข่ายได้ทันทีและมีค่าธรรมเนียมก๊าซน้อยที่สุด เป็นวิธีการรวมธุรกรรมเลเยอร์ 2 จำนวนมากและส่งไปยังโปรโตคอลเลเยอร์ 1
นอกจากให้ความเป็นส่วนตัวแล้ว ZKP ยังอนุญาตให้ปรับขนาดของระบบที่ซับซ้อนได้อีกด้วย โปรโตคอลบล็อคเชนสามารถใช้ ZKP เพื่อพิสูจน์ว่าผู้ใช้ได้ชำระธุรกรรมที่ถูกต้อง มียอดคงเหลือที่เหมาะสม และอื่นๆ โซลูชันที่ปลอดภัยแต่ปรับขนาดได้เหล่านี้สามารถทำได้ผ่านการพิสูจน์ทางคณิตศาสตร์ที่ทำนอกสายโซ่ใน ZKP เท่านั้น
โปรโตคอลเช่น Loopring ใช้การพิสูจน์ที่ไม่มีความรู้เพื่อช่วยประมวลผลธุรกรรมนอกเครือข่ายโดยไม่ต้องประนีประนอมการรักษาความปลอดภัย
ประโยชน์ของการพิสูจน์ความรู้ที่เป็นศูนย์
- ZKP มาแทนที่รูปแบบการรับรองความถูกต้องที่ไม่ค่อยน่าเชื่อถือ เช่น PIN หรือบัตรประจำตัว
- ZKPS เพิ่มความสามารถในการปรับขนาดของบล็อคเชน
- การใช้งาน ZKP ต้องใช้วิธีการเข้ารหัสอย่างง่าย
- การใช้ ZKPS สามารถทำให้ระบบมีความปลอดภัยมากขึ้นโดยไม่จำเป็นต้องจัดเก็บข้อมูลที่ไม่จำเป็นในระบบ
สรุป
ความเป็นส่วนตัวของข้อมูลเป็นปัญหาสำคัญทั้งในระบบรวมศูนย์และกระจายอำนาจ หลักฐานที่ไม่มีความรู้เป็นช่องทางให้ฝ่ายต่าง ๆ พิสูจน์หรือตรวจสอบธุรกรรมและตัวตนโดยไม่ต้องเปิดเผยธุรกรรมหรือตัวตนดังกล่าว
เนื่องจากเทคโนโลยีบล็อกเชนมีการใช้งานกันอย่างแพร่หลายมากขึ้น การนำ ZKP มาใช้เพื่อจัดการการตรวจสอบอย่างปลอดภัยจะเป็นกุญแจสำคัญในการกังวลเรื่องความสามารถในการปรับขนาด
เขียนความเห็น