# Morph Modular Design[Thai]

By [tobe_number_one](https://paragraph.com/@tbno1) · 2024-06-23

---

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

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

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

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

![](https://storage.googleapis.com/papyrus_images/930f57f5064a337ada51907b3f1bfd7ca6b28e69858a30364b9483aa342daebf.png)

**ภาพรวม**
----------

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

1.  ความเห็นพ้อง (Consensus)
    
2.  การดำเนินการ (Execution)
    
3.  การมีข้อมูลพร้อมใช้งาน (Data Availability)
    
4.  การชำระเงิน (Settlements)
    

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

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

* * *

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

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

![](https://storage.googleapis.com/papyrus_images/9906e273b3be20f8042ac06dd4f080b8780f1fed14f885d471fdb13b6935f4d2.png)

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

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

![](https://storage.googleapis.com/papyrus_images/04effa8135086a9301b95f7db4c8ccd26918356ad700705f02a6290aaf804c19.png)

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

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

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

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

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

![](https://storage.googleapis.com/papyrus_images/2092295186d803273fac24f40316351f358639dc1da35aba54260d23093edb43.png)

[**Rollup**](https://docs.morphl2.io/docs/how-morph-works/general-protocol-design/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
------------------------------

![](https://storage.googleapis.com/papyrus_images/9e9454a2b48c8dbf048853794f870c670cac29ee6e7126100cf041352042b6d2.png)

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

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

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

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

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

* * *

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

[https://docs.morphl2.io/docs/how-morph-works/morph-modular-design](https://docs.morphl2.io/docs/how-morph-works/morph-modular-design)

---

*Originally published on [tobe_number_one](https://paragraph.com/@tbno1/morph-modular-design-thai)*
