Monad 4 ด้านหลักที่ทำให้ Monad ทรงพลัง (2/4)

Superbera
2 min readJan 1, 2024

--

ขออธิบายเป็นภาษาไทยเกี่ยวกับ Deferred Execution และ Pipelined consensus-execution staging ใน Monad blockchain ดังนี้

Deferred Execution หรือ การเลื่อนการประมวลผลคำสั่ง คือเทคนิคที่ช่วยแยกกระบวนการประมวลผลธุรกรรมออกจากกระบวนการสร้าง (consensus) บนบล็อกเชน Monad

รายละเอียด

1. การแยกการประมวลผลธุรกรรมออกจากการสร้างฉันทามติ:

  • ฉันทามติ (consensus): คือกระบวนการที่โหนดต่างๆ ในเครือข่าย Monad ร่วมกันตกลงและยอมรับลำดับของธุรกรรมอย่างเป็นทางการ
  • การประมวลผลธุรกรรม (execution): คือกระบวนการที่โหนดในเครือข่ายนำธุรกรรมที่ได้รับการจัดลำดับแล้วมาดำเนินการจริง ทำให้เกิดการเปลี่ยนแปลงสถานะ (state) ของบล็อกเชน

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

2. เหตุผลที่ใช้เทคนิคนี้:

  • เร่งความเร็วการทำงาน: การแยกกระบวนการประมวลผลธุรกรรมออกจากการสร้างฉันทามติช่วยให้ระบบทำงานได้เร็วขึ้นมาก เพราะโหนดไม่ต้องรอให้ธุรกรรมทั้งหมดประมวลผลเสร็จจึงสร้างฉันทามติได้
  • ขยายขนาดของเครือข่าย: เทคนิคนี้ทำให้บล็อกเชน Monad สามารถรองรับผู้ใช้งานได้เป็นจำนวนมาก แม้จะเป็นระบบแบบ single-shard (ไม่มีแบ่งแยกย่อยเป็นเครือข่ายย่อยๆ)

3. การทำงานแบบ Pipelined consensus-execution staging:

  • ระบบ Monad ใช้เทคนิคการทำงานแบบ pipeline หรือการทำงานแบบเรียงลำดับขั้นตอน เพื่อจัดการกระบวนการสร้างฉันทามติและการประมวลผลธุรกรรมให้สอดคล้องกัน โดยแบ่งเป็นขั้นตอนดังนี้
  1. รับธุรกรรมเข้ามาในระบบ
  2. จัดลำดับธุรกรรมผ่านฉันทามติ (consensus)
  3. ประมวลผลธุรกรรม (execution) ตามลำดับที่ได้รับ
  4. อัพเดทสถานะบล็อกเชนตามผลลัพธ์ของการประมวลผล

สรุป: เทคนิค Deferred Execution และ Pipelined consensus-execution staging ช่วยให้บล็อกเชน Monad สามารถประมวลผลธุรกรรมได้รวดเร็วและขยายขนาดรองรับผู้ใช้งานได้จำนวนมาก โดยไม่สูญเสียประสิทธิภาพของระบบ

ในระบบ Ethereum การประมวลผลธุรกรรม (execution) จำเป็นต้องเกิดขึ้นก่อนการสร้างฉันทามติ (consensus) หมายความว่า เมื่อโหนดต่างๆ ต้องการตกลงยอมรับบล็อกใหม่ โหนดเหล่านั้นต้องเห็นพ้องทั้ง 2 เรื่อง คือ

  1. ลำดับของธุรกรรมในบล็อกนั้น
  2. Merkle root ซึ่งสรุปสถานะทั้งหมดของบล็อกเชนหลังจากการประมวลผลธุรกรรมในบล็อกนั้น

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

ระบบนี้มีข้อจำกัดในเชิงเวลาดังนี้

  • การประมวลผลธุรกรรมเกิดขึ้นซ้ำซ้อน: ต้องประมวลผลธุรกรรม 2 ครั้ง ทั้งโดยโหนดผู้นำและโหนดตรวจสอบ
  • เวลาจำกัด: ต้องเหลือเวลาเพียงพอสำหรับการสื่อสารข้ามเครือข่ายเพื่อสร้างฉันทามติ
  • จำกัดการใช้แก๊ส: ต้องกำหนดปริมาณแก๊ส (gas limit) อย่างระมัดระวัง เพื่อให้แน่ใจว่าการประมวลผลธุรกรรมทั้งหมดจะสำเร็จภายในปริมาณแก๊สที่กำหนด แม้ในกรณีที่เลวร้ายที่สุด

ผลที่ตามมาคือ:

  • ระบบทำงานช้าลง: เพราะการประมวลผลธุรกรรมต้องเกิดขึ้น 2 ครั้ง
  • ขยายขนาดได้ยาก: ปริมาณธุรกรรมต่อวินาทีถูกจำกัดด้วยปริมาณแก๊สและเวลาประมวลผล
  • ไม่เหมาะกับการใช้งานที่ต้องการความเร็วสูง: เช่น การแลกเปลี่ยนแบบกระจายศูนย์ (DEX) หรือเกมบล็อกเชน

เพื่อแก้ปัญหาเหล่านี้ ระบบ Monad จึงใช้เทคนิค Deferred Execution หรือการเลื่อนการประมวลผลคำสั่ง ดังที่ได้อธิบายไว้ก่อนหน้านี้

Twitter monad = https://twitter.com/monad_xyz

Discord Monad = https://discord.gg/monad
Website = Monad | Extreme Parallelized Performance for EVM

Create by : supersaiyahunter

Discord = supersaiyahunter

--

--

No responses yet