Аудиты смарт-контрактов: что это и кто их проводит?

Фото - Аудиты смарт-контрактов: что это и кто их проводит?
Аудит безопасности — это специальная проверка смарт-контракта на предмет ошибок в коде и возможностей для внешнего вмешательства.
Перед взаимодействием с каким-то токеном, DeFi-проектом, лендингом или другим протоколом необходимо удостовериться в его надёжности. Большинство приложений и программ на блокчейне построено на смарт-контрактах (специальной компьютерной программе, развернутой на блокчейне). 

Смарт-контракт отвечает за хранение, обмены, переводы токенов, создание различных монет, их блокировку и многие другие функции. Поэтому следует провести аудит безопасности, который определит возможные риски работы со смарт-контрактом. 

Главные изъяны смарт-контрактов

Вот самые часто случающиеся события, вероятность которых нужно оценить во время аудита:

● взлом контракта хакерами из-за внутреннего бага или ошибки;

● наличие в коде скрытых скриптов, установленных командой проекта.

Вот список уязвимостей, которые чаще всего присутствуют в коде контракта:

■ рекурсивный вызов. Свойство смарт-контракта взаимодействовать с другим контрактом, даже после внесенных пользователем изменений и окончания транзакции;

■ целочисленное переполнение. Это арифметическая ошибка, которая может привести к неверному расчету сумм и количества токенов в транзакции;

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

■ уязвимость API-ключей. Проект может быть уязвим к DDoS-атакам, результатом которых будет компрометация закрытых ключей безопасности пользователей платформы;

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

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

Как проходит аудит?

Проверка смарт-контракта аудитором проходит в несколько этапов:

● группа по аудиту выполняет предварительную проверку кода;

● результаты анализа передают руководителям криптовалютного проекта для устранения выявленных изъянов;

● разработчики корректируют смарт-контракт и устраняют указанные в предварительном аудите ошибки;

● аудиторская компания выпускает полноценный отчёт о состоянии смарт-контракта и его безопасности для пользователей. 

Крупнейшие аудиторские компании

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

Вот самые популярные аудиторы смарт-контрактов.

● CertiK. Лидер в области проверки безопасности криптовалютных проектов. Компания ведёт открытый рейтинг криптопроектов, исходя из результатов аудита. CertiK провели проверки Polygon, Aave, Sandbox, Aptos и многих других крупных проектов.

● ConsenSys Diligence. Компания специализируется на разработке программного обеспечения для блокчейн-продуктов, а также предлагает услуги аудита смарт-контрактов на Ethereum.

● Hacken. Специализируется на кибербезопасности и проверках устойчивости смарт-контрактов. Компания предоставляет услуги аудита, консультации и обучения в области кибербезопасности.
Рейтинг надежности криптопроектов по данным CertiK

Рейтинг надежности криптопроектов по данным CertiK

Также из авторитетных аудиторов можно отметить: Hapi, KPMG, Deloitte, PwC, Ernst & Young (EY).

Интересные факты

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

● Проверки смарт-контрактов выполняются как вручную (специальной группой экспертов), так и автоматически с помощью алгоритма с искусственным интеллектом. Перед началом работы сам алгоритм необходимо проверить на соответствие параметрам аудитора.

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

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