В опубликованном в воскресенье отчете о расследовании инцидента Sui Foundation заявила, что новая функция, выпущенная в версии Sui v1.72, выявила пограничный случай в логике списания газа в блокчейне уровня 1, что привело к трем отдельным остановкам основной сети 28 и 29 мая. При этом каждое исправление либо провоцировало, либо выявляло следующую ошибку.
Первая остановка началась примерно в 7:00 по тихоокеанскому времени в четверг и длилась около семи часов.
По словам фонда, проблема возникла из-за редкой ошибки в том, как сеть списывала газ за транзакции, оплачиваемые с использованием новой функции баланса адресов и традиционных объектов монет. Ошибка вызывала падение валидаторов с ошибкой underflow, когда транзакция отменялась из-за недостатка средств, но процедура списания газа все равно пыталась потратить те же средства.
Объект монеты можно представить как цифровую банкноту. Баланс SUI пользователя — это не одно число, а набор отдельных «банкнот», каждая со своим ID, которые можно перемещать или объединять. Кошелек может хранить три объекта монет стоимостью 60, 30 и 10 SUI, а не единый баланс в 100 SUI. Для оплаты сеть комбинирует необходимые «банкноты».
Валидаторы — это компьютеры (и стоящие за ними операторы), которые поддерживают работу сети, обрабатывая транзакции, голосуя за их валидность и поддерживая работу цепи.
Основная команда восстановила работу сети примерно в 13:30 по тихоокеанскому времени с помощью «временного исправления», которое устранило наиболее распространенную версию ошибки, но имело «известную проблему с низкой вероятностью вызвать остановку». Команда приняла этот риск для быстрого восстановления основной сети, пока разрабатывалось более надежное исправление.
Известный риск реализовался на следующее утро. Вторая остановка началась около 5:00 по тихоокеанскому времени в пятницу, когда транзакция активировала замаскированный вариант той же ошибки: ошибка недостатка средств была переопределена другой причиной отмены, обойдя временный патч. Основная команда завершила более надежное исправление, и валидаторы внедрили его примерно к 9:40 по тихоокеанскому времени.
Третья остановка стала следствием второй. При перезапуске валидаторов для установки надежного исправления участие валидаторов в протоколе, обеспечивающем генерацию ончейн-случайных чисел для сети, упало ниже требуемого порога, и функция случайных чисел отключилась в соответствии с дизайном.
(Ончейн-случайные числа — это протокол, используемый сетью для генерации числа, которое никто не может предсказать или подделать, несмотря на то, что все валидаторы должны согласовать одно и то же значение. Приложения, зависящие от случайности — лотереи, определенные игры, случайный минт NFT — не могут работать без него.)
Скрытая ошибка затем не смогла сохранить это отключенное состояние на диск, из-за чего при следующем перезапуске валидаторы не знали, что генерация случайных чисел отключена. Следующая смена эпохи застряла почти на шесть часов, поскольку транзакции, зависящие от случайных чисел, накапливались в приостановленной очереди.
Фонд отметил, что ни во время одной из остановок средства пользователей не подвергались риску, и ни одна подтвержденная транзакция не была отменена.
Согласно данным CoinDesk, SUI упал примерно на 8% во время каскада остановок до минимума в $0,90 и торговался около $0,90 в понедельник, что оставило токен с падением примерно на 19% за неделю.
Эти события стали третьим крупным инцидентом с надежностью Sui с момента запуска основной сети в 2023 году, после двухчасовой ошибки планирования транзакций в ноябре 2024 года и шестичасового расхождения консенсуса в январе 2026 года.