Loading market data...

Sui Mainnet โดนขัดข้องถึงสามครั้งหลังอัปเกรด 1.72 ทำให้เกิดบั๊กเกี่ยวกับการคิดค่าแก๊สและความสุ่ม

Sui Mainnet โดนขัดข้องถึงสามครั้งหลังอัปเกรด 1.72 ทำให้เกิดบั๊กเกี่ยวกับการคิดค่าแก๊สและความสุ่ม

เครือข่ายหลักของ Sui พบการขัดข้องสามครั้งแยกกันในวันที่ 28-29 พฤษภาคม หลังการอัปเกรด 1.72 ทำให้เกิดจุดบกพร่อง (edge cases) ในตรรกะการคิดค่าแก๊สและการเริ่มต้นใหม่ของ Validator เครือข่ายล่มสองครั้งในวันอังคารและอีกครั้งในวันพุธ รวมระยะเวลาหยุดทำงานเกือบ 12 ชั่วโมง ตามข้อมูลจาก Sui Foundation พบว่าไม่มีเงินทุนของผู้ใช้สูญหายและไม่มีธุรกรรมที่ถูกยืนยันถูกยกเลิก

บั๊กการคิดค่าแก๊สทำให้เกิดการขัดข้องสองครั้งแรก

การขัดข้องครั้งแรกเริ่มประมาณ 7:00 น. ตามเวลา PT ของวันที่ 28 พฤษภาคม และกินเวลาจนถึง 13:30 น. PT ครั้งที่สองตามมาในเช้าวันถัดมา ตั้งแต่ 5:00 น. ถึง 8:30 น. PT ของวันที่ 29 พฤษภาคม ทั้งสองครั้งมีสาเหตุมาจากบั๊กการคิดค่าแก๊สในเส้นทางแก๊สแบบผสม (hybrid address balance/coin gas path) ที่ทำให้เกิดสภาวะ underflow มีการปรับใช้แพตช์ชั่วคราวเพื่อหลีกเลี่ยงการรวมแก๊ส (gas smashing) เมื่อธุรกรรมถูกยกเลิกด้วยข้อผิดพลาด InsufficientFundsForWithdraw แต่การแก้ไขดังกล่าวมีจุดอ่อน: underflow ยังสามารถเกิดขึ้นได้ภายใต้สาเหตุการยกเลิกหลายประการ

การขัดข้องครั้งที่สามเกี่ยวข้องกับความล้มเหลวในการบันทึก DKG

การขัดข้องครั้งที่สาม ตั้งแต่ 13:30 น. ถึง 19:20 น. PT ของวันที่ 29 พฤษภาคม มีสาเหตุมาจากบั๊กเกี่ยวกับสถานะความสุ่ม (randomness-state) ปัญหาคือคำตัดสินจากการสร้างคีย์แบบกระจาย (DKG) ที่ล้มเหลวไม่ได้ถูกเขียนลงดิสก์ Validator ลืมว่ามีความล้มเหลวเกิดขึ้น ทำให้ epoch ค้างและไม่สามารถดำเนินการต่อได้ การแก้ไขรวมถึงการบันทึกสถานะ DKG ผ่านการรีสตาร์ท และการเพิ่มกลไกเพื่อปิด epoch ที่ค้างอยู่ ณ จุดที่ประสานงานกัน

Foundation เรียกร้องมาตรการความทนทานที่แข็งแกร่งขึ้น

Sui Foundation ระบุว่าการวิเคราะห์หลังเกิดเหตุ (postmortem) แสดงให้เห็นถึงความจำเป็นในการลงทุนเพิ่มเติมในความทนทานเมื่อสิ้นสุด epoch (end-of-epoch resilience) และตรรกะการคิดค่าแก๊สที่เข้มงวดยิ่งขึ้น ทาง foundation ยังไม่ได้ระบุกำหนดเวลาในการปรับปรุงที่กว้างขวางขึ้น ในขณะที่รายงานนี้ SUI มีการซื้อขายที่ $0.8798 ลดลงจากระดับก่อนเกิดการขัดข้อง

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