# Morph Modular Design[Thai] **Published by:** [tobe_number_one](https://paragraph.com/@tbno1/) **Published on:** 2024-06-23 **URL:** https://paragraph.com/@tbno1/morph-modular-design-thai ## Content การออกแบบแบบโมดูลาร์ของ 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 ## Publication Information - [tobe_number_one](https://paragraph.com/@tbno1/): Publication homepage - [All Posts](https://paragraph.com/@tbno1/): More posts from this publication - [RSS Feed](https://api.paragraph.com/blogs/rss/@tbno1): Subscribe to updates - [Twitter](https://twitter.com/tobe_number_one): Follow on Twitter