Mainnet Sui mengalami tiga pemadaman terpisah pada 28 dan 29 Mei setelah rilis 1.72 jaringan mengekspos kasus-kasus tepi (edge cases) dalam logika pengisian gas (gas charging) dan logika restart validator, menurut laporan pascakejadian (postmortem) dari Sui Foundation. Yayasan tersebut mengatakan masalah-masalah tersebut telah diselesaikan, aktivitas jaringan telah berlanjut, dan "dana pengguna tidak dalam risiko."
Insiden dimulai pada Kamis, 28 Mei, ketika mainnet Sui berhenti sekitar pukul 07.00 PT dan tetap mati hingga sekitar pukul 13.30 PT. Pemadaman kedua terjadi pada Jumat pagi, dimulai sekitar pukul 05.00 PT dan berakhir sekitar pukul 08.30 PT. Penghentian ketiga dimulai Jumat sore sekitar pukul 13.30 PT dan diselesaikan sekitar pukul 19.20 PT.
Menurut yayasan tersebut, dua pemadaman pertama berasal dari bug crash yang melibatkan interaksi antara logika pengisian gas dan pembaruan Sui 1.72, yang memperkenalkan saldo alamat. Pemadaman ketiga terpisah, dipicu selama perubahan epoch yang dijadwalkan setelah restart validator mengekspos bug laten dalam cara status keacakan (randomness) dipertahankan.
"Selama pemadaman, tidak ada dana pengguna yang berisiko, dan jaringan tidak membatalkan transaksi yang telah dikommit ketika berlanjut," kata Sui Foundation. "Sampai saat ini, validator telah sepenuhnya mengatasi masalah-masalah yang diketahui yang disebabkan oleh bug pengisian gas asli dan bug status keacakan, dan aktivitas jaringan telah berlanjut."
Bug Pengisian Gas Sui Memicu Penghentian Awal
Masalah pertama berpusat pada fitur saldo alamat baru Sui, yang memungkinkan pengguna menyimpan dana dan membayar gas tanpa hanya mengandalkan objek koin (coin objects). Transaksi di Sui dapat membayar gas melalui saldo alamat, objek koin, atau struktur hibrida yang menggabungkan keduanya.
Kasus tepi muncul di jalur gas hibrida tersebut. Ketika sebuah transaksi mencoba membelanjakan dari saldo alamat yang tidak dapat menutupi transaksi yang bersaing, penjadwal (scheduler) dengan benar membatalkannya dengan kesalahan InsufficientFundsForWithdraw. Namun kemudian, selama proses gas smashing — proses menggabungkan koin masukan menjadi satu koin pembayar gas — reservasi yang sama masih dapat mencoba mendebit dana lagi.
Dalam penjelasan yayasan, crash tidak terjadi langsung selama gas smashing tetapi selama penyelesaian (settlement), ketika delta saldo direkonsiliasi oleh transaksi sistem. Delta negatif yang diterapkan pada saldo nol menyebabkan underflow.
Perbaikan segera secara konseptual mudah: hindari gas smashing ketika transaksi dibatalkan dengan InsufficientFundsForWithdraw. Validator mengadopsi perbaikan itu pada hari Kamis, membuat jaringan kembali online. Namun yayasan mengakui bahwa tambalan itu adalah langkah sementara, dipilih untuk memulihkan jaringan sementara insinyur mengembangkan solusi yang lebih lengkap.
"Mengubah logika gas adalah operasi yang rumit," tulis yayasan tersebut. "Seperti dijelaskan di atas, ada interaksi rumit antara saldo alamat dan koin. Selain memperbaiki bug, perubahan logika gas harus mempertahankan semua perilaku sebelumnya atau menggunakan pengaturan versi (version gating) yang tepat."
Tambalan sementara itu mengandung kelemahan yang diketahui. Jika sebuah transaksi memiliki beberapa alasan pembatalan, kesalahan lain dapat menutupi kondisi InsufficientFundsForWithdraw. Ketika itu terjadi Jumat pagi, jalur underflow asli masih dapat dicapai, menyebabkan penghentian kedua.
Perubahan Epoch Mengekspos Bug Status Keacakan
Pemadaman ketiga terjadi setelah jaringan beroperasi normal kembali pada Jumat pagi. Pada perubahan epoch terjadwal berikutnya, validator gagal menyelesaikan transisi karena bug yang terkait dengan protokol pembangkitan kunci terdistribusi (DKG) Sui, yang mem-bootstrap keacakan untuk transaksi yang bergantung pada keacakan on-chain.
Selama siklus restart sebelumnya, partisipasi tidak cukup tinggi untuk proses DKG epoch berikutnya, sehingga keacakan dinonaktifkan sesuai desain. Masalahnya adalah keputusan kegagalan itu tidak ditulis ke disk. Saat validator restart lagi, mereka bangkit tanpa mengingat bahwa DKG telah gagal.
"Dengan validator yang tidak lagi mengingat DKG telah gagal, tidak ada yang bisa terjadi, antrian yang dijeda (paused queue) tumbuh, dan logika akhir-epoch — yang harus mengosongkan antrian itu sebelum menutup — tertahan menunggu DKG yang tidak akan pernah datang," kata yayasan tersebut.
Perbaikan memiliki dua bagian: mempertahankan status DKG di seluruh restart dan menambahkan mekanisme yang memungkinkan validator menutup epoch yang macet pada titik yang terkoordinasi. Mekanisme itu digunakan sekali untuk menutup epoch yang terdampak, setelah itu jaringan pindah ke epoch berikutnya dan keacakan dipulihkan.
Laporan pascakejadian merangkum pemadaman ini sebagai pelajaran rekayasa yang lebih luas bagi Sui. Yayasan mengatakan ketahanan akhir-epoch perlu investasi lebih lanjut, terutama terkait degradasi anggun (graceful degradation) dan mekanisme penutupan paksa operasional (operational force-close). Yayasan juga mengatakan pengisian gas pantas mendapatkan tingkat ketelitian yang sama seperti Move VM atau konsensus Mysticeti, mengingat interaksinya dengan penyelesaian (settlement), pemeriksaan konservasi, dan penjadwalan.
Pada saat berita ditulis, SUI diperdagangkan pada $0,8798.







