BTC
ETH
HTX
SOL
BNB
ดูตลาด
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt

การพิสูจน์ความรู้เป็นศูนย์: เครื่องมืออันทรงพลังสำหรับการปกป้องความเป็นส่วนตัวของบล็อก

哈希未来
特邀专栏作者
2018-07-16 06:20
บทความนี้มีประมาณ 3718 คำ การอ่านทั้งหมดใช้เวลาประมาณ 6 นาที
สรุปรายงาน: การพิสูจน์ด้วยความรู้เป็นศูนย์เป็นวิธีการตรวจสอบตามความน่าจะเป็น และเนื้อห
สรุปโดย AI
ขยาย
สรุปรายงาน: การพิสูจน์ด้วยความรู้เป็นศูนย์เป็นวิธีการตรวจสอบตามความน่าจะเป็น และเนื้อห



ผู้เขียน:Chen Zhijia, Meng Yize, Xie Qian, Jiang Zewu (แฮชเวิลด์)

สรุปรายงาน:

สรุปรายงาน:

การพิสูจน์ด้วยความรู้เป็นศูนย์เป็นวิธีการยืนยันตามความน่าจะเป็น และเนื้อหาการตรวจสอบประกอบด้วย "ข้อความข้อเท็จจริง" และ "ข้อความเกี่ยวกับความรู้ส่วนบุคคล" ผู้ตรวจสอบจะถามคำถามกับผู้พิสูจน์โดยอาศัยการสุ่มบางอย่าง และถ้าพวกเขาสามารถให้คำตอบที่ถูกต้องได้ ก็หมายความว่าผู้พิสูจน์มีความเป็นไปได้สูงที่จะมี "ความรู้" ตามที่เขากล่าวอ้าง Zerocoin (Zero Coin Protocol) ใช้การตรวจสอบความรู้เป็นศูนย์ในกระบวนการสร้างเหรียญ Zero และแลกเหรียญ Zero เพื่อซ่อนข้อมูลผู้ส่งและผู้รับที่เกี่ยวข้องกับธุรกรรม Zerocash (Zero Banknote Protocol) ใช้เทคโนโลยี zkSNARKs ที่แปลกใหม่กว่า แปลงธุรกรรม เนื้อหาที่ต้องได้รับการยืนยันเพื่อพิสูจน์ว่าผลคูณของพหุนามสองชื่อมีค่าเท่ากัน และรวมการเข้ารหัสแบบโฮโมมอร์ฟิกและเทคโนโลยีอื่นๆ เพื่อดำเนินการตรวจสอบธุรกรรมในขณะที่ปกป้องจำนวนธุรกรรมที่ซ่อนอยู่ ข้อเสียคือหากเครือข่ายได้รับการโจมตีและใช้เงินเป็นศูนย์มากเกินไป ก็จะไม่สามารถตรวจจับหรือใช้มาตรการได้ ทั้ง Zerocoin และ Zerocash ต้องการ "การตั้งค่าความเชื่อถือ" ที่ตั้งไว้ล่วงหน้า ซึ่งยังไม่ได้รับ "ความไร้ความน่าเชื่อถือ" ที่แท้จริง เทคโนโลยีใหม่ๆ เช่น Intel SGX และ zkSTARK อาจช่วยแก้ปัญหาข้างต้นได้ แต่ก็ยังจำเป็นต้องได้รับการทดสอบในทางปฏิบัติ

1. หลักการของการพิสูจน์ความรู้เป็นศูนย์

Zero-knowledge Proof เป็นรูปแบบการเข้ารหัสที่เสนอในเอกสารโดยนักวิจัยของ MIT ในปี 1980 “โปรโตคอลที่ไม่มีความรู้เป็นวิธีการที่ฝ่ายหนึ่ง (ผู้พิสูจน์) สามารถพิสูจน์ให้อีกฝ่ายหนึ่ง (ผู้ตรวจสอบ) เห็นว่าบางสิ่งเป็นจริงโดยไม่ต้องเปิดเผยข้อมูลเพิ่มเติมใด ๆ นอกจากข้อเท็จจริงที่ว่าข้อความเฉพาะนี้เป็นจริง กล่าวอีกนัยหนึ่ง ค่าแฮชของรหัสผ่านของลูกค้าจะถูกเก็บไว้ในเว็บเซิร์ฟเวอร์เพื่อตรวจสอบว่าลูกค้ารู้รหัสผ่านจริง ปัจจุบัน เว็บไซต์ส่วนใหญ่จะใช้วิธีการที่เซิร์ฟเวอร์คำนวณค่าแฮชของรหัสผ่านที่ลูกค้าป้อนและเปรียบเทียบกับ ผลลัพธ์ที่เก็บไว้ แต่ข้อเสียของวิธีนี้คือเซิร์ฟเวอร์สามารถรู้รหัสผ่านเดิมของลูกค้าในระหว่างการคำนวณ เมื่อเซิร์ฟเวอร์ถูกโจมตี รหัสผ่านของผู้ใช้จะรั่วไหล หากสามารถพิสูจน์ความรู้ที่ไม่มีความรู้ได้ก็สามารถทำได้ โดยไม่ทราบรหัสผ่านของไคลเอ็นต์ , เพื่อตรวจสอบการเข้าสู่ระบบของไคลเอ็นต์ แม้ว่าเซิร์ฟเวอร์จะถูกโจมตี บัญชีของผู้ใช้ยังคงปลอดภัย เนื่องจากไม่ได้เก็บรหัสผ่านข้อความธรรมดาของไคลเอ็นต์

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

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

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

แต่ไม่ใช่ทุกปัญหาที่จะมีรูปแบบการเข้ารหัสสำหรับการพิสูจน์ที่ไม่มีความรู้ Goldreich, Micali และ Wigderson ให้ช่วงที่ถูกต้องตามทฤษฎีสำหรับโซลูชันการพิสูจน์ที่ไม่มีความรู้ พวกเขาพบว่ามีแผนการพิสูจน์ความรู้เป็นศูนย์สำหรับปัญหาการตัดสินใจ (ปัญหาที่มีคำตอบคือ ใช่/ไม่ใช่ เท่านั้น) ซึ่งโซลูชันสามารถตรวจสอบได้ในเวลาพหุนาม จำเป็นต้องค้นหาข้อความที่คุณต้องการพิสูจน์ในปัญหา NP ดังกล่าวและแปลงเป็นตัวอย่างของปัญหาสามสี จากนั้นคุณสามารถใช้โปรโตคอลที่มีอยู่เพื่อพิสูจน์หลักฐานที่ไม่มีความรู้ เนื่องจากปัญหาสามสีเป็นปัญหาของ NPC ปัญหา NP อื่น ๆ สามารถเปลี่ยนเป็นตัวอย่างของปัญหานี้ได้

2. การประยุกต์ใช้การพิสูจน์ความรู้เป็นศูนย์ในบล็อกเชน

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

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

1. ถอดแยกโปรแกรมที่จะตรวจสอบออกเป็นขั้นตอนการตรวจสอบเชิงตรรกะ และแยกชิ้นส่วนของขั้นตอนเชิงตรรกะเหล่านี้ออกเป็นวงจรเลขคณิตที่ประกอบด้วยการบวก การลบ การคูณ และการหาร

2. แปลงโปรแกรมที่ต้องตรวจสอบเป็นการยืนยันว่าผลคูณของพหุนามเท่ากันผ่านชุดการแปลง เช่น การพิสูจน์ว่า t(x)h(x) = w(x)v(x)

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

4. ผ่านการเข้ารหัส/การเข้ารหัสแบบโฮโมมอร์ฟิค ผู้ตรวจสอบจะไม่ทราบค่าอินพุตจริงเมื่อคำนวณสมการ แต่ก็ยังสามารถตรวจสอบได้

5. ค่าความลับที่ไม่เป็นศูนย์ k สามารถคูณทั้งสองข้างของสมการได้พร้อมกัน จากนั้นเมื่อตรวจสอบว่า (t(s)h(s)k) เท่ากับ (w(s)v(s) k) ดังนั้น เป็นไปไม่ได้ที่จะทราบเฉพาะ t(s), h(s), w(s), v(s) ดังนั้นจึงสามารถป้องกันข้อมูลได้

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

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

ตามเอกสารไวท์เปเปอร์ของ zkSTARKs นั้น zkSTARKs เป็นระบบแรกที่สามารถทำการตรวจสอบบล็อกเชนให้เสร็จสมบูรณ์โดยไม่ต้องพึ่งพาการตั้งค่าความน่าเชื่อถือใดๆ และในขณะเดียวกัน ความเร็วในการประมวลผลก็เพิ่มขึ้นแบบทวีคูณตามจำนวนข้อมูลการประมวลผลที่เพิ่มขึ้น มันไม่ได้ขึ้นอยู่กับการเข้ารหัสคีย์สาธารณะ และสมมติฐานที่เรียบง่ายทำให้ปลอดภัยมากขึ้นในทางทฤษฎี เนื่องจากสมมติฐานการเข้ารหัสเพียงอย่างเดียวคือฟังก์ชันแฮช (เช่น SHA2) นั้นไม่สามารถคาดเดาได้ (สมมติฐานนี้เป็นพื้นฐานสำหรับความเสถียรของการขุด Bitcoin) จึงทำให้มีความทนทานต่อควอนตัม ในฐานะที่เป็นเทคโนโลยีใหม่ เช่น zkSTARKs จำเป็นต้องผ่านการทดสอบของเวลา


ข้อมูลอ้างอิง:

ข้อมูลอ้างอิง:

1. ชุมชนชาวจีน Zcoin "Zcoin และ Zcash: ความเหมือนและความแตกต่าง" http://www.zcoinchina.org/zcoin-and-zcash/https://z.cash/technology/zksnarks.html.

2. ทีม Zcash "zk-SNARK คืออะไร"

4. Christian Reitwiessner,《zkSNARKs in a nutshell》,https://blog.ethereum.org/2016/12/05/zksnarks-in-a-nutshell/

5. Matthew Green,《Zero Knowledge Proofs: An illustrated primer》,https://blog.cryptographyengineering.com/2014/11/27/zero-knowledge-proofs-illustrated-primer/

3. สมุดปกขาวเทคโนโลยี Zerocoin "สกุลเงินดิจิทัลที่รับประกันความเป็นส่วนตัวของบัญชีโดยใช้โปรโตคอล Zerocoin"http://www.sohu.com/a/224915382_117959

6. Lao Qian "โศกนาฏกรรมที่เกิดจากซูโดกุ: Zero-Knowledge Proof (Zero-Knowledge Proof)",

ลิขสิทธิ์ของบทความเป็นของ Hash Future หากคุณต้องการพิมพ์ซ้ำ โปรดติดต่อ เจ้าหน้าที่ของ Hash Future





ยินดีต้อนรับเข้าร่วมชุมชนทางการของ Odaily
กลุ่มสมาชิก
https://t.me/Odaily_News
กลุ่มสนทนา
https://t.me/Odaily_CryptoPunk
บัญชีทางการ
https://twitter.com/OdailyChina
กลุ่มสนทนา
https://t.me/Odaily_CryptoPunk
ค้นหา
สารบัญบทความ
空头猎人
คลังบทความของผู้เขียน
哈希未来
ดาวน์โหลดแอพ Odaily พลาเน็ตเดลี่
ให้คนบางกลุ่มเข้าใจ Web3.0 ก่อน
IOS
Android