НовостиКриптовалютыMultiversX останавливает основной сеть для исправления некорректного состояния после попытки атаки

MultiversX останавливает основной сеть для исправления некорректного состояния после попытки атаки

Автор: Coindoo·

Ключевые выводы

  • MultiversX остановила производство блоков в основной сети после попытки злоумышленника воспользоваться уязвимостью атомарности транзакций на уровне виртуальной машины, в результате чего некорректные изменения были записаны в блокчейн.
  • Подтверждённая сумма потерь не раскрыта, и остаётся неизвестным, потеряли ли пользователи средства навсегда и какие аккаунты или контракты были затронуты.
  • Патч тестируется на шэдоу-форке, воспроизводящем историю основной сети, что позволяет инженерам проверить исправленное состояние до того, как валидаторы развернут его в живой сети.
  • Команда рассматривает точечное восстановление, призванное исправить только записи, связанные с инцидентом, избегая широкого отката, подобного тому, что выполнил Cronos после эксплойта Tectonic, когда валидаторы удалили почти 11 000 блоков, охватывавших около двух часов.
  • Пользователям рекомендовано воздержаться от отправки транзакций, перемещения EGLD или ESDT через биржи и мосты, а также от реагирования на ссылки о восстановлении, пока сеть остаётся приостановленной.
MultiversX останавливает основной сеть для исправления некорректного состояния после попытки атаки

MultiversX приостановила работу своей основной сети после того, как злоумышленник попытался воспользоваться проблемой атомарности транзакций на уровне виртуальной машины сети, в результате чего некорректные изменения были записаны в блокчейн. Команда остановила производство блоков, перевела патч в тестирование на шэдоу-форке и сообщила, что рассматривает точечное восстановление. Подтверждённая сумма потерь не раскрыта.

Что подтвердила MultiversX

  • Проблема касалась атомарности транзакций.
  • Некорректные изменения были записаны в блокчейн.
  • Работа основной сети была приостановлена.
  • Патк был отправлен на тестирование на шэдоу-форке.
  • Рассматривалось точечное восстановление.

Что остаётся неизвестным

  • Потеряли ли пользователи средства навсегда.
  • Какие аккаунты или контракты были затронуты.
  • Как злоумышленник вызвал сбой.
  • Какой метод восстановления будет принят.
  • Когда все сервисы возобновят работу.

Остановка заморозила проблему, но не отменила её

В своём обновлении об инциденте MultiversX сообщила, что злоумышленник попытался воспользоваться проблемой атомарности на уровне виртуальной машины основной сети. Разработчики приостановили работу сети, отслеживая возникшие изменения состояния и готовя патч. Подтверждённая сумма потерь раскрыта не была.

Остановка производства блоков не позволяет новым транзакциям строиться на записях, которые уже могут быть неверными. Она также блокирует повторную попытку атаки тем же методом, пока инженеры определяют, какие балансы или записи контрактов были затронут.

Пауза не отменяет изменения, которые сеть уже приняла. Эти записи остаются отправной точкой для кошельков, приложений и мостов, пока MultiversX не примет план восстановления.

При проверке 20 сентября страница статуса MultiversX классифицировала систему как частично деградировавшую. Публичный API, xPortal, Explorer, Wallet, Bridge, xExchange и xLaunchpad показывали сниженную производительность, при этом шлюз и индекс были отмечены как работоспособные.

Эти метки описывают отдельные сервисы и не подтверждают, что нормальная обработка транзакций возобновилась. Восстановление интерфейсов также не решит фундаментальную учётную проблему. Чтобы понять почему, полезно начать с атомарности транзакций.

Атомарность — это блокчейн-версия принципа «всё или ничего»

Транзакция смарт-контракта может содержать несколько связанных операций. Один баланс может уменьшаться, другой увеличиваться, а пул ликвидности обновляться. Атомарное исполнение требует, чтобы вся последовательность завершилась успешно, прежде чем какое-либо из этих изменений станет постоянным.

Ожидаемый результат: каждый необходимый шаг выполняется успешно, и все изменения фиксируются вместе. Если любой шаг завершается неудачей, ни одно из изменений транзакции не должно быть зафиксировано.

Сбой атомарности: одна операция не выполняется, но более раннее изменение состояния сохраняется. Сеть может зафиксировать частичный результат, который сам по себе существовать не должен.

Это упрощённый пример атомарности, а не реконструкция инцидента MultiversX. Сломанная транзакция может оставить баланс аккаунта, предложение токена или запись контракта несогласованными с ожидаемым результатом. MultiversX не раскрыла, какой тип данных был изменён, поэтому недостаточно доказательств, чтобы утверждать, что злоумышленник создал токены, опустошил конкретный контракт или похитил известную сумму.

Финальность доказывает согласие, а не безошибочность исполнения

Финальность в блокчейне означает, что валидаторы согласовали, какой блок и результирующее состояние принадлежат канонической цепочке. Это не доказывает, что программное обеспечение, использованное для расчёта этого состояния, не содержало дефектов.

Валидаторы исполняют одни и те же правила протокола и сравнивают результаты. Если эти правила содержат один и тот же недостаток на каждом узле, валидаторы могут стабильно приходить к согласию относительно исхода, который протокол никогда не допускал. Консенсус может установить, какое состояние сеть приняла; он не может гарантировать, что программная ошибка не помогла создать это состояние.

Установка исправленного ПО предотвращает повторение того же пути исполнения, но не решает, что делать с уже записанными изменениями. MultiversX должна определить затронутые записи и дать валидаторам воспроизводимый способ убедиться, что несвязанная активность осталась неизменной.

Шэдоу-форк обеспечивает репетицию перед перезапуском основной сети

MultiversX подготовила патч для тестирования в среде шэдоу-форка. Шэдоу-форк копирует соответствующую историю и состояние основной сети в изолированную среду, позволяя инженерам воспроизводить реальные условия сети, не экспериментируя с реальными балансами.

Команда может применить патч, воспроизвести затронутую последовательность и протестировать предлагаемое восстановление до того, как валидаторы установят его в основной сети. Этот процесс должен установить:

  • Рассчитывают узлы одинаковое исправленное состояние.
  • Остаются ли незатронутые балансы неизменными.
  • Правильно ли приложения читают исправленные записи.
  • Могут ли мосты и биржи сверить свои данные.
  • Могут ли валидаторы перезапуститься без создания конкурирующих цепочек.

Успешное прохождение этих тестов не приведёт к автоматическому открытию всех сервисов. Развёртывание по-прежнему требует координации между валидаторами, биржами, мостами и провайдерами инфраструктуры, соединяющими пользователей и приложения с MultiversX.

Точечное исправление позволит избежать отката всей цепочки

MultiversX сообщила, что рассматривает точечное восстановление, призванное сохранить финализированную историю транзакций и легитимные записи пользователей, затрагивая только изменения, связанные с инцидентом. Проект не объяснил, как это исправление будет реализовано.

Точечная коррекция состояния. Исправлены будут только балансы, хранилище контрактов или другие записи, связанные с инцидентом, а несвязанные транзакции могут остаться в финализированной истории. Главная сложность — доказать, что исправление охватывает каждое некорректное изменение — и ничего больше.

Широкий откат цепочки. Сеть вернулась бы к более раннему блоку и перестроилась бы оттуда. Транзакции, завершённые после этой точки, могли бы исчезнуть, даже если не имели отношения к инциденту. Главная сложность в том, что легитимные переводы и активность приложений, возможно, придётся повторить или сверить.

Цена более широкого отката стала очевидной после эксплойта Tectonic, когда валидаторы Cronos удалили почти 11 000 блоков, охватывавших почти два часа. Откат отменил большую часть связанного с инцидентом заимствования, всё ещё записанного в Cronos, но также отменил несвязанные транзакции, завершённые за этот период. У этих двух инцидентов разные причины; пример Cronos важен, поскольку показывает побочные издержки перемотки общего реестра назад.

MultiversX сообщает, что рассматривает более узкое исправление, но пока не показала, как будут изолированы затронутые записи. Точечное исправление не обязательно удалит исходные блоки: история транзакций может остаться видимой, в то время как скоординированное изменение протокола установит состояние, которое приложения и валидаторы будут распознавать после перезапуска. Метод невозможно должным образом оценить, пока MultiversX не опубликует свой план восстановления.

Что пользователям MultiversX следует делать во время паузы

Для обычных держателей самый простой совет — ждать. MultiversX не просила пользователей мигрировать токены, подключать кошельки к сайту восстановления или подтверждать корректирующую транзакцию.

  • Не отправляйте и не повторно транслируйте транзакции.
  • Не вносите и не выводите EGLD или ESDT через биржи.
  • Избегайте перевода этих активов через кроссчейн-мосты.
  • Сохраните хеш транзакции для всего, что было отправлено близко к моменту остановки.
  • Игнорируйте ссылки на восстановление, миграции и незапрошенные сообщения поддержки.
  • Дождитесь подтверждения возобновления работы как от MultiversX, так и от соответствующей платформы.

Восстановление сети будет принято валидаторами и операторами инфраструктуры. Оно не потребует от пользователей раскрывать seed-фразы или отправлять активы на новый адрес.

Кошелькам и обозревателям также может понадобиться время на ресинхронизацию после возобновления производства блоков. Устаревший баланс или отсутствие недавней транзакции в интерфейсе само по себе не означает, что базовые активы изменились.

Перезапуск должен быть проверяемым

Возобновление производства блоков восстановит доступность, но само по себе не ответит на вопрос о финальности. MultiversX по-прежнему необходимо раскрыть, какие аккаунты или контракты были затронуты, как рассчитывалось исправленное состояние и как валидаторы независимо пришли к одному и тому же результату.

Если эти данные покажут, что были исправлены только изменения, связанные с инцидентом, точечное восстановление может сохранить больше легитимной активности, чем широкий откат. Без них сеть может возобновить работу, а пользователи останутся не в состоянии проверить, почему одни финализированные изменения были изменены, а другие сохранены.

Эта статья предоставлена исключительно в информационных целях и не является финансовой или инвестиционной рекомендацией. Состояние сети и инструкции по восстановлению могут меняться по мере выхода дальнейших обновлений от MultiversX.