นี่คือบทนำที่เรียบง่ายและเข้าใจง่ายเกี่ยวกับหลักฐานที่ไม่เป็นศูนย์
มองว่าคุณอยู่ในโรงเรียนประถม ครูคือผู้ตรวจสอบ และคุณเป็นนักเรียนที่เป็นผู้พิสูจน์ คุณจะพิสูจน์ได้อย่างไรว่าคุณเข้าใจสูตรในการแก้สมการกำลังสอง? นั่นคือที่ที่การสอบคณิตศาสตร์มาช่วย
ครูจะสุ่มให้คุณ 10 คำถามที่เกี่ยวข้อง และหากคุณเข้าใจแนวคิดจริง ๆ คุณจะสามารถแก้ทุกข้อได้ ระหว่างกระบวนการนี้ คุณไม่จำเป็นต้องจำหรือเขียนเนื้อหาเฉพาะของสูตร แต่ครูสามารถตรวจสอบระดับความรู้ของคุณได้อย่างง่ายดาย
ที่จริงแล้วนี่เป็นวิธีที่ Tartaglia และ Cardano ใช้ (ใช่นั่นคือชื่อ) เพื่อแข่งขันกันว่าใครเป็นผู้ค้นพบวิธีแก้ปัญหาสมการลูกบาศก์ พวกเขาทั้งสองไม่ต้องการเปิดเผยเนื้อหาของสูตรของพวกเขาต่อกัน แต่ด้วยการแก้ปัญหาพวกเขาสามารถตรวจสอบและพิจารณาว่าพวกเขาเชี่ยวชาญความรู้นี้หรือไม่โดยไม่ต้องเปิดเผยรายละเอียด
วัตถุประสงค์ของศาสตร์พิสูจน์ที่ไม่รู้เรื่องคืออะไร? วัตถุประสงค์คือเพื่อประหยัดพลังงานคำนวณและลดพื้นที่บนเชื่อมโยงในกระบวนการทั้งหมด นอกจากนี้ยังสามารถให้ความเป็นส่วนตัว จัดอยู่ในลักษณะของความไว้วางใจในบล็อกเชนและหลักการของการเข้ารหัส
ในด้านบล็อกเชนคำว่า "zk" ที่ใช้หรือกล่าวถึงมักไม่ได้หมายถึงพิสูจน์ที่ไม่ใช้ศัพท์ภาษาคุณแต่มักหมายถึงการพิสูจน์ความถูกต้อง เนื่องจากความสับสนในศัพท์คำบางส่วนของข้อความนี้จะยังคงใช้คำว่า "พิสใช้" เหล่านี้ต่อไป
ในภูมิทัศน์ปัจจุบันของบล็อกเชน zk สามารถถือเป็นการแก้ปัญหาและเทคโนโลยีสำหรับความสามารถในการขยายของบล็อกเชน (ไม่ใช่ zk แต่เป็น Validity Proof) และเทคโนโลยีความเป็นส่วนตัว (zk ที่แท้จริง) ซึ่งใช้ในโครงการเช่น Tornado.cash, ZCash, zkSync, zk.money, Filecoin และ Mina
โซลูชันทางเทคนิคในปัจจุบันส่วนใหญ่แบ่งออกเป็นสองประเภท: SNARK และ STARK ใน STARK "S" ย่อมาจาก scalable ซึ่งหมายความว่าคําสั่งที่พิสูจน์แล้วมีโครงสร้างซ้ํา ๆ ในขณะที่ SNARK รองรับวงจรโดยพลการที่ประมวลผลไว้ล่วงหน้าเพื่อให้ได้หลักฐานที่รัดกุม ในหมู่พวกเขาการใช้งานจริงของ SNARKs ได้ครองตําแหน่งผู้นําในขณะที่ STARKs ส่วนใหญ่ถูกนํามาใช้ในขนาดใหญ่ในผลิตภัณฑ์ที่เปิดตัวโดย StarkWare ต่อไปนี้เป็นการเปรียบเทียบระหว่างพวกเขา
จากมุมมองของ Meme, STARK ดีกว่า SNARK (😊, Star Wars, Star Trek)
หาก SNARK เป็นอนาคตของ Ethereum 2.0 แล้ว STARK ก็จะเป็นอนาคตของ Ethereum 3.0 อย่างจริงจัง ข้อดีของ STARK คือ
อย่างไรก็ตามหลักฐานที่สร้างโดย STARK มีขนาดใหญ่มาก เนื่องจากข้อ จํากัด บางประการเช่นที่กําหนดโดย WASM อาจจําเป็นต้องมีการดําเนินการเพิ่มเติมในระหว่างการก่อสร้าง (ในที่นี้เราหมายถึง SNARK) เมื่อเร็ว ๆ นี้ Mir ได้ให้การใช้งานจริงของ STARK ที่ใช้ AIR โดยใช้ Starky ซึ่งเป็นส่วนหนึ่งของ Plonky2 (ความสัมพันธ์ระหว่าง Plonky2 และ Starky ค่อนข้างซับซ้อน...) ในความเห็นส่วนตัวของฉันในขณะที่ขนาดสามารถปรับให้เหมาะสมได้โดยใช้เทคนิคต่าง ๆ มันเป็นเรื่องยากที่จะบีบอัดความซับซ้อนของเวลาของอัลกอริทึมเอง
เทคโนโลยีพิสูจน์ทศนิยมศูนย์เหลือเหลือเหลือจะสามารถรวมกันในทางที่เหมาะสมเพื่อสร้างการใช้งานที่มีประสิทธิภาพมากขึ้น ตัวอย่างเช่น Polygon Hermez ใช้ SNARK เพื่อยืนยันความถูกต้องของ STARK ซึ่งจะลดค่าธรรมเนียมในการเผยแพร่พิสูจน์
โดยรวม SNARK และ STARK ทั้งสองเป็นเทคโนโลยีพิสูจน์ศูนย์ที่ยอดเยี่ยม แต่ละอย่างมีจุดเด่นของตนเอง และการผสมผสานที่สมเหตุสมผลของพวกเขายังมีศักยภาพมากขึ้น
Tornado.cash และ zk.money ที่กล่าวถึงมาก่อนหน้านี้ เป็นแอปพลิเคชันที่คล้ายกันโดยรองรับการดำเนินการโอนเงินเท่านั้นโดยใช้พิสูจน์ที่ไม่เปิดเผยข้อมูล พวกเขาไม่สนับสนุนการคำนวณทั่วไป ในการเปรียบเทียบ แอปพลิเคชันเหล่านี้มีเพียงความสามารถของ Bitcoin เท่านั้น น้อยกว่า Ethereum ที่สามารถคำนวณแบบ Turing-complete จริงๆ ยังไม่ได้สร้างนิเวศที่เจริญรุ่งเรือง (สมาร์ทคอนแทรคต์บน Bitcoin ยังไม่ได้สร้างนิเวศที่เจริญรุ่งเรือง)
zkVM เป็นเครื่องจำลองเสมือนที่ให้ความมั่นคงและน่าเชื่อถือโดยใช้พิสูจน์ที่ไม่เปิดเผยเป็นศูนย์ นั่นคือ มันใช้สถานะเก่าและโปรแกรมเป็นอินพุตและส่งคืนสถานะใหม่ มันทำให้แอปพลิเคชันทุกตัวมีพลังพิเสธที่ไม่เปิดเผย
การนำเสนอของ Miden ที่ ETH Amsterdam สรุปสาระสำคัญของ zkVM ด้วยภาพเดียว
ข้อดีของ zkVM:
ข้อเสียของ zkVM:
ขณะนี้มีสามประเภทหลักของ zkVM โดยมีเซตคำสั่งที่เกี่ยวข้องแต่ละประเภทดังนี้: หลัก (WASM, RISC-V), EVM (EVM bytecode), ZK-Optimized (เซตคำสั่งใหม่ที่ถูกปรับให้เหมาะสำหรับพิสูจน์ที่ไม่มีศูนย์ เช่น Cairo และ zkSync) ข้างล่างนี้คือตารางเปรียบเทียบของประเภทเหล่านี้โดยขึ้นอยู่กับการนำเสนอของ Miden ที่ ETH Amsterdam
หลายสิ่งที่ทำในระบบนิยามที่ไม่รู้เกี่ยวกับการพัฒนาโครงสร้างมั่นใจในการให้นักพัฒนาใช้ไลบรารี Circom (และ snarkyjs เช่น) หรือภาษาที่สร้างขึ้นใหม่ (เช่น Leo หรือ Cairo ซึ่งมีข้อจำกัดที่เป็นเอกลักษณ์ของตน) สำหรับการพัฒนา zk DApps ทั่วไป อย่างไรก็ตามนี่ไม่ใช่เรื่องง่ายและเรียนรู้ง่ายเหมือนการใช้ Solidity บน Ethereum
นอกจากนั้นยังมีโครงการมากมาย เช่น zkSync, Scroll หรือบางโครงการภายใต้ร่มรบกวนของ Polygon ที่กำลังทดลองกับ zkEVM หรือโซลูชั่น zkVM อื่น ๆ
EVM คือเครื่องจำลองเสมือนของ Ethereum ซึ่งสามารถเข้าใจได้เช่นกันว่าเป็นชุดของสภาพแวดล้อมการดำเนินการสำหรับการเรียกใช้สัญญาฉลากอัจฉริยะ
ในระยะเวลาหลายปี บล็อกเชนสาธารณะต่าง ๆ ได้พยายามอย่างต่อเนื่องที่จะเข้ากันได้กับ EVM โดยผนวกเข้ากับระบบพัฒนา Ethereum โดยประการนี้ แนวคิดนี้ได้นำไปสู่การหาคำจำกัดความเช่น EVM compatibility, EVM equivalence, และคำจำกัดความอื่น ๆ
เรามาทำความเข้าใจ zkEVM อีกเพิ่มเติม ตามนิยาม zkEVM คือเครื่องจำลองเสมือนที่เข้ากันได้กับ EVM และเป็นมิตรกับพิสูจน์ทฤษฎีศาสตร์ที่เป็นศูนย์ ๆ ที่สร้างความถูกต้องอย่างสมบูรณ์ของโปรแกรม การดำเนินการ และข้อมูลเข้า/ออก
เพื่อบรรทึกความสามารถในการคำนวณทั่วไป มีทั้งหมด 2 ความท้าทายหลักในการพัฒนา zkEVM:
สัญญาที่แตกต่างกันต้องการการสร้างวงจรที่แตกต่างกัน และวงจรเหล่านี้มีความ 'ซับซ้อน' อย่างมาก
ด้านนี้ใช้วิธีการปรับปรุงต่าง ๆ อย่างหลายอย่าง ตัวอย่างเช่น Aleo (แม้ว่ามันไม่ใช่ประเภท ZK โดยตรง... เป็นตัวอย่างเพื่อการปรับปรุง) ใช้คลัสเตอร์ที่กระจายสำหรับการคำนวณพิสูจน์พร้อมกัน หรือการปรับปรุงฮาร์ดแวร์ต่าง ๆ สำหรับการเร่งความเร็ว
zkEVM ต้องการไม่เพียงแค่การสร้างใหม่ของ EVM แต่ยังต้องการการสร้างใหม่ของการเปลี่ยนแปลงสถานะทั้งหมดของ Ethereum โดยใช้เทคโนโลยีพิสูจน์ทศนิยมศูนย์
การออกแบบเดิมของ EVM ไม่ได้คาดหวังถึงการพัฒนา zkEVM ซึ่งเป็นเหตุให้เกิดความยากลำบากอย่างมาก ซึ่งได้ผลให้เกิดโรงเรียนสองฝ่ายดังแสดงในแผนภูมิ
หรือเพื่อแยกแยะตามโครงสร้างของเครื่องจำลองเสมือน (VM) เช่นในแผนภาพด้านล่าง (ขอขอบคุณอย่างสูงที่ Scroll Tech สำหรับภาพสรุปดั้งเดิม!) Opcode หมายถึง EVM Opcode ส่วนของ StarkWare ใช้ Warp เพื่อแปลงสัญญา Solidity เป็นสัญญา Cairo หรือสามารถเขียนสัญญาใน Cairo โดยตรง และยังคงได้ประสบการณ์การพัฒนาที่ดีและชุดเครื่องมือครบ
ที่ระดับนักพัฒนาและผู้ใช้, ฉันเห็นว่าโซลูชันเหล่านี้เกือบจะไม่สามารถแยกแยะได้ อย่างไรก็ตาม, ในเชิงโครงสร้างพื้นฐาน, โซลูชันทางขวามือมีความสามารถในการทำงานร่วมกับ EVM ได้ดีกว่า สามารถให้การรองรับอย่างไม่มีปัญหากับโครงสร้างพื้นฐาน เช่น Geth แต่ความคืบหน้าในการพัฒนามักจะช้าลง
ในความคิดของฉันการมีอยู่ของ zkEVM คือการคิดค้นและแก้ไขระบบนิเวศของ Ethereum ซึ่งเอื้อต่อความเจริญรุ่งเรืองของ Ethereum และระบบนิเวศ ในทางกลับกันการมีอยู่ของ zkVM อาจไม่จําเป็นต้องเสริมสร้าง Ethereum แต่ให้จินตนาการที่มากขึ้น
แม้ว่า Cairo VM ของ StarkNet อาจจะไม่ใช่ zkVM ที่สมบูรณ์แบบที่ฉันคาดหวัง แต่มันสามารถทำได้มากกว่า EVM หรือ zkEVM ฟังก์ชันพิเศษเหล่านี้เกินความสามารถของส่วนขยาย EIP บน Cairo VM โมเดลการเรียนรู้ของเครื่องสามารถรัน และยังมีแพลตฟอร์มโมเดลการเรียนรู้ของเครื่องกำลังถูกสร้างขึ้นบน StarkNet อีกด้วย
เมื่อเปรียบเทียบกับ zkEVM การสร้าง zkVM ง่ายกว่า (โดยไม่ต้องกังวลเรื่องหนี้สูญญากาศทางเทคนิคของ EVM) ยืดหยุ่นมากกว่า (โดยไม่ต้องกังวลเรื่องการอัปเดตของ EVM) และง่ายต่อการปรับปรุง (ตรวจสอบและตัวจัดการพิสูจน์ที่ง่ายและถูกกว่าการสร้าง zkEVM)
อย่างไรก็ตาม, zkVM มีข้อเสียเล็กน้อย แต่อาจเป็นอุปสรรคที่ชีพจรได้ หาก zkVM ไม่สามารถให้ความเข้ากันได้กับ EVM ในระดับภาษา Solidity, จะยากสำหรับ zkVM ที่จะสร้างระบบนิเวศการพัฒนา Web3 อย่างเต็มรูปแบบและสมบูรณ์เช่นเดียวกับ EVM
zkVM อาจเป็นแนวโน้มที่ใหญ่กว่าซึ่งสามารถเปิดโอกาสให้การปรับแต่งแนวราบของ EVM และการขยายตัวแนอนของระบบนิเวศ EVM โดยที่ไม่ต้องได้รับข้อจำกัดของ EVM
หากมี zkVM สากลที่อนุญาตให้สมาร์ทคอนแทร็กทุกภาษาโปรแกรมไม่แค่ Solidity ไม่แค่ Cairo แต่ Rust C++ Go ทำงานอย่างปลอดภัยด้วยหลักฐานที่ไม่เปิดเผย นั้นก็ดีน่าหวังใจใช่ไหม (Stellar พยายามแล้ว แต่ล้มเหลว)
เหมือน @kelvinfichterกล่าวถึง: ทำไม zkEVM ถ้า zkMIPS ล่ะ?@KyleSamaniกล่าวถึง: EVM เป็นข้อผิดพลาดไม่ใช่คุณสมบัติ ทำไม zkEVM ถ้า zkVM?
Winterfall, Distaff, Miden VM, และ zkVMs อื่น ๆ ยังไม่ได้รับการยินยอมจากนักพัฒนาในระดับสูง Nervos มี RISC-V VM แต่มันไม่ใช้เทคโนโลยี proof zero-knowledge
Solition ที่ดีที่สุดในสถานการณ์ปัจจุบันคือการสร้าง WASM หรือ RISC-V zkVM, ดีขึ้นอีกถ้ามันสามารถรองรับภาษาเช่น Rust, Go, C++, และ Solidity (zkSync ดูเหมือนจะสามารถมีส่วนช่วยอย่างมีนัยสำคัญ) หากมี zkVM สากลเช่นนั้น มันจะเป็นการโจมตีที่มีนัยสำคัญต่อ zkEVM
จำนวนนักพัฒนา Web3 มีอยู่ประมาณ 0.07% ของนักพัฒนาทั้งหมด นี่หมายความว่าจำนวนนักพัฒนา Solidity ยิ่งน้อยกว่า 0.07% และนักพัฒนาน้อยมากกว่านักพัฒนาจะใช้ Cairo เพื่อเขียนสัญญาหรือ Leo เพื่อเขียนวงจร ด้วยผลลัพธ์ที่ zkVM ที่สมบูรณ์ถึงเป้าหมายที่จะเป็นที่ชื่นชมสำหรับนักพัฒนาเกือบ 100% เนื่องจากนักพัฒนาใดก็สามารถได้รับสภาพแวดล้อมที่ดีเยี่ยมที่เป็นศูนย์ของความรู้ได้โดยใช้ภาษาโปรแกรมใดก็ได้เกือบทุกภาษา
หากวันหนึ่ง Web3 และ Crypto จะครองโลก ฉันเชื่อว่ามันแน่นอนจะไม่ใช่ระบบนิเวศ EVM ที่ครอบครอง 100% ของนักพัฒนาทั้งหมด แต่เป็นนักพัฒนาทั้งหมดที่เริ่มเปลี่ยนไปเป็นนักพัฒนา Web3 และ Crypto เป็นบางส่วน นี่คือที่ที่ความฉลาดของ zkVM สามารถหล่อหลอม
Native zkEVM เป็นอนาคตของบล็อกเชน
Universal zkVM เป็นอนาคตของ Web3.
นี่คือบทนำที่เรียบง่ายและเข้าใจง่ายเกี่ยวกับหลักฐานที่ไม่เป็นศูนย์
มองว่าคุณอยู่ในโรงเรียนประถม ครูคือผู้ตรวจสอบ และคุณเป็นนักเรียนที่เป็นผู้พิสูจน์ คุณจะพิสูจน์ได้อย่างไรว่าคุณเข้าใจสูตรในการแก้สมการกำลังสอง? นั่นคือที่ที่การสอบคณิตศาสตร์มาช่วย
ครูจะสุ่มให้คุณ 10 คำถามที่เกี่ยวข้อง และหากคุณเข้าใจแนวคิดจริง ๆ คุณจะสามารถแก้ทุกข้อได้ ระหว่างกระบวนการนี้ คุณไม่จำเป็นต้องจำหรือเขียนเนื้อหาเฉพาะของสูตร แต่ครูสามารถตรวจสอบระดับความรู้ของคุณได้อย่างง่ายดาย
ที่จริงแล้วนี่เป็นวิธีที่ Tartaglia และ Cardano ใช้ (ใช่นั่นคือชื่อ) เพื่อแข่งขันกันว่าใครเป็นผู้ค้นพบวิธีแก้ปัญหาสมการลูกบาศก์ พวกเขาทั้งสองไม่ต้องการเปิดเผยเนื้อหาของสูตรของพวกเขาต่อกัน แต่ด้วยการแก้ปัญหาพวกเขาสามารถตรวจสอบและพิจารณาว่าพวกเขาเชี่ยวชาญความรู้นี้หรือไม่โดยไม่ต้องเปิดเผยรายละเอียด
วัตถุประสงค์ของศาสตร์พิสูจน์ที่ไม่รู้เรื่องคืออะไร? วัตถุประสงค์คือเพื่อประหยัดพลังงานคำนวณและลดพื้นที่บนเชื่อมโยงในกระบวนการทั้งหมด นอกจากนี้ยังสามารถให้ความเป็นส่วนตัว จัดอยู่ในลักษณะของความไว้วางใจในบล็อกเชนและหลักการของการเข้ารหัส
ในด้านบล็อกเชนคำว่า "zk" ที่ใช้หรือกล่าวถึงมักไม่ได้หมายถึงพิสูจน์ที่ไม่ใช้ศัพท์ภาษาคุณแต่มักหมายถึงการพิสูจน์ความถูกต้อง เนื่องจากความสับสนในศัพท์คำบางส่วนของข้อความนี้จะยังคงใช้คำว่า "พิสใช้" เหล่านี้ต่อไป
ในภูมิทัศน์ปัจจุบันของบล็อกเชน zk สามารถถือเป็นการแก้ปัญหาและเทคโนโลยีสำหรับความสามารถในการขยายของบล็อกเชน (ไม่ใช่ zk แต่เป็น Validity Proof) และเทคโนโลยีความเป็นส่วนตัว (zk ที่แท้จริง) ซึ่งใช้ในโครงการเช่น Tornado.cash, ZCash, zkSync, zk.money, Filecoin และ Mina
โซลูชันทางเทคนิคในปัจจุบันส่วนใหญ่แบ่งออกเป็นสองประเภท: SNARK และ STARK ใน STARK "S" ย่อมาจาก scalable ซึ่งหมายความว่าคําสั่งที่พิสูจน์แล้วมีโครงสร้างซ้ํา ๆ ในขณะที่ SNARK รองรับวงจรโดยพลการที่ประมวลผลไว้ล่วงหน้าเพื่อให้ได้หลักฐานที่รัดกุม ในหมู่พวกเขาการใช้งานจริงของ SNARKs ได้ครองตําแหน่งผู้นําในขณะที่ STARKs ส่วนใหญ่ถูกนํามาใช้ในขนาดใหญ่ในผลิตภัณฑ์ที่เปิดตัวโดย StarkWare ต่อไปนี้เป็นการเปรียบเทียบระหว่างพวกเขา
จากมุมมองของ Meme, STARK ดีกว่า SNARK (😊, Star Wars, Star Trek)
หาก SNARK เป็นอนาคตของ Ethereum 2.0 แล้ว STARK ก็จะเป็นอนาคตของ Ethereum 3.0 อย่างจริงจัง ข้อดีของ STARK คือ
อย่างไรก็ตามหลักฐานที่สร้างโดย STARK มีขนาดใหญ่มาก เนื่องจากข้อ จํากัด บางประการเช่นที่กําหนดโดย WASM อาจจําเป็นต้องมีการดําเนินการเพิ่มเติมในระหว่างการก่อสร้าง (ในที่นี้เราหมายถึง SNARK) เมื่อเร็ว ๆ นี้ Mir ได้ให้การใช้งานจริงของ STARK ที่ใช้ AIR โดยใช้ Starky ซึ่งเป็นส่วนหนึ่งของ Plonky2 (ความสัมพันธ์ระหว่าง Plonky2 และ Starky ค่อนข้างซับซ้อน...) ในความเห็นส่วนตัวของฉันในขณะที่ขนาดสามารถปรับให้เหมาะสมได้โดยใช้เทคนิคต่าง ๆ มันเป็นเรื่องยากที่จะบีบอัดความซับซ้อนของเวลาของอัลกอริทึมเอง
เทคโนโลยีพิสูจน์ทศนิยมศูนย์เหลือเหลือเหลือจะสามารถรวมกันในทางที่เหมาะสมเพื่อสร้างการใช้งานที่มีประสิทธิภาพมากขึ้น ตัวอย่างเช่น Polygon Hermez ใช้ SNARK เพื่อยืนยันความถูกต้องของ STARK ซึ่งจะลดค่าธรรมเนียมในการเผยแพร่พิสูจน์
โดยรวม SNARK และ STARK ทั้งสองเป็นเทคโนโลยีพิสูจน์ศูนย์ที่ยอดเยี่ยม แต่ละอย่างมีจุดเด่นของตนเอง และการผสมผสานที่สมเหตุสมผลของพวกเขายังมีศักยภาพมากขึ้น
Tornado.cash และ zk.money ที่กล่าวถึงมาก่อนหน้านี้ เป็นแอปพลิเคชันที่คล้ายกันโดยรองรับการดำเนินการโอนเงินเท่านั้นโดยใช้พิสูจน์ที่ไม่เปิดเผยข้อมูล พวกเขาไม่สนับสนุนการคำนวณทั่วไป ในการเปรียบเทียบ แอปพลิเคชันเหล่านี้มีเพียงความสามารถของ Bitcoin เท่านั้น น้อยกว่า Ethereum ที่สามารถคำนวณแบบ Turing-complete จริงๆ ยังไม่ได้สร้างนิเวศที่เจริญรุ่งเรือง (สมาร์ทคอนแทรคต์บน Bitcoin ยังไม่ได้สร้างนิเวศที่เจริญรุ่งเรือง)
zkVM เป็นเครื่องจำลองเสมือนที่ให้ความมั่นคงและน่าเชื่อถือโดยใช้พิสูจน์ที่ไม่เปิดเผยเป็นศูนย์ นั่นคือ มันใช้สถานะเก่าและโปรแกรมเป็นอินพุตและส่งคืนสถานะใหม่ มันทำให้แอปพลิเคชันทุกตัวมีพลังพิเสธที่ไม่เปิดเผย
การนำเสนอของ Miden ที่ ETH Amsterdam สรุปสาระสำคัญของ zkVM ด้วยภาพเดียว
ข้อดีของ zkVM:
ข้อเสียของ zkVM:
ขณะนี้มีสามประเภทหลักของ zkVM โดยมีเซตคำสั่งที่เกี่ยวข้องแต่ละประเภทดังนี้: หลัก (WASM, RISC-V), EVM (EVM bytecode), ZK-Optimized (เซตคำสั่งใหม่ที่ถูกปรับให้เหมาะสำหรับพิสูจน์ที่ไม่มีศูนย์ เช่น Cairo และ zkSync) ข้างล่างนี้คือตารางเปรียบเทียบของประเภทเหล่านี้โดยขึ้นอยู่กับการนำเสนอของ Miden ที่ ETH Amsterdam
หลายสิ่งที่ทำในระบบนิยามที่ไม่รู้เกี่ยวกับการพัฒนาโครงสร้างมั่นใจในการให้นักพัฒนาใช้ไลบรารี Circom (และ snarkyjs เช่น) หรือภาษาที่สร้างขึ้นใหม่ (เช่น Leo หรือ Cairo ซึ่งมีข้อจำกัดที่เป็นเอกลักษณ์ของตน) สำหรับการพัฒนา zk DApps ทั่วไป อย่างไรก็ตามนี่ไม่ใช่เรื่องง่ายและเรียนรู้ง่ายเหมือนการใช้ Solidity บน Ethereum
นอกจากนั้นยังมีโครงการมากมาย เช่น zkSync, Scroll หรือบางโครงการภายใต้ร่มรบกวนของ Polygon ที่กำลังทดลองกับ zkEVM หรือโซลูชั่น zkVM อื่น ๆ
EVM คือเครื่องจำลองเสมือนของ Ethereum ซึ่งสามารถเข้าใจได้เช่นกันว่าเป็นชุดของสภาพแวดล้อมการดำเนินการสำหรับการเรียกใช้สัญญาฉลากอัจฉริยะ
ในระยะเวลาหลายปี บล็อกเชนสาธารณะต่าง ๆ ได้พยายามอย่างต่อเนื่องที่จะเข้ากันได้กับ EVM โดยผนวกเข้ากับระบบพัฒนา Ethereum โดยประการนี้ แนวคิดนี้ได้นำไปสู่การหาคำจำกัดความเช่น EVM compatibility, EVM equivalence, และคำจำกัดความอื่น ๆ
เรามาทำความเข้าใจ zkEVM อีกเพิ่มเติม ตามนิยาม zkEVM คือเครื่องจำลองเสมือนที่เข้ากันได้กับ EVM และเป็นมิตรกับพิสูจน์ทฤษฎีศาสตร์ที่เป็นศูนย์ ๆ ที่สร้างความถูกต้องอย่างสมบูรณ์ของโปรแกรม การดำเนินการ และข้อมูลเข้า/ออก
เพื่อบรรทึกความสามารถในการคำนวณทั่วไป มีทั้งหมด 2 ความท้าทายหลักในการพัฒนา zkEVM:
สัญญาที่แตกต่างกันต้องการการสร้างวงจรที่แตกต่างกัน และวงจรเหล่านี้มีความ 'ซับซ้อน' อย่างมาก
ด้านนี้ใช้วิธีการปรับปรุงต่าง ๆ อย่างหลายอย่าง ตัวอย่างเช่น Aleo (แม้ว่ามันไม่ใช่ประเภท ZK โดยตรง... เป็นตัวอย่างเพื่อการปรับปรุง) ใช้คลัสเตอร์ที่กระจายสำหรับการคำนวณพิสูจน์พร้อมกัน หรือการปรับปรุงฮาร์ดแวร์ต่าง ๆ สำหรับการเร่งความเร็ว
zkEVM ต้องการไม่เพียงแค่การสร้างใหม่ของ EVM แต่ยังต้องการการสร้างใหม่ของการเปลี่ยนแปลงสถานะทั้งหมดของ Ethereum โดยใช้เทคโนโลยีพิสูจน์ทศนิยมศูนย์
การออกแบบเดิมของ EVM ไม่ได้คาดหวังถึงการพัฒนา zkEVM ซึ่งเป็นเหตุให้เกิดความยากลำบากอย่างมาก ซึ่งได้ผลให้เกิดโรงเรียนสองฝ่ายดังแสดงในแผนภูมิ
หรือเพื่อแยกแยะตามโครงสร้างของเครื่องจำลองเสมือน (VM) เช่นในแผนภาพด้านล่าง (ขอขอบคุณอย่างสูงที่ Scroll Tech สำหรับภาพสรุปดั้งเดิม!) Opcode หมายถึง EVM Opcode ส่วนของ StarkWare ใช้ Warp เพื่อแปลงสัญญา Solidity เป็นสัญญา Cairo หรือสามารถเขียนสัญญาใน Cairo โดยตรง และยังคงได้ประสบการณ์การพัฒนาที่ดีและชุดเครื่องมือครบ
ที่ระดับนักพัฒนาและผู้ใช้, ฉันเห็นว่าโซลูชันเหล่านี้เกือบจะไม่สามารถแยกแยะได้ อย่างไรก็ตาม, ในเชิงโครงสร้างพื้นฐาน, โซลูชันทางขวามือมีความสามารถในการทำงานร่วมกับ EVM ได้ดีกว่า สามารถให้การรองรับอย่างไม่มีปัญหากับโครงสร้างพื้นฐาน เช่น Geth แต่ความคืบหน้าในการพัฒนามักจะช้าลง
ในความคิดของฉันการมีอยู่ของ zkEVM คือการคิดค้นและแก้ไขระบบนิเวศของ Ethereum ซึ่งเอื้อต่อความเจริญรุ่งเรืองของ Ethereum และระบบนิเวศ ในทางกลับกันการมีอยู่ของ zkVM อาจไม่จําเป็นต้องเสริมสร้าง Ethereum แต่ให้จินตนาการที่มากขึ้น
แม้ว่า Cairo VM ของ StarkNet อาจจะไม่ใช่ zkVM ที่สมบูรณ์แบบที่ฉันคาดหวัง แต่มันสามารถทำได้มากกว่า EVM หรือ zkEVM ฟังก์ชันพิเศษเหล่านี้เกินความสามารถของส่วนขยาย EIP บน Cairo VM โมเดลการเรียนรู้ของเครื่องสามารถรัน และยังมีแพลตฟอร์มโมเดลการเรียนรู้ของเครื่องกำลังถูกสร้างขึ้นบน StarkNet อีกด้วย
เมื่อเปรียบเทียบกับ zkEVM การสร้าง zkVM ง่ายกว่า (โดยไม่ต้องกังวลเรื่องหนี้สูญญากาศทางเทคนิคของ EVM) ยืดหยุ่นมากกว่า (โดยไม่ต้องกังวลเรื่องการอัปเดตของ EVM) และง่ายต่อการปรับปรุง (ตรวจสอบและตัวจัดการพิสูจน์ที่ง่ายและถูกกว่าการสร้าง zkEVM)
อย่างไรก็ตาม, zkVM มีข้อเสียเล็กน้อย แต่อาจเป็นอุปสรรคที่ชีพจรได้ หาก zkVM ไม่สามารถให้ความเข้ากันได้กับ EVM ในระดับภาษา Solidity, จะยากสำหรับ zkVM ที่จะสร้างระบบนิเวศการพัฒนา Web3 อย่างเต็มรูปแบบและสมบูรณ์เช่นเดียวกับ EVM
zkVM อาจเป็นแนวโน้มที่ใหญ่กว่าซึ่งสามารถเปิดโอกาสให้การปรับแต่งแนวราบของ EVM และการขยายตัวแนอนของระบบนิเวศ EVM โดยที่ไม่ต้องได้รับข้อจำกัดของ EVM
หากมี zkVM สากลที่อนุญาตให้สมาร์ทคอนแทร็กทุกภาษาโปรแกรมไม่แค่ Solidity ไม่แค่ Cairo แต่ Rust C++ Go ทำงานอย่างปลอดภัยด้วยหลักฐานที่ไม่เปิดเผย นั้นก็ดีน่าหวังใจใช่ไหม (Stellar พยายามแล้ว แต่ล้มเหลว)
เหมือน @kelvinfichterกล่าวถึง: ทำไม zkEVM ถ้า zkMIPS ล่ะ?@KyleSamaniกล่าวถึง: EVM เป็นข้อผิดพลาดไม่ใช่คุณสมบัติ ทำไม zkEVM ถ้า zkVM?
Winterfall, Distaff, Miden VM, และ zkVMs อื่น ๆ ยังไม่ได้รับการยินยอมจากนักพัฒนาในระดับสูง Nervos มี RISC-V VM แต่มันไม่ใช้เทคโนโลยี proof zero-knowledge
Solition ที่ดีที่สุดในสถานการณ์ปัจจุบันคือการสร้าง WASM หรือ RISC-V zkVM, ดีขึ้นอีกถ้ามันสามารถรองรับภาษาเช่น Rust, Go, C++, และ Solidity (zkSync ดูเหมือนจะสามารถมีส่วนช่วยอย่างมีนัยสำคัญ) หากมี zkVM สากลเช่นนั้น มันจะเป็นการโจมตีที่มีนัยสำคัญต่อ zkEVM
จำนวนนักพัฒนา Web3 มีอยู่ประมาณ 0.07% ของนักพัฒนาทั้งหมด นี่หมายความว่าจำนวนนักพัฒนา Solidity ยิ่งน้อยกว่า 0.07% และนักพัฒนาน้อยมากกว่านักพัฒนาจะใช้ Cairo เพื่อเขียนสัญญาหรือ Leo เพื่อเขียนวงจร ด้วยผลลัพธ์ที่ zkVM ที่สมบูรณ์ถึงเป้าหมายที่จะเป็นที่ชื่นชมสำหรับนักพัฒนาเกือบ 100% เนื่องจากนักพัฒนาใดก็สามารถได้รับสภาพแวดล้อมที่ดีเยี่ยมที่เป็นศูนย์ของความรู้ได้โดยใช้ภาษาโปรแกรมใดก็ได้เกือบทุกภาษา
หากวันหนึ่ง Web3 และ Crypto จะครองโลก ฉันเชื่อว่ามันแน่นอนจะไม่ใช่ระบบนิเวศ EVM ที่ครอบครอง 100% ของนักพัฒนาทั้งหมด แต่เป็นนักพัฒนาทั้งหมดที่เริ่มเปลี่ยนไปเป็นนักพัฒนา Web3 และ Crypto เป็นบางส่วน นี่คือที่ที่ความฉลาดของ zkVM สามารถหล่อหลอม
Native zkEVM เป็นอนาคตของบล็อกเชน
Universal zkVM เป็นอนาคตของ Web3.