กลับไปหน้าบทความ

อ่าน 8 นาที

การพิสูจน์ความรู้เป็นศูนย์แบบไม่โต้ตอบ

การพิสูจน์ความรู้เป็นศูนย์แบบไม่โต้ตอบ (Non-interactive zero-knowledge proofs)เป็นหลักการพื้นฐานของการเข้ารหัสลับซึ่งข้อมูลระหว่างผู้พิสูจน์และผู้ตรวจสอบสามารถตรวจสอบความถูกต้องได้...

การพิสูจน์ความรู้เป็นศูนย์แบบไม่โต้ตอบ

การพิสูจน์ความรู้เป็นศูนย์แบบไม่โต้ตอบ (Non-interactive zero-knowledge proofs)เป็นหลักการพื้นฐานของการเข้ารหัสลับซึ่งข้อมูลระหว่างผู้พิสูจน์และผู้ตรวจสอบสามารถตรวจสอบความถูกต้องได้โดยผู้พิสูจน์ โดยไม่ต้องเปิดเผยข้อมูลเฉพาะใด ๆ นอกเหนือจากความถูกต้องของข้อความนั้นเอง ทำให้การสื่อสารโดยตรงระหว่างผู้พิสูจน์และผู้ตรวจสอบไม่จำเป็น ซึ่งเป็นการขจัดตัวกลางออกไปอย่างมีประสิทธิภาพ

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

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

ประวัติศาสตร์

Blum , Feldman และMicali [ 2 ]แสดงให้เห็นในปี 1988 ว่าสตริงอ้างอิงทั่วไปที่ใช้ร่วมกันระหว่างผู้พิสูจน์และผู้ตรวจสอบนั้นเพียงพอที่จะบรรลุความรู้เป็นศูนย์เชิงคำนวณโดยไม่จำเป็นต้องมีการโต้ตอบGoldreichและ Oren [ 3 ]ได้ให้ผลลัพธ์ที่เป็นไปไม่ได้สำหรับโปรโตคอลความรู้เป็นศูนย์แบบครั้งเดียวในแบบจำลองมาตรฐานในปี 2003 Shafi GoldwasserและYael Tauman Kalaiได้ตีพิมพ์ตัวอย่างของแผนการระบุตัวตนซึ่งฟังก์ชันแฮช ใด ๆ จะให้ แผนการลายเซ็นดิจิทัลที่ไม่ปลอดภัย[ 4 ​​]

แบบจำลองมีอิทธิพลต่อคุณสมบัติที่สามารถได้รับจากโปรโตคอลความรู้เป็นศูนย์ Pass [ 5 ]แสดงให้เห็นว่าในแบบจำลองสตริงอ้างอิงทั่วไป โปรโตคอลความรู้เป็นศูนย์แบบไม่โต้ตอบไม่ได้รักษาคุณสมบัติทั้งหมดของโปรโตคอลความรู้เป็นศูนย์แบบโต้ตอบ เช่น ไม่ได้รักษาความสามารถในการปฏิเสธ การพิสูจน์ความรู้เป็นศูนย์แบบไม่โต้ตอบยังสามารถได้รับในแบบจำลองออราเคิลแบบสุ่มโดยใช้ ฮิวริสติ กFiat–Shamir [ 6 ]

แอปพลิเคชันบล็อกเชน

การเปรียบเทียบระบบพิสูจน์ที่ใช้กันอย่างแพร่หลายที่สุด

ในปี 2012 Alessandro Chiesaและคณะได้พัฒนาโปรโตคอล zk-SNARK ซึ่งเป็นคำย่อของzero-knowledge succinct non-interactive argument of knowledge [ 7 ] การประยุกต์ใช้ zk-SNARK อย่างแพร่หลายครั้งแรกเกิดขึ้นใน โปรโตคอล บล็อกเชนZerocash ซึ่งการเข้ารหัสแบบ zero-knowledge เป็นแกนหลักในการคำนวณ โดยอำนวยความสะดวกในการพิสูจน์ทางคณิตศาสตร์ว่าฝ่ายหนึ่งครอบครองข้อมูลบางอย่างโดยไม่ต้องเปิดเผยว่าข้อมูลนั้นคืออะไร[ 8 ] Zcash ใช้ zk-SNARK เพื่ออำนวยความสะดวกในการทำธุรกรรมสี่ประเภทที่แตกต่างกัน ได้แก่ ส่วนตัว การปกป้อง การเปิดเผย และสาธารณะ โปรโตคอลนี้อนุญาตให้ผู้ใช้กำหนดได้ว่าข้อมูลจำนวนเท่าใดที่จะแบ่งปันกับบัญชีแยกประเภทสาธารณะสำหรับแต่ละธุรกรรม[ 9 ] Ethereum zk-Rollups ยังใช้ zk-SNARK เพื่อเพิ่ม ความสามารถ ในการขยายขนาด[ 10 ]

ในปี 2017 Bulletproofs [ 11 ]ได้ถูกปล่อยออกมา ซึ่งช่วยให้สามารถพิสูจน์ได้ว่าค่าที่ยืนยันแล้วอยู่ในช่วงโดยใช้จำนวนฟิลด์และองค์ประกอบกลุ่มแบบลอการิทึม (ตามความยาวบิตของช่วง) [ 12 ]ต่อมา Bulletproofs ได้ถูกนำไปใช้ใน โปรโตคอล Mimblewimble (ซึ่งเป็นพื้นฐานของ Grin และ Beam และLitecoinผ่านบล็อกส่วนขยาย) และ สกุลเงิน ดิจิทัลMonero [ 13 ]

ในปี 2018 โปรโตคอล zk-STARK ( zero-knowledge Scalable Transparent Argument of Knowledge ) ได้รับการแนะนำโดยEli Ben-Sasson , Iddo Bentov, Yinon Horesh และ Michael Riabzev [ 14 ]ซึ่งนำเสนอความโปร่งใส (ไม่ต้องตั้งค่าความน่าเชื่อถือ) เวลาพิสูจน์แบบกึ่งเชิงเส้น และเวลาตรวจสอบแบบพหุลอการิทึม Zero-Knowledge Succinct Transparent Arguments of Knowledgeเป็นระบบการพิสูจน์ทางคริปโตกราฟีประเภทหนึ่งที่ช่วยให้ฝ่ายหนึ่ง (ผู้พิสูจน์) สามารถพิสูจน์ต่ออีกฝ่ายหนึ่ง (ผู้ตรวจสอบ) ว่าข้อความบางอย่างเป็นจริง โดยไม่ต้องเปิดเผยข้อมูลเพิ่มเติมใดๆ นอกเหนือจากความจริงของข้อความนั้นเอง zk-STARK มีความกระชับ หมายความว่าอนุญาตให้สร้างการพิสูจน์สั้นๆ ที่ตรวจสอบได้ง่าย และมีความโปร่งใส หมายความว่าทุกคนสามารถตรวจสอบการพิสูจน์ได้โดยไม่จำเป็นต้องใช้ข้อมูลลับใดๆ[ 14 ]

แตกต่างจาก zk-SNARK รุ่นแรก zk-STARK ไม่จำเป็นต้องมีการตั้งค่าที่เชื่อถือได้ตามค่าเริ่มต้น ซึ่งทำให้มีประโยชน์อย่างยิ่งสำหรับแอปพลิเคชันแบบกระจายศูนย์ เช่น บล็อกเชน นอกจากนี้ zk-STARK ยังสามารถใช้เพื่อตรวจสอบข้อความจำนวนมากพร้อมกัน ทำให้สามารถปรับขนาดและมีประสิทธิภาพ[ 1 ]

ในปี 2019 ได้มีการนำเสนอ HALO recursive zk-SNARKs ที่ไม่มีการตั้งค่าที่เชื่อถือได้[ 15 ] Pickles [ 16 ] zk-SNARKs ซึ่งอิงตามโครงสร้างก่อนหน้านี้ ได้ขับเคลื่อน Mina ซึ่งเป็นบล็อกเชนที่ตรวจสอบได้กระชับเป็นครั้งแรก[ 17 ]

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

ระบบพิสูจน์ความรู้เป็นศูนย์แบบไม่โต้ตอบ
ระบบ ZKP ปีที่ตีพิมพ์ โปรโตคอล โปร่งใส สากล มีความเป็นไปได้ว่าปลอดภัยหลังยุคควอนตัม
พิน็อกคิโอ[ 18 ]2013 zk-SNARK เลขที่ เลขที่ เลขที่
เกปเปตโต[ 19 ]2015 zk-SNARK เลขที่ เลขที่ เลขที่
TinyRAM [ 20 ]2013 zk-SNARK เลขที่ เลขที่ เลขที่
บุฟเฟ่ต์[ 21 ]2015 zk-SNARK เลขที่ เลขที่ เลขที่
vRAM [ 22 ]2018 zk-SNARG เลขที่ ใช่ เลขที่
vnTinyRAM [ 23 ]2014 zk-SNARK เลขที่ ใช่ เลขที่
มิราจ[ 24 ]2020 zk-SNARK เลขที่ ใช่ เลขที่
โซนิค[ 25 ]2019 zk-SNARK เลขที่ ใช่ เลขที่
มาร์ลิน[ 26 ]2020 zk-SNARK เลขที่ ใช่ เลขที่
PLONK [ 27 ]2019 zk-SNARK เลขที่ ใช่ เลขที่
ซูเปอร์โซนิค[ 28 ]2020 zk-SNARK ใช่ ใช่ เลขที่
กันกระสุน[ 29 ]2018 กันกระสุน ใช่ ใช่ เลขที่
ไฮแรกซ์[ 30 ]2018 zk-SNARK ใช่ ใช่ เลขที่
ฮาโล[ 15 ]2019 zk-SNARK ใช่ ใช่ เลขที่
ราศีกันย์[ 31 ]2020 zk-SNARK ใช่ ใช่ ใช่
ลิเกโร[ 32 ]2017 zk-SNARK ใช่ ใช่ ใช่
ออโรร่า[ 33 ]2019 zk-SNARK ใช่ ใช่ ใช่
zk-STARK [ 14 ] [ 34 ]2019 zk-STARK ใช่ ใช่ ใช่
Zilch [ 35 ] [ 36 ]2021 zk-STARK ใช่ ใช่ ใช่

คำนิยาม

เดิมที[ 2 ]การพิสูจน์ความรู้เป็นศูนย์แบบไม่โต้ตอบถูกกำหนดไว้เฉพาะระบบพิสูจน์ทฤษฎีบทเดียวเท่านั้น ในระบบดังกล่าว การพิสูจน์แต่ละครั้งต้องใช้สตริงอ้างอิงร่วมใหม่ของตัวเอง สตริงอ้างอิงร่วมโดยทั่วไปไม่ใช่สตริงแบบสุ่ม ตัวอย่างเช่น อาจประกอบด้วยองค์ประกอบกลุ่มที่เลือกแบบสุ่มซึ่งทุกฝ่ายในโปรโตคอลใช้ แม้ว่าองค์ประกอบกลุ่มจะเป็นแบบสุ่ม แต่สตริงอ้างอิงไม่ใช่ เนื่องจากมีโครงสร้างบางอย่าง (เช่น องค์ประกอบกลุ่ม) ที่สามารถแยกแยะได้จากความสุ่ม ต่อมา Feige, Lapidot และShamir [ 37 ]ได้แนะนำการพิสูจน์ความรู้เป็นศูนย์แบบหลายทฤษฎีบทเป็นแนวคิดที่หลากหลายกว่าสำหรับการพิสูจน์ความรู้เป็นศูนย์แบบไม่โต้ตอบ

การพิสูจน์แบบไม่โต้ตอบโดยอาศัยการจับคู่

การเข้ารหัสแบบจับคู่ได้นำไปสู่ความก้าวหน้าทางด้านการเข้ารหัสหลายประการ หนึ่งในความก้าวหน้าเหล่านี้คือการพิสูจน์ความรู้เป็นศูนย์แบบไม่โต้ตอบที่มีประสิทธิภาพและทรงพลังยิ่งขึ้น แนวคิดหลักคือการซ่อนค่าสำหรับการประเมินการจับคู่ไว้ในคำมั่นสัญญาการใช้แผนการคำมั่นสัญญาที่แตกต่างกัน แนวคิดนี้ถูกนำมาใช้เพื่อสร้างระบบการพิสูจน์ความรู้เป็นศูนย์ภายใต้การซ่อนกลุ่มย่อย[ 38 ]และภายใต้สมมติฐานเชิงเส้นการตัดสินใจ[ 39 ] ระบบการพิสูจน์เหล่านี้พิสูจน์ความสามารถในการทำให้วงจรเป็นจริงได้และด้วยทฤษฎีบท Cook–Levin จึง อนุญาตให้พิสูจน์การเป็นสมาชิกสำหรับทุกภาษาใน NP ขนาดของสตริงอ้างอิงทั่วไปและการพิสูจน์นั้นค่อนข้างเล็ก อย่างไรก็ตาม การแปลงข้อความให้เป็นวงจรบูลีนนั้นก่อให้เกิดค่าใช้จ่ายเพิ่มเติมจำนวนมาก

มีการเสนอระบบพิสูจน์ภายใต้การซ่อนกลุ่มย่อย สมมติฐานเชิงเส้นการตัดสินใจ และสมมติฐาน Diffie–Hellman ภายนอกที่อนุญาตให้พิสูจน์สมการผลคูณการจับคู่ที่พบได้ทั่วไปในการเข้ารหัสแบบจับคู่ โดยตรง [ 40 ]

ภายใต้ สมมติฐานความรู้ที่แข็งแกร่งเป็นที่ทราบกันดีว่าวิธีการสร้างระบบพิสูจน์ที่สมเหตุสมผลในการคำนวณที่มีความยาวต่ำกว่าเชิงเส้นสำหรับ ภาษา NP-complete นั้นทำได้อย่างไร กล่าวคือ การพิสูจน์ในระบบพิสูจน์ดังกล่าวประกอบด้วย องค์ประกอบกลุ่มเชิงเส้นจำนวนเล็กน้อยเท่านั้น[ 41 ] [ 42 ]

ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Non-interactive_zero-knowledge_proof&oldid=1343664189 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ การพิสูจน์ความรู้เป็นศูนย์แบบไม่โต้ตอบ

การพิสูจน์ความรู้เป็นศูนย์แบบไม่โต้ตอบ (Non-interactive zero-knowledge proofs)เป็นหลักการพื้นฐานของการเข้ารหัสลับซึ่งข้อมูลระหว่างผู้พิสูจน์และผู้ตรวจสอบสามารถตรวจสอบความถูกต้องได้...

ประวัติศาสตร์

Blum , Feldman และ Micali [ 2 ] แสดงให้เห็นในปี 1988 ว่าสตริงอ้างอิงทั่วไปที่ใช้ร่วมกันระหว่างผู้พิสูจน์และผู้ตรวจสอบนั้นเพียงพอที่จะบรรลุความรู้เป็นศูนย์เชิงคำนวณโดยไม่จำเป็นต้องมีการโต้ตอบ Goldreich และ Oren [ 3 ]...

แอปพลิเคชันบล็อกเชน

ในปี 2012 Alessandro Chiesa และคณะได้พัฒนาโปรโตคอล zk-SNARK ซึ่งเป็นคำย่อของ zero-knowledge succinct non-interactive argument of knowledge [ 7 ] การ ประยุกต์ใช้ zk-SNARK อย่างแพร่หลายครั้งแรกเกิดขึ้นใน โปรโตคอล บล็อกเชน Zerocash ซึ่งการเข้ารหัสแบบ...

คำนิยาม

เดิมที [ 2 ] การพิสูจน์ความรู้เป็นศูนย์แบบไม่โต้ตอบถูกกำหนดไว้เฉพาะระบบพิสูจน์ทฤษฎีบทเดียวเท่านั้น ในระบบดังกล่าว การพิสูจน์แต่ละครั้งต้องใช้สตริงอ้างอิงร่วมใหม่ของตัวเอง สตริงอ้างอิงร่วมโดยทั่วไปไม่ใช่สตริงแบบสุ่ม ตัวอย่างเช่น...