Перейти к содержимому
Глобальный взгляд на цифровые активыГЛОБАЛЬНЫЙ ВЗГЛЯД · МЕСТНЫЙ КОНТЕКСТ
ChainView BTC866CHAIN VIEW
Блокчейн

Как проверить полномочия обновления смарт-контракта

Карта прокси, администраторов, задержек и истории изменений вместо доверия одному адресу.

Читать на языкеРусский简体中文繁體中文English한국어العربيةEspañol (México)Tiếng Việtไทย
Как проверить полномочия обновления смарт-контракта

Оригинальная тематическая иллюстрация: Оригинальная тематическая схема ChainView BTC866 · ChainView BTC866 Editorial · CC BY 4.0

Найдите исполняемый код

Контракт по постоянному адресу может быть прокси и передавать вызовы другой реализации. Администратор способен заменить логику, не меняя привычный адрес пользователя. Найдите реализацию и механизм управления. Метка подтверждённого исходного кода связывает текст с байткодом, но не гарантирует безопасность будущих изменений.

Проследите цепочку управления

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

Проверьте реальную задержку

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

Сопоставьте историю и аудит

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

Сделайте карту доверия

Свяжите адрес пользователя, реализацию, администратора и конечные ключи стрелками. Отдельно пометьте непроверенные связи, ожидающие операции и условия вывода. Разделите ошибки кода, компрометацию ключа и изменение управления. Цель — описать, кому и в чём доверяют, а не выдать абсолютный сертификат безопасности.

Источники

  1. OpenZeppelin proxy upgrades (откроется в новой вкладке)
  2. OpenZeppelin access control (откроется в новой вкладке)