คำเตือนความเสี่ยง: ระวังความเสี่ยงจากการระดมทุนที่ผิดกฎหมายในนาม 'สกุลเงินเสมือน' 'บล็อกเชน' — จากห้าหน่วยงานรวมถึงคณะกรรมการกำกับดูแลการธนาคารและการประกันภัย
ข่าวสาร
ค้นพบ
ค้นหา
เข้าสู่ระบบ
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt
BTC
ETH
HTX
SOL
BNB
ดูตลาด
อ่านบทพิสูจน์ที่ไม่มีความรู้ในบล็อกเชนในบทความเดียว
BFTF技术社区联盟
特邀专栏作者
2018-09-20 07:23
บทความนี้มีประมาณ 3806 คำ การอ่านทั้งหมดใช้เวลาประมาณ 6 นาที
การพิสูจน์ความรู้เป็นศูนย์คืออะไร หลักการของการพิสูจน์ความรู้เป็นศูนย์ใน ZCash และแผนการคุ

บทความนี้มาจาก: BFTF(ID:bftf2018)ข้อความ

บทความนี้มาจาก:

ผู้เขียน: Wu Qiong

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

ต่อไปนี้เป็นตัวอย่างคลาสสิกของการพิสูจน์ความรู้เป็นศูนย์เพื่อช่วยให้คุณเข้าใจ:

อาลีบาบาถูกโจรจับตัว เพื่อรักษาชีวิตของเขา เขาต้องพิสูจน์ให้โจรเห็นว่าเขามีรหัสผ่านเพื่อเปิดประตูหิน

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

ระยะทางนั้นไกลพอที่โจรไม่ได้ยินรหัสผ่าน และระยะทางก็ใกล้พอที่อาลีบาบาจะหลบใต้คันธนูและลูกธนูของโจรไม่ได้

ถ้าโจรยกมือซ้าย อาลีบาบาจะใช้รหัสผ่านเพื่อเปิดประตูหิน และถ้าเขายกมือขวา ประตูหินจะปิด

ในระยะนี้เองที่อาลีบาบาแสดงให้โจรเห็นการเปิดและปิดประตูหิน หากสามารถเปิดและปิดประตูได้ถูกต้องทุกครั้ง แสดงว่าอาลีบาบารู้รหัสผ่านของ Shimen

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

  2. จากนี้ เราสามารถสรุปคุณสมบัติสามประการของการพิสูจน์ที่ไม่มีความรู้:

  3. หากข้อความดังกล่าวเป็นความจริง ผู้ตรวจสอบที่ซื่อสัตย์ (เช่น ผู้ตรวจสอบความถูกต้องที่ปฏิบัติตามโปรโตคอลอย่างถูกต้อง) จะได้รับการพิสูจน์ข้อเท็จจริงนี้จากผู้พิสูจน์ที่ซื่อสัตย์

หากข้อความนั้นเป็นเท็จ ก็ไม่ได้ตัดทอนความเป็นไปได้ที่ผู้โกงจะสามารถโน้มน้าวผู้ตรวจสอบที่ซื่อสัตย์ได้ว่าเป็นความจริง

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

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

ZCash

ขอแนะนำระบบบล็อกเชนหลายระบบที่ใช้การพิสูจน์ความรู้เป็นศูนย์

ชื่อระดับแรก

  • ในฐานะที่เป็นโครงการสกุลเงินดิจิทัลที่ไม่ระบุตัวตน ZCash มีอยู่ในฐานะเลเยอร์ที่ไม่ระบุตัวตนที่เข้ารหัสของ Bitcoin ในตอนแรกเท่านั้น และต่อมาก็กลายเป็นสกุลเงินดิจิทัลอิสระเนื่องจากความเป็นส่วนตัวที่ยอดเยี่ยม เช่นเดียวกับ Bitcoin จำนวนรวมของ ZCash ก็เท่ากับ 21 ล้านเช่นกัน ความแตกต่างคือมันสามารถบรรลุตัวตนที่แท้จริงได้ - คุณไม่จำเป็นต้องรู้ด้วยซ้ำว่าอีกฝ่ายมีเงินเท่าไหร่ในการทำธุรกรรม

  • ZCash บรรลุความเป็นนิรนามที่แท้จริงและการปกป้องความเป็นส่วนตัวได้อย่างไร

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

เมื่อใช้สกุลเงินดิจิทัล ZCash ในการทำธุรกรรม ระบบจะเข้ารหัสข้อมูลดั้งเดิมของธุรกรรมโดยอัตโนมัติ ในขณะเดียวกัน ธุรกรรมแต่ละรายการไม่จำเป็นต้องใช้โหนด ZCash เพื่อบันทึกข้อมูล แต่ต้องการเพียง zk-SNARK เพื่อพิสูจน์ "กำลังการบริโภค" สิ่งนี้สะท้อนให้เห็นใน 2 ประเด็นหลักในกระบวนการทำธุรกรรม หนึ่ง อนุญาตให้ผู้อื่นตรวจสอบความถูกต้องของธุรกรรม (หรือการเรียกฟังก์ชันสัญญาอัจฉริยะ) โดยไม่ทราบเนื้อหาธุรกรรมเฉพาะ ประการที่สอง รายละเอียดของธุรกรรมยังสามารถบันทึกลงใน blockchain สาธารณะ กำจัด

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

  • ชื่อเรื่องรอง

การใช้งานทางเทคนิคใน zk-SNARK

การซ่อนตัวแบบโฮโมมอร์ฟิค

การซ่อนตัวแบบโฮโมมอร์ฟิกสามารถพิสูจน์หลักฐานที่ไม่มีความรู้ได้ในระดับหนึ่ง

  1. ตัวอย่าง:

  2. A มีเลขลับ x และ y สองตัว และจำเป็นต้องพิสูจน์ให้ B เห็นว่าผลรวมของเลขสองตัวนี้คือ 7 และต้องดำเนินการเพียงสามขั้นตอนต่อไปนี้:

  3. A คำนวณ f(x), f(y) และส่งไปยัง B;

  • เนื่องจากฟังก์ชัน f(x) ตอบสนองการผสมแบบโฮโมมอร์ฟิซึ่ม B สามารถคำนวณ f(x+y) ถึง f(x), f(y);

B คำนวณ f(7) อย่างอิสระ และตรวจสอบว่า f(x+y)=f(7)

การตรวจสอบพหุนามตาบอด

การทวนสอบพหุนามแบบบอดใช้คุณสมบัติของโฮโมมอร์ฟิซึ่มแบบเติมกับพหุนาม (แนวคิดทางคณิตศาสตร์ที่นี่ค่อนข้างแข็งแกร่ง ดังนั้นคุณจึงสามารถทำความเข้าใจได้เพียงผิวเผินเท่านั้น)

  1. สมมติว่า A รู้พหุนาม P ในระดับสูงสุด d และ B ต้องการทราบ E(P(s)) ที่สอดคล้องกับ s:

  2. เราหวังว่าในระหว่างกระบวนการตรวจสอบ A จะรู้แค่ P แต่ไม่รู้ s และ B จะรู้แค่ s แต่ไม่รู้ P สามารถทำได้ด้วยวิธีต่อไปนี้:

  3. สำหรับแต่ละดัชนีของ s B จะคำนวณ E(1), E(s), ..., E(sd) และส่งไปยัง A;

    A รู้ค่าสัมประสิทธิ์ของพหุนามทั้งหมด สามารถคำนวณ P โดยใช้คุณสมบัติโฮโมมอร์ฟิค และส่งกลับไปยัง B

    KCA (ความรู้เกี่ยวกับการทดสอบค่าสัมประสิทธิ์และสมมติฐาน) และการตรวจสอบความถูกต้องของพหุนามแบบสมบูรณ์

  4. วิธีการตรวจสอบพหุนามแบบตาบอดที่ให้ไว้ข้างต้นมีปัญหาร้ายแรง นั่นคือ B ไม่สามารถยืนยันได้ว่า A ใช้พหุนาม P(s) ในการคำนวณผลลัพธ์จริงๆ กล่าวคือ ไม่สามารถพิสูจน์ได้ว่า A รู้จักพหุนาม P(X) จริงๆ ). KCA ปรับปรุงการตรวจสอบข้างต้นต่อไป

    กล่าวโดยสรุปคือ เราสามารถใช้วิธีซ่อนแบบบวกเพิ่มผ่านการใช้การซ่อนแบบบวก ซึ่งทำให้ B สามารถตรวจสอบค่าของ x+y ได้โดยไม่ต้องรู้ค่า x และ y นอกจากนี้ ด้วยการตรวจสอบพหุนามแบบตาบอด เราสามารถให้ B ตรวจสอบ P(s) ที่สอดคล้องกับ s ใดๆ ที่กำหนดโดยไม่ต้องเปิดเผยพหุนาม P(X)

  5. การคำนวณโดยพลการแปลงเป็นการพิสูจน์พหุนาม

    ขั้นตอนสุดท้ายของกระบวนการตรวจสอบ

โมเนโร

ชื่อระดับแรก

โมเนโร

  1. Monero ในฐานะตัวแทนของสกุลเงินดิจิทัลที่เข้ารหัสในปัจจุบัน ใช้เทคโนโลยีการเข้ารหัสที่ชาญฉลาดอย่างยิ่งเพื่อรับรองความเป็นส่วนตัวของการทำธุรกรรม

  2. คุณสมบัติสองประการของ Monero:

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

  1. ไม่สามารถติดตามได้: เป็นไปไม่ได้ที่จะรู้ว่าใครเป็นผู้ส่งธุรกรรม

    การใช้งานทางเทคนิคของ Monero:

    ที่อยู่ชิงทรัพย์

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

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

ลายเซ็นแหวนครั้งเดียว (ลายเซ็นแหวนครั้งเดียว)

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

กระบวนการทั้งหมดของเทคโนโลยี Ring Signature ที่ใช้ใน Monero:

ขั้นตอนแรก การสร้างคีย์ (GEN)

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

ขั้นตอนที่สอง ลายเซ็น (SIG)

ขั้นแรก ผู้ลงนามสุ่มเลือกชุดคีย์สาธารณะที่มีองค์ประกอบ n รายการ จากนั้นผสมกับคีย์สาธารณะของเขาเองเพื่อสร้างชุดผสม S สมมติว่าตัวห้อยของคีย์สาธารณะของผู้ลงนามแบบผสมใน S คือ s ดังนั้นคีย์สาธารณะของเขา ปล.คือ จากนั้นผู้ลงนามสุ่มเลือก {qi, i = 0,...,n} และ {wi, i=0,...,n,i!=s} จาก [1, l-1] จากนั้นคำนวณ ความท้าทายที่ไม่โต้ตอบ

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

ส่วนที่สาม การตรวจสอบลายเซ็น (VER)

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

ขั้นตอนที่สี่ ตรวจสอบซ้ำ (LNK)

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

ยินดีต้อนรับเข้าร่วมชุมชนทางการของ Odaily
กลุ่มสมาชิก
https://t.me/Odaily_News
กลุ่มสนทนา
https://t.me/Odaily_CryptoPunk
บัญชีทางการ
https://twitter.com/OdailyChina
กลุ่มสนทนา
https://t.me/Odaily_CryptoPunk
สรุปโดย AI
กลับไปด้านบน
การพิสูจน์ความรู้เป็นศูนย์คืออะไร หลักการของการพิสูจน์ความรู้เป็นศูนย์ใน ZCash และแผนการคุ
ดาวน์โหลดแอพ Odaily พลาเน็ตเดลี่
ให้คนบางกลุ่มเข้าใจ Web3.0 ก่อน
IOS
Android