การออกแบบแบบโมดูลาร์ของ Morph

ด้วยการปรับปรุงความสามารถในการประกอบระบบ การออกแบบแบบโมดูลาร์ของบล็อกเชนกลายเป็นเทรนด์ และเราได้รวมการออกแบบนี้เข้ากับการก่อสร้าง Morph

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

โครงสร้างโครงกระดูกของ Morph แสดงด้านล่างนี้:

ภาพรวม

"โมดูลาร์" โดยทั่วไปเป็นคำที่ใช้อธิบายแนวคิดการออกแบบสถาปัตยกรรมที่บล็อกเชน Layer 1 สามารถแบ่งออกเป็นสี่ฟังก์ชัน:

  1. ความเห็นพ้อง (Consensus)

  2. การดำเนินการ (Execution)

  3. การมีข้อมูลพร้อมใช้งาน (Data Availability)

  4. การชำระเงิน (Settlements)

เราเชื่อว่า Layer 2 ก็สามารถนำแนวคิดนี้ไปใช้ได้เช่นกัน

ตามนั้น เราจึงได้แบ่ง Morph (หรือ Layer 2 อื่นๆ) เป็น 3 โมดูล แต่ละโมดูลทำหน้าที่ตามที่กล่าวมา


3 โมดูลหลักของ Morph

เครือข่ายซีเควนเซอร์ - ความเห็นพ้องและการดำเนินการ

เครือข่ายซีเควนเซอร์รับผิดชอบในการดำเนินการและความเห็นพ้องของธุรกรรม Layer 2 สำหรับรายละเอียดเพิ่มเติม โปรดดูข้อมูลเกี่ยวกับซีเควนเซอร์แบบกระจายศูนย์ของ Morph

Optimistic zkEVM - การชำระเงินหรือส่งมอบ(settlement)

สำหรับทุกโครงการ Layer 2 จำเป็นต้องดำเนินการตรวจสอบสถานะเพื่อให้แน่ใจว่าการเปลี่ยนแปลงสถานะบน Layer 2 นั้นถูกต้องบน Layer 1

สำหรับ zkRollups จะใช้ zkEVM และสำหรับ Optimistic Rollups จะใช้การพิสูจน์การฉ้อโกง (Fraud Proof)

Morph มีการออกแบบที่ไม่เหมือนใครในเรื่องนี้ โดยเราได้แนะนำ Optimistic zkEVM ซึ่งเป็นโซลูชันลูกผสมใหม่สำหรับการตรวจสอบสถานะ

กระบวนการตรวจสอบสถานะจะทำการสรุปและชำระธุรกรรมและสถานะของ Layer 2

Rollup - การมีข้อมูลพร้อมใช้งาน (Data Availability)

Rollup เป็นกระบวนการที่ Layer 2 ส่งธุรกรรมและสถานะของ L2 ไปยัง Layer 1

ด้วยวิธีนี้ ข้อมูลทั้งหมดของ Layer 2 จะสามารถเข้าถึงได้บน Layer 1 ทำให้การมีข้อมูลพร้อมใช้งานเป็นไปได้

กลยุทธ์การ rollup ของ Morph เน้นการเพิ่มประสิทธิภาพให้สูงสุด ธุรกรรมหนึ่งรายการประกอบด้วยหลายชุดข้อมูล (batches) และแต่ละชุดข้อมูลประกอบด้วยหลายบล็อก นอกจากนี้ ด้วยการใช้ฟีเจอร์ zk-proof เนื้อหาของบล็อกจะถูกบีบอัดเพื่อจัดการต้นทุนการมีข้อมูลพร้อมใช้งานของ Layer 1 ได้อย่างมีประสิทธิภาพ


5 บทบาทหลักใน Morph

ซีเควนเซอร์ (Sequencers)

เป็นส่วนที่สำคัญที่สุดของเครือข่าย ซีเควนเซอร์มีหน้าที่ดังนี้:

  • รับธุรกรรมของผู้ใช้ Layer 2 และสร้างบล็อก (L2 Node)

  • บรรลุความเห็นพ้องในบล็อกกับซีเควนเซอร์อื่น ๆ (Consensus)

  • ดำเนินการบล็อกและใช้การส่งผ่านสถานะ (L2 Node)

  • แบ่งกลุ่มบล็อกและส่งไปยัง Layer 1 พร้อมกับสถานะใหม่ของ Layer 2

  • ซิงโครบล็อกกับโหนดเต็ม (Full Nodes)

  • ใช้ Provers เพื่อสร้างการพิสูจน์ความถูกต้องเมื่อถูกท้าทาย

ผู้พิสูจน์ (Prover) Prover

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

โมดูล Prover ต้องรักษา 3 ส่วนประกอบ: L2 Node, zkEVM และ Aggregator

มันจะซิงโครไนซ์ข้อมูลธุรกรรม Layer 2 ที่จำเป็นผ่าน L2 Node และสร้าง zk proofs ที่เกี่ยวข้องผ่านส่วนประกอบ zkEVM

ภายใต้กรอบการทำงานปัจจุบันของ Morph, Prover จะถูกเรียกใช้เฉพาะเมื่อซีเควนเซอร์ถูกท้าทายเนื่องจากประสิทธิภาพที่ไม่เพียงพอและต้นทุนที่สูงในการสร้าง zk proofs ด้วยสภาพเทคโนโลยีในปัจจุบัน

หลังจากที่ปัญหาที่เกี่ยวข้องได้รับการแก้ไขในอนาคต Morph จะถูกแปลงเป็น ZK Rollup ที่สมบูรณ์ซึ่งสร้าง zk proofs สำหรับแต่ละบล็อกของ Layer 2

ผู้ตรวจสอบ (Validator)

ผู้ตรวจสอบเป็นบทบาทที่สามารถรับได้โดยผู้ใช้ใดๆ และการเป็นผู้ตรวจสอบนั้นไม่มีการจำกัดสิทธิ์

ผู้ตรวจสอบต้องกำหนดว่าสถานะที่ซีเควนเซอร์ส่งไปยัง L1 นั้นถูกต้องหรือไม่ และวิธีที่ดีที่สุดในการทำเช่นนี้คือการรักษา L2 Node ที่ซิงโครไนซ์ธุรกรรมและการเปลี่ยนแปลงสถานะใน L2

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

โหนด (Nodes)

โหนดไม่ได้มีส่วนร่วมในเชิงรุกกับการทำงานของเครือข่ายหรือดำเนินการใดๆ แต่มีอยู่เพื่อให้การเข้าถึงธุรกรรมและสถานะของ L2 ง่ายขึ้น

การเป็นโหนดต้องการการเรียกใช้ L2 Node และกระบวนการนี้เปิดให้ทุกคนโดยไม่ต้องได้รับอนุญาต

โหนดสามารถแบ่งออกเป็นโหนดทั่วไปหรือโหนดจัดเก็บข้อมูล (Archive Nodes) ขึ้นอยู่กับประเภทของข้อมูลที่พวกเขาจัดการ โดยโหนดจัดเก็บข้อมูลจะเก็บข้อมูลสถานะและธุรกรรมมากกว่าโหนดทั่วไป

Layer 1

ทุก Layer 2 จำเป็นต้องมี Layer 1 สำหรับ Morph นั่นคือ Ethereum

Layer 1 ทำหน้าที่เป็นผู้ให้ข้อมูลพร้อมใช้งานและการชำระเงินสุดท้าย

Morph ได้ปรับใช้สัญญาที่สำคัญหลายฉบับเพื่อให้ Layer 1 เป็นผู้ตัดสินขั้นสุดท้ายและที่จัดเก็บข้อมูล นี่เป็นสิ่งที่จำเป็นสำหรับ Layer 2 ทั้งหมดหากพวกเขาต้องการสืบทอดความปลอดภัยของ Ethereum


6 ส่วนประกอบของ Morph

L2 Node L2 Node

มีบทบาทสำคัญในโครงสร้างสถาปัตยกรรมโดยรวม โดยทำหน้าที่เป็นศูนย์กลางให้โมดูลอื่นๆ หลายโมดูลโต้ตอบและแลกเปลี่ยนข้อมูลกัน บทบาทต่างๆ ต้องการ L2 Nodes เป็นส่วนสำคัญของการทำงานปกติ

ตัว L2 Node เองก็ถูกแบ่งออกเป็นส่วนประกอบต่างๆ แต่ละส่วนมีฟังก์ชันเฉพาะของตัวเอง:

ตัวจัดการธุรกรรม (Transactions Manager หรือ Mempool)

L2 Node จะใช้ส่วนประกอบนี้เพื่อจัดการธุรกรรมทั้งหมดของ Layer 2 รวมถึง:

  • รับธุรกรรมที่ผู้ใช้ริเริ่มและจัดเก็บไว้ใน Mempool

  • ตอบสนองต่อเลเยอร์ความเห็นพ้องโดยให้ธุรกรรมล่าสุดจาก Mempool สำหรับการสร้างบล็อกเมื่อเงื่อนไขบางอย่างได้รับการตอบสนอง

  • บันทึกและจัดเก็บธุรกรรมของ Layer 2

ตัวดำเนินการ (Executor)

L2 Node จะรักษาสถานะเรียลไทม์ของ Layer 2 และปัจจุบัน Morph ได้ทำการแก้ไข Geth โดยเฉพาะสำหรับ ZK-Proof โดยใช้เป็นเลเยอร์การดำเนินการ หลังจากรับบล็อกที่ได้รับการอนุมัติจากความเห็นพ้องแล้ว L2 Node จะใช้กับสถานะปัจจุบันเพื่อบรรลุการเปลี่ยนสถานะ ตามตรรกะนี้ เลเยอร์การดำเนินการจะทำให้มั่นใจได้ถึงความเข้ากันได้ของ Ethereum และอนุญาตให้นักพัฒนามีประสบการณ์การพัฒนาที่สอดคล้องกัน

ตัวซิงโครไนซ์ (Synchronizer)

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

ตัวส่งชุดข้อมูล (Batch Submitter)

Batch Submitter เป็นส่วนหนึ่งของซีเควนเซอร์ ซึ่งรับผิดชอบในการรับบล็อก L2 อย่างต่อเนื่องเพื่อบรรจุลงในชุดข้อมูล (Batch) และประกอบชุดข้อมูลนั้นเป็น Layer 1 Tx ซึ่งในที่สุดจะถูกส่งไปยังสัญญา Layer 1

ไคลเอนต์ความเห็นพ้อง (Consensus Client)

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

zkEVM

zkEVM เป็นส่วนหนึ่งของ Prover และเป็นเครื่องเสมือนที่รองรับ zk ที่ใช้ในการสร้าง zkProof สำหรับบล็อกและการเปลี่ยนแปลงสถานะของ Ethereum zkProofs เหล่านี้จะถูกใช้เพื่อพิสูจน์ความถูกต้องของธุรกรรมและสถานะของ L2 ในที่สุด

ตัวรวม (Aggregators)

Aggregators และ zkEVM รวมกันเป็น Prover ซึ่งรวม zk proofs สำหรับการผลิตบล็อกเพื่อลดต้นทุนการตรวจสอบ zk proofs

สัญญา Layer 1

ใน Layer 1 (Ethereum) แต่ละ Layer 2 จำเป็นต้องปรับใช้สัญญาที่เกี่ยวข้อง ฟังก์ชันของสัญญาเหล่านี้โดยทั่วไปประกอบด้วย

  • การจัดเก็บธุรกรรมของ Layer 2

  • การดำเนินการเปลี่ยนแปลงสถานะทั่วโลกใน Layer 2

  • การเชื่อมต่อสินทรัพย์และข้อมูลระหว่าง Layer 2 และ Layer 1 นอกจากนี้ ตามการออกแบบซีเควนเซอร์แบบกระจายศูนย์ของ Morph สัญญายังรับผิดชอบในการ:

    • การเลือกและรักษาชุดซีเควนเซอร์

    • การกำกับดูแล การมีอยู่ของสัญญาเหล่านี้ทำให้ Layer 2 สามารถสืบทอดความปลอดภัยของ Layer 1 ได้ เนื่องจากการเรียกใช้และการดำเนินการของสัญญาเหล่านี้ต้องได้รับการตรวจสอบโดยผู้ตรวจสอบนับล้านบน Ethereum


Components -> Roles -> Modules

เลเยอร์พื้นฐานคือส่วนประกอบ และการรวมกันของส่วนประกอบต่างๆ ทำให้สามารถทำหน้าที่ตามบทบาทที่เราได้กล่าวถึงได้

ตัวอย่างเช่น หากคุณรัน L2 Node คุณสามารถทำหน้าที่เป็นโหนด (Node) ได้

หากคุณรัน Batch Submitter และ Consensus Client ด้วย คุณสามารถทำหน้าที่ของซีเควนเซอร์ (Sequencers) ได้

และเมื่อทำงานร่วมกัน บทบาทเหล่านี้จะสามารถทำงานร่วมกันเพื่อบรรลุฟังก์ชันหลักต่างๆ ได้

และเมื่อฟังก์ชันหลักทั้งหมดรวมกันก็จะกลายเป็น Morph ซึ่งเป็น Rollup ที่สมบูรณ์


อ่าน original docs ได้ที่:

https://docs.morphl2.io/docs/how-morph-works/morph-modular-design

Mirror文章信息

Mirror原文:查看原文

作者地址:0x4bD5c4539627D6B4227b633b0F810Fd9446A4B59

内容类型:application/json

应用名称:MirrorXYZ

内容摘要:WJPkDfFr9clPKHTVNL0toE04IWOoUxl3TP-D2burc3o

原始内容摘要:mZ9T9F_HxhkWZ0sSekumVfuJmBbmXcKEcdKXMXylypY

区块高度:1450871

发布时间:2024-06-23 16:25:14