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

Superbera
3 min readDec 28, 2023

--

Monad ก้าวล้ำไปอีกขั้นด้วยการปรับปรุงจุดความสมดุลระหว่างการกระจายอำนาจและความสามารถในการปรับขยายอย่างมีประสิทธิภาพMonad นำเสนอการปรับปรุงใน 4 ด้านหลัก ส่งผลให้เกิดบล็อคเชนที่มีปริมาณธุรกรรมสูงถึง 10,000 รายการต่อวินาที (tps) ดังนี้:

  • MonadBFT: ปรับปรุงกระบวนการ(consensus) เพื่อความรวดเร็วและเสถียร
  • Deferred Execution: เลื่อนการประมวลผลธุรกรรมบางประเภทเพื่อเพิ่มประสิทธิภาพ
  • Parallel Execution: ประมวลผลธุรกรรมหลายรายการพร้อมกันเพื่อรองรับปริมาณธุรกรรมสูง
  • MonadDb: ฐานข้อมูลบล็อกเชนที่ปรับปรุงประสิทธิภาพ

ด้านที่ 1 MonadBFT

MonadBFT:

two-phase HotStuff Consensus

ระบบ Consensus ใหม่ของ Monad ที่ช่วยให้มี TPS มากกว่า 10,000 + และ Finality ที่ต่ำมาก MonadBFT เป็นอัลกอริทึม BFT สองเฟสแบบท่อส่ง (pipelined) ที่มีความตอบสนอง (optimistic responsiveness) เป็นคุณสมบัติของกลไกความเห็นชอบแบบ Byzantine Fault Tolerance (BFT) ที่ช่วยให้เครือข่ายสามารถตอบสนองต่อธุรกรรมใหม่ได้อย่างรวดเร็ว โดยไม่จำเป็นต้องรอให้รอบความเห็นชอบแบบ BFT เสร็จ สมบูรณ์ และมีค่าใช้จ่ายการสื่อสารแบบเชิงเส้นในกรณีปกติ และแบบกำลังสองในกรณีที่เกิด timeout

MonadBFT เป็นกลไกความเห็นชอบ (consensus) ประสิทธิภาพสูง ที่ใช้สำหรับสร้างความตกลงเกี่ยวกับลำดับการทำธุรกรรม ภายใต้สภาวะที่ซิงโครไนซ์บางส่วน (partially synchronous) และ (Byzantine actors) มันเป็นรูปแบบปรับปรุงมาจาก HotStuff โดยผสมผสานแนวคิดจาก Jolteon/DiemBFT/Fast-HotStuff ซึ่งลดจำนวนรอบจากสามรอบลงเหลือสองรอบ โดยใช้ประโยชน์จากความซับซ้อนของการสื่อสารแบบกำลังสอง (quadratic communication complexity) ในกรณีที่ leader timeout.

optimistic responsiveness

  • ทำให้เครือข่ายตอบสนองต่อธุรกรรมใหม่ได้อย่างรวดเร็ว
  • ช่วยลดเวลาแฝงของเครือข่าย
  • ปรับปรุงประสิทธิภาพของเครือข่าย

Consensus Protocol

แต่ละรอบของ MonadBFT ประกอบด้วยขั้นตอนหลัก ๆ ดังนี้:

  • การเสนอบล็อก: โหนดผู้นำ (leader) จะเสนอบล็อกใหม่ไปยังโหนดผู้ลงคะแนน (voters)
  • การลงคะแนน: โหนดผู้ลงคะแนนจะตรวจสอบบล็อกและลงคะแนนว่าเห็นด้วยหรือไม่เห็นด้วย
  • ใบรับรองโควลัม (QC) หรือใบรับรอง timeout (TC): หากผู้ลงคะแนนส่วนใหญ่เห็นด้วย ผู้นำคนถัดไปจะส่งใบรับรองโควลัม (QC) ไปยังผู้ลงคะแนน หากผู้นำหมดเวลา ผู้นำคนถัดไปจะส่งใบรับรอง timeout (TC) ไปยังผู้ลงคะแนน
  • การยอมรับบล็อก: ผู้ลงคะแนนตรวจสอบ QC หรือ TC และยอมรับบล็อกหากถูกต้อง

ในแต้ละรอบของ MonadBFT จะเกิดเหตุการณ์ดังต่อไปนี้:

1. การส่งบล็อกและใบรับรองโดยผู้นำ:

  • ผู้นำจะส่งบล็อกใหม่ออกไปยังโหนดผู้ลงคะแนน
  • ผู้นำจะส่งใบรับรองโควลัม (QC) หรือใบรับรอง timeout (TC) สำหรับรอบก่อนหน้าไปพร้อมกันด้วย
  • QC คือใบรับรองที่แสดงความตกลงเห็นชอบของโหนดส่วนใหญ่ในรอบที่แล้ว
  • TC คือใบรับรองที่แสดงความล้มเหลวของผู้นำในรอบที่แล้ว

2. การตรวจสอบบล็อกและการลงคะแนนโดยโหนดผู้ลงคะแนน:

  • โหนดผู้ลงคะแนนแต่ละโหนดจะตรวจสอบบล็อกใหม่ว่าเป็นไปตามข้อกำหนดของโปรโตคอลหรือไม่
  • หากโหนดผู้ลงคะแนนเห็นด้วยกับบล็อกใหม่ โหนดนั้นจะส่งการลงคะแนนแบบ YES ที่ลงลายมือชื่อไปยังผู้นำในรอบถัดไป
  • ผู้นำในรอบถัดไปจะรวบรวมการลงคะแนนแบบ YES จากโหนด 2f + 1 โหนดขึ้นไป (เกินครึ่งหนึ่งของโหนดทั้งหมด) เพื่อสร้างใบรับรองโควลัม (QC) โดยใช้ลายเซ็น пороговое (threshold signature)
  • การสื่อสารในขั้นตอนนี้เป็นแบบเชิงเส้น คือ ผู้นำส่งบล็อกไปยังผู้ลงคะแนน และผู้ลงคะแนนส่งการลงคะแนนไปยังผู้นำคนถัดไปโดยตรง

3. การจัดการกับกรณีผู้นำหมดเวลา:

  • หากโหนดผู้ลงคะแนนไม่ได้รับการเสนอบล็อกที่ถูกต้องภายในเวลาที่กำหนด โหนดผู้ลงคะแนนจะส่งข้อความแจ้งหมดเวลา (timeout message) ที่ลงลายมือชื่อไปยังโหนดอื่น ๆ ทั้งหมดในเครือข่าย
  • ข้อความแจ้งหมดเวลาจะรวมถึงใบรับรองโควลัม (QC) ที่โหนดผู้ลงคะแนนได้รับมาล่าสุดด้วย
  • หากโหนดใดโหนดหนึ่งรวบรวมข้อความแจ้งหมดเวลาจากโหนด 2f + 1 โหนดขึ้นไป โหนดนั้นจะสร้างใบรับรอง timeout (TC) โดยใช้ลายเซ็น (threshold signature) และส่งไปยังผู้นำในรอบถัดไปโดยตรง

4.ขั้นตอนสุดท้ายของกลไก MonadBFT:

การสรุปผลบล็อก:

  • ผู้ลงคะแนนแต่ละโหนดจะสรุปผลบล็อกที่เสนอในรอบ k เมื่อได้รับใบรับรองโควลัม (QC) สำหรับรอบ k+1 นั่นคือ เมื่อได้รับการสื่อสารจากผู้นำในรอบ k+2

ตัวอย่าง:

  • สมมติว่า Alice เป็นผู้นำในรอบ k และส่งบล็อกใหม่ไปยังทุกคนพร้อมกับใบรับรองโควลัม (QC) หรือใบรับรอง timeout (TC) สำหรับรอบ k-1
  • ถ้าโหนดผู้ลงคะแนน 2f+1 โหนดลงคะแนนแบบ YES สำหรับบล็อกนั้น โดยส่งการลงคะแนนไปยัง Bob (ผู้นำในรอบ k+1) บล็อกในรอบ k+1 ก็จะรวมใบรับรองโควลัม (QC) สำหรับรอบ k ไว้ด้วย
  • อย่างไรก็ตาม การที่ Valerie (ซึ่งเป็นโหนดผู้ลงคะแนน) เห็นใบรับรองโควลัม (QC) สำหรับรอบ k ยังไม่เพียงพอที่จะสรุปได้ว่าบล็อกในรอบ k ได้รับการสรุปผลแล้ว เนื่องจาก Bob อาจเป็นโหนดที่ทำงานผิดพลาดและส่งบล็อกเพียงให้ Valerie คนเดียวก็ได้
  • สิ่งที่ Valerie ทำได้คือลงคะแนนสำหรับบล็อกในรอบ k+1 โดยส่งการลงคะแนนไปยัง Charlie (ผู้นำในรอบ k+2)
  • ถ้าโหนดผู้ลงคะแนน 2f+1 โหนดลงคะแนนแบบ YES สำหรับบล็อกในรอบ k+1 Charlie ก็จะเผยแพร่ใบรับรองโควลัม (QC) สำหรับรอบ k+1 พร้อมกับเสนอบล็อกใหม่สำหรับรอบ k+2
  • ทันทีที่ Valerie ได้รับบล็อกนี้ เธอก็จะสรุปได้ว่าบล็อกจากรอบ k (บล็อกของ Alice) ได้รับการสรุปผลแล้ว

การจัดการกับผู้นำที่ทำงานผิดพลาด:

  • ถ้า Bob ทำงานผิดพลาด เช่น ส่งบล็อกที่ไม่ถูกต้องในรอบ k+1 หรือส่งบล็อกไปยังโหนดผู้ลงคะแนนน้อยกว่า 2f+1 โหนด โหนดผู้ลงคะแนนอย่างน้อย f+1 โหนดก็จะหมดเวลา จากนั้นโหนดผู้ลงคะแนนที่ไม่ทำงานผิดพลาดที่เหลือก็จะหมดเวลาตามไปด้วย ส่งผลให้อย่างน้อยหนึ่งโหนดสร้างใบรับรอง timeout (TC) สำหรับรอบ k+1
  • Charlie ก็จะเผยแพร่ใบรับรอง timeout (TC) สำหรับรอบ k+1 ในบล็อกที่เสนอในรอบ k+2 (เขาต้องทำเช่นนี้เพราะไม่มีใบรับรองโควลัม (QC) สำหรับรอบ k+1 ให้ใช้)

กฎการสรุปผลแบบ 2 บล็อก:

  • กฎการสรุปผลนี้เรียกว่ากฎการสรุปผลแบบ 2 บล็อก (2-chain commit rule) เพราะทันทีที่ผู้ลงคะแนนเห็นบล็อกที่ผ่านการรับรอง 2 บล็อกติดกันคือ B และ B’ พวกเขาก็สามารถสรุปผลบล็อก B และบรรพบุรุษของ B ทั้งหมดได้

BLS multi-signatures

1. ใบรับรองแบบดั้งเดิม (QCs และ TCs):

  • ใบรับรองแบบดั้งเดิมมักใช้ลายเซ็นต์ดิจิทัล ECDSA บน secp256k1
  • ใบรับรองเหล่านี้สร้างและตรวจสอบได้ง่าย
  • แต่มีข้อจำกัดด้านขนาดที่เพิ่มขึ้นตามจำนวนผู้ลงนาม ทำให้มีปัญหาในการขยายขนาดเครือข่าย

2. ลายเซ็นต์ดิจิทัลแบบคู่ BLS multi-signatures:

  • ลายเซ็นต์ดิจิทัลแบบคู่ BLS บน BLS12–381 ช่วยแก้ปัญหาเรื่องขนาดได้
  • สามารถรวมลายเซ็นต์จากผู้ลงนามหลายคนเข้าด้วยกันเป็นลายเซ็นต์เดียวได้
  • การตรวจสอบลายเซ็นต์ที่รวมแล้วเพียงครั้งเดียว เป็นการยืนยันว่าผู้ลงนามทั้งหมดได้ลงนามในข้อความนั้นจริง

3. ข้อดีและข้อจำกัดของ BLS:

  • ข้อดี: แก้ปัญหาเรื่องขนาดของใบรับรองได้
  • ข้อจำกัด: ประมวลผลได้ช้ากว่า ECDSA

4. แนวทางผสมผสานใน MonadBFT:

  • MonadBFT ใช้แนวทางผสมผสานโดยเลือกใช้ BLS เฉพาะกับข้อความประเภทที่สามารถรวมกันได้ (เช่น การลงคะแนนและข้อความแจ้งหมดเวลา)
  • ยังคงใช้ ECDSA เพื่อรับประกันความสมบูรณ์และความถูกต้องของข้อความประเภทอื่น ๆ

--

--

No responses yet