ส่งต่อชื่อเดิม 'กระบวนทัศน์ความรู้เป็นศูนย์: ตอนที่ 1 - zk-VM คืออะไร'
Zero Knowledge Proof (ZKPs) คืออะไร?
หากคุณไม่มีความรู้มาก่อนเกี่ยวกับการพิสูจน์ความรู้เป็นศูนย์ (ZKP) วิดีโอนี้จาก Wired จะอธิบายแนวคิดในระดับความยากห้าระดับในลักษณะโต้ตอบพร้อมตัวอย่างและการสาธิตที่เข้าใจง่าย แนะนําเป็นอย่างยิ่ง
ในแง่ที่ง่ายที่สุด ZKP ช่วยให้ฝ่ายหนึ่ง (พิสูจน์) สามารถพิสูจน์ให้อีกฝ่ายหนึ่ง (ผู้ตรวจสอบ) เห็นว่าพวกเขารู้บางอย่างโดยไม่เปิดเผยว่าสิ่งนั้นคืออะไรหรือข้อมูลเพิ่มเติมใด ๆ โดยเฉพาะอย่างยิ่ง ZKP พิสูจน์ความรู้เกี่ยวกับชิ้นส่วนของข้อมูลหรือความรู้เกี่ยวกับผลลัพธ์ของการคํานวณโดยไม่เปิดเผยข้อมูลหรืออินพุต กระบวนการสร้างการพิสูจน์ความรู้เป็นศูนย์เกี่ยวข้องกับชุดของแบบจําลองทางคณิตศาสตร์เพื่อเปลี่ยนผลลัพธ์ของการคํานวณให้เป็นข้อมูลที่ไม่มีความหมายซึ่งพิสูจน์ว่าการดําเนินการโค้ดประสบความสําเร็จซึ่งสามารถตรวจสอบได้ในภายหลัง
ในบางกรณี การตรวจสอบการพิสูจน์จะใช้เวลาน้อยกว่า ซึ่งสร้างขึ้นหลังจากการแปลงพีชคณิตและการเข้ารหัสหลายรอบ มากกว่าที่จะใช้ในการคํานวณ การผสมผสานที่เป็นเอกลักษณ์ของการรักษาความปลอดภัยและความสามารถในการปรับขนาดนี้เป็นสิ่งที่ทําให้การเข้ารหัสที่ไม่มีความรู้เป็นเครื่องมือที่ทรงพลัง
zkSNARKs: Zero Knowledge อาร์กิวเมนต์ความรู้ที่ไม่โต้ตอบอย่างรวบรัด
zkSTARKs: Zero Knowledge Scalable อาร์กิวเมนต์ความรู้ที่โปร่งใส
(หมายเหตุ: บริดจ์ของ 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
เครื่องเสมือน (VM) เป็นโปรแกรมที่เรียกใช้โปรแกรม ในบริบท zkVM เป็นคอมพิวเตอร์เสมือนที่นํามาใช้เป็นระบบสําหรับสร้างหลักฐานความรู้เป็นศูนย์หรือวงจรสากลหรือเครื่องมือสําหรับสร้าง ZKP สําหรับโปรแกรมหรือการคํานวณใด ๆ
zkVMs ขจัดความจําเป็นในการเรียนรู้คณิตศาสตร์และการเข้ารหัสที่ซับซ้อนสําหรับการออกแบบและการเข้ารหัส ZK และช่วยให้นักพัฒนาสามารถรันโปรแกรมที่เขียนในภาษาที่ต้องการและสร้าง ZKP ทําให้ง่ายต่อการรวมและโต้ตอบกับความรู้เป็นศูนย์ การอ้างอิงส่วนใหญ่ถึง zkVM โดยปริยายรวมถึงชุดเครื่องมือคอมไพเลอร์และระบบพิสูจน์ที่ผนวกเข้ากับเครื่องเสมือนที่รันโปรแกรม ไม่ใช่แค่เครื่องเสมือนเท่านั้น ด้านล่างนี้เราสรุปองค์ประกอบหลักของ zkVM และหน้าที่:
ส่วนประกอบหลักของ zkVM
การออกแบบและการใช้งานของแต่ละองค์ประกอบถูกควบคุมโดยการเลือกการพิสูจน์ (SNARK หรือ STARK) และสถาปัตยกรรมชุดคําสั่ง (ISA) ของ zkVM ตามเนื้อผ้า ISA จะระบุสิ่งที่ CPU สามารถทําได้ (ประเภทข้อมูล รีจิสเตอร์ หน่วยความจํา ฯลฯ) และลําดับของการกระทําที่ CPU ดําเนินการเมื่อรันโปรแกรม ในบริบท ISA จะกําหนดรหัสเครื่องที่สามารถตีความและเรียกใช้งานได้โดย VM การเลือก ISA สามารถให้ความแตกต่างอย่างสิ้นเชิงในการเข้าถึงและการใช้งานของ zkVM ตลอดจนความเร็วและประสิทธิภาพของกระบวนการสร้างหลักฐาน และเป็นรากฐานในการสร้าง zkVM ใดๆ
ด้านล่างนี้คือตัวอย่างบางส่วนของ zkVM และส่วนประกอบสําหรับการอ้างอิงของคุณ
zkVM และส่วนประกอบ
สําหรับตอนนี้ เราจะมุ่งเน้นไปที่ปฏิสัมพันธ์ระหว่างแต่ละองค์ประกอบในระดับสูงเพื่อให้กรอบสําหรับการทําความเข้าใจกระบวนการทางพีชคณิตและการเข้ารหัส ตลอดจนการแลกเปลี่ยนการออกแบบของ zkVM ในบทความถัดไป
ไดอะแกรมต่อไปนี้เป็นผังงานกระบวนการทั่วไปที่เป็นนามธรรมของ zkVM แยกและจัดหมวดหมู่ระหว่างรูปแบบ (อินพุต / เอาต์พุต) ของโปรแกรมขณะที่เคลื่อนที่ผ่านส่วนประกอบของ zkVM เราจะตรวจสอบแต่ละกระบวนการในเชิงลึกในบทความต่อ ๆ ไป
โฟลว์ทั่วไปสําหรับ zkVM
โฟลว์กระบวนการของ zkVM โดยทั่วไปมีดังนี้:
ผู้เสนอรับร่องรอยและแสดงเป็นชุดของพหุนามที่ผูกมัดด้วยชุดของข้อจํากัด โดยพื้นฐานแล้วจะแปลการคํานวณเป็นพีชคณิตโดยการทําแผนที่ข้อเท็จจริงทางคณิตศาสตร์
ผู้เสนอให้คํามั่นสัญญากับพหุนามเหล่านี้โดยใช้ Polynomial Commitment Scheme (PCS) รูปแบบความมุ่งมั่นเป็นโปรโตคอลที่ช่วยให้ prover สามารถสร้างลายนิ้วมือของข้อมูลบางอย่าง X ซึ่งเรียกว่าความมุ่งมั่นต่อ X และพิสูจน์ข้อเท็จจริงเกี่ยวกับ X ในภายหลังโดยไม่เปิดเผย X โดยใช้ความมุ่งมั่นต่อ X PCS คือลายนิ้วมือ ข้อ จํากัด ในการคํานวณแบบรวบรัด "ประมวลผลล่วงหน้า" สิ่งนี้ช่วยให้ผู้เสนอสามารถพิสูจน์ข้อเท็จจริงเกี่ยวกับการคํานวณซึ่งตอนนี้แสดงในสมการพหุนามโดยใช้ค่าสุ่มที่เสนอโดยผู้ตรวจสอบในขั้นตอนต่อไปนี้
ผู้เสนอใช้พหุนามแบบโต้ตอบ Oracle Proof (PIOP) เพื่อแสดงให้เห็นว่าพหุนามที่มุ่งมั่นแสดงถึงร่องรอยการดําเนินการที่เป็นไปตามข้อจํากัดที่กําหนด PIOP เป็นโปรโตคอลการพิสูจน์แบบโต้ตอบที่ประกอบด้วยชุดของรอบที่ prover ส่งคํามั่นสัญญาไปยังพหุนามผู้ตรวจสอบตอบสนองด้วยค่าฟิลด์แบบสุ่มและผู้เสนอญัตติให้การประเมินพหุนามที่ค่าสุ่มเหล่านี้คล้ายกับ "การแก้" สมการพหุนามโดยใช้ค่าสุ่มเพื่อโน้มน้าวผู้ตรวจสอบ
การใช้ฮิวริสติก Fiat-Shamir; ผู้เสนอจะเรียกใช้ PIOP ในโหมดไม่โต้ตอบ ซึ่งพฤติกรรมของผู้ตรวจสอบจํากัดอยู่ที่การส่งคะแนนท้าทายแบบสุ่มหลอก ในการเข้ารหัส ฮิวริสติก Fiat–Shamir จะแปลงหลักฐานความรู้แบบโต้ตอบเป็นลายเซ็นดิจิทัลสําหรับการตรวจสอบ ขั้นตอนนี้เข้ารหัสหลักฐานและทําให้ไม่มีความรู้
ผู้เสนอต้องโน้มน้าวผู้ตรวจสอบว่าการประเมินพหุนามที่อ้างสิทธิ์นั้นถูกต้องในส่วนที่เกี่ยวกับภาระผูกพันพหุนามที่ส่งไปยังผู้ตรวจสอบ ในการทําเช่นนี้ prover จะสร้างหลักฐาน "การประเมิน" หรือ "การเปิด" ซึ่งจัดทําโดยรูปแบบความมุ่งมั่นพหุนาม (ลายนิ้วมือ)
โดยสรุปการพิสูจน์ zkVM พิสูจน์สําหรับโปรแกรมที่กําหนดผลลัพธ์ที่กําหนดและเงื่อนไขเริ่มต้นที่กําหนดว่ามีอินพุตบางอย่างที่ทําให้โปรแกรมสร้างผลลัพธ์ที่กําหนดเมื่อดําเนินการจากเงื่อนไขเริ่มต้นที่กําหนด เราสามารถรวมคําสั่งนี้กับโฟลว์กระบวนการเพื่อให้ได้คําอธิบายต่อไปนี้ของ zkVM
การพิสูจน์ zkVM พิสูจน์สําหรับโปรแกรม VM ที่กําหนดและเอาต์พุตที่กําหนดว่ามีอินพุตบางอย่างที่ทําให้โปรแกรมที่กําหนดสร้างเอาต์พุตที่กําหนดเมื่อดําเนินการบน VM
เกณฑ์ที่เราควรประเมิน zkVM คืออะไร? กล่าวอีกนัยหนึ่งเมื่อใดที่เราควรพูดว่า zkVM หนึ่งดีกว่าอีกอันหนึ่ง ความจริงคําตอบขึ้นอยู่กับกรณีการใช้งาน
การวิจัยตลาดของ Lita ชี้ให้เห็นว่าสําหรับกรณีการใช้งานเชิงพาณิชย์ส่วนใหญ่คุณสมบัติที่สําคัญที่สุดนอกเหนือจากความเร็วประสิทธิภาพและความกระชับคือความเร็วหรือประสิทธิภาพของเวลาหลักขึ้นอยู่กับการใช้งาน แอปพลิเคชั่นบางตัวมีความอ่อนไหวต่อราคาและต้องการเพิ่มประสิทธิภาพสําหรับการใช้พลังงานต่ําและการใช้เงินทุนต่ําในการพิสูจน์ สําหรับสิ่งเหล่านี้ ประสิทธิภาพเวลาหลักน่าจะเป็นตัวชี้วัดที่สําคัญที่สุดในการเพิ่มประสิทธิภาพ แอปพลิเคชันอื่นๆ โดยเฉพาะแอปพลิเคชันที่เกี่ยวข้องกับการเงินหรือการซื้อขาย มีความไวต่อเวลาแฝงและต้องการเพิ่มประสิทธิภาพเพื่อความเร็ว
การเปรียบเทียบประสิทธิภาพที่เผยแพร่ส่วนใหญ่มุ่งเน้นไปที่ความเร็วโดยเฉพาะ ซึ่งมีความสําคัญแต่ไม่ใช่การวัดประสิทธิภาพแบบองค์รวม นอกจากนี้ยังมีคุณสมบัติที่สําคัญบางประการที่วัดความน่าเชื่อถือของ zkVM ซึ่งส่วนใหญ่ไม่ได้มาตรฐานความพร้อมในการผลิต แม้แต่ผู้ดํารงตําแหน่งผู้นําตลาด
เราขอเสนอว่า zkVMs ควรได้รับการประเมินตามเกณฑ์ต่อไปนี้โดยแบ่งออกเป็นสองชุดย่อย:
เกณฑ์หลักในการประเมิน zk-VMs
พื้นฐาน: วัดความน่าเชื่อถือของ zkVM
ประสิทธิภาพ: วัดความสามารถของ zkVM
4.1 พื้นฐาน: สมมติฐานความถูกต้อง ความปลอดภัย และความน่าเชื่อถือ
เมื่อประเมิน zkVM สําหรับแอปพลิเคชันที่สําคัญต่อภารกิจ ควรพิจารณาความถูกต้องและความปลอดภัยเป็นพื้นฐาน ต้องมีเหตุผลเพียงพอที่จะมั่นใจในความถูกต้องและความปลอดภัยที่อ้างสิทธิ์อย่างเพียงพอ นอกจากนี้ สมมติฐานความน่าเชื่อถือจะต้องอ่อนแอเพียงพอสําหรับแอปพลิเคชัน
หากไม่มีคุณสมบัติเหล่านี้ zkVM อาจแย่กว่าไร้ประโยชน์สําหรับแอปพลิเคชัน เนื่องจากอาจล้มเหลวในการทํางานตามที่ระบุและทําให้ผู้ใช้ถูกแฮ็กและหาประโยชน์
i. ความถูกต้อง
ความถูกต้องประกอบด้วยคุณสมบัติสามประการ:
คุณสามารถมีความสมบูรณ์ได้โดยปราศจากความสมบูรณ์ หากระบบพิสูจน์พิสูจน์ทุกอย่างรวมถึงความเท็จเห็นได้ชัดว่าสมบูรณ์ แต่ฟังไม่ขึ้น ในทางกลับกันคุณสามารถมีความสมบูรณ์ได้โดยไม่มีความสมบูรณ์ หากระบบพิสูจน์พิสูจน์ว่ามีโปรแกรมอยู่ แต่ไม่สามารถพิสูจน์การคํานวณได้เห็นได้ชัดว่ามันเป็นเสียง (ท้ายที่สุดมันไม่เคยพิสูจน์ความเท็จใด ๆ ) แต่ไม่สมบูรณ์
ii. ความปลอดภัย
ในทางปฏิบัติคุณสมบัติความถูกต้องทั้งสามมีความคลาดเคลื่อนที่ไม่เป็นศูนย์ นี่หมายความว่าการพิสูจน์ทั้งหมดเป็นความน่าจะเป็นทางสถิติของความถูกต้อง และไม่ใช่ความแน่นอนที่แน่นอน ความคลาดเคลื่อนหมายถึงความน่าจะเป็นสูงสุดที่ยอมรับได้ซึ่งคุณสมบัติหนึ่งจะล้มเหลว แน่นอนว่าความคลาดเคลื่อนเป็นศูนย์เป็นอุดมคติ แต่ zkVM ไม่ได้บรรลุความคลาดเคลื่อนเป็นศูนย์สําหรับคุณสมบัติเหล่านี้ทั้งหมดในทางปฏิบัติ ความสมบูรณ์และความสมบูรณ์ที่สมบูรณ์แบบดูเหมือนจะเข้ากันไม่ได้กับความรวบรัด และไม่มีวิธีการที่เป็นที่รู้จักในการบรรลุความรู้เป็นศูนย์ที่สมบูรณ์แบบ วิธีทั่วไปในการวัดความปลอดภัยคือบิตของการรักษาความปลอดภัย โดยที่ค่าความคลาดเคลื่อน 1 / (2^n) เรียกว่าความปลอดภัย n บิต การรักษาความปลอดภัยที่มากขึ้นจะดีกว่า
หาก zkVM ถูกต้องอย่างสมบูรณ์นั่นไม่ได้หมายความว่าเชื่อถือได้เสมอไป ความถูกต้องหมายความว่า zkVM มีคุณสมบัติด้านความปลอดภัยตรงตามความคลาดเคลื่อนที่อ้างสิทธิ์เท่านั้น ไม่ได้หมายความว่าความคลาดเคลื่อนที่อ้างสิทธิ์นั้นต่ําพอที่จะพร้อมสําหรับตลาด นอกจากนี้ หาก zkVM มีความปลอดภัยเพียงพอ นั่นไม่ได้หมายความว่าถูกต้อง ความปลอดภัยหมายถึงความคลาดเคลื่อนที่อ้างสิทธิ์ ไม่ใช่ความคลาดเคลื่อนที่ทําได้จริง เฉพาะเมื่อ zkVM ถูกต้องอย่างสมบูรณ์และปลอดภัยเพียงพอเท่านั้นที่สามารถกล่าวได้ว่า zkVM มีความน่าเชื่อถือจนถึงความคลาดเคลื่อนที่อ้างสิทธิ์
iii. สมมติฐานความน่าเชื่อถือ
เมื่อ 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. ความรวบรัด
ความรวบรัดเป็นส่วนประกอบของเมตริกที่แตกต่างกันสามตัว โดยความซับซ้อนของการตรวจสอบหลักฐานยังแบ่งย่อยเพิ่มเติม:
โดยทั่วไปการตรวจสอบจะเป็นการดําเนินการหลักเดียวดังนั้นความเร็วและประสิทธิภาพเวลาหลักโดยทั่วไปจะเท่ากันในบริบทนี้ เช่นเดียวกับความเร็วและประสิทธิภาพการดําเนินการคําจํากัดความของความกระชับจําเป็นต้องระบุชุดโปรแกรมทดสอบอินพุตทดสอบและระบบทดสอบ
ด้วยคุณสมบัติประสิทธิภาพแต่ละรายการที่กําหนดไว้ตอนนี้เราแสดงให้เห็นถึงผลกระทบที่ลดลงของการเพิ่มประสิทธิภาพคุณสมบัติหนึ่งเหนือคุณสมบัติอื่น ๆ
โดยทั่วไปการเพิ่มประสิทธิภาพสําหรับคุณภาพหนึ่งหมายถึงการไม่ปรับให้เหมาะสมสําหรับคุณภาพอื่นดังนั้นจึงจําเป็นต้องมีการวิเคราะห์หลายมิติเพื่อเลือกโซลูชันที่เหมาะสมที่สุดเป็นกรณี ๆ ไป
วิธีที่ดีในการให้น้ําหนักคุณสมบัติเหล่านี้ในการประเมินอาจเป็นการกําหนดระดับที่ยอมรับได้สําหรับแต่ละคุณสมบัติ แล้วพิจารณาว่าคุณสมบัติใดสําคัญที่สุด คุณสมบัติที่สําคัญที่สุดควรได้รับการปรับให้เหมาะสมขึ้นอยู่กับการรักษาระดับที่ดีพอในคุณสมบัติอื่น ๆ ทั้งหมด
ด้านล่างนี้เราจะสรุปคุณสมบัติแต่ละรายการและข้อควรพิจารณาที่สําคัญ:
คุณสมบัติการประเมินของ zkVMs
จากตารางข้างต้นเราขอสรุปบทความแรกของซีรีส์ของเรา ในบทความถัดไป เราจะสร้างผังงานที่แสดงด้านบนเพื่ออธิบายกระบวนการทางคณิตศาสตร์และการเข้ารหัสทั่วไปใน zkVM
หากคุณพบว่าสิ่งนี้มีประโยชน์ โปรด เยี่ยมชมเว็บไซต์และ gitbook ของเราเพื่อเรียนรู้เพิ่มเติมเกี่ยวกับสิ่งที่เรากําลังสร้างที่ Lita
ติดตามเราบน X และ Discord เพื่อรับข่าวสารล่าสุดเพื่อให้คุณไม่พลาดซีรีส์ที่เหลือ
ส่งต่อชื่อเดิม 'กระบวนทัศน์ความรู้เป็นศูนย์: ตอนที่ 1 - zk-VM คืออะไร'
Zero Knowledge Proof (ZKPs) คืออะไร?
หากคุณไม่มีความรู้มาก่อนเกี่ยวกับการพิสูจน์ความรู้เป็นศูนย์ (ZKP) วิดีโอนี้จาก Wired จะอธิบายแนวคิดในระดับความยากห้าระดับในลักษณะโต้ตอบพร้อมตัวอย่างและการสาธิตที่เข้าใจง่าย แนะนําเป็นอย่างยิ่ง
ในแง่ที่ง่ายที่สุด ZKP ช่วยให้ฝ่ายหนึ่ง (พิสูจน์) สามารถพิสูจน์ให้อีกฝ่ายหนึ่ง (ผู้ตรวจสอบ) เห็นว่าพวกเขารู้บางอย่างโดยไม่เปิดเผยว่าสิ่งนั้นคืออะไรหรือข้อมูลเพิ่มเติมใด ๆ โดยเฉพาะอย่างยิ่ง ZKP พิสูจน์ความรู้เกี่ยวกับชิ้นส่วนของข้อมูลหรือความรู้เกี่ยวกับผลลัพธ์ของการคํานวณโดยไม่เปิดเผยข้อมูลหรืออินพุต กระบวนการสร้างการพิสูจน์ความรู้เป็นศูนย์เกี่ยวข้องกับชุดของแบบจําลองทางคณิตศาสตร์เพื่อเปลี่ยนผลลัพธ์ของการคํานวณให้เป็นข้อมูลที่ไม่มีความหมายซึ่งพิสูจน์ว่าการดําเนินการโค้ดประสบความสําเร็จซึ่งสามารถตรวจสอบได้ในภายหลัง
ในบางกรณี การตรวจสอบการพิสูจน์จะใช้เวลาน้อยกว่า ซึ่งสร้างขึ้นหลังจากการแปลงพีชคณิตและการเข้ารหัสหลายรอบ มากกว่าที่จะใช้ในการคํานวณ การผสมผสานที่เป็นเอกลักษณ์ของการรักษาความปลอดภัยและความสามารถในการปรับขนาดนี้เป็นสิ่งที่ทําให้การเข้ารหัสที่ไม่มีความรู้เป็นเครื่องมือที่ทรงพลัง
zkSNARKs: Zero Knowledge อาร์กิวเมนต์ความรู้ที่ไม่โต้ตอบอย่างรวบรัด
zkSTARKs: Zero Knowledge Scalable อาร์กิวเมนต์ความรู้ที่โปร่งใส
(หมายเหตุ: บริดจ์ของ 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
เครื่องเสมือน (VM) เป็นโปรแกรมที่เรียกใช้โปรแกรม ในบริบท zkVM เป็นคอมพิวเตอร์เสมือนที่นํามาใช้เป็นระบบสําหรับสร้างหลักฐานความรู้เป็นศูนย์หรือวงจรสากลหรือเครื่องมือสําหรับสร้าง ZKP สําหรับโปรแกรมหรือการคํานวณใด ๆ
zkVMs ขจัดความจําเป็นในการเรียนรู้คณิตศาสตร์และการเข้ารหัสที่ซับซ้อนสําหรับการออกแบบและการเข้ารหัส ZK และช่วยให้นักพัฒนาสามารถรันโปรแกรมที่เขียนในภาษาที่ต้องการและสร้าง ZKP ทําให้ง่ายต่อการรวมและโต้ตอบกับความรู้เป็นศูนย์ การอ้างอิงส่วนใหญ่ถึง zkVM โดยปริยายรวมถึงชุดเครื่องมือคอมไพเลอร์และระบบพิสูจน์ที่ผนวกเข้ากับเครื่องเสมือนที่รันโปรแกรม ไม่ใช่แค่เครื่องเสมือนเท่านั้น ด้านล่างนี้เราสรุปองค์ประกอบหลักของ zkVM และหน้าที่:
ส่วนประกอบหลักของ zkVM
การออกแบบและการใช้งานของแต่ละองค์ประกอบถูกควบคุมโดยการเลือกการพิสูจน์ (SNARK หรือ STARK) และสถาปัตยกรรมชุดคําสั่ง (ISA) ของ zkVM ตามเนื้อผ้า ISA จะระบุสิ่งที่ CPU สามารถทําได้ (ประเภทข้อมูล รีจิสเตอร์ หน่วยความจํา ฯลฯ) และลําดับของการกระทําที่ CPU ดําเนินการเมื่อรันโปรแกรม ในบริบท ISA จะกําหนดรหัสเครื่องที่สามารถตีความและเรียกใช้งานได้โดย VM การเลือก ISA สามารถให้ความแตกต่างอย่างสิ้นเชิงในการเข้าถึงและการใช้งานของ zkVM ตลอดจนความเร็วและประสิทธิภาพของกระบวนการสร้างหลักฐาน และเป็นรากฐานในการสร้าง zkVM ใดๆ
ด้านล่างนี้คือตัวอย่างบางส่วนของ zkVM และส่วนประกอบสําหรับการอ้างอิงของคุณ
zkVM และส่วนประกอบ
สําหรับตอนนี้ เราจะมุ่งเน้นไปที่ปฏิสัมพันธ์ระหว่างแต่ละองค์ประกอบในระดับสูงเพื่อให้กรอบสําหรับการทําความเข้าใจกระบวนการทางพีชคณิตและการเข้ารหัส ตลอดจนการแลกเปลี่ยนการออกแบบของ zkVM ในบทความถัดไป
ไดอะแกรมต่อไปนี้เป็นผังงานกระบวนการทั่วไปที่เป็นนามธรรมของ zkVM แยกและจัดหมวดหมู่ระหว่างรูปแบบ (อินพุต / เอาต์พุต) ของโปรแกรมขณะที่เคลื่อนที่ผ่านส่วนประกอบของ zkVM เราจะตรวจสอบแต่ละกระบวนการในเชิงลึกในบทความต่อ ๆ ไป
โฟลว์ทั่วไปสําหรับ zkVM
โฟลว์กระบวนการของ zkVM โดยทั่วไปมีดังนี้:
ผู้เสนอรับร่องรอยและแสดงเป็นชุดของพหุนามที่ผูกมัดด้วยชุดของข้อจํากัด โดยพื้นฐานแล้วจะแปลการคํานวณเป็นพีชคณิตโดยการทําแผนที่ข้อเท็จจริงทางคณิตศาสตร์
ผู้เสนอให้คํามั่นสัญญากับพหุนามเหล่านี้โดยใช้ Polynomial Commitment Scheme (PCS) รูปแบบความมุ่งมั่นเป็นโปรโตคอลที่ช่วยให้ prover สามารถสร้างลายนิ้วมือของข้อมูลบางอย่าง X ซึ่งเรียกว่าความมุ่งมั่นต่อ X และพิสูจน์ข้อเท็จจริงเกี่ยวกับ X ในภายหลังโดยไม่เปิดเผย X โดยใช้ความมุ่งมั่นต่อ X PCS คือลายนิ้วมือ ข้อ จํากัด ในการคํานวณแบบรวบรัด "ประมวลผลล่วงหน้า" สิ่งนี้ช่วยให้ผู้เสนอสามารถพิสูจน์ข้อเท็จจริงเกี่ยวกับการคํานวณซึ่งตอนนี้แสดงในสมการพหุนามโดยใช้ค่าสุ่มที่เสนอโดยผู้ตรวจสอบในขั้นตอนต่อไปนี้
ผู้เสนอใช้พหุนามแบบโต้ตอบ Oracle Proof (PIOP) เพื่อแสดงให้เห็นว่าพหุนามที่มุ่งมั่นแสดงถึงร่องรอยการดําเนินการที่เป็นไปตามข้อจํากัดที่กําหนด PIOP เป็นโปรโตคอลการพิสูจน์แบบโต้ตอบที่ประกอบด้วยชุดของรอบที่ prover ส่งคํามั่นสัญญาไปยังพหุนามผู้ตรวจสอบตอบสนองด้วยค่าฟิลด์แบบสุ่มและผู้เสนอญัตติให้การประเมินพหุนามที่ค่าสุ่มเหล่านี้คล้ายกับ "การแก้" สมการพหุนามโดยใช้ค่าสุ่มเพื่อโน้มน้าวผู้ตรวจสอบ
การใช้ฮิวริสติก Fiat-Shamir; ผู้เสนอจะเรียกใช้ PIOP ในโหมดไม่โต้ตอบ ซึ่งพฤติกรรมของผู้ตรวจสอบจํากัดอยู่ที่การส่งคะแนนท้าทายแบบสุ่มหลอก ในการเข้ารหัส ฮิวริสติก Fiat–Shamir จะแปลงหลักฐานความรู้แบบโต้ตอบเป็นลายเซ็นดิจิทัลสําหรับการตรวจสอบ ขั้นตอนนี้เข้ารหัสหลักฐานและทําให้ไม่มีความรู้
ผู้เสนอต้องโน้มน้าวผู้ตรวจสอบว่าการประเมินพหุนามที่อ้างสิทธิ์นั้นถูกต้องในส่วนที่เกี่ยวกับภาระผูกพันพหุนามที่ส่งไปยังผู้ตรวจสอบ ในการทําเช่นนี้ prover จะสร้างหลักฐาน "การประเมิน" หรือ "การเปิด" ซึ่งจัดทําโดยรูปแบบความมุ่งมั่นพหุนาม (ลายนิ้วมือ)
โดยสรุปการพิสูจน์ zkVM พิสูจน์สําหรับโปรแกรมที่กําหนดผลลัพธ์ที่กําหนดและเงื่อนไขเริ่มต้นที่กําหนดว่ามีอินพุตบางอย่างที่ทําให้โปรแกรมสร้างผลลัพธ์ที่กําหนดเมื่อดําเนินการจากเงื่อนไขเริ่มต้นที่กําหนด เราสามารถรวมคําสั่งนี้กับโฟลว์กระบวนการเพื่อให้ได้คําอธิบายต่อไปนี้ของ zkVM
การพิสูจน์ zkVM พิสูจน์สําหรับโปรแกรม VM ที่กําหนดและเอาต์พุตที่กําหนดว่ามีอินพุตบางอย่างที่ทําให้โปรแกรมที่กําหนดสร้างเอาต์พุตที่กําหนดเมื่อดําเนินการบน VM
เกณฑ์ที่เราควรประเมิน zkVM คืออะไร? กล่าวอีกนัยหนึ่งเมื่อใดที่เราควรพูดว่า zkVM หนึ่งดีกว่าอีกอันหนึ่ง ความจริงคําตอบขึ้นอยู่กับกรณีการใช้งาน
การวิจัยตลาดของ Lita ชี้ให้เห็นว่าสําหรับกรณีการใช้งานเชิงพาณิชย์ส่วนใหญ่คุณสมบัติที่สําคัญที่สุดนอกเหนือจากความเร็วประสิทธิภาพและความกระชับคือความเร็วหรือประสิทธิภาพของเวลาหลักขึ้นอยู่กับการใช้งาน แอปพลิเคชั่นบางตัวมีความอ่อนไหวต่อราคาและต้องการเพิ่มประสิทธิภาพสําหรับการใช้พลังงานต่ําและการใช้เงินทุนต่ําในการพิสูจน์ สําหรับสิ่งเหล่านี้ ประสิทธิภาพเวลาหลักน่าจะเป็นตัวชี้วัดที่สําคัญที่สุดในการเพิ่มประสิทธิภาพ แอปพลิเคชันอื่นๆ โดยเฉพาะแอปพลิเคชันที่เกี่ยวข้องกับการเงินหรือการซื้อขาย มีความไวต่อเวลาแฝงและต้องการเพิ่มประสิทธิภาพเพื่อความเร็ว
การเปรียบเทียบประสิทธิภาพที่เผยแพร่ส่วนใหญ่มุ่งเน้นไปที่ความเร็วโดยเฉพาะ ซึ่งมีความสําคัญแต่ไม่ใช่การวัดประสิทธิภาพแบบองค์รวม นอกจากนี้ยังมีคุณสมบัติที่สําคัญบางประการที่วัดความน่าเชื่อถือของ zkVM ซึ่งส่วนใหญ่ไม่ได้มาตรฐานความพร้อมในการผลิต แม้แต่ผู้ดํารงตําแหน่งผู้นําตลาด
เราขอเสนอว่า zkVMs ควรได้รับการประเมินตามเกณฑ์ต่อไปนี้โดยแบ่งออกเป็นสองชุดย่อย:
เกณฑ์หลักในการประเมิน zk-VMs
พื้นฐาน: วัดความน่าเชื่อถือของ zkVM
ประสิทธิภาพ: วัดความสามารถของ zkVM
4.1 พื้นฐาน: สมมติฐานความถูกต้อง ความปลอดภัย และความน่าเชื่อถือ
เมื่อประเมิน zkVM สําหรับแอปพลิเคชันที่สําคัญต่อภารกิจ ควรพิจารณาความถูกต้องและความปลอดภัยเป็นพื้นฐาน ต้องมีเหตุผลเพียงพอที่จะมั่นใจในความถูกต้องและความปลอดภัยที่อ้างสิทธิ์อย่างเพียงพอ นอกจากนี้ สมมติฐานความน่าเชื่อถือจะต้องอ่อนแอเพียงพอสําหรับแอปพลิเคชัน
หากไม่มีคุณสมบัติเหล่านี้ zkVM อาจแย่กว่าไร้ประโยชน์สําหรับแอปพลิเคชัน เนื่องจากอาจล้มเหลวในการทํางานตามที่ระบุและทําให้ผู้ใช้ถูกแฮ็กและหาประโยชน์
i. ความถูกต้อง
ความถูกต้องประกอบด้วยคุณสมบัติสามประการ:
คุณสามารถมีความสมบูรณ์ได้โดยปราศจากความสมบูรณ์ หากระบบพิสูจน์พิสูจน์ทุกอย่างรวมถึงความเท็จเห็นได้ชัดว่าสมบูรณ์ แต่ฟังไม่ขึ้น ในทางกลับกันคุณสามารถมีความสมบูรณ์ได้โดยไม่มีความสมบูรณ์ หากระบบพิสูจน์พิสูจน์ว่ามีโปรแกรมอยู่ แต่ไม่สามารถพิสูจน์การคํานวณได้เห็นได้ชัดว่ามันเป็นเสียง (ท้ายที่สุดมันไม่เคยพิสูจน์ความเท็จใด ๆ ) แต่ไม่สมบูรณ์
ii. ความปลอดภัย
ในทางปฏิบัติคุณสมบัติความถูกต้องทั้งสามมีความคลาดเคลื่อนที่ไม่เป็นศูนย์ นี่หมายความว่าการพิสูจน์ทั้งหมดเป็นความน่าจะเป็นทางสถิติของความถูกต้อง และไม่ใช่ความแน่นอนที่แน่นอน ความคลาดเคลื่อนหมายถึงความน่าจะเป็นสูงสุดที่ยอมรับได้ซึ่งคุณสมบัติหนึ่งจะล้มเหลว แน่นอนว่าความคลาดเคลื่อนเป็นศูนย์เป็นอุดมคติ แต่ zkVM ไม่ได้บรรลุความคลาดเคลื่อนเป็นศูนย์สําหรับคุณสมบัติเหล่านี้ทั้งหมดในทางปฏิบัติ ความสมบูรณ์และความสมบูรณ์ที่สมบูรณ์แบบดูเหมือนจะเข้ากันไม่ได้กับความรวบรัด และไม่มีวิธีการที่เป็นที่รู้จักในการบรรลุความรู้เป็นศูนย์ที่สมบูรณ์แบบ วิธีทั่วไปในการวัดความปลอดภัยคือบิตของการรักษาความปลอดภัย โดยที่ค่าความคลาดเคลื่อน 1 / (2^n) เรียกว่าความปลอดภัย n บิต การรักษาความปลอดภัยที่มากขึ้นจะดีกว่า
หาก zkVM ถูกต้องอย่างสมบูรณ์นั่นไม่ได้หมายความว่าเชื่อถือได้เสมอไป ความถูกต้องหมายความว่า zkVM มีคุณสมบัติด้านความปลอดภัยตรงตามความคลาดเคลื่อนที่อ้างสิทธิ์เท่านั้น ไม่ได้หมายความว่าความคลาดเคลื่อนที่อ้างสิทธิ์นั้นต่ําพอที่จะพร้อมสําหรับตลาด นอกจากนี้ หาก zkVM มีความปลอดภัยเพียงพอ นั่นไม่ได้หมายความว่าถูกต้อง ความปลอดภัยหมายถึงความคลาดเคลื่อนที่อ้างสิทธิ์ ไม่ใช่ความคลาดเคลื่อนที่ทําได้จริง เฉพาะเมื่อ zkVM ถูกต้องอย่างสมบูรณ์และปลอดภัยเพียงพอเท่านั้นที่สามารถกล่าวได้ว่า zkVM มีความน่าเชื่อถือจนถึงความคลาดเคลื่อนที่อ้างสิทธิ์
iii. สมมติฐานความน่าเชื่อถือ
เมื่อ 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. ความรวบรัด
ความรวบรัดเป็นส่วนประกอบของเมตริกที่แตกต่างกันสามตัว โดยความซับซ้อนของการตรวจสอบหลักฐานยังแบ่งย่อยเพิ่มเติม:
โดยทั่วไปการตรวจสอบจะเป็นการดําเนินการหลักเดียวดังนั้นความเร็วและประสิทธิภาพเวลาหลักโดยทั่วไปจะเท่ากันในบริบทนี้ เช่นเดียวกับความเร็วและประสิทธิภาพการดําเนินการคําจํากัดความของความกระชับจําเป็นต้องระบุชุดโปรแกรมทดสอบอินพุตทดสอบและระบบทดสอบ
ด้วยคุณสมบัติประสิทธิภาพแต่ละรายการที่กําหนดไว้ตอนนี้เราแสดงให้เห็นถึงผลกระทบที่ลดลงของการเพิ่มประสิทธิภาพคุณสมบัติหนึ่งเหนือคุณสมบัติอื่น ๆ
โดยทั่วไปการเพิ่มประสิทธิภาพสําหรับคุณภาพหนึ่งหมายถึงการไม่ปรับให้เหมาะสมสําหรับคุณภาพอื่นดังนั้นจึงจําเป็นต้องมีการวิเคราะห์หลายมิติเพื่อเลือกโซลูชันที่เหมาะสมที่สุดเป็นกรณี ๆ ไป
วิธีที่ดีในการให้น้ําหนักคุณสมบัติเหล่านี้ในการประเมินอาจเป็นการกําหนดระดับที่ยอมรับได้สําหรับแต่ละคุณสมบัติ แล้วพิจารณาว่าคุณสมบัติใดสําคัญที่สุด คุณสมบัติที่สําคัญที่สุดควรได้รับการปรับให้เหมาะสมขึ้นอยู่กับการรักษาระดับที่ดีพอในคุณสมบัติอื่น ๆ ทั้งหมด
ด้านล่างนี้เราจะสรุปคุณสมบัติแต่ละรายการและข้อควรพิจารณาที่สําคัญ:
คุณสมบัติการประเมินของ zkVMs
จากตารางข้างต้นเราขอสรุปบทความแรกของซีรีส์ของเรา ในบทความถัดไป เราจะสร้างผังงานที่แสดงด้านบนเพื่ออธิบายกระบวนการทางคณิตศาสตร์และการเข้ารหัสทั่วไปใน zkVM
หากคุณพบว่าสิ่งนี้มีประโยชน์ โปรด เยี่ยมชมเว็บไซต์และ gitbook ของเราเพื่อเรียนรู้เพิ่มเติมเกี่ยวกับสิ่งที่เรากําลังสร้างที่ Lita
ติดตามเราบน X และ Discord เพื่อรับข่าวสารล่าสุดเพื่อให้คุณไม่พลาดซีรีส์ที่เหลือ