ขออธิบายเป็นภาษาไทยเกี่ยวกับ 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 หรือการทำงานแบบเรียงลำดับขั้นตอน เพื่อจัดการกระบวนการสร้างฉันทามติและการประมวลผลธุรกรรมให้สอดคล้องกัน โดยแบ่งเป็นขั้นตอนดังนี้
- รับธุรกรรมเข้ามาในระบบ
- จัดลำดับธุรกรรมผ่านฉันทามติ (consensus)
- ประมวลผลธุรกรรม (execution) ตามลำดับที่ได้รับ
- อัพเดทสถานะบล็อกเชนตามผลลัพธ์ของการประมวลผล
สรุป: เทคนิค Deferred Execution และ Pipelined consensus-execution staging ช่วยให้บล็อกเชน Monad สามารถประมวลผลธุรกรรมได้รวดเร็วและขยายขนาดรองรับผู้ใช้งานได้จำนวนมาก โดยไม่สูญเสียประสิทธิภาพของระบบ
ในระบบ Ethereum การประมวลผลธุรกรรม (execution) จำเป็นต้องเกิดขึ้นก่อนการสร้างฉันทามติ (consensus) หมายความว่า เมื่อโหนดต่างๆ ต้องการตกลงยอมรับบล็อกใหม่ โหนดเหล่านั้นต้องเห็นพ้องทั้ง 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