Аудиты смарт-контрактов: что это и кто их проводит?
Аудит безопасности — это специальная проверка смарт-контракта на предмет ошибок в коде и возможностей для внешнего вмешательства.
Перед взаимодействием с каким-то токеном, DeFi-проектом, лендингом или другим протоколом необходимо удостовериться в его надёжности. Большинство приложений и программ на блокчейне построено на смарт-контрактах (специальной компьютерной программе, развернутой на блокчейне).
Смарт-контракт отвечает за хранение, обмены, переводы токенов, создание различных монет, их блокировку и многие другие функции. Поэтому следует провести аудит безопасности, который определит возможные риски работы со смарт-контрактом.
Главные изъяны смарт-контрактов
Вот самые часто случающиеся события, вероятность которых нужно оценить во время аудита:
● взлом контракта хакерами из-за внутреннего бага или ошибки;
● наличие в коде скрытых скриптов, установленных командой проекта.
Вот список уязвимостей, которые чаще всего присутствуют в коде контракта:
■ рекурсивный вызов. Свойство смарт-контракта взаимодействовать с другим контрактом, даже после внесенных пользователем изменений и окончания транзакции;
■ целочисленное переполнение. Это арифметическая ошибка, которая может привести к неверному расчету сумм и количества токенов в транзакции;
■ опережение. Код содержит данные о будущих транзакциях, которые могут быть использованы заинтересованными лицами в своих целях;
■ уязвимость API-ключей. Проект может быть уязвим к DDoS-атакам, результатом которых будет компрометация закрытых ключей безопасности пользователей платформы;
■ неустойчивость к нагрузкам. Плохо оптимизированный смарт-контракт может потреблять большой объем комиссионных и медленно обрабатывать транзакции, что по меньшей мере вызовет дискомфорт у пользователей.
Результатом аудита безопасности смарт-контракта является отчет, в котором расписываются устойчивость кода и возможные риски, с которыми могут столкнуться пользователи.
Как проходит аудит?
Проверка смарт-контракта аудитором проходит в несколько этапов:
● группа по аудиту выполняет предварительную проверку кода;
● результаты анализа передают руководителям криптовалютного проекта для устранения выявленных изъянов;
● разработчики корректируют смарт-контракт и устраняют указанные в предварительном аудите ошибки;
● аудиторская компания выпускает полноценный отчёт о состоянии смарт-контракта и его безопасности для пользователей.
Крупнейшие аудиторские компании
Многие криптовалютные проекты обращаются к сторонним аудиторским компаниям, чтобы проверить безопасность своего контракта и показать будущим юзерам, что их средствам ничего не грозит.
Вот самые популярные аудиторы смарт-контрактов.
● CertiK. Лидер в области проверки безопасности криптовалютных проектов. Компания ведёт открытый рейтинг криптопроектов, исходя из результатов аудита. CertiK провели проверки Polygon, Aave, Sandbox, Aptos и многих других крупных проектов.
● ConsenSys Diligence. Компания специализируется на разработке программного обеспечения для блокчейн-продуктов, а также предлагает услуги аудита смарт-контрактов на Ethereum.
● Hacken. Специализируется на кибербезопасности и проверках устойчивости смарт-контрактов. Компания предоставляет услуги аудита, консультации и обучения в области кибербезопасности.
Рейтинг надежности криптопроектов по данным CertiK
Также из авторитетных аудиторов можно отметить: Hapi, KPMG, Deloitte, PwC, Ernst & Young (EY).
Интересные факты
● Стоимость аудита смарт-контракта может быть от нескольких тысяч до миллиона долларов. Всё зависит от сложности кода, сроков выполнения и популярности компании-аудитора.
● Проверки смарт-контрактов выполняются как вручную (специальной группой экспертов), так и автоматически с помощью алгоритма с искусственным интеллектом. Перед началом работы сам алгоритм необходимо проверить на соответствие параметрам аудитора.
● Иногда проекты взламывают даже после того, как их безопасность была подтверждена аудитором. Это случается из-за недочетов самой проверки, а также по причине постоянной эволюции хакерских атак.
● Аудит безопасности смарт-контракта может занять от пары дней до нескольких месяцев, в зависимости от сложности проекта.