การออกแบบแบบโมดูลาร์ของ Morph
ด้วยการปรับปรุงความสามารถในการประกอบระบบ การออกแบบแบบโมดูลาร์ของบล็อกเชนกลายเป็นเทรนด์ และเราได้รวมการออกแบบนี้เข้ากับการก่อสร้าง Morph
ประการแรก Morph ถูกแบ่งออกเป็นสามโมดูลสำคัญ โดยมีบทบาทต่างๆ ดำเนินการตามความรับผิดชอบของตนเพื่อให้แน่ใจว่าโมดูลทำงานได้อย่างราบรื่น โดยแต่ละบทบาทประกอบด้วยส่วนประกอบที่ชัดเจน ส่วนประกอบพื้นฐานเหล่านี้ทำงานร่วมกันอย่างมีประสิทธิภาพในขณะที่ยังรักษาอิสระของตนเองได้
โครงสร้างโครงกระดูกของ Morph แสดงด้านล่างนี้:
ภาพรวม
"โมดูลาร์" โดยทั่วไปเป็นคำที่ใช้อธิบายแนวคิดการออกแบบสถาปัตยกรรมที่บล็อกเชน Layer 1 สามารถแบ่งออกเป็นสี่ฟังก์ชัน:
-
ความเห็นพ้อง (Consensus)
-
การดำเนินการ (Execution)
-
การมีข้อมูลพร้อมใช้งาน (Data Availability)
-
การชำระเงิน (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
评论 (0)