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

อ่าน 18 นาที

การพิสูจน์ความรู้เป็นศูนย์

ในการเข้ารหัสลับ การ พิสูจน์ความรู้เป็นศูนย์ (หรือที่รู้จักกันในชื่อการพิสูจน์ ZKหรือZKP ) เป็นโปรโตคอลที่ฝ่ายหนึ่ง (ผู้พิสูจน์) สามารถโน้มน้าวอีกฝ่ายหนึ่ง (ผู้ตรวจสอบ)...

การพิสูจน์ความรู้เป็นศูนย์

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

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

การพิสูจน์ความรู้เป็นศูนย์สามารถเป็นแบบโต้ตอบได้ หมายความว่าผู้พิสูจน์และผู้ตรวจสอบแลกเปลี่ยนข้อความตามโปรโตคอลบางอย่าง หรือแบบไม่โต้ตอบ หมายความว่าผู้ตรวจสอบเชื่อมั่นได้จากข้อความของผู้พิสูจน์เพียงข้อความเดียวและไม่จำเป็นต้องมีการสื่อสารอื่นใด ในแบบจำลองมาตรฐานจำเป็นต้องมีการโต้ตอบ ยกเว้นการพิสูจน์แบบง่ายๆ ของปัญหาBPP [ 3 ]ในแบบจำลองสตริงสุ่มทั่วไปและแบบจำลองออราเคิลสุ่ม มี การพิสูจน์ความรู้เป็นศูนย์แบบไม่โต้ตอบอยู่ฮิวริสติก Fiat–Shamirสามารถใช้เพื่อแปลงการพิสูจน์ความรู้เป็นศูนย์แบบโต้ตอบบางอย่างให้เป็นแบบไม่โต้ตอบได้[ 4 ] [ 5 ] [ 6 ]

ตัวอย่างเชิงนามธรรม

หลักฐานใบแดง

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

เพื่อพิสูจน์ว่าไพ่ที่เพ็กกี้ซ่อนไว้เป็นสีแดงโดยไม่เปิดเผยตัวตน เพ็กกี้จึงหยิบไพ่ที่เหลืออีก 51 ใบจากสำรับ และค่อยๆ แสดงไพ่สีดำทั้ง 26 ใบ (โพดำ 13 ใบ และดอกจิก 13 ใบ) ให้วิคเตอร์ดูทีละใบ โดยวางหงายหน้าไพ่ลงบนโต๊ะ เนื่องจากสำรับไพ่มาตรฐานมีไพ่สีแดง 26 ใบ และไพ่สีดำ 26 ใบ และเพ็กกี้ได้แสดงให้เห็นแล้วว่าไพ่สีดำทั้งหมดยังคงอยู่ในสำรับ วิคเตอร์จึงสรุปได้อย่างแน่นอนว่าไพ่ที่เพ็กกี้ซ่อนไว้ต้องเป็นสีแดง

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

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

วอลโดอยู่ที่ไหน

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

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

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

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

ถ้ำอาลีบาบา

เพ็กกี้สามารถเลือกเส้นทาง A หรือ B ก็ได้ ในขณะที่วิคเตอร์รออยู่ข้างนอก
วิคเตอร์เลือกทางออกแบบสุ่ม
เพ็กกี้จะปรากฏตัวที่ทางออกที่วิคเตอร์ตั้งชื่อไว้เสมอ

มีเรื่องราวที่เป็นที่รู้จักกันดีซึ่งนำเสนอแนวคิดพื้นฐานของการพิสูจน์ความรู้เป็นศูนย์ ซึ่งตีพิมพ์ครั้งแรกในปี 1990 โดยJean-Jacques Quisquaterและคนอื่นๆ ในบทความของพวกเขาเรื่อง "วิธีอธิบายโปรโตคอลความรู้เป็นศูนย์ให้ลูกๆ ของคุณฟัง" [ 9 ]ฝ่ายสองฝ่ายในเรื่องราวการพิสูจน์ความรู้เป็นศูนย์คือPeggyในฐานะผู้พิสูจน์ข้อความ และVictorในฐานะผู้ตรวจสอบข้อความ

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

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

อย่างไรก็ตาม สมมติว่าเธอไม่รู้จักคำนั้น เธอก็จะสามารถกลับไปทางเส้นทางที่ระบุได้ก็ต่อเมื่อวิคเตอร์บอกชื่อเส้นทางเดียวกับที่เธอเข้ามาเท่านั้น เนื่องจากวิคเตอร์จะเลือก A หรือ B แบบสุ่ม เธอจึงมีโอกาส 50% ที่จะเดาถูก หากพวกเขาทำซ้ำกลอุบายนี้หลายครั้ง เช่น 20 ครั้งติดต่อกัน โอกาสที่เธอจะเดาคำขอของวิคเตอร์ได้ถูกต้องทั้งหมดจะลดลงเหลือ 1 ใน 2²⁰หรือ9.54 × 10⁻⁷

ดังนั้น หากเพ็กกี้ปรากฏตัวที่ทางออกที่วิคเตอร์ระบุซ้ำๆ วิคเตอร์ก็จะสรุปได้ว่ามีความเป็นไปได้สูงมากที่เพ็กกี้จะรู้คำลับนั้นจริงๆ

การสังเกตจากภายนอก

ในส่วนของผู้สังเกตการณ์ภายนอก: แม้ว่าวิคเตอร์จะสวมกล้องที่ซ่อนไว้ซึ่งบันทึกเหตุการณ์ทั้งหมด สิ่งเดียวที่กล้องจะบันทึกได้คือ ในกรณีหนึ่งวิคเตอร์ตะโกนว่า "A!" และเพ็กกี้ปรากฏตัวที่ A หรือในอีกกรณีหนึ่งวิคเตอร์ตะโกนว่า "B!" และเพ็กกี้ปรากฏตัวที่ B การบันทึกประเภทนี้เป็นเรื่องง่ายมากที่คนสองคนจะปลอมแปลงได้ (โดยที่เพ็กกี้และวิคเตอร์ต้องตกลงกันล่วงหน้าเกี่ยวกับลำดับของ A และ B ที่วิคเตอร์จะตะโกน) การบันทึกเช่นนี้จะไม่น่าเชื่อถือสำหรับใครเลยนอกจากผู้เข้าร่วมดั้งเดิม อันที่จริง แม้แต่คนที่อยู่ในเหตุการณ์ในฐานะผู้สังเกตการณ์ก็ไม่ควรจะเชื่อ เพราะวิคเตอร์และเพ็กกี้อาจวางแผน "การทดลอง" ทั้งหมดตั้งแต่ต้นจนจบ

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

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

ลูกบอลสองลูกและเพื่อนตาบอดสี

ลองนึกภาพว่าวิคเตอร์ตาบอดสี แดง-เขียว (ส่วนเพ็กกี้ไม่เป็น) และเพ็กกี้มีลูกบอลสองลูก ลูกหนึ่งสีแดง อีกลูกสีเขียว แต่เหมือนกันทุกประการ สำหรับวิคเตอร์แล้ว ลูกบอลทั้งสองดูเหมือนกันทุกประการ วิคเตอร์สงสัยว่าลูกบอลทั้งสองจะแยกแยะได้จริงหรือไม่ เพ็กกี้ต้องการพิสูจน์ให้วิคเตอร์เห็นว่าลูกบอลทั้งสองมีสีต่างกันแต่ไม่ต้องการเปิดเผยอะไรมากไปกว่านั้น โดยเฉพาะอย่างยิ่ง เพ็กกี้ไม่ต้องการบอกว่าลูกไหนเป็นสีแดงและลูกไหนเป็นสีเขียว

นี่คือระบบการพิสูจน์: เพ็กกี้ให้ลูกบอลสองลูกแก่วิคเตอร์ และเขาเอาไปซ่อนไว้ข้างหลัง จากนั้น เขาหยิบลูกบอลลูกหนึ่งออกมาจากข้างหลังและแสดงให้เขาดู แล้วเขาก็เอาไปซ่อนไว้ข้างหลังอีกครั้ง จากนั้นเลือกที่จะเปิดเผยลูกบอลเพียงลูกเดียวจากสองลูก โดยเลือกแบบสุ่มด้วยความน่าจะเป็นเท่ากัน เขาจะถามเพ็กกี้ว่า "ฉันสลับลูกบอลหรือเปล่า?" จากนั้นก็ทำซ้ำขั้นตอนทั้งหมดนี้บ่อยเท่าที่จำเป็น

จากการดูสีของลูกบอล เพ็กกี้สามารถบอกได้อย่างแน่นอนว่าเขาได้สลับลูกบอลหรือไม่ ในทางกลับกัน หากลูกบอลมีสีเดียวกันและแยกแยะไม่ได้ ความสามารถของเพ็กกี้ในการระบุว่ามีการสลับลูกบอลหรือไม่นั้นก็จะไม่ดีไปกว่าการเดาสุ่ม เนื่องจากความน่าจะเป็นที่เพ็กกี้จะระบุการสลับ/ไม่สลับลูกบอลได้สำเร็จโดยการเดาสุ่มคือ 50% ดังนั้นความน่าจะเป็นที่จะระบุการสลับ/ไม่สลับลูกบอลได้สำเร็จโดยการเดาสุ่มทั้งหมดจึงเข้าใกล้ศูนย์

จากการทดลองหลายครั้ง อัตราความสำเร็จจะเข้าใกล้ 50% โดยเฉลี่ยและเพ็กกี้จะไม่สามารถทำได้ดีกว่าโอกาสโดยบังเอิญอย่างมีนัยสำคัญ หากเพ็กกี้และวิคเตอร์ทำ "การพิสูจน์" นี้ซ้ำหลายครั้ง (เช่น 20 ครั้ง) วิคเตอร์ก็จะเชื่อมั่นว่าลูกบอลมีสีต่างกันจริง ๆ

หลักฐานข้างต้นเป็นความรู้เป็นศูนย์เพราะวิกเตอร์ไม่เคยเรียนรู้ว่าลูกบอลลูกไหนสีเขียวและลูกไหนสีแดง อันที่จริง เขาไม่ได้ความรู้ใดๆ เกี่ยวกับวิธีการแยกแยะลูกบอลเลย[ 10 ]

คำนิยาม

การพิสูจน์ข้อความใดๆ โดยปราศจากความรู้ใดๆ ต้องมีคุณสมบัติสามประการดังนี้:

  1. ความสมบูรณ์ : หากข้อความนั้นเป็นจริง ผู้ตรวจสอบที่ซื่อสัตย์ (กล่าวคือ ผู้ที่ปฏิบัติตามขั้นตอนอย่างถูกต้อง) จะมั่นใจในข้อเท็จจริงนี้ได้จากผู้พิสูจน์ที่ซื่อสัตย์
  2. ความถูกต้อง : หากข้อความนั้นเป็นเท็จ ผู้พิสูจน์ที่โกงจะไม่สามารถโน้มน้าวผู้พิสูจน์ที่ซื่อสัตย์ให้เชื่อว่าข้อความนั้นเป็นจริงได้ เว้นแต่จะมีโอกาสน้อยมาก
  3. ความรู้เป็นศูนย์ : หากข้อความนั้นเป็นจริง ผู้ตรวจสอบจะไม่รู้ข้อมูลใด ๆ นอกเหนือจากข้อเท็จจริงที่ว่าข้อความนั้นเป็นจริง กล่าวอีกนัยหนึ่ง การรู้เพียงข้อความ (ไม่ใช่ความลับ) ก็เพียงพอที่จะจินตนาการถึงสถานการณ์ที่แสดงให้เห็นว่าผู้พิสูจน์รู้ความลับ สิ่งนี้ได้รับการทำให้เป็นทางการโดยการแสดงให้เห็นว่าผู้ตรวจสอบทุกคนมีโปรแกรมจำลอง บางอย่าง ที่สามารถสร้างบันทึกที่ "ดูเหมือน" การโต้ตอบระหว่างผู้พิสูจน์ที่ซื่อสัตย์กับผู้ตรวจสอบที่เกี่ยวข้องได้ โดยให้เพียงข้อความที่จะพิสูจน์ (และไม่สามารถเข้าถึงผู้พิสูจน์ได้)

สองข้อแรกนี้เป็นคุณสมบัติของ ระบบการพิสูจน์แบบโต้ตอบทั่วไปข้อที่สามคือสิ่งที่ทำให้การพิสูจน์เป็นศูนย์ความรู้[ 11 ]

การพิสูจน์แบบไร้ความรู้ (Zero-knowledge proofs) ไม่ใช่การพิสูจน์ในความหมายทางคณิตศาสตร์ เพราะมีความน่าจะเป็นเล็กน้อยที่เรียกว่าข้อผิดพลาดด้านความถูกต้อง (soundness error ) ที่ผู้พิสูจน์ที่ทุจริตจะสามารถโน้มน้าวผู้ตรวจสอบให้เชื่อในข้อความที่เป็นเท็จได้ กล่าวอีกนัยหนึ่ง การพิสูจน์แบบไร้ความรู้เป็นการ "พิสูจน์" เชิงความน่าจะเป็นมากกว่าการพิสูจน์เชิงกำหนด อย่างไรก็ตาม มีเทคนิคที่จะลดข้อผิดพลาดด้านความถูกต้องให้เหลือค่าเล็กน้อยจนแทบไม่มีนัยสำคัญ (ตัวอย่างเช่น การเดาถูกต้องในการตัดสินใจแบบไบนารี 100 หรือ 1,000 ครั้ง จะมีข้อผิดพลาดด้านความถูกต้อง 1/2 100หรือ 1/2 1000ตามลำดับ เมื่อจำนวนบิตเพิ่มขึ้น ข้อผิดพลาดด้านความถูกต้องจะลดลงเข้าใกล้ศูนย์)

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

โดยที่View [ P ( x )↔ ( x , z )]คือบันทึกการโต้ตอบระหว่างP ( x )และV ( x , z )ผู้พิสูจน์Pถูกจำลองว่ามีพลังการคำนวณไม่จำกัด (ในทางปฏิบัติPมักจะเป็นเครื่องจักรทัวริงเชิงความน่าจะเป็น ) โดยสัญชาตญาณ นิยามระบุว่าระบบพิสูจน์แบบโต้ตอบ( P , V )เป็นระบบความรู้เป็นศูนย์ หากสำหรับผู้ตรวจสอบใดๆมีตัวจำลองที่มีประสิทธิภาพS (ขึ้นอยู่กับ) ที่สามารถสร้างการสนทนาระหว่างPและ ขึ้นมาใหม่ได้ บนอินพุตใดๆ ที่กำหนด สตริงเสริมzในนิยามทำหน้าที่เป็น "ความรู้ก่อนหน้า" (รวมถึงเหรียญสุ่มของ) นิยามนี้บ่งชี้ว่าไม่สามารถใช้สตริงความรู้ก่อนหน้าz ใดๆ เพื่อดึงข้อมูลจากการสนทนากับPได้ เพราะหากSได้รับความรู้ก่อนหน้านี้ด้วยแล้ว ก็จะสามารถสร้างการสนทนาระหว่างและP ขึ้นมาใหม่ ได้เหมือนเดิม

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

ตัวอย่างเชิงปฏิบัติ

ลอการิทึมแบบไม่ต่อเนื่องของค่าที่กำหนด

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

ตัวอย่างเช่น กำหนดค่าy จำนวนเฉพาะขนาด ใหญ่pและตัวสร้างเธอต้องการพิสูจน์ว่าเธอรู้ค่าxที่ทำให้g xy (mod p )โดยไม่เปิดเผย ค่า xอันที่จริง ความรู้เกี่ยวกับxสามารถใช้เป็นหลักฐานยืนยันตัวตนได้ กล่าวคือ เพ็กกี้สามารถมีความรู้ดังกล่าวได้เพราะเธอเลือกค่าx แบบสุ่ม โดยไม่เปิดเผยให้ใครรู้ คำนวณy = g x mod pและแจกจ่ายค่าyให้กับผู้ตรวจสอบที่เป็นไปได้ทั้งหมด ดังนั้นในภายหลัง การพิสูจน์ความรู้เกี่ยวกับxจึงเทียบเท่ากับการพิสูจน์ตัวตนของเพ็กกี้

ขั้นตอนการดำเนินการเป็นดังนี้: ในแต่ละรอบ เพ็กกี้จะสร้างเลขสุ่มrคำนวณC = g r mod pและเปิดเผยค่านี้ให้วิคเตอร์ทราบ หลังจากได้รับCแล้ว วิคเตอร์จะสุ่มส่งคำขออย่างใดอย่างหนึ่งต่อไปนี้: เขาอาจขอให้เพ็กกี้เปิดเผยค่าของrหรือค่าของ( x + r ) mod ( p − 1 )

วิคเตอร์สามารถตรวจสอบคำตอบใดก็ได้ หากเขาร้องขอrเขาก็สามารถคำนวณg r mod pและตรวจสอบว่าตรงกับCได้ หากเขาร้องขอ( x + r ) mod ( p − 1)เขาสามารถตรวจสอบได้ว่าCสอดคล้องกับสิ่งนี้ โดยการคำนวณg ( x + r ) mod ( p − 1) mod pและตรวจสอบว่าตรงกับ( C · y ) mod pหากเพ็กกี้รู้ค่าของx จริงๆ เธอก็สามารถตอบสนองต่อข้อท้าทายใดๆ ของวิคเตอร์ได้

ถ้าเพ็กกี้รู้หรือเดาได้ว่าวิคเตอร์จะตั้งคำถามอะไร เธอก็สามารถโกงและโน้มน้าววิคเตอร์ได้ง่ายๆ ว่าเธอรู้ค่าxทั้งๆ ที่เธอไม่รู้: ถ้าเธอรู้ว่าวิคเตอร์จะขอค่าrเธอก็จะดำเนินการตามปกติ: เธอเลือกค่า rคำนวณC = g r mod pและเปิดเผยค่าCให้วิคเตอร์ทราบ เธอจะสามารถตอบคำถามของวิคเตอร์ได้ ในทางกลับกัน ถ้าเธอรู้ว่าวิคเตอร์จะขอค่า( x + r ) mod ( p − 1)เธอก็จะเลือกค่าสุ่มrคำนวณC ′ ≡ g r · ( g x ) −1 mod pและเปิดเผยค่า Cให้วิคเตอร์ทราบในฐานะค่าCที่วิคเตอร์คาดหวัง เมื่อวิคเตอร์ท้าให้เธอเปิดเผย( x + r ) mod ( p − 1)เธอก็เปิดเผยrซึ่งวิคเตอร์จะตรวจสอบความสอดคล้อง เนื่องจากเขาจะคำนวณg r mod pซึ่งตรงกับC ′ · yเนื่องจากเพ็กกี้คูณด้วยตัวผกผันการคูณแบบโมดูลาร์ ของy

อย่างไรก็ตาม หากในสถานการณ์ใดสถานการณ์หนึ่งข้างต้น วิคเตอร์ตั้งคำถามท้าทายอื่นนอกเหนือจากที่เธอคาดหวังและที่เธอสร้างผลลัพธ์ขึ้นมา เธอก็จะไม่สามารถตอบสนองต่อคำถามท้าทายนั้นได้ภายใต้สมมติฐานที่ว่าไม่สามารถแก้ลอการิทึมแบบไม่ต่อเนื่องสำหรับกลุ่มนี้ได้ หากเธอเลือกrและเปิดเผยC = g r mod pเธอก็จะไม่สามารถสร้าง( x + r ) mod ( p − 1) ที่ถูกต้อง ซึ่งจะผ่านการตรวจสอบของวิคเตอร์ได้ เนื่องจากเธอไม่ทราบค่า xและหากเธอเลือกค่าrที่เป็น( x + r ) mod ( p − 1)เธอก็จะต้องตอบด้วยลอการิทึมแบบไม่ต่อเนื่องของค่าที่เธอเปิดเผย – แต่เพ็กกี้ไม่ทราบลอการิทึมแบบไม่ต่อเนื่องนี้ เนื่องจากค่าCที่เธอเปิดเผยนั้นได้มาจากการคำนวณทางคณิตศาสตร์ด้วยค่าที่ทราบแล้ว ไม่ใช่จากการคำนวณกำลังด้วยเลขชี้กำลังที่ทราบ

ดังนั้น ผู้พิสูจน์ที่โกงจะมีโอกาส 0.5 ที่จะโกงสำเร็จในรอบเดียว โดยการดำเนินการทดสอบเป็นจำนวนรอบที่มากพอ โอกาสที่ผู้พิสูจน์ที่โกงจะประสบความสำเร็จก็สามารถลดลงได้มากเท่าที่ต้องการ

เพื่อแสดงให้เห็นว่าการพิสูจน์แบบโต้ตอบข้างต้นไม่ได้ให้ความรู้ใดๆ นอกเหนือจากข้อเท็จจริงที่ว่าเพ็กกี้รู้ค่าxเราสามารถใช้เหตุผลที่คล้ายคลึงกับที่ใช้ในการพิสูจน์ความสมบูรณ์และความถูกต้องข้างต้นได้ โดยเฉพาะอย่างยิ่ง ตัวจำลอง เช่น ไซมอน ซึ่งไม่รู้ค่า xสามารถจำลองการสนทนาระหว่างเพ็กกี้และวิคเตอร์ได้โดยใช้ขั้นตอนต่อไปนี้ ขั้นแรก ไซมอน จะโยน เหรียญที่ยุติธรรม แบบสุ่ม ถ้าผลลัพธ์เป็น "หัว" เขาจะเลือกค่าสุ่มrคำนวณC = g r mod pและเปิดเผยCราวกับว่าเป็นข้อความจากเพ็กกี้ถึงวิคเตอร์ จากนั้นไซมอนจะส่งข้อความ "ขอค่าr " ราวกับว่าส่งจากวิคเตอร์ถึงเพ็กกี้ และแสดงค่าr ทันที ราวกับว่าส่งจากเพ็กกี้ถึงวิคเตอร์ การดำเนินการหนึ่งรอบเสร็จสมบูรณ์ ในทางกลับกัน หาก ผล การโยนเหรียญเป็น "ก้อย" ไซมอนจะสุ่มเลือกหมายเลขrคำนวณC ′ = g r · y −1 mod pและเปิดเผยCราวกับว่าเป็นข้อความจากเพ็กกี้ถึงวิคเตอร์ จากนั้นไซมอนจะส่งออก "ขอค่าของ( x + r ) mod ( p − 1) " ราวกับว่าเป็นข้อความจากวิคเตอร์ถึงเพ็กกี้ สุดท้าย ไซมอนจะส่งออกค่าของrราวกับว่าเป็นคำตอบจากเพ็กกี้กลับไปยังวิคเตอร์ การทำงานหนึ่งรอบเสร็จสมบูรณ์ จากข้อโต้แย้งก่อนหน้านี้ในการพิสูจน์ความสมบูรณ์และความถูกต้อง การสื่อสารแบบโต้ตอบที่จำลองโดยไซมอนนั้นแยกไม่ออกจากการติดต่อสื่อสารที่แท้จริงระหว่างเพ็กกี้และวิคเตอร์ ดังนั้น คุณสมบัติความรู้เป็นศูนย์จึงได้รับการรับประกัน

วงจรแฮมิลโทเนียนสำหรับกราฟขนาดใหญ่

แผนการต่อไปนี้เป็นผลงานของManuel Blum [ 14 ]

ในสถานการณ์นี้ เพ็กกี้รู้จักวัฏจักรแฮมิลโทเนียนสำหรับกราฟ ขนาดใหญ่ Gวิคเตอร์รู้จักGแต่ไม่รู้จักวัฏจักร (เช่น เพ็กกี้สร้างG ขึ้นมา และเปิดเผยให้เขาแล้ว) การค้นหาวัฏจักรแฮมิลโทเนียนจากกราฟขนาดใหญ่นั้นเชื่อกันว่าเป็นไปไม่ได้ในทางคำนวณ เนื่องจากเวอร์ชันการตัดสินใจที่เกี่ยวข้องนั้นเป็นที่ทราบกันดีว่าเป็นปัญหาNP-completeเพ็กกี้จะพิสูจน์ว่าเธอรู้จักวัฏจักรโดยไม่ต้องเปิดเผยโดยตรง (บางทีวิคเตอร์อาจสนใจที่จะซื้อแต่ต้องการการตรวจสอบก่อน หรือบางทีเพ็กกี้อาจเป็นคนเดียวที่รู้ข้อมูลนี้และกำลังพิสูจน์ตัวตนของเธอให้วิคเตอร์เห็น)

เพื่อแสดงให้เห็นว่าเพ็กกี้เข้าใจวัฏจักรแฮมิลตันนี้ เธอและวิคเตอร์จึงเล่นเกมนี้ด้วยกันหลายรอบ:

  • ในตอนเริ่มต้นแต่ละรอบ เพ็กกี้จะสร้างกราฟH ซึ่งมี ลักษณะสมมาตรกับG (กล่าวคือHเหมือนกับGทุกอย่าง ยกเว้นว่าจุดยอดทั้งหมดมีชื่อต่างกัน) เนื่องจากเป็นเรื่องง่ายที่จะแปลงวัฏจักรแฮมิลโทเนียนระหว่างกราฟที่มีลักษณะสมมาตรกันโดยที่ทราบความสมมาตรแล้ว ดังนั้นหากเพ็กกี้รู้จักวัฏจักรแฮมิลโทเนียนสำหรับGแล้ว เธอก็ต้องรู้จักวัฏจักรแฮมิลโทเนียนสำหรับ H ด้วยเช่นกัน
  • เพ็กกี้ให้คำมั่นสัญญากับHเธออาจทำได้โดยใช้แผนการยืนยันสัญญา แบบเข้ารหัสลับ หรืออีกทางเลือกหนึ่ง เธออาจกำหนดหมายเลขให้กับจุดยอดของHจากนั้น สำหรับแต่ละขอบของHเธอจะเขียนจุดยอดสองจุดที่ขอบนั้นเชื่อมต่อลงบนกระดาษชิ้นเล็กๆ แล้วเธอก็นำกระดาษทั้งหมดคว่ำหน้าลงบนโต๊ะ จุดประสงค์ของการให้คำมั่นสัญญานี้คือ เพ็กกี้จะไม่สามารถเปลี่ยนแปลงH ได้ ในขณะเดียวกัน วิคเตอร์ก็ไม่มีข้อมูลใดๆ เกี่ยวกับHเลย
  • จากนั้นวิคเตอร์จะสุ่มเลือกคำถามหนึ่งในสองข้อเพื่อถามเพ็กกี้ เขาอาจขอให้เธอแสดงไอโซมอร์ฟิซึมระหว่างHและG (ดูปัญหาไอโซมอร์ฟิซึมของกราฟ ) หรือเขาอาจขอให้เธอแสดงวัฏจักรแฮมิลโทเนียนในH
  • ถ้าเพ็กกี้ถูกขอให้แสดงว่ากราฟทั้งสองเป็นไอโซมอร์ฟิกกัน เธอจะต้องเปิดเผยกราฟH ทั้งหมดก่อน (เช่น โดยการพลิกกระดาษทุกชิ้นที่วางไว้บนโต๊ะ) แล้วจึงแสดงการเลื่อนจุดยอดที่แมปGไปยังHวิคเตอร์สามารถตรวจสอบได้ว่ากราฟทั้งสองเป็นไอโซมอร์ฟิกกันจริง ๆ
  • ถ้าเพ็กกี้ถูกขอให้พิสูจน์ว่าเธอรู้จักวงจรแฮมิลโทเนียนในHเธอจะแปลวงจรแฮมิลโทเนียนของเธอในGไปยังHและเปิดเผยเฉพาะขอบของวงจรแฮมิลโทเนียนเท่านั้น กล่าวคือ เพ็กกี้จะพลิกกระดาษเพียง| V ( G ) |ชิ้นที่ตรงกับขอบของวงจรแฮมิลโทเนียนเท่านั้น ในขณะที่ส่วนที่เหลือยังคงคว่ำหน้าอยู่ แค่นี้ก็เพียงพอแล้วสำหรับวิคเตอร์ที่จะตรวจสอบว่าHมีวงจรแฮมิลโทเนียนอยู่จริง

สิ่งสำคัญคือข้อผูกมัดที่มีต่อกราฟจะต้องเป็นไปในลักษณะที่วิคเตอร์สามารถตรวจสอบได้ในกรณีที่สองว่าวงจรนั้นประกอบด้วยขอบจากH จริงๆ ซึ่งสามารถทำได้โดยข้อผูกมัดกับแต่ละขอบ (หรือการไม่มีขอบ) แยกกัน เป็นต้น

ความสมบูรณ์

ถ้าเพ็กกี้รู้จักวัฏจักรแฮมิลโทเนียนในกราฟ Gแล้ว เธอก็สามารถตอบสนองความต้องการของวิคเตอร์ได้อย่างง่ายดาย ไม่ว่าจะเป็นการหาไอโซมอร์ฟิซึมของกราฟที่สร้างกราฟHจากกราฟ G (ซึ่งเธอได้ให้คำมั่นไว้ในขั้นตอนแรก) หรือการหาวัฏจักรแฮมิลโทเนียนใน กราฟ H (ซึ่งเธอสามารถสร้างได้โดยการใช้ไอโซมอร์ฟิซึมกับวัฏจักรในกราฟG )

ความรู้เป็นศูนย์

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

ความมั่นคง

ถ้าเพ็กกี้ไม่รู้ข้อมูล เธอก็สามารถเดาได้ว่าวิคเตอร์จะถามคำถามอะไร และสร้างกราฟที่เหมือนกับGหรือวัฏจักรแฮมิลโทเนียนสำหรับกราฟที่ไม่เกี่ยวข้อง แต่เนื่องจากเธอไม่รู้วัฏจักรแฮมิลโทเนียนสำหรับGเธอจึงไม่สามารถทำทั้งสองอย่างได้ ด้วยการเดาแบบนี้ โอกาสที่เธอจะหลอกวิคเตอร์ได้คือ2 nโดยที่nคือจำนวนรอบ ในทางปฏิบัติแล้ว การเอาชนะการพิสูจน์แบบไร้ความรู้ด้วยจำนวนรอบที่เหมาะสมในลักษณะนี้เป็นเรื่องยากอย่างเหลือเชื่อ

รูปแบบต่างๆ ของความรู้เป็นศูนย์

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

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

ประเภทความรู้เป็นศูนย์

การพิสูจน์โดยไม่ต้องอาศัยความรู้ใดๆ มีหลายประเภท:

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

แอปพลิเคชัน

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

ระบบการตรวจสอบสิทธิ์

การวิจัยเกี่ยวกับการพิสูจน์ความรู้แบบไร้ความรู้ (zero-knowledge proofs) ได้รับแรงบันดาลใจจาก ระบบ การตรวจสอบตัวตนที่ฝ่ายหนึ่งต้องการพิสูจน์ตัวตนต่ออีกฝ่ายหนึ่งโดยใช้ข้อมูลลับบางอย่าง (เช่น รหัสผ่าน) แต่ไม่ต้องการให้อีกฝ่ายหนึ่งรู้ข้อมูลลับนั้นเลย นี่เรียกว่า "การพิสูจน์ความรู้แบบไร้ความรู้" (zero-knowledge proof of knowledge ) อย่างไรก็ตาม โดยทั่วไปแล้วรหัสผ่านมักมีขนาดเล็กเกินไปหรือไม่มีความสุ่มเพียงพอที่จะใช้ในหลายๆ รูปแบบของการพิสูจน์ความรู้แบบไร้ความรู้การพิสูจน์รหัสผ่านแบบไร้ความรู้จึงเป็นการพิสูจน์ความรู้แบบไร้ความรู้ชนิดพิเศษที่แก้ปัญหาข้อจำกัดด้านขนาดของรหัสผ่าน

ในเดือนเมษายน พ.ศ. 2558 โปรโตคอลการพิสูจน์แบบหนึ่งในหลาย ( โปรโตคอลซิกมา ) ได้ถูกนำมาใช้[ 17 ]ในเดือนสิงหาคม พ.ศ. 2564 Cloudflareบริษัทโครงสร้างพื้นฐานเว็บและความปลอดภัยของอเมริกา ได้ตัดสินใจใช้กลไกการพิสูจน์แบบหนึ่งในหลายสำหรับการตรวจสอบเว็บส่วนตัวโดยใช้ฮาร์ดแวร์ของผู้จำหน่าย[ 18 ]

การปลดอาวุธนิวเคลียร์

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

บล็อกเชน

หลักฐานความรู้เป็นศูนย์ถูกนำมาใช้ใน โปรโตคอล Zerocoinและ Zerocash ซึ่งนำไปสู่การกำเนิดของสกุลเงินดิจิทัลZcoin [ 20 ] (ต่อมาเปลี่ยนชื่อเป็นFiroในปี 2020) [ 21 ]และZcash ในปี 2016 Zerocoin มีโมเดลการผสมในตัวที่ไม่ต้องเชื่อถือ peer หรือผู้ให้บริการการผสมแบบรวมศูนย์ใดๆ เพื่อให้มั่นใจถึงความเป็นนิรนาม[ 20 ]ผู้ใช้สามารถทำธุรกรรมในสกุลเงินพื้นฐานและสามารถหมุนเวียนสกุลเงินเข้าและออกจาก Zerocoin ได้[ 22 ]โปรโตคอล Zerocash ใช้โมเดลที่คล้ายกัน (รูปแบบที่เรียกว่าหลักฐานความรู้เป็นศูนย์แบบไม่โต้ตอบ ) [ 23 ]ยกเว้นว่าสามารถปกปิดจำนวนเงินในการทำธุรกรรมได้ ในขณะที่ Zerocoin ทำไม่ได้

ในปี 2018 ได้มีการนำ Bulletproofs มาใช้ Bulletproofs เป็นการปรับปรุงจาก zero-knowledge proofs ที่ไม่โต้ตอบซึ่งไม่จำเป็นต้องมีการตั้งค่าที่เชื่อถือได้[ 24 ]

ตัวตน

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

คำสั่ง SQL

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

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

การพิสูจน์แบบไร้ความรู้ (Zero-knowledge proofs) ได้รับการคิดค้นขึ้นครั้งแรกในปี 1985 โดยShafi Goldwasser , Silvio MicaliและCharles Rackoffในบทความเรื่อง "The Knowledge Complexity of Interactive Proof-Systems" [ 1 ]บทความนี้ได้แนะนำลำดับชั้น IP ของระบบพิสูจน์แบบโต้ตอบ ( ดูระบบพิสูจน์แบบโต้ตอบ ) และได้คิดค้นแนวคิดของความซับซ้อนของความรู้ซึ่งเป็นการวัดปริมาณความรู้เกี่ยวกับการพิสูจน์ที่ถ่ายโอนจากผู้พิสูจน์ไปยังผู้ตรวจสอบ พวกเขายังได้ให้การพิสูจน์แบบไร้ความรู้ครั้งแรกสำหรับปัญหาที่เป็นรูปธรรม นั่นคือ การตัดสินใจเกี่ยวกับเศษเหลือที่ไม่เป็นกำลังสอง mod mร่วมกับบทความของLászló BabaiและShlomo Moranบทความสำคัญนี้ได้คิดค้นระบบพิสูจน์แบบโต้ตอบ ซึ่งทำให้ผู้เขียนทั้งห้าคนได้รับรางวัล Gödel Prize ครั้งแรก ในปี 1993

โกลด์วาสเซอร์ มิคาลี และแร็กคอฟฟ์ กล่าวไว้ดังนี้:

ที่น่าสนใจเป็นพิเศษคือกรณีที่ความรู้เพิ่มเติมนี้มีค่าเป็น 0 โดยพื้นฐาน และเราแสดงให้เห็นว่าสามารถพิสูจน์ได้แบบโต้ตอบว่าจำนวนหนึ่งเป็นจำนวนกำลังสองที่ไม่ใช่เศษเหลือมอดm โดยไม่ ต้องอาศัยความรู้เพิ่มเติมใดๆ นี่เป็นเรื่องที่น่าประหลาดใจ เนื่องจากยังไม่มีอัลกอริทึมที่มีประสิทธิภาพใดๆ สำหรับการตัดสินว่าจำนวนใดเป็นจำนวนกำลังสองที่ไม่ใช่เศษเหลือมอดmเมื่อไม่ทราบการแยกตัวประกอบของ m ยิ่งไปกว่านั้น การพิสูจน์แบบ NP ที่รู้จักทั้งหมดสำหรับปัญหานี้แสดงให้เห็นการแยกตัวประกอบเฉพาะของmสิ่งนี้บ่งชี้ว่าการเพิ่มปฏิสัมพันธ์ในกระบวนการพิสูจน์อาจช่วยลดปริมาณความรู้ที่ต้องสื่อสารเพื่อพิสูจน์ทฤษฎีบทได้

ปัญหาที่ไม่เหลือเศษกำลังสองมีทั้ง อัลกอริทึม NPและco-NPดังนั้นจึงอยู่ในจุดตัดของ NP และ co-NP สิ่งนี้เป็นจริงสำหรับปัญหาอื่นๆ อีกหลายปัญหาซึ่งมีการค้นพบการพิสูจน์ความรู้เป็นศูนย์ในภายหลัง เช่น ระบบการพิสูจน์ที่ไม่ได้รับการตีพิมพ์โดย Oded Goldreich ซึ่งตรวจสอบว่าโมดูลัสสองจำนวนเฉพาะไม่ใช่จำนวนเต็ม Blum [ 31 ]

Oded Goldreich , Silvio MicaliและAvi Wigdersonได้ก้าวไปอีกขั้นหนึ่ง โดยแสดงให้เห็นว่า หากสมมติว่ามีการเข้ารหัสที่ไม่สามารถทำลายได้ เราสามารถสร้างระบบพิสูจน์ความรู้เป็นศูนย์สำหรับปัญหาการระบายสีกราฟ NP-complete ที่มีสามสีได้ เนื่องจากทุกปัญหาใน NP สามารถลดทอนได้อย่างมีประสิทธิภาพไปยังปัญหานี้ ซึ่งหมายความว่าภายใต้สมมติฐานนี้ ปัญหาทั้งหมดใน NP มีการพิสูจน์ความรู้เป็นศูนย์[ 32 ]เหตุผลของสมมติฐานนี้คือ ดังเช่นในตัวอย่างข้างต้น โปรโตคอลของพวกเขาต้องการการเข้ารหัส เงื่อนไขที่เพียงพอที่อ้างถึงกันโดยทั่วไปสำหรับการมีอยู่ของการเข้ารหัสที่ไม่สามารถทำลายได้คือการมีอยู่ของฟังก์ชันทางเดียวแต่เป็นไปได้ว่าวิธีการทางกายภาพบางอย่างอาจบรรลุผลได้เช่นกัน

นอกจากนี้ พวกเขายังแสดงให้เห็นว่าปัญหาความไม่สมมาตรของกราฟซึ่งเป็นส่วนเติมเต็มของปัญหาความสมมาตรของกราฟมีการพิสูจน์ความรู้เป็นศูนย์ ปัญหานี้อยู่ใน co-NP แต่ปัจจุบันยังไม่เป็นที่ทราบแน่ชัดว่าอยู่ใน NP หรือคลาสปฏิบัติใดๆ โดยทั่วไปแล้วRussell ImpagliazzoและMoti Yungรวมถึง Ben-Or และคณะ จะแสดงให้เห็นต่อไปว่า แม้จะสมมติฟังก์ชันทางเดียวหรือการเข้ารหัสที่ไม่สามารถถอดรหัสได้ ก็มีการพิสูจน์ความรู้เป็นศูนย์สำหรับ ปัญหา ทั้งหมดใน IP =  PSPACEหรือกล่าวอีกนัยหนึ่ง สิ่งใดก็ตามที่สามารถพิสูจน์ได้ด้วยระบบพิสูจน์แบบโต้ตอบ สามารถพิสูจน์ได้ด้วยความรู้เป็นศูนย์[ 33 ] [ 34 ]

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

ปรากฏว่าในสภาพแวดล้อมแบบอินเทอร์เน็ต ซึ่งสามารถดำเนินการโปรโตคอลหลายตัวพร้อมกันได้ การสร้างหลักฐานความรู้เป็นศูนย์นั้นมีความท้าทายมากขึ้น แนวทางการวิจัยที่ตรวจสอบหลักฐานความรู้เป็นศูนย์แบบพร้อมกันนั้นเริ่มต้นจากงานของDwork , NaorและSahai [ 36 ] การพัฒนาที่สำคัญอย่างหนึ่งในแนวทางนี้คือการพัฒนา โปรโตคอล หลักฐานที่ไม่สามารถแยกแยะพยานได้ คุณสมบัติของพยานที่ไม่สามารถแยกแยะได้ นั้นเกี่ยวข้องกับความรู้เป็นศูนย์ แต่โปรโตคอลที่ไม่สามารถแยกแยะพยานได้นั้นไม่ประสบปัญหาเดียวกันกับการดำเนินการพร้อมกัน[ 37 ]

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

โปรโตคอล

โปรโตคอล การพิสูจน์ความรู้เป็นศูนย์แบบโต้ตอบหรือไม่โต้ตอบที่ได้รับความนิยมมากที่สุด(เช่น zk-SNARK) สามารถแบ่งออกเป็น 4 ประเภทหลักๆ ได้แก่ Succinct Non-Interactive ARguments of Knowledge (SNARK), Scalable Transparent ARgument of Knowledge (STARK), Verifiable Polynomial Delegation (VPD) และ Succinct Non-interactive ARGuments (SNARG) รายชื่อโปรโตคอลและไลบรารีการพิสูจน์ความรู้เป็นศูนย์มีให้ด้านล่าง พร้อมกับการเปรียบเทียบตามความโปร่งใสความเป็นสากลความปลอดภัยหลังควอนตัมที่น่าเชื่อถือและกระบวนทัศน์การเขียนโปรแกรม[ 38 ] โปรโตคอลที่โปร่งใสคือโปรโตคอลที่ไม่ต้องการการตั้งค่าที่เชื่อถือได้ใดๆ และ ใช้ความสุ่มแบบสาธารณะ โปรโตคอลที่เป็นสากลคือโปรโตคอลที่ไม่ต้องการการตั้งค่าที่เชื่อถือ ได้แยกต่างหากสำหรับแต่ละวงจร สุดท้าย โปรโตคอลหลังควอนตัมที่น่าเชื่อถือคือโปรโตคอลที่ไม่ไวต่อการโจมตีที่รู้จักซึ่งเกี่ยวข้องกับอัลกอริธึมควอนตั

ระบบการพิสูจน์ความรู้เป็นศูนย์ (Zero-knowledge proof: ZKP)
ระบบ ZKPปีที่ตีพิมพ์โปรโตคอลโปร่งใสสากลปลอดภัยอย่างน่าเชื่อถือหลังยุคควอนตัมรูปแบบการเขียนโปรแกรม
พิน็อกคิโอ[ 39 ]2013zk-SNARKเลขที่เลขที่เลขที่ขั้นตอน
เกปเปตโต[ 40 ]2015zk-SNARKเลขที่เลขที่เลขที่ขั้นตอน
TinyRAM [ 41 ]2013zk-SNARKเลขที่เลขที่เลขที่ขั้นตอน
บุฟเฟ่ต์[ 42 ]2015zk-SNARKเลขที่เลขที่เลขที่ขั้นตอน
โซคราเตส[ 43 ]2018zk-SNARKเลขที่เลขที่เลขที่ขั้นตอน
xJsnark [ 44 ]2018zk-SNARKเลขที่เลขที่เลขที่ขั้นตอน
vRAM [ 45 ]2018zk-SNARGเลขที่ใช่เลขที่การประกอบ
vnTinyRAM [ 46 ]2014zk-SNARKเลขที่ใช่เลขที่ขั้นตอน
มิราจ[ 47 ]2020zk-SNARKเลขที่ใช่เลขที่วงจรเลขคณิต
โซนิค[ 48 ]2019zk-SNARKเลขที่ใช่เลขที่วงจรเลขคณิต
มาร์ลิน[ 49 ]2020zk-SNARKเลขที่ใช่เลขที่วงจรเลขคณิต
พลองก์[ 50 ]2019zk-SNARKเลขที่ใช่เลขที่วงจรเลขคณิต
ซูเปอร์โซนิค[ 51 ]2020zk-SNARKใช่ใช่เลขที่วงจรเลขคณิต
กันกระสุน[ 24 ]2018กันกระสุนใช่ใช่เลขที่วงจรเลขคณิต
ไฮแรกซ์[ 52 ]2018zk-SNARKใช่ใช่เลขที่วงจรเลขคณิต
ฮาโล[ 53 ]2019zk-SNARKใช่ใช่เลขที่วงจรเลขคณิต
ราศีกันย์[ 54 ]2020zk-SNARKใช่ใช่ใช่วงจรเลขคณิต
ลิเกโร[ 55 ]2017zk-SNARKใช่ใช่ใช่วงจรเลขคณิต
ออโรร่า[ 56 ]2019zk-SNARKใช่ใช่ใช่วงจรเลขคณิต
zk-STARK [ 57 ]2019zk-STARKใช่ใช่ใช่การประกอบ
Zilch [ 38 ]2021zk-STARKใช่ใช่ใช่เชิงวัตถุ
ไฮเปอร์บริดจ์[ 58 ]2024 zk-SNARK ใช่ ใช่ ใช่ วงจรเลขคณิต

ช่องโหว่ด้านความปลอดภัยของระบบไร้ความรู้

แม้ว่าการพิสูจน์โดยปราศจากความรู้ (zero-knowledge proofs) จะเป็นวิธีที่ปลอดภัยในการตรวจสอบข้อมูล แต่ก็ต้องออกแบบวงจรทางคณิตศาสตร์ที่ใช้ในการสร้างการพิสูจน์ดังกล่าวอย่างระมัดระวัง หากวงจรเหล่านี้ขาดข้อจำกัดที่เพียงพอ อาจทำให้เกิดช่องโหว่ด้านความปลอดภัยที่ร้ายแรงแต่ไม่ชัดเจนได้

หนึ่งในประเภทของช่องโหว่ที่พบบ่อยที่สุดในระบบเหล่านี้คือตรรกะที่มีข้อจำกัดไม่เพียงพอ ซึ่งข้อจำกัดที่ไม่เพียงพอทำให้ผู้พิสูจน์ที่เป็นอันตรายสามารถสร้างการพิสูจน์สำหรับข้อความที่ไม่ถูกต้องซึ่งยังคงผ่านการตรวจสอบได้ การจัดระบบการโจมตีที่รู้จักในปี 2024 พบว่าประมาณ 96% ของข้อบกพร่องระดับวงจรที่บันทึกไว้ในระบบที่ใช้ SNARK เกิดจากวงจรที่มีข้อจำกัดไม่เพียงพอ[ 59 ]

ช่องโหว่เหล่านี้มักเกิดขึ้นระหว่างการแปลตรรกะระดับสูงเป็นระบบข้อจำกัดระดับต่ำ โดยเฉพาะอย่างยิ่งเมื่อใช้ภาษาเฉพาะโดเมน เช่น Circom หรือ Gnark งานวิจัยล่าสุดแสดงให้เห็นว่าการพิสูจน์ความแน่นอนอย่างเป็นทางการ – การรับรองว่าเอาต์พุตของวงจรถูกกำหนดโดยอินพุตอย่างเฉพาะเจาะจง – สามารถกำจัดช่องโหว่เหล่านี้ได้ทั้งหมด[ 60 ]

เครื่องเสมือนแบบไร้ความรู้

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

zkVM มีทั้งประโยชน์ด้านการพัฒนาและความปลอดภัย การใช้ zkVM ช่วยให้นักพัฒนาสามารถดำเนินการและตรวจสอบการคำนวณที่ซับซ้อนนอกเชน หลีกเลี่ยง "ค่าใช้จ่ายแก๊ส" บนเชนที่สูง (ค่าธรรมเนียมการประมวลผลบล็อกเชน) และรักษาความเป็นส่วนตัวของโค้ดหรือข้อมูล zkVM ที่พัฒนาขึ้นเมื่อเร็ว ๆ นี้หลายตัว เช่น ที่พัฒนาโดย RISC Zero และ Succinct Labs รองรับ ชุดคำสั่ง RISC-Vซึ่งช่วยให้นักโปรแกรมสามารถเขียนโค้ดในภาษาโปรแกรมหลัก เช่นRustแทนที่จะใช้ภาษาวงจรเฉพาะโดเมน เช่น Circom [ 62 ] zkVM อื่น ๆ ใช้วิธีการที่แตกต่างกัน โดยมุ่งเป้าไปที่WebAssembly (WASM) หรือใช้ชุดคำสั่งที่กำหนดเองซึ่งปรับให้เหมาะสมสำหรับประสิทธิภาพความรู้เป็นศูนย์หรือการบูรณาการกับสภาพแวดล้อมบล็อกเชนเฉพาะ

ดูเพิ่มเติม

  • นักวิทยาศาสตร์คอมพิวเตอร์ อามิต ซาไฮ อธิบายการพิสูจน์ความรู้เป็นศูนย์ (Zero-knowledge proof) ใน 5 ระดับความยากบน YouTube
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Zero-knowledge_proof&oldid=1356874003 "

สรุปเนื้อหา

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

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

ในการเข้ารหัสลับ การ พิสูจน์ความรู้เป็นศูนย์ (หรือที่รู้จักกันในชื่อการพิสูจน์ ZKหรือZKP ) เป็นโปรโตคอลที่ฝ่ายหนึ่ง (ผู้พิสูจน์) สามารถโน้มน้าวอีกฝ่ายหนึ่ง (ผู้ตรวจสอบ)...

หลักฐานใบแดง

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

วอลโดอยู่ที่ไหน

ตัวอย่างที่รู้จักกันดีอีกประการหนึ่งของการพิสูจน์ความรู้เป็นศูนย์คือตัวอย่าง "วอลโดอยู่ที่ไหน" ในตัวอย่างนี้ ผู้พิสูจน์มีหน้าหนึ่งจาก หนังสือเด็กเรื่อง "วอลโดอยู่ที่ไหน" ซึ่งแสดงภาพการ์ตูนคนหลายร้อยคน โดยมีเพียงคนเดียวที่เป็นตัวละครวอลโดที่มีลักษณะเด่น...

ถ้ำอาลีบาบา

มีเรื่องราวที่เป็นที่รู้จักกันดีซึ่งนำเสนอแนวคิดพื้นฐานของการพิสูจน์ความรู้เป็นศูนย์ ซึ่งตีพิมพ์ครั้งแรกในปี 1990 โดย Jean-Jacques Quisquater และคนอื่นๆ ในบทความของพวกเขาเรื่อง "วิธีอธิบายโปรโตคอลความรู้เป็นศูนย์ให้ลูกๆ ของคุณฟัง" [ 9 ]...