เมนเน็ตของ Sui ประสบปัญหาไฟดับสามครั้งแยกกันในวันที่ 28 และ 29 พฤษภาคม หลังจากการอัปเกรดเวอร์ชัน 1.72 ของเครือข่ายเปิดเผยกรณีขอบเขตในตรรกะการชาร์จ gas และการรีสตาร์ทของ validator ตามรายงานการวิเคราะห์เหตุการณ์หลังเกิดเหตุจาก Sui Foundation โดยมูลนิธิระบุว่าปัญหาดังกล่าวได้รับการแก้ไขแล้ว กิจกรรมบนเครือข่ายกลับมาเป็นปกติ และ "ไม่มีเงินของผู้ใช้ตกอยู่ในความเสี่ยง"
เหตุการณ์เริ่มต้นในวันพฤหัสบดีที่ 28 พฤษภาคม เมื่อเมนเน็ตของ Sui หยุดทำงานเมื่อเวลาประมาณ 21:00 น. ตามเวลาประเทศไทย และยังคงหยุดอยู่จนถึงประมาณ 03:30 น. ของวันถัดไป การหยุดทำงานครั้งที่สองเกิดขึ้นในเช้าวันศุกร์ เริ่มต้นเมื่อประมาณ 19:00 น. และสิ้นสุดราว 22:30 น. ตามเวลาประเทศไทย การหยุดทำงานครั้งที่สามเริ่มในช่วงบ่ายวันศุกร์เมื่อประมาณ 03:30 น. ของวันถัดไป และได้รับการแก้ไขเมื่อประมาณ 09:20 น. ตามเวลาประเทศไทย
ตามรายงานของมูลนิธิ การหยุดทำงานสองครั้งแรกเกิดจากบักที่ทำให้ระบบล่มซึ่งเกี่ยวข้องกับการทำงานร่วมกันระหว่างตรรกะการชาร์จ gas และการอัปเกรด 1.72 ของ Sui ที่ได้นำ address balance มาใช้ ส่วนการหยุดทำงานครั้งที่สามเป็นปัญหาแยกต่างหาก ซึ่งเกิดขึ้นระหว่างการเปลี่ยน epoch ตามกำหนดการ หลังจากการรีสตาร์ท validator เปิดเผยบักที่ซ่อนอยู่เกี่ยวกับวิธีการเก็บรักษาสถานะความสุ่ม
"ระหว่างที่เครือข่ายหยุดทำงาน ไม่มีเงินของผู้ใช้ตกอยู่ในความเสี่ยง และเครือข่ายไม่ได้ย้อนกลับธุรกรรมที่ยืนยันแล้วเมื่อกลับมาทำงานอีกครั้ง" Sui Foundation กล่าว "ในขณะนี้ validator ได้แก้ไขปัญหาที่ทราบซึ่งเกิดจากทั้งบักการชาร์จ gas เดิมและบักสถานะความสุ่มอย่างครบถ้วนแล้ว และกิจกรรมบนเครือข่ายได้กลับมาเป็นปกติแล้ว"
ปัญหาแรกมีศูนย์กลางอยู่ที่ฟีเจอร์ address balance ใหม่ของ Sui ซึ่งช่วยให้ผู้ใช้สามารถเก็บเงินและชำระค่า gas โดยไม่ต้องพึ่งพา coin object แต่เพียงอย่างเดียว ธุรกรรมบน Sui สามารถชำระค่า gas ผ่าน address balance, coin object หรือโครงสร้างแบบผสมที่รวมทั้งสองอย่าง
กรณีขอบเขตปรากฏขึ้นใน hybrid gas path นั้น เมื่อธุรกรรมพยายามใช้จ่ายจาก address balance ที่ไม่สามารถครอบคลุมธุรกรรมที่แข่งขันกัน ตัวจัดการตารางได้ยกเลิกธุรกรรมนั้นอย่างถูกต้องด้วยข้อผิดพลาด InsufficientFundsForWithdraw แต่ต่อมาระหว่าง gas smashing ซึ่งเป็นกระบวนการรวม coin นำเข้าเป็น coin เดียวสำหรับชำระค่า gas การจองเดิมอาจยังคงพยายามหักเงินอีกครั้ง
ในคำอธิบายของมูลนิธิ การล่มไม่ได้เกิดขึ้นโดยตรงระหว่าง gas smashing แต่เกิดขึ้นระหว่างการชำระบัญชี เมื่อ balance delta ได้รับการกระทบยอดโดยธุรกรรมของระบบ delta ติดลบที่นำไปใช้กับยอดคงเหลือศูนย์ทำให้เกิด underflow
การแก้ไขทันทีนั้นเข้าใจง่ายในเชิงแนวคิด ได้แก่ หลีกเลี่ยง gas smashing เมื่อธุรกรรมถูกยกเลิกด้วย InsufficientFundsForWithdraw validator นำการแก้ไขดังกล่าวมาใช้ในวันพฤหัสบดี ทำให้เครือข่ายกลับมาออนไลน์ได้ แต่มูลนิธิยอมรับว่าแพตช์ดังกล่าวเป็นมาตรการชั่วคราว ซึ่งเลือกใช้เพื่อกู้คืนเครือข่ายในขณะที่วิศวกรกำลังพัฒนาโซลูชันที่สมบูรณ์กว่า
"การเปลี่ยนตรรกะ gas เป็นการดำเนินการที่ละเอียดอ่อน" มูลนิธิเขียน "ดังที่อธิบายไว้ข้างต้น มีการทำงานร่วมกันที่ซับซ้อนระหว่าง address balance และ coin นอกจากการแก้ไขบักแล้ว การเปลี่ยนแปลงตรรกะ gas จะต้องรักษาพฤติกรรมก่อนหน้าทั้งหมดไว้ หรือใช้การกำหนด version ที่เหมาะสม"
แพตช์ชั่วคราวนั้นมีจุดอ่อนที่ทราบกันดี หากธุรกรรมมีเหตุผลการยกเลิกหลายประการ ข้อผิดพลาดอื่นอาจบดบังเงื่อนไข InsufficientFundsForWithdraw เมื่อเหตุการณ์นั้นเกิดขึ้นในเช้าวันศุกร์ เส้นทาง underflow เดิมยังคงสามารถเข้าถึงได้ ทำให้เกิดการหยุดทำงานครั้งที่สอง
การหยุดทำงานครั้งที่สามเกิดขึ้นหลังจากเครือข่ายกลับมาทำงานปกติในเช้าวันศุกร์ ในการเปลี่ยน epoch ตามกำหนดการครั้งถัดไป validator ไม่สามารถดำเนินการเปลี่ยนผ่านให้สำเร็จได้ เนื่องจากบักที่เชื่อมโยงกับโปรโตคอลการสร้างคีย์แบบกระจาย (DKG) ของ Sui ซึ่งเป็นตัวสร้างความสุ่มเริ่มต้นสำหรับธุรกรรมที่ขึ้นอยู่กับความสุ่มบนเชน
ระหว่างรอบการรีสตาร์ทก่อนหน้า การมีส่วนร่วมไม่สูงพอสำหรับกระบวนการ DKG ของ epoch ถัดไป ดังนั้นความสุ่มจึงถูกปิดใช้งานตามที่ออกแบบไว้ ปัญหาคือผลการตัดสินว่าล้มเหลวไม่ได้ถูกเขียนลงดิสก์ เมื่อ validator รีสตาร์ทอีกครั้ง พวกมันกลับมาทำงานโดยไม่จดจำว่า DKG ล้มเหลว
"เมื่อ validator ไม่จดจำอีกต่อไปว่า DKG ล้มเหลว ทั้งสองสิ่งก็ไม่สามารถเกิดขึ้นได้ คิวที่หยุดชะงักเติบโตขึ้น และตรรกะ end-of-epoch ซึ่งต้องระบายคิวนั้นก่อนปิด ก็ถูกทิ้งให้รอ DKG ที่จะไม่มาถึง" มูลนิธิกล่าว
การแก้ไขมีสองส่วน ได้แก่ การบันทึกสถานะ DKG ข้ามการรีสตาร์ท และการเพิ่มกลไกที่ช่วยให้ validator สามารถปิด epoch ที่ติดขัดได้ที่จุดที่ประสานงานกัน กลไกนั้นถูกใช้ครั้งหนึ่งเพื่อปิด epoch ที่ได้รับผลกระทบ หลังจากนั้นเครือข่ายได้ย้ายไปยัง epoch ถัดไปและความสุ่มได้รับการกู้คืน
รายงานการวิเคราะห์หลังเกิดเหตุได้กำหนดกรอบการหยุดทำงานเหล่านี้ว่าเป็นบทเรียนทางวิศวกรรมที่กว้างขึ้นสำหรับ Sui มูลนิธิกล่าวว่าความยืดหยุ่นของ end-of-epoch ต้องการการลงทุนเพิ่มเติม โดยเฉพาะอย่างยิ่งเกี่ยวกับกลไกการลดระดับอย่างงดงามและกลไกการบังคับปิดเชิงปฏิบัติการ นอกจากนี้ยังกล่าวว่าการชาร์จ gas สมควรได้รับความเข้มงวดในระดับเดียวกับ Move VM หรือ Mysticeti consensus เนื่องจากมีการทำงานร่วมกับการชำระบัญชี การตรวจสอบการอนุรักษ์ และการจัดตารางงาน
ณ เวลาที่เผยแพร่ SUI ซื้อขายอยู่ที่ $0.8798



