Перейти к содержанию

Экстренная пауза протокола DeFi

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

Обновлено

Только в образовательных целях; не является инвестиционным советом или инвестиционной рекомендацией. Инвестиции могут привести к убыткам.

Краткий ответ

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

Модуль OpenZeppelin Pausable предоставляет состояние паузы, модификаторы whenNotPaused и whenPaused, а также события Paused(account) и Unpaused(account). Протокол должен связать проверки с конкретными функциями и защитить собственные точки включения и снятия паузы. Возможны несколько флагов, заморозка отдельных рынков, лимиты или автомат состояний.

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

Как это работает

  1. Обнаруживается триггер. Мониторинг, разработчики, аудиторы или пользователи могут выявить дефект кода, сбой оракула, аномальное изменение баланса, атаку на управление или нарушение рынка.
  2. Уполномоченный аккаунт отправляет транзакцию. Это может быть владелец, guardian, мультиподпись, роль доступа, исполнитель управления или другой контракт. Названия не равны разрешениям: изучите развернутый путь авторизации и администратора прокси.
  3. Контракт меняет состояние. Глобальный переключатель блокирует все защищенные функции, а точечный контроль — один рынок или действие. Функции без соответствующей проверки продолжают работать.
  4. Состояние и события дают доказательства. Прочитайте переменную или getter паузы, входные данные и квитанцию транзакции, события, время блока и вызывающий адрес. События восстанавливают историю, но текущее хранилище определяет настоящее состояние.
  5. Учет может продолжаться. Индексы процентов, финансирование, награды, обновления оракула, очереди вывода или таймеры ликвидации могут продолжаться, замереть или наверстать позже. Единого поведения нет.
  6. Продолжаются реагирование и исправление. Операторы могут расследовать, сообщать, отзывать роли, менять параметры, обновлять код, покрывать дефицит или предлагать экстренный вывод. Каждому действию нужны отдельные полномочия и проверка.
  7. Открытие — отдельное привилегированное действие. Уточните, кто снимает паузу, применяются ли timelock или голосование, что изменилось в коде и настройках, какие тесты или аудиты охватывают изменение и опасны ли старые разрешения или контракты.

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

Пример

Предположим, кредитный протокол обнаружил отклонение оракула залога на 30% от эталонного рынка. Guardian останавливает новые займы и ликвидации, но оставляет погашение и внесение залога. Это ограничивает новый риск и ликвидации по спорной цене, но не доказывает остановку вывода, начисления процентов или всех остальных рынков.

Пользователь должен проверить транзакцию guardian, адрес рынка, флаги паузы, состояние оракула, резервы, индекс долга и официальное уведомление. Если интерфейс сообщает только «Протокол приостановлен», из этого нельзя вывести полную матрицу функций.

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

Риски

  • Чрезмерные полномочия. Ключ паузы может также обновлять код, менять оракул, выпускать активы, перемещать резервы или выдавать роли. Перечислите каждое разрешение; не считайте, что guardian умеет только останавливать.
  • Скомпрометированные или недоступные подписанты. Украденный ключ может злонамеренно остановить сервис; недоступные или операционно связанные участники мультиподписи могут помешать своевременной паузе или запуску.
  • Скрытые обходы. Администратор прокси, модуль, альтернативная точка входа, межсетевой исполнитель или незащищенная функция могут обходить заявленный контроль.
  • Заблокированный выход и продолжающиеся обязательства. Вывод может остановиться, а проценты, финансирование, место в очереди и другие обязательства — меняться. До действий прочитайте правила учета.
  • Небезопасный запуск. Паузу могут снять до полной проверки причины, идентичности развертывания, настроек оракула, резервов и зависимых интеграций.
  • Фишинг во время инцидента. Поддельные страницы «восстановления» или «миграции» могут просить seed-фразу, закрытый ключ, подпись или безлимитное разрешение. Не раскрывайте секреты кошелька и отдельно проверяйте каждый адрес и разрешение.
  • Ложная уверенность. Пауза снижает риск лишь на реально защищенных путях. Это не доказательство платежеспособности, аудит, страховка или гарантия возмещения потерь.

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

Распространенные заблуждения

  • «Пауза означает исчезновение всех активов». Она может быть предупредительной; проверьте балансы, обязательства, резервы и затронутые функции.
  • «Отключенный интерфейс означает, что контракт нельзя использовать». Доступность интерфейса и состояние контракта независимы. Делайте прямые вызовы только при возможности проверить цель, функцию, аргументы и последствия.
  • «Guardian может только ставить на паузу». У названия нет стандартного набора прав. Прочитайте в сети роли, владельцев, модули и полномочия обновления.
  • «Во время паузы останавливается время». Экономический учет и очереди могут продолжаться или возобновиться с накопленными изменениями.
  • «Пауза снята — значит все исправлено и безопасно». Открытие лишь меняет состояние; исправление, аудит, платежеспособность, разрешения и ликвидность требуют независимой проверки.

Похожие темы

Источники

Навигация

Поиск по вики...