zk-VM คืออะไร?

กลางJun 03, 2024
ZK เป็นสะพานเชื่อมสู่การยอมรับการเข้ารหัสอย่างแพร่หลาย ไม่ว่าจะใน Web2 หรือ Web3 สิ่งใดก็ตามที่เกี่ยวข้องกับ Zero-Knowledge Proofs (ZKP) จะสร้างมูลค่ามหาศาล ทีม Lita ได้เขียนบทความวิทยาศาสตร์พื้นฐาน แนะนําพื้นฐานของ ZK และ zkVM ให้ภาพรวมระดับสูงของกระบวนการภายใน zkVM และสุดท้ายเสนอชุดมาตรฐานสําหรับการประเมิน zkVM
zk-VM คืออะไร?

ส่งต่อชื่อเดิม 'กระบวนทัศน์ความรู้เป็นศูนย์: ตอนที่ 1 - zk-VM คืออะไร'

1. Zero Knowledge Proofs: ไพรเมอร์

Zero Knowledge Proof (ZKPs) คืออะไร?

หากคุณไม่มีความรู้มาก่อนเกี่ยวกับการพิสูจน์ความรู้เป็นศูนย์ (ZKP) วิดีโอนี้จาก Wired จะอธิบายแนวคิดในระดับความยากห้าระดับในลักษณะโต้ตอบพร้อมตัวอย่างและการสาธิตที่เข้าใจง่าย แนะนําเป็นอย่างยิ่ง

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

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

zkSNARKs: Zero Knowledge อาร์กิวเมนต์ความรู้ที่ไม่โต้ตอบอย่างรวบรัด

  • อาศัยกระบวนการตั้งค่าเริ่มต้น (เชื่อถือได้หรือไม่น่าเชื่อถือ) เพื่อสร้างพารามิเตอร์สําหรับการตรวจสอบ
  • ต้องมีการโต้ตอบอย่างน้อยหนึ่งครั้งระหว่าง prover และผู้ตรวจสอบ
  • ขนาดหลักฐานมีขนาดเล็กและง่ายต่อการตรวจสอบ
  • การพิสูจน์ตาม NARK ถูกใช้โดยโรลอัพเช่น zkSync, Scroll และ Linea

zkSTARKs: Zero Knowledge Scalable อาร์กิวเมนต์ความรู้ที่โปร่งใส

  • ไม่จําเป็นต้องตั้งค่าที่เชื่อถือได้
  • นําเสนอความโปร่งใสสูงโดยใช้การสุ่มที่ตรวจสอบได้แบบสาธารณะเพื่อสร้างระบบที่ตรวจสอบได้โดยไม่น่าเชื่อถือ เช่น การสร้างพารามิเตอร์สุ่มที่พิสูจน์ได้สําหรับการพิสูจน์และตรวจสอบ
  • ปรับขนาดได้สูงเนื่องจากสามารถสร้างและตรวจสอบการพิสูจน์ได้อย่างรวดเร็ว (ไม่เสมอไป) แม้ว่าขนาดของพยานพื้นฐาน (ข้อมูล) จะมีขนาดใหญ่
  • ไม่จําเป็นต้องมีปฏิสัมพันธ์ระหว่าง prover และผู้ตรวจสอบ
  • มีค่าใช้จ่ายที่ STARK สร้างหลักฐานที่ใหญ่กว่า ซึ่งอาจตรวจสอบได้ยากกว่า SNARK
  • การพิสูจน์นั้นตรวจสอบได้ยากกว่าการพิสูจน์ zkSNARK บางอย่าง แต่ไม่ยากเท่าที่อื่นในการตรวจสอบ
  • Starknet ใช้ STARK เช่นเดียวกับ zkVM เช่น Lita, Risc Zero และ Succinct Labs

(หมายเหตุ: บริดจ์ของ Succinct ใช้ SNARK แต่ SP1 เป็นโปรโตคอลที่ใช้ STARK)

เป็นที่น่าสังเกตว่า STARK ทั้งหมดเป็น SNARK แต่ไม่ใช่ SNARK ทั้งหมดที่เป็น STARK

เพื่อความเข้าใจทั่วไปที่ดีขึ้นเกี่ยวกับ SNARK และ STARK เราขอแนะนําให้อ่านบทความ>ชุด @krzhang/privacy-in-cryptocurrencies-zero-knowledge-and-zk-snarks-1-2-68ce1838fd9c" ที่เขียนโดย Yan Zhang และ Yi Sun จาก Axiom และชุดบทความนี้ใน github ของ Ventali Tan

2. zkVM คืออะไร?

เครื่องเสมือน (VM) เป็นโปรแกรมที่เรียกใช้โปรแกรม ในบริบท zkVM เป็นคอมพิวเตอร์เสมือนที่นํามาใช้เป็นระบบสําหรับสร้างหลักฐานความรู้เป็นศูนย์หรือวงจรสากลหรือเครื่องมือสําหรับสร้าง ZKP สําหรับโปรแกรมหรือการคํานวณใด ๆ

zkVMs ขจัดความจําเป็นในการเรียนรู้คณิตศาสตร์และการเข้ารหัสที่ซับซ้อนสําหรับการออกแบบและการเข้ารหัส ZK และช่วยให้นักพัฒนาสามารถรันโปรแกรมที่เขียนในภาษาที่ต้องการและสร้าง ZKP ทําให้ง่ายต่อการรวมและโต้ตอบกับความรู้เป็นศูนย์ การอ้างอิงส่วนใหญ่ถึง zkVM โดยปริยายรวมถึงชุดเครื่องมือคอมไพเลอร์และระบบพิสูจน์ที่ผนวกเข้ากับเครื่องเสมือนที่รันโปรแกรม ไม่ใช่แค่เครื่องเสมือนเท่านั้น ด้านล่างนี้เราสรุปองค์ประกอบหลักของ zkVM และหน้าที่:

ส่วนประกอบหลักของ zkVM

การออกแบบและการใช้งานของแต่ละองค์ประกอบถูกควบคุมโดยการเลือกการพิสูจน์ (SNARK หรือ STARK) และสถาปัตยกรรมชุดคําสั่ง (ISA) ของ zkVM ตามเนื้อผ้า ISA จะระบุสิ่งที่ CPU สามารถทําได้ (ประเภทข้อมูล รีจิสเตอร์ หน่วยความจํา ฯลฯ) และลําดับของการกระทําที่ CPU ดําเนินการเมื่อรันโปรแกรม ในบริบท ISA จะกําหนดรหัสเครื่องที่สามารถตีความและเรียกใช้งานได้โดย VM การเลือก ISA สามารถให้ความแตกต่างอย่างสิ้นเชิงในการเข้าถึงและการใช้งานของ zkVM ตลอดจนความเร็วและประสิทธิภาพของกระบวนการสร้างหลักฐาน และเป็นรากฐานในการสร้าง zkVM ใดๆ

ด้านล่างนี้คือตัวอย่างบางส่วนของ zkVM และส่วนประกอบสําหรับการอ้างอิงของคุณ


zkVM และส่วนประกอบ

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

3. โฟลว์กระบวนการ zkVM ที่เป็นนามธรรม

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


โฟลว์ทั่วไปสําหรับ zkVM

โฟลว์กระบวนการของ zkVM โดยทั่วไปมีดังนี้:

  • คอมไพเลอร์ Stage
  1. คอมไพเลอร์จะรวบรวมโปรแกรมที่เขียนในภาษาทั่วไป (C, C++, Rust, Solidity) ลงในรหัสเครื่องก่อน รูปแบบของรหัสเครื่องถูกกําหนดโดยตัวเลือกของ ISA
  • เวที VM
  1. VM รันโค้ดเครื่องและสร้างการติดตามการดําเนินการ ซึ่งเป็นชุดของขั้นตอนของโปรแกรมพื้นฐาน รูปแบบของสิ่งนี้ถูกกําหนดไว้ล่วงหน้าโดยการเลือกเลขคณิตเช่นเดียวกับชุดของข้อ จํากัด พหุนาม รูปแบบเลขคณิตทั่วไป ได้แก่ R1CS เช่นเดียวกับใน Groth16, PLONKish arithmetization เช่นเดียวกับใน halo2 และ AIR เช่นเดียวกับใน plonky2 และ plonky3
  • เวที Prover
  1. ผู้เสนอรับร่องรอยและแสดงเป็นชุดของพหุนามที่ผูกมัดด้วยชุดของข้อจํากัด โดยพื้นฐานแล้วจะแปลการคํานวณเป็นพีชคณิตโดยการทําแผนที่ข้อเท็จจริงทางคณิตศาสตร์

  2. ผู้เสนอให้คํามั่นสัญญากับพหุนามเหล่านี้โดยใช้ Polynomial Commitment Scheme (PCS) รูปแบบความมุ่งมั่นเป็นโปรโตคอลที่ช่วยให้ prover สามารถสร้างลายนิ้วมือของข้อมูลบางอย่าง X ซึ่งเรียกว่าความมุ่งมั่นต่อ X และพิสูจน์ข้อเท็จจริงเกี่ยวกับ X ในภายหลังโดยไม่เปิดเผย X โดยใช้ความมุ่งมั่นต่อ X PCS คือลายนิ้วมือ ข้อ จํากัด ในการคํานวณแบบรวบรัด "ประมวลผลล่วงหน้า" สิ่งนี้ช่วยให้ผู้เสนอสามารถพิสูจน์ข้อเท็จจริงเกี่ยวกับการคํานวณซึ่งตอนนี้แสดงในสมการพหุนามโดยใช้ค่าสุ่มที่เสนอโดยผู้ตรวจสอบในขั้นตอนต่อไปนี้

  3. ผู้เสนอใช้พหุนามแบบโต้ตอบ Oracle Proof (PIOP) เพื่อแสดงให้เห็นว่าพหุนามที่มุ่งมั่นแสดงถึงร่องรอยการดําเนินการที่เป็นไปตามข้อจํากัดที่กําหนด PIOP เป็นโปรโตคอลการพิสูจน์แบบโต้ตอบที่ประกอบด้วยชุดของรอบที่ prover ส่งคํามั่นสัญญาไปยังพหุนามผู้ตรวจสอบตอบสนองด้วยค่าฟิลด์แบบสุ่มและผู้เสนอญัตติให้การประเมินพหุนามที่ค่าสุ่มเหล่านี้คล้ายกับ "การแก้" สมการพหุนามโดยใช้ค่าสุ่มเพื่อโน้มน้าวผู้ตรวจสอบ

  4. การใช้ฮิวริสติก Fiat-Shamir; ผู้เสนอจะเรียกใช้ PIOP ในโหมดไม่โต้ตอบ ซึ่งพฤติกรรมของผู้ตรวจสอบจํากัดอยู่ที่การส่งคะแนนท้าทายแบบสุ่มหลอก ในการเข้ารหัส ฮิวริสติก Fiat–Shamir จะแปลงหลักฐานความรู้แบบโต้ตอบเป็นลายเซ็นดิจิทัลสําหรับการตรวจสอบ ขั้นตอนนี้เข้ารหัสหลักฐานและทําให้ไม่มีความรู้

  5. ผู้เสนอต้องโน้มน้าวผู้ตรวจสอบว่าการประเมินพหุนามที่อ้างสิทธิ์นั้นถูกต้องในส่วนที่เกี่ยวกับภาระผูกพันพหุนามที่ส่งไปยังผู้ตรวจสอบ ในการทําเช่นนี้ prover จะสร้างหลักฐาน "การประเมิน" หรือ "การเปิด" ซึ่งจัดทําโดยรูปแบบความมุ่งมั่นพหุนาม (ลายนิ้วมือ)

  • ขั้นตอนการตรวจสอบ
  1. ผู้ตรวจสอบจะตรวจสอบหลักฐานโดยปฏิบัติตามโปรโตคอลการตรวจสอบของระบบพิสูจน์โดยใช้ข้อ จํากัด หรือข้อผูกมัด ผู้ตรวจสอบยอมรับหรือปฏิเสธผลลัพธ์ตามความถูกต้องของหลักฐาน

โดยสรุปการพิสูจน์ zkVM พิสูจน์สําหรับโปรแกรมที่กําหนดผลลัพธ์ที่กําหนดและเงื่อนไขเริ่มต้นที่กําหนดว่ามีอินพุตบางอย่างที่ทําให้โปรแกรมสร้างผลลัพธ์ที่กําหนดเมื่อดําเนินการจากเงื่อนไขเริ่มต้นที่กําหนด เราสามารถรวมคําสั่งนี้กับโฟลว์กระบวนการเพื่อให้ได้คําอธิบายต่อไปนี้ของ zkVM

การพิสูจน์ zkVM พิสูจน์สําหรับโปรแกรม VM ที่กําหนดและเอาต์พุตที่กําหนดว่ามีอินพุตบางอย่างที่ทําให้โปรแกรมที่กําหนดสร้างเอาต์พุตที่กําหนดเมื่อดําเนินการบน VM

4. การประเมิน zkVMs

เกณฑ์ที่เราควรประเมิน zkVM คืออะไร? กล่าวอีกนัยหนึ่งเมื่อใดที่เราควรพูดว่า zkVM หนึ่งดีกว่าอีกอันหนึ่ง ความจริงคําตอบขึ้นอยู่กับกรณีการใช้งาน

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

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

เราขอเสนอว่า zkVMs ควรได้รับการประเมินตามเกณฑ์ต่อไปนี้โดยแบ่งออกเป็นสองชุดย่อย:


เกณฑ์หลักในการประเมิน zk-VMs

พื้นฐาน: วัดความน่าเชื่อถือของ zkVM

  • ความถูกต้อง
  • ความปลอดภัย
  • สมมติฐานความน่าเชื่อถือ

ประสิทธิภาพ: วัดความสามารถของ zkVM

  • ประสิทธิภาพ
  • ความเร็ว
  • ความรวบรัด

4.1 พื้นฐาน: สมมติฐานความถูกต้อง ความปลอดภัย และความน่าเชื่อถือ

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

หากไม่มีคุณสมบัติเหล่านี้ zkVM อาจแย่กว่าไร้ประโยชน์สําหรับแอปพลิเคชัน เนื่องจากอาจล้มเหลวในการทํางานตามที่ระบุและทําให้ผู้ใช้ถูกแฮ็กและหาประโยชน์

i. ความถูกต้อง

  • VM ต้องดําเนินการคํานวณตามที่ตั้งใจไว้
  • ระบบพิสูจน์ต้องเป็นไปตามคุณสมบัติด้านความปลอดภัยที่อ้างสิทธิ์

ความถูกต้องประกอบด้วยคุณสมบัติสามประการ:

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

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

ii. ความปลอดภัย

  • เกี่ยวข้องกับความคลาดเคลื่อนของความสมบูรณ์ ความสมบูรณ์ และความรู้เป็นศูนย์

ในทางปฏิบัติคุณสมบัติความถูกต้องทั้งสามมีความคลาดเคลื่อนที่ไม่เป็นศูนย์ นี่หมายความว่าการพิสูจน์ทั้งหมดเป็นความน่าจะเป็นทางสถิติของความถูกต้อง และไม่ใช่ความแน่นอนที่แน่นอน ความคลาดเคลื่อนหมายถึงความน่าจะเป็นสูงสุดที่ยอมรับได้ซึ่งคุณสมบัติหนึ่งจะล้มเหลว แน่นอนว่าความคลาดเคลื่อนเป็นศูนย์เป็นอุดมคติ แต่ zkVM ไม่ได้บรรลุความคลาดเคลื่อนเป็นศูนย์สําหรับคุณสมบัติเหล่านี้ทั้งหมดในทางปฏิบัติ ความสมบูรณ์และความสมบูรณ์ที่สมบูรณ์แบบดูเหมือนจะเข้ากันไม่ได้กับความรวบรัด และไม่มีวิธีการที่เป็นที่รู้จักในการบรรลุความรู้เป็นศูนย์ที่สมบูรณ์แบบ วิธีทั่วไปในการวัดความปลอดภัยคือบิตของการรักษาความปลอดภัย โดยที่ค่าความคลาดเคลื่อน 1 / (2^n) เรียกว่าความปลอดภัย n บิต การรักษาความปลอดภัยที่มากขึ้นจะดีกว่า

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

iii. สมมติฐานความน่าเชื่อถือ

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

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

มีแบบจําลองสมมติฐานความน่าเชื่อถือทั่วไปสองแบบในทางปฏิบัติ

สมมติฐานความน่าเชื่อถือส่วนใหญ่ที่ซื่อสัตย์ระบุว่าจากบุคคล N บางกลุ่ม มากกว่า N/2 ของบุคคลเหล่านั้นแสดงความซื่อสัตย์ในการโต้ตอบบางอย่างกับระบบ ซึ่งมักใช้โดยบล็อกเชน

สมมติฐานความน่าเชื่อถือ "1 ใน N" ระบุว่าจากบุคคล N บางกลุ่ม บุคคลอย่างน้อยหนึ่งคนแสดงความซื่อสัตย์ในการโต้ตอบบางอย่างกับระบบ ซึ่งมักใช้โดยเครื่องมือและแอปพลิเคชันที่ใช้ MPC

เป็นที่ตกลงกันโดยทั่วไปว่าสิ่งอื่นเท่าเทียมกัน zkVM ที่ไม่มีสมมติฐานความน่าเชื่อถือมีความปลอดภัยมากกว่า zkVM ซึ่งต้องการสมมติฐานความน่าเชื่อถือ

4.2 zkVM Trilemma: ปรับสมดุลความเร็ว ประสิทธิภาพ และความกระชับใน zkVMs


ภาวะที่กลืนไม่เข้าคายไม่ออก zkVM: ความเร็ว ประสิทธิภาพ และความกระชับ

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

i. ความเร็ว

  • ผู้เสนอสามารถสร้างหลักฐานได้เร็วแค่ไหน
  • วัดในเวลานาฬิกาแขวนซึ่งเป็นเวลาที่ผ่านไปตั้งแต่ต้นจนจบการคํานวณ

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

ii. ประสิทธิภาพ

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

ผู้เสนอใช้ทรัพยากรสองประเภท: เวลาหลักและพื้นที่ ประสิทธิภาพจึงสามารถแบ่งย่อยออกเป็นประสิทธิภาพเวลาหลักและประสิทธิภาพพื้นที่\

ประสิทธิภาพเวลาหลัก: ระยะเวลาเฉลี่ยที่ prover ดําเนินการในทุกคอร์คูณด้วยจํานวนคอร์ที่เรียกใช้ prover สําหรับรุ่นแกนเดียวการบริโภคเวลาหลักและความเร็วเป็นสิ่งเดียวกัน สําหรับ prover ที่มีความสามารถแบบมัลติคอร์ที่ทํางานในโหมดมัลติคอร์บนระบบมัลติคอร์การบริโภคเวลาหลักและความเร็วไม่เหมือนกัน หากโปรแกรมใช้ 5 คอร์หรือเธรดอย่างเต็มที่เป็นเวลา 5 วินาที นั่นจะเป็นเวลาของผู้ใช้ 25 วินาทีและเวลานาฬิกาแขวน 5 วินาที

ประสิทธิภาพของพื้นที่: หมายถึงความจุที่ใช้ เช่น RAM

เวลาของผู้ใช้น่าสนใจในฐานะพร็อกซีสําหรับพลังงานที่ใช้โดยการคํานวณ ในสถานการณ์ที่มีการใช้งานคอร์ทั้งหมดอย่างเต็มที่เกือบตลอดเวลาการใช้พลังงานของ CPU ควรค่อนข้างคงที่ ในสถานการณ์นี้ เวลาของผู้ใช้ที่ใช้โดยการเรียกใช้โค้ดโหมดผู้ใช้ส่วนใหญ่ที่ผูกกับ CPU ควรเป็นสัดส่วนเชิงเส้นโดยประมาณกับจํานวนวัตต์-ชั่วโมง (เช่น พลังงาน) ที่ใช้โดยการเรียกใช้โค้ดนั้น

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

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

iii. ความรวบรัด

  • ขนาดของหลักฐานที่สร้างขึ้นและความซับซ้อนของการตรวจสอบ

ความรวบรัดเป็นส่วนประกอบของเมตริกที่แตกต่างกันสามตัว โดยความซับซ้อนของการตรวจสอบหลักฐานยังแบ่งย่อยเพิ่มเติม:

  • ขนาดหลักฐาน: ขนาดทางกายภาพของการพิสูจน์โดยทั่วไปวัดเป็นกิโลไบต์
  • เวลาตรวจสอบหลักฐาน: ระยะเวลาที่ต้องใช้ในการตรวจสอบหลักฐาน
  • พื้นที่ตรวจสอบหลักฐาน: การใช้หน่วยความจําระหว่างการตรวจสอบหลักฐาน

โดยทั่วไปการตรวจสอบจะเป็นการดําเนินการหลักเดียวดังนั้นความเร็วและประสิทธิภาพเวลาหลักโดยทั่วไปจะเท่ากันในบริบทนี้ เช่นเดียวกับความเร็วและประสิทธิภาพการดําเนินการคําจํากัดความของความกระชับจําเป็นต้องระบุชุดโปรแกรมทดสอบอินพุตทดสอบและระบบทดสอบ

ด้วยคุณสมบัติประสิทธิภาพแต่ละรายการที่กําหนดไว้ตอนนี้เราแสดงให้เห็นถึงผลกระทบที่ลดลงของการเพิ่มประสิทธิภาพคุณสมบัติหนึ่งเหนือคุณสมบัติอื่น ๆ

  • ความเร็ว: การสร้างหลักฐานที่รวดเร็วนําไปสู่ขนาดการพิสูจน์ที่ใหญ่ขึ้น แต่การตรวจสอบหลักฐานนั้นช้า มีการใช้ทรัพยากรมากขึ้นเพื่อสร้างหลักฐาน ซึ่งจะลดประสิทธิภาพลง
  • ความรวบรัด: Prover ต้องใช้เวลามากขึ้นในการบีบอัดหลักฐาน แต่การตรวจสอบหลักฐานนั้นรวดเร็ว ยิ่งหลักฐานรวบรัดมากเท่าใด ค่าใช้จ่ายในการคํานวณก็จะยิ่งสูงขึ้นเท่านั้น
  • ประสิทธิภาพ: การลดการใช้ทรัพยากรให้น้อยที่สุดจะลดความเร็วในการสร้างหลักฐานและความกระชับของการพิสูจน์

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

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

ด้านล่างนี้เราจะสรุปคุณสมบัติแต่ละรายการและข้อควรพิจารณาที่สําคัญ:


คุณสมบัติการประเมินของ zkVMs

5. อะไรต่อไป?

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

หากคุณพบว่าสิ่งนี้มีประโยชน์ โปรด เยี่ยมชมเว็บไซต์และ gitbook ของเราเพื่อเรียนรู้เพิ่มเติมเกี่ยวกับสิ่งที่เรากําลังสร้างที่ Lita

ติดตามเราบน X และ Discord เพื่อรับข่าวสารล่าสุดเพื่อให้คุณไม่พลาดซีรีส์ที่เหลือ

ปฏิเสธ:

  1. บทความนี้พิมพ์ซ้ําจาก [lita] ส่งต่อชื่อเดิม'กระบวนทัศน์ความรู้เป็นศูนย์: ตอนที่ 1 - zk-VM คืออะไร' ลิขสิทธิ์ทั้งหมดเป็นของผู้แต่งต้นฉบับ [Lita Team] หากมีการคัดค้านการพิมพ์ซ้ํานี้ โปรดติดต่อทีม Gate Learn และพวกเขาจะจัดการทันที
  2. การปฏิเสธความรับผิด: มุมมองและความคิดเห็นที่แสดงในบทความนี้เป็นของผู้เขียนเท่านั้นและไม่ถือเป็นคําแนะนําในการลงทุนใดๆ
  3. การแปลบทความเป็นภาษาอื่นดําเนินการโดยทีม Gate Learn ห้ามคัดลอก แจกจ่าย หรือลอกเลียนแบบบทความที่แปลเว้นแต่จะกล่าวถึง

zk-VM คืออะไร?

กลางJun 03, 2024
ZK เป็นสะพานเชื่อมสู่การยอมรับการเข้ารหัสอย่างแพร่หลาย ไม่ว่าจะใน Web2 หรือ Web3 สิ่งใดก็ตามที่เกี่ยวข้องกับ Zero-Knowledge Proofs (ZKP) จะสร้างมูลค่ามหาศาล ทีม Lita ได้เขียนบทความวิทยาศาสตร์พื้นฐาน แนะนําพื้นฐานของ ZK และ zkVM ให้ภาพรวมระดับสูงของกระบวนการภายใน zkVM และสุดท้ายเสนอชุดมาตรฐานสําหรับการประเมิน zkVM
zk-VM คืออะไร?

ส่งต่อชื่อเดิม 'กระบวนทัศน์ความรู้เป็นศูนย์: ตอนที่ 1 - zk-VM คืออะไร'

1. Zero Knowledge Proofs: ไพรเมอร์

Zero Knowledge Proof (ZKPs) คืออะไร?

หากคุณไม่มีความรู้มาก่อนเกี่ยวกับการพิสูจน์ความรู้เป็นศูนย์ (ZKP) วิดีโอนี้จาก Wired จะอธิบายแนวคิดในระดับความยากห้าระดับในลักษณะโต้ตอบพร้อมตัวอย่างและการสาธิตที่เข้าใจง่าย แนะนําเป็นอย่างยิ่ง

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

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

zkSNARKs: Zero Knowledge อาร์กิวเมนต์ความรู้ที่ไม่โต้ตอบอย่างรวบรัด

  • อาศัยกระบวนการตั้งค่าเริ่มต้น (เชื่อถือได้หรือไม่น่าเชื่อถือ) เพื่อสร้างพารามิเตอร์สําหรับการตรวจสอบ
  • ต้องมีการโต้ตอบอย่างน้อยหนึ่งครั้งระหว่าง prover และผู้ตรวจสอบ
  • ขนาดหลักฐานมีขนาดเล็กและง่ายต่อการตรวจสอบ
  • การพิสูจน์ตาม NARK ถูกใช้โดยโรลอัพเช่น zkSync, Scroll และ Linea

zkSTARKs: Zero Knowledge Scalable อาร์กิวเมนต์ความรู้ที่โปร่งใส

  • ไม่จําเป็นต้องตั้งค่าที่เชื่อถือได้
  • นําเสนอความโปร่งใสสูงโดยใช้การสุ่มที่ตรวจสอบได้แบบสาธารณะเพื่อสร้างระบบที่ตรวจสอบได้โดยไม่น่าเชื่อถือ เช่น การสร้างพารามิเตอร์สุ่มที่พิสูจน์ได้สําหรับการพิสูจน์และตรวจสอบ
  • ปรับขนาดได้สูงเนื่องจากสามารถสร้างและตรวจสอบการพิสูจน์ได้อย่างรวดเร็ว (ไม่เสมอไป) แม้ว่าขนาดของพยานพื้นฐาน (ข้อมูล) จะมีขนาดใหญ่
  • ไม่จําเป็นต้องมีปฏิสัมพันธ์ระหว่าง prover และผู้ตรวจสอบ
  • มีค่าใช้จ่ายที่ STARK สร้างหลักฐานที่ใหญ่กว่า ซึ่งอาจตรวจสอบได้ยากกว่า SNARK
  • การพิสูจน์นั้นตรวจสอบได้ยากกว่าการพิสูจน์ zkSNARK บางอย่าง แต่ไม่ยากเท่าที่อื่นในการตรวจสอบ
  • Starknet ใช้ STARK เช่นเดียวกับ zkVM เช่น Lita, Risc Zero และ Succinct Labs

(หมายเหตุ: บริดจ์ของ Succinct ใช้ SNARK แต่ SP1 เป็นโปรโตคอลที่ใช้ STARK)

เป็นที่น่าสังเกตว่า STARK ทั้งหมดเป็น SNARK แต่ไม่ใช่ SNARK ทั้งหมดที่เป็น STARK

เพื่อความเข้าใจทั่วไปที่ดีขึ้นเกี่ยวกับ SNARK และ STARK เราขอแนะนําให้อ่านบทความ>ชุด @krzhang/privacy-in-cryptocurrencies-zero-knowledge-and-zk-snarks-1-2-68ce1838fd9c" ที่เขียนโดย Yan Zhang และ Yi Sun จาก Axiom และชุดบทความนี้ใน github ของ Ventali Tan

2. zkVM คืออะไร?

เครื่องเสมือน (VM) เป็นโปรแกรมที่เรียกใช้โปรแกรม ในบริบท zkVM เป็นคอมพิวเตอร์เสมือนที่นํามาใช้เป็นระบบสําหรับสร้างหลักฐานความรู้เป็นศูนย์หรือวงจรสากลหรือเครื่องมือสําหรับสร้าง ZKP สําหรับโปรแกรมหรือการคํานวณใด ๆ

zkVMs ขจัดความจําเป็นในการเรียนรู้คณิตศาสตร์และการเข้ารหัสที่ซับซ้อนสําหรับการออกแบบและการเข้ารหัส ZK และช่วยให้นักพัฒนาสามารถรันโปรแกรมที่เขียนในภาษาที่ต้องการและสร้าง ZKP ทําให้ง่ายต่อการรวมและโต้ตอบกับความรู้เป็นศูนย์ การอ้างอิงส่วนใหญ่ถึง zkVM โดยปริยายรวมถึงชุดเครื่องมือคอมไพเลอร์และระบบพิสูจน์ที่ผนวกเข้ากับเครื่องเสมือนที่รันโปรแกรม ไม่ใช่แค่เครื่องเสมือนเท่านั้น ด้านล่างนี้เราสรุปองค์ประกอบหลักของ zkVM และหน้าที่:

ส่วนประกอบหลักของ zkVM

การออกแบบและการใช้งานของแต่ละองค์ประกอบถูกควบคุมโดยการเลือกการพิสูจน์ (SNARK หรือ STARK) และสถาปัตยกรรมชุดคําสั่ง (ISA) ของ zkVM ตามเนื้อผ้า ISA จะระบุสิ่งที่ CPU สามารถทําได้ (ประเภทข้อมูล รีจิสเตอร์ หน่วยความจํา ฯลฯ) และลําดับของการกระทําที่ CPU ดําเนินการเมื่อรันโปรแกรม ในบริบท ISA จะกําหนดรหัสเครื่องที่สามารถตีความและเรียกใช้งานได้โดย VM การเลือก ISA สามารถให้ความแตกต่างอย่างสิ้นเชิงในการเข้าถึงและการใช้งานของ zkVM ตลอดจนความเร็วและประสิทธิภาพของกระบวนการสร้างหลักฐาน และเป็นรากฐานในการสร้าง zkVM ใดๆ

ด้านล่างนี้คือตัวอย่างบางส่วนของ zkVM และส่วนประกอบสําหรับการอ้างอิงของคุณ


zkVM และส่วนประกอบ

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

3. โฟลว์กระบวนการ zkVM ที่เป็นนามธรรม

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


โฟลว์ทั่วไปสําหรับ zkVM

โฟลว์กระบวนการของ zkVM โดยทั่วไปมีดังนี้:

  • คอมไพเลอร์ Stage
  1. คอมไพเลอร์จะรวบรวมโปรแกรมที่เขียนในภาษาทั่วไป (C, C++, Rust, Solidity) ลงในรหัสเครื่องก่อน รูปแบบของรหัสเครื่องถูกกําหนดโดยตัวเลือกของ ISA
  • เวที VM
  1. VM รันโค้ดเครื่องและสร้างการติดตามการดําเนินการ ซึ่งเป็นชุดของขั้นตอนของโปรแกรมพื้นฐาน รูปแบบของสิ่งนี้ถูกกําหนดไว้ล่วงหน้าโดยการเลือกเลขคณิตเช่นเดียวกับชุดของข้อ จํากัด พหุนาม รูปแบบเลขคณิตทั่วไป ได้แก่ R1CS เช่นเดียวกับใน Groth16, PLONKish arithmetization เช่นเดียวกับใน halo2 และ AIR เช่นเดียวกับใน plonky2 และ plonky3
  • เวที Prover
  1. ผู้เสนอรับร่องรอยและแสดงเป็นชุดของพหุนามที่ผูกมัดด้วยชุดของข้อจํากัด โดยพื้นฐานแล้วจะแปลการคํานวณเป็นพีชคณิตโดยการทําแผนที่ข้อเท็จจริงทางคณิตศาสตร์

  2. ผู้เสนอให้คํามั่นสัญญากับพหุนามเหล่านี้โดยใช้ Polynomial Commitment Scheme (PCS) รูปแบบความมุ่งมั่นเป็นโปรโตคอลที่ช่วยให้ prover สามารถสร้างลายนิ้วมือของข้อมูลบางอย่าง X ซึ่งเรียกว่าความมุ่งมั่นต่อ X และพิสูจน์ข้อเท็จจริงเกี่ยวกับ X ในภายหลังโดยไม่เปิดเผย X โดยใช้ความมุ่งมั่นต่อ X PCS คือลายนิ้วมือ ข้อ จํากัด ในการคํานวณแบบรวบรัด "ประมวลผลล่วงหน้า" สิ่งนี้ช่วยให้ผู้เสนอสามารถพิสูจน์ข้อเท็จจริงเกี่ยวกับการคํานวณซึ่งตอนนี้แสดงในสมการพหุนามโดยใช้ค่าสุ่มที่เสนอโดยผู้ตรวจสอบในขั้นตอนต่อไปนี้

  3. ผู้เสนอใช้พหุนามแบบโต้ตอบ Oracle Proof (PIOP) เพื่อแสดงให้เห็นว่าพหุนามที่มุ่งมั่นแสดงถึงร่องรอยการดําเนินการที่เป็นไปตามข้อจํากัดที่กําหนด PIOP เป็นโปรโตคอลการพิสูจน์แบบโต้ตอบที่ประกอบด้วยชุดของรอบที่ prover ส่งคํามั่นสัญญาไปยังพหุนามผู้ตรวจสอบตอบสนองด้วยค่าฟิลด์แบบสุ่มและผู้เสนอญัตติให้การประเมินพหุนามที่ค่าสุ่มเหล่านี้คล้ายกับ "การแก้" สมการพหุนามโดยใช้ค่าสุ่มเพื่อโน้มน้าวผู้ตรวจสอบ

  4. การใช้ฮิวริสติก Fiat-Shamir; ผู้เสนอจะเรียกใช้ PIOP ในโหมดไม่โต้ตอบ ซึ่งพฤติกรรมของผู้ตรวจสอบจํากัดอยู่ที่การส่งคะแนนท้าทายแบบสุ่มหลอก ในการเข้ารหัส ฮิวริสติก Fiat–Shamir จะแปลงหลักฐานความรู้แบบโต้ตอบเป็นลายเซ็นดิจิทัลสําหรับการตรวจสอบ ขั้นตอนนี้เข้ารหัสหลักฐานและทําให้ไม่มีความรู้

  5. ผู้เสนอต้องโน้มน้าวผู้ตรวจสอบว่าการประเมินพหุนามที่อ้างสิทธิ์นั้นถูกต้องในส่วนที่เกี่ยวกับภาระผูกพันพหุนามที่ส่งไปยังผู้ตรวจสอบ ในการทําเช่นนี้ prover จะสร้างหลักฐาน "การประเมิน" หรือ "การเปิด" ซึ่งจัดทําโดยรูปแบบความมุ่งมั่นพหุนาม (ลายนิ้วมือ)

  • ขั้นตอนการตรวจสอบ
  1. ผู้ตรวจสอบจะตรวจสอบหลักฐานโดยปฏิบัติตามโปรโตคอลการตรวจสอบของระบบพิสูจน์โดยใช้ข้อ จํากัด หรือข้อผูกมัด ผู้ตรวจสอบยอมรับหรือปฏิเสธผลลัพธ์ตามความถูกต้องของหลักฐาน

โดยสรุปการพิสูจน์ zkVM พิสูจน์สําหรับโปรแกรมที่กําหนดผลลัพธ์ที่กําหนดและเงื่อนไขเริ่มต้นที่กําหนดว่ามีอินพุตบางอย่างที่ทําให้โปรแกรมสร้างผลลัพธ์ที่กําหนดเมื่อดําเนินการจากเงื่อนไขเริ่มต้นที่กําหนด เราสามารถรวมคําสั่งนี้กับโฟลว์กระบวนการเพื่อให้ได้คําอธิบายต่อไปนี้ของ zkVM

การพิสูจน์ zkVM พิสูจน์สําหรับโปรแกรม VM ที่กําหนดและเอาต์พุตที่กําหนดว่ามีอินพุตบางอย่างที่ทําให้โปรแกรมที่กําหนดสร้างเอาต์พุตที่กําหนดเมื่อดําเนินการบน VM

4. การประเมิน zkVMs

เกณฑ์ที่เราควรประเมิน zkVM คืออะไร? กล่าวอีกนัยหนึ่งเมื่อใดที่เราควรพูดว่า zkVM หนึ่งดีกว่าอีกอันหนึ่ง ความจริงคําตอบขึ้นอยู่กับกรณีการใช้งาน

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

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

เราขอเสนอว่า zkVMs ควรได้รับการประเมินตามเกณฑ์ต่อไปนี้โดยแบ่งออกเป็นสองชุดย่อย:


เกณฑ์หลักในการประเมิน zk-VMs

พื้นฐาน: วัดความน่าเชื่อถือของ zkVM

  • ความถูกต้อง
  • ความปลอดภัย
  • สมมติฐานความน่าเชื่อถือ

ประสิทธิภาพ: วัดความสามารถของ zkVM

  • ประสิทธิภาพ
  • ความเร็ว
  • ความรวบรัด

4.1 พื้นฐาน: สมมติฐานความถูกต้อง ความปลอดภัย และความน่าเชื่อถือ

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

หากไม่มีคุณสมบัติเหล่านี้ zkVM อาจแย่กว่าไร้ประโยชน์สําหรับแอปพลิเคชัน เนื่องจากอาจล้มเหลวในการทํางานตามที่ระบุและทําให้ผู้ใช้ถูกแฮ็กและหาประโยชน์

i. ความถูกต้อง

  • VM ต้องดําเนินการคํานวณตามที่ตั้งใจไว้
  • ระบบพิสูจน์ต้องเป็นไปตามคุณสมบัติด้านความปลอดภัยที่อ้างสิทธิ์

ความถูกต้องประกอบด้วยคุณสมบัติสามประการ:

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

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

ii. ความปลอดภัย

  • เกี่ยวข้องกับความคลาดเคลื่อนของความสมบูรณ์ ความสมบูรณ์ และความรู้เป็นศูนย์

ในทางปฏิบัติคุณสมบัติความถูกต้องทั้งสามมีความคลาดเคลื่อนที่ไม่เป็นศูนย์ นี่หมายความว่าการพิสูจน์ทั้งหมดเป็นความน่าจะเป็นทางสถิติของความถูกต้อง และไม่ใช่ความแน่นอนที่แน่นอน ความคลาดเคลื่อนหมายถึงความน่าจะเป็นสูงสุดที่ยอมรับได้ซึ่งคุณสมบัติหนึ่งจะล้มเหลว แน่นอนว่าความคลาดเคลื่อนเป็นศูนย์เป็นอุดมคติ แต่ zkVM ไม่ได้บรรลุความคลาดเคลื่อนเป็นศูนย์สําหรับคุณสมบัติเหล่านี้ทั้งหมดในทางปฏิบัติ ความสมบูรณ์และความสมบูรณ์ที่สมบูรณ์แบบดูเหมือนจะเข้ากันไม่ได้กับความรวบรัด และไม่มีวิธีการที่เป็นที่รู้จักในการบรรลุความรู้เป็นศูนย์ที่สมบูรณ์แบบ วิธีทั่วไปในการวัดความปลอดภัยคือบิตของการรักษาความปลอดภัย โดยที่ค่าความคลาดเคลื่อน 1 / (2^n) เรียกว่าความปลอดภัย n บิต การรักษาความปลอดภัยที่มากขึ้นจะดีกว่า

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

iii. สมมติฐานความน่าเชื่อถือ

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

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

มีแบบจําลองสมมติฐานความน่าเชื่อถือทั่วไปสองแบบในทางปฏิบัติ

สมมติฐานความน่าเชื่อถือส่วนใหญ่ที่ซื่อสัตย์ระบุว่าจากบุคคล N บางกลุ่ม มากกว่า N/2 ของบุคคลเหล่านั้นแสดงความซื่อสัตย์ในการโต้ตอบบางอย่างกับระบบ ซึ่งมักใช้โดยบล็อกเชน

สมมติฐานความน่าเชื่อถือ "1 ใน N" ระบุว่าจากบุคคล N บางกลุ่ม บุคคลอย่างน้อยหนึ่งคนแสดงความซื่อสัตย์ในการโต้ตอบบางอย่างกับระบบ ซึ่งมักใช้โดยเครื่องมือและแอปพลิเคชันที่ใช้ MPC

เป็นที่ตกลงกันโดยทั่วไปว่าสิ่งอื่นเท่าเทียมกัน zkVM ที่ไม่มีสมมติฐานความน่าเชื่อถือมีความปลอดภัยมากกว่า zkVM ซึ่งต้องการสมมติฐานความน่าเชื่อถือ

4.2 zkVM Trilemma: ปรับสมดุลความเร็ว ประสิทธิภาพ และความกระชับใน zkVMs


ภาวะที่กลืนไม่เข้าคายไม่ออก zkVM: ความเร็ว ประสิทธิภาพ และความกระชับ

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

i. ความเร็ว

  • ผู้เสนอสามารถสร้างหลักฐานได้เร็วแค่ไหน
  • วัดในเวลานาฬิกาแขวนซึ่งเป็นเวลาที่ผ่านไปตั้งแต่ต้นจนจบการคํานวณ

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

ii. ประสิทธิภาพ

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

ผู้เสนอใช้ทรัพยากรสองประเภท: เวลาหลักและพื้นที่ ประสิทธิภาพจึงสามารถแบ่งย่อยออกเป็นประสิทธิภาพเวลาหลักและประสิทธิภาพพื้นที่\

ประสิทธิภาพเวลาหลัก: ระยะเวลาเฉลี่ยที่ prover ดําเนินการในทุกคอร์คูณด้วยจํานวนคอร์ที่เรียกใช้ prover สําหรับรุ่นแกนเดียวการบริโภคเวลาหลักและความเร็วเป็นสิ่งเดียวกัน สําหรับ prover ที่มีความสามารถแบบมัลติคอร์ที่ทํางานในโหมดมัลติคอร์บนระบบมัลติคอร์การบริโภคเวลาหลักและความเร็วไม่เหมือนกัน หากโปรแกรมใช้ 5 คอร์หรือเธรดอย่างเต็มที่เป็นเวลา 5 วินาที นั่นจะเป็นเวลาของผู้ใช้ 25 วินาทีและเวลานาฬิกาแขวน 5 วินาที

ประสิทธิภาพของพื้นที่: หมายถึงความจุที่ใช้ เช่น RAM

เวลาของผู้ใช้น่าสนใจในฐานะพร็อกซีสําหรับพลังงานที่ใช้โดยการคํานวณ ในสถานการณ์ที่มีการใช้งานคอร์ทั้งหมดอย่างเต็มที่เกือบตลอดเวลาการใช้พลังงานของ CPU ควรค่อนข้างคงที่ ในสถานการณ์นี้ เวลาของผู้ใช้ที่ใช้โดยการเรียกใช้โค้ดโหมดผู้ใช้ส่วนใหญ่ที่ผูกกับ CPU ควรเป็นสัดส่วนเชิงเส้นโดยประมาณกับจํานวนวัตต์-ชั่วโมง (เช่น พลังงาน) ที่ใช้โดยการเรียกใช้โค้ดนั้น

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

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

iii. ความรวบรัด

  • ขนาดของหลักฐานที่สร้างขึ้นและความซับซ้อนของการตรวจสอบ

ความรวบรัดเป็นส่วนประกอบของเมตริกที่แตกต่างกันสามตัว โดยความซับซ้อนของการตรวจสอบหลักฐานยังแบ่งย่อยเพิ่มเติม:

  • ขนาดหลักฐาน: ขนาดทางกายภาพของการพิสูจน์โดยทั่วไปวัดเป็นกิโลไบต์
  • เวลาตรวจสอบหลักฐาน: ระยะเวลาที่ต้องใช้ในการตรวจสอบหลักฐาน
  • พื้นที่ตรวจสอบหลักฐาน: การใช้หน่วยความจําระหว่างการตรวจสอบหลักฐาน

โดยทั่วไปการตรวจสอบจะเป็นการดําเนินการหลักเดียวดังนั้นความเร็วและประสิทธิภาพเวลาหลักโดยทั่วไปจะเท่ากันในบริบทนี้ เช่นเดียวกับความเร็วและประสิทธิภาพการดําเนินการคําจํากัดความของความกระชับจําเป็นต้องระบุชุดโปรแกรมทดสอบอินพุตทดสอบและระบบทดสอบ

ด้วยคุณสมบัติประสิทธิภาพแต่ละรายการที่กําหนดไว้ตอนนี้เราแสดงให้เห็นถึงผลกระทบที่ลดลงของการเพิ่มประสิทธิภาพคุณสมบัติหนึ่งเหนือคุณสมบัติอื่น ๆ

  • ความเร็ว: การสร้างหลักฐานที่รวดเร็วนําไปสู่ขนาดการพิสูจน์ที่ใหญ่ขึ้น แต่การตรวจสอบหลักฐานนั้นช้า มีการใช้ทรัพยากรมากขึ้นเพื่อสร้างหลักฐาน ซึ่งจะลดประสิทธิภาพลง
  • ความรวบรัด: Prover ต้องใช้เวลามากขึ้นในการบีบอัดหลักฐาน แต่การตรวจสอบหลักฐานนั้นรวดเร็ว ยิ่งหลักฐานรวบรัดมากเท่าใด ค่าใช้จ่ายในการคํานวณก็จะยิ่งสูงขึ้นเท่านั้น
  • ประสิทธิภาพ: การลดการใช้ทรัพยากรให้น้อยที่สุดจะลดความเร็วในการสร้างหลักฐานและความกระชับของการพิสูจน์

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

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

ด้านล่างนี้เราจะสรุปคุณสมบัติแต่ละรายการและข้อควรพิจารณาที่สําคัญ:


คุณสมบัติการประเมินของ zkVMs

5. อะไรต่อไป?

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

หากคุณพบว่าสิ่งนี้มีประโยชน์ โปรด เยี่ยมชมเว็บไซต์และ gitbook ของเราเพื่อเรียนรู้เพิ่มเติมเกี่ยวกับสิ่งที่เรากําลังสร้างที่ Lita

ติดตามเราบน X และ Discord เพื่อรับข่าวสารล่าสุดเพื่อให้คุณไม่พลาดซีรีส์ที่เหลือ

ปฏิเสธ:

  1. บทความนี้พิมพ์ซ้ําจาก [lita] ส่งต่อชื่อเดิม'กระบวนทัศน์ความรู้เป็นศูนย์: ตอนที่ 1 - zk-VM คืออะไร' ลิขสิทธิ์ทั้งหมดเป็นของผู้แต่งต้นฉบับ [Lita Team] หากมีการคัดค้านการพิมพ์ซ้ํานี้ โปรดติดต่อทีม Gate Learn และพวกเขาจะจัดการทันที
  2. การปฏิเสธความรับผิด: มุมมองและความคิดเห็นที่แสดงในบทความนี้เป็นของผู้เขียนเท่านั้นและไม่ถือเป็นคําแนะนําในการลงทุนใดๆ
  3. การแปลบทความเป็นภาษาอื่นดําเนินการโดยทีม Gate Learn ห้ามคัดลอก แจกจ่าย หรือลอกเลียนแบบบทความที่แปลเว้นแต่จะกล่าวถึง
เริ่มตอนนี้
สมัครและรับรางวัล
$100