บทความใหม่สุดโต่งของ Vitalik: ไม่มีอะไรจะทำได้โดยไม่ทำลายสิ่งต่างๆ เพื่อขยายเลเยอร์การดำเนินการ และ EVM จะต้องทำซ้ำในอนาคต

avatar
Azuma
5วันก่อน
ประมาณ 5359คำ,ใช้เวลาอ่านบทความฉบับเต็มประมาณ 7นาที
บล็อคเชนในอุดมคติควรมุ่งเน้นที่ความเรียบง่ายมากขึ้น และระดับฝ่ายบริหารจะต้องดำเนินการเปลี่ยนแปลงขั้นพื้นฐานหากต้องการที่จะบรรลุความก้าวหน้า

บทความนี้มาจาก: Vitalik ผู้ร่วมก่อตั้ง Ethereum

เรียบเรียงโดย Odaily Planet Daily ( @OdailyChina )

แปลโดย อาซึมะ ( @azuma_eth )

บทความใหม่สุดโต่งของ Vitalik: ไม่มีอะไรจะทำได้โดยไม่ทำลายสิ่งต่างๆ เพื่อขยายเลเยอร์การดำเนินการ และ EVM จะต้องทำซ้ำในอนาคต

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

แนวคิดหลักของบทความนี้คือการแทนที่ EVM ด้วย RISC-V ซึ่งเป็นภาษาเครื่องเสมือนสำหรับสัญญาอัจฉริยะ

หมายเหตุสำคัญ:

  • แนวคิดต่างๆ เช่น บัญชี การโทรข้ามสัญญา และการจัดเก็บข้อมูล จะถูกเก็บรักษาไว้อย่างสมบูรณ์ การแยกส่วนเหล่านี้ใช้ได้ดีและนักพัฒนาก็คุ้นเคยกับการใช้มัน โอปโค้ดเช่น SLOAD, SSTORE, BALANCE, CALL ฯลฯ จะกลายเป็นการเรียกใช้ระบบ RISC-V

  • นักพัฒนาสามารถเลือก Solidity หรือ Vyper ได้ แม้ว่าในเชิงทฤษฎีแล้วสัญญาอัจฉริยะสามารถเขียนด้วย Rust ได้ แต่คาดว่านักพัฒนาส่วนใหญ่จะยังคงใช้ Solidity (หรือ Vyper) ซึ่งจะถูกปรับให้เข้ากับ RISC-V เป็นเป้าหมายการคอมไพล์แบ็กเอนด์ นั่นเป็นเพราะสัญญาอัจฉริยะที่เขียนด้วย Rust จะอ่านได้น้อยกว่า ในขณะที่ Solidity และ Vyper นั้นเข้าใจได้ง่ายกว่า ประสบการณ์การพัฒนาแทบจะไม่เปลี่ยนแปลงเลย และนักพัฒนาอาจไม่รู้สึกถึงความแตกต่างเลย

  • สัญญาใหม่และเก่าจะทำงานร่วมกันได้สองทาง สัญญา EVM แบบดั้งเดิมจะยังคงดำเนินต่อไปและทำงานร่วมกับสัญญา RISC-V ฉบับใหม่ได้อย่างสมบูรณ์ วิธีการใช้งานที่เฉพาะเจาะจงจะอธิบายอย่างละเอียดในภายหลัง

  • มีกรณีตัวอย่างอยู่แล้ว: Nervos CKB VM เป็นการใช้งานบนพื้นฐาน RISC-V

เหตุใดจึงจำเป็นต้องมีการเปลี่ยนแปลงนี้?

ในระยะสั้น ปัญหาคอขวดหลักของการขยาย Ethereum Layer 1 จะได้รับการแก้ไขผ่าน EIP ที่กำลังจะมีขึ้น (เช่น รายการการเข้าถึงระดับบล็อก การดำเนินการที่ล่าช้า การจัดเก็บประวัติแบบกระจาย และ EIP-4444) ในระยะกลางเราจะแก้ไขปัญหาได้มากขึ้นผ่านภาวะไร้รัฐสัญชาติและ ZK-EVM แต่ในระยะยาว ปัจจัยหลักที่จำกัดการขยายตัวของ Ethereum Layer 1 จะกลายเป็น:

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

  2. ความจำเป็นในการรักษาตลาดการแข่งขันสำหรับการผลิตแบบบล็อก

  3. ความสามารถในการพิสูจน์ของ ZK-EVM

บทความนี้จะแสดงให้เห็นว่า การแทนที่ ZK-EVM ด้วย RISC-V สามารถทะลุผ่านจุดคอขวดสำคัญในข้อ 2 และ 3 ได้

ต่อไปนี้เป็นตารางสถิติจำนวนรอบที่ Succinct ZK-EVM จำเป็นต้องใช้เพื่อพิสูจน์แต่ละลิงก์ของเลเยอร์การดำเนินการ EVM:

บทความใหม่สุดโต่งของ Vitalik: ไม่มีอะไรจะทำได้โดยไม่ทำลายสิ่งต่างๆ เพื่อขยายเลเยอร์การดำเนินการ และ EVM จะต้องทำซ้ำในอนาคต

ลิงก์หลักที่ใช้เวลานานสี่รายการ ได้แก่: deserialize_inputs (การยกเลิกการทำซีเรียลไลซ์ข้อมูล), initialize_witness_db (การเริ่มต้นฐานข้อมูลพยาน), state_root_computation (การคำนวณรูทสถานะ) และ block_execution (การดำเนินการแบบบล็อก)

“การเริ่มต้นฐานข้อมูลพยาน” และ “การคำนวณรากสถานะ” ล้วนเกี่ยวข้องกับโครงสร้างสถานะ ในขณะที่ “การยกเลิกการทำข้อมูลให้เป็นอนุกรม” หมายความถึงกระบวนการแปลงข้อมูลแบบบล็อกและพยานเป็นการแสดงภายใน ดังนั้น จริงๆ แล้วมากกว่าร้อยละ 50 ของเวลาเกี่ยวข้องกับขนาดของข้อมูลพยาน

ขั้นตอนเหล่านี้สามารถปรับให้เหมาะสมได้อย่างมีนัยสำคัญโดยการแทนที่ keccak 16-ary Merkle patricia tree ในปัจจุบันด้วย binary tree ที่ใช้ฟังก์ชันแฮชที่เป็นมิตรต่อหลักฐาน หากเราใช้ Poseidon เราจะสามารถพิสูจน์แฮชได้ 2 ล้านแฮชต่อวินาทีบนแล็ปท็อป (เมื่อเทียบกับ keccak ที่พิสูจน์ได้ประมาณ 15,000 แฮชต่อวินาที) นอกจาก โพไซดอน ยังมีตัวเลือกอื่นอีกมากมาย โดยรวมแล้ว มีโอกาสที่จะลดเวลาที่ใช้ในขั้นตอนเหล่านี้ได้อย่างมาก นอกจากนี้ เราสามารถลดความซับซ้อนของกระบวนการลงได้อีกโดยการลบ accrue_logs_bloom

ขณะนี้เหลือเพียง การดำเนินการแบบบล็อก เท่านั้น ซึ่งใช้เวลาประมาณครึ่งหนึ่งของรอบการพิสูจน์ปัจจุบัน หากเราต้องการเพิ่มประสิทธิภาพการพิสูจน์โดยรวม 100 เท่า เราจะต้องเพิ่มประสิทธิภาพการพิสูจน์ EVM อย่างน้อย 50 เท่า มีสองเส้นทาง: หนึ่งคือ พยายามสร้างการใช้งาน EVM ที่มีประสิทธิภาพมากขึ้นเพื่อลดรอบการพิสูจน์ อีกวิธีหนึ่งคือให้ผู้พัฒนาสามารถใช้งานเครื่องเสมือน RISC-V ที่ได้รับการนำมาใช้ใน ZK-EVM โดยตรง

ข้อมูลบางส่วนแสดงให้เห็นว่าประสิทธิภาพสามารถปรับปรุงได้มากกว่า 100 เท่าในสถานการณ์บางกรณี:

บทความใหม่สุดโต่งของ Vitalik: ไม่มีอะไรจะทำได้โดยไม่ทำลายสิ่งต่างๆ เพื่อขยายเลเยอร์การดำเนินการ และ EVM จะต้องทำซ้ำในอนาคต

ในทางปฏิบัติ เวลาในการพิสูจน์ที่เหลือส่วนใหญ่จะถูกใช้ไปกับการคอมไพล์ล่วงหน้า หากกำหนด RISC-V ให้เป็นเครื่องเสมือนหลัก กลไกค่าธรรมเนียมแก๊สจะสะท้อนเวลาพิสูจน์จริง และแรงกดดันทางเศรษฐกิจจะกระตุ้นให้ผู้พัฒนาลดการใช้การคอมไพล์ล่วงหน้าที่มีต้นทุนสูง แม้ว่าผลตอบแทนที่แท้จริงอาจจะไม่ดีเท่ากับค่าทางทฤษฎี แต่คาดว่ายังคงมีความสำคัญมาก

เป็นเรื่องที่น่าสังเกตว่ามีการแบ่ง EVM และ ลิงก์อื่นๆ ในการดำเนินการ EVM ปกติในอัตรา 50/50 และเราเชื่อโดยสัญชาตญาณว่าการลบ EVM ออกจาก เลเยอร์กลาง ควรส่งผลให้ประสิทธิภาพดีขึ้นในลักษณะเดียวกัน

การนำไปปฏิบัติ

มีหลายวิธีในการดำเนินการตามข้อเสนอข้างต้น

แนวทางที่สร้างความวุ่นวายน้อยที่สุดคือการรองรับทั้งเครื่องเสมือนและอนุญาตให้เขียนสัญญาในเครื่องเสมือนทั้งสองเครื่อง สัญญาทั้งสองประเภทสามารถเข้าถึงฟังก์ชันการทำงานเดียวกันได้: พื้นที่เก็บข้อมูลถาวร (SLOAD/SSTORE), การจัดการยอดคงเหลือ ETH, การโทรออกและรับสาย ฯลฯ สัญญา EVM และ RISC-V สามารถทำงานร่วมกันได้อย่างอิสระ: การเรียกสัญญา EVM จากมุมมองของ RISC-V จะถูกมองว่าเป็นการเรียกระบบ (syscall) ที่มีพารามิเตอร์พิเศษ ในขณะที่สัญญา EVM ที่รับการเรียกจะแยกวิเคราะห์การเรียกดังกล่าวเป็นคำสั่ง CALL ปกติ

โซลูชันที่รุนแรงกว่าคือการแปลงสัญญา EVM ที่มีอยู่ให้เรียกใช้สัญญาอินเทอร์พรีเตอร์ EVM ที่เขียนใน RISC-V เพื่อดำเนินการโค้ด EVM ดั้งเดิม โดยเฉพาะอย่างยิ่ง หากถือว่าสัญญา EVM มีโค้ด C และล่าม EVM อยู่ในที่อยู่ X สัญญาจะถูกแทนที่ด้วยตรรกะระดับสูงสุด: เมื่อมีการเริ่มการเรียกภายนอกด้วยพารามิเตอร์การเรียก D ตรรกะจะส่งคำขอ (C, D) ไปยัง X รอค่าส่งคืน และส่งต่อคำขอนั้น หากตัวแปล EVM เองจำเป็นต้องเรียกสัญญาเพื่อดำเนินการต่างๆ เช่น CALL, SLOAD หรือ SSTORE สัญญาจะตอบสนองโดยตรง

วิธีแก้ปัญหาแบบประนีประนอมคือสร้างจากวิธีแก้ปัญหาที่สองและสนับสนุนแนวคิดของ ล่ามเครื่องเสมือน โดยชัดเจนผ่านเลเยอร์โปรโตคอล นั่นก็คือ ตรรกะของล่ามจะต้องเขียนใน RISC-V EVM จะเป็นล่ามอย่างเป็นทางการตัวแรก และอาจจะมีการนำล่ามประเภทอื่นๆ (เช่น ล่ามภาษา Move) มาใช้ในอนาคต

ข้อได้เปรียบหลักของตัวเลือกที่สองและสามก็คือคุณสมบัติเหล่านี้ทำให้ข้อกำหนดของชั้นการดำเนินการนั้นง่ายยิ่งขึ้นมาก เนื่องจากแม้แต่การลดความซับซ้อนในระดับเพิ่มขึ้น เช่น การลบ SELFDESTRUCT ออกไป ถือว่าทำได้ยาก การเปลี่ยนแปลงดังกล่าวอาจเป็นวิธีเดียวที่เป็นไปได้ในการบรรลุถึงการลดความซับซ้อนนั้น โครงการ Tinygrad กำหนดอย่างเคร่งครัดว่าจำนวนโค้ดจะไม่เกิน 10,000 บรรทัด เลเยอร์พื้นฐานบล็อคเชนในอุดมคติควรมีความเรียบง่ายที่สุดเท่าที่จะเป็นไปได้ โครงการ Beam Chain ชี้ทางไปสู่การลดความซับซ้อนของเลเยอร์ฉันทามติของ Ethereum และความก้าวหน้าที่คล้ายคลึงกันในเลเยอร์การดำเนินการสามารถทำได้โดยการเปลี่ยนแปลงพื้นฐานดังกล่าวเท่านั้น

บทความนี้แปลจาก https://ethereum-magicians.org/t/long-term-l1-execution-layer-proposal-replace-the-evm-with-risc-v/23617ลิงค์ต้นฉบับหากพิมพ์ซ้ำกรุณาระบุแหล่งที่มา

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

การอ่านแนะนำ
ตัวเลือกของบรรณาธิการ