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

Аудит особенно важен для контрактов, управляющих большими объемами активов. Это относится к пулу ликвидности, кредитным протоколам, мостам, стейкинговым системам и другим приложениям DeFi.

Что проверяют

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

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

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

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