ТЛ;ДР
Аудит безопасности обеспечивает подробный анализ смарт-контрактов проекта. Они важны для обеспечения безопасности средств, инвестированных по этим контрактам. Поскольку все транзакции в блокчейне являются окончательными, средства не могут быть возвращены в случае кражи. Обычно аудиторы проверяют код смарт-контрактов, составляют отчет и предоставляют его команде проекта для работы над необходимыми изменениями. Затем публикуется окончательный отчет, в котором подробно описываются все обнаруженные ошибки и уже проделанная работа по устранению проблем с производительностью или безопасностью.
Введение
Аудиты безопасности смарт-контрактов очень распространены в экосистеме децентрализованных финансов (DeFi). При инвестировании в блокчейн-проект ваше решение может частично основываться на результатах проверки кода смарт-контракта.
Хотя большинство людей понимают важность аудита для кибербезопасности, мало кто обращает внимание на детали строк кода. Давайте рассмотрим методы, инструменты и результаты, которые обычно наблюдаются при аудите безопасности смарт-контрактов, чтобы вы могли принимать более обоснованные решения.
Что такое аудит смарт-контрактов?
Аудит безопасности смарт-контрактов проверяет и комментирует код смарт-контракта проекта. Обычно такие контракты пишутся на языке программирования Solidity и предоставляются через GitHub. Аудиты безопасности особенно ценны для проектов DeFi, которые обрабатывают многомиллионные блокчейн-транзакции или имеют большое количество участников. Процесс аудита обычно осуществляется в четыре этапа:
1. Смарт-контракты предоставляются аудиторской группе для первоначального анализа.
2. Аудиторская группа представляет свой анализ проектной группе для принятия необходимых мер.
3. Команда проекта вносит изменения на основе обнаруженных проблем.
4. Аудиторская группа публикует свой окончательный отчет, учитывая любые новые изменения или ожидаемые ошибки.
Для многих пользователей криптовалют аудит смарт-контрактов имеет важное значение при инвестировании в новые проекты DeFi. Процесс аудита стал стандартом для серьезных проектов, стремящихся к хорошей репутации. Некоторые поставщики аудиторских услуг считаются лидерами отрасли, что делает их аудит более ценным в глазах инвесторов.
Зачем нам нужен аудит смарт-контрактов?
Поскольку в смарт-контрактах проводятся или блокируются крупные суммы денег, они становятся мишенью для хакерских атак. Небольшие ошибки в кодировании могут привести к краже крупных сумм денег. Например, взлом DAO на блокчейне Ethereum привел к краже ETH на сумму около 60 миллионов долларов и спровоцировал хардфорк сети Ethereum.
Поскольку транзакции в блокчейне необратимы, крайне важно обеспечить безопасность кода проекта. Высокая степень безопасности технологии блокчейн затрудняет возврат средств и решение проблем постфактум, поэтому лучше избегать уязвимостей любой ценой.
Как работает аудит смарт-контрактов?
Процесс аудита смарт-контракта обычно следует определенному шаблону. Хотя подход каждого аудитора может немного отличаться, в целом процесс выглядит следующим образом:
1. Определить объем аудита. Смарт-контракт и спецификации проекта определяются в соответствии с целью проекта и его общей архитектурой. Спецификации помогают аудиторской группе понять цели проекта при написании и использовании кода.
2. Предоставьте предварительную смету, исходя из объема требуемых работ.
3. Проведите тесты. Точный характер каждого теста зависит от аудиторской группы, ее инструментов анализа и методов. Обычно проводится ручное и автоматизированное тестирование.
4. Создайте первый черновик отчета с найденными ошибками и предоставьте его проектной группе для получения отзывов и исправлений.
5. Опубликовать итоговый отчет, в котором будут рассмотрены действия и меры, предпринятые командой для решения поднятых вопросов.
Методы аудита смарт-контрактов
Эффективность использования газа
Аудит смарт-контрактов фокусируется не только на безопасности блокчейна. Они также анализируют эффективность и оптимизацию. Некоторые контракты представляют собой сложную серию транзакций для выполнения предполагаемой функции. Учитывая высокую стоимость комиссий за газ в таких сетях, как Ethereum, более эффективные контракты позволяют существенно сэкономить на транзакционных издержках.
Оптимизация производительности также является показателем технических знаний разработчиков. Неэффективные шаги приводят к увеличению числа точек отказа, и их следует избегать. При высоких расходах на газ смарт-контракты могут не выполняться, особенно если лимит используемого газа низок.
Уязвимости контракта
Большая часть работы по аудиту заключается в проверке контрактов на предмет уязвимостей безопасности. Хотя некоторые проблемы легко обнаружить, многие эксплойты (вредоносный код, использующий уязвимость системы) включают в себя сложные методы и стратегии кражи средств. Например, манипулирование рынком может использоваться с помощью слабых смарт-контрактов для осуществления мошенничества с мгновенными кредитами. Чтобы обнаружить эти проблемы, аудиторы начинают процесс тестирования на взлом, имитируя вредоносные атаки на смарт-контракт. К распространенным уязвимостям относятся:
1. Проблемы повторного входа: это термин программирования, который обозначает ситуацию, когда смарт-контракт выполняет внешний вызов другого внешнего контракта до того, как будут завершены эффекты предыдущих действий. Затем внешний контракт может рекурсивно вызывать исходный смарт-контракт и взаимодействовать с ним ненадлежащим образом, поскольку статус исходного контракта еще не обновлен.
2. Целочисленные переполнения и потери значимости: когда смарт-контракт выполняет арифметическую операцию, но выходные данные превышают емкость хранилища (обычно 18 знаков после запятой). Это может привести к ошибкам в расчетах.
3. Возможности опережения: плохо структурированный код может обеспечить раннее предупреждение о покупках или продажах на рынке. Это, в свою очередь, позволяет другим использовать информацию и торговать в своих интересах.
Уязвимости безопасности платформы
Большинство аудитов включают оценку сети, в которой размещены контракты, и даже API, используемого для взаимодействия с DApp. Проект может быть уязвим для DDoS-атаки или пользовательский интерфейс его веб-сайта может быть скомпрометирован, что означает, что пользователи фактически подключат свои кошельки к вредоносным блокчейн-приложениям.
Что такое аудиторский отчет?
Аудиторский отчет предоставляется по окончании процесса. В идеале проекты должны быть прозрачными и предоставлять сообществу доступ к результатам и выводам. В большинстве отчетов проблемы классифицируются по уровню серьезности, например, критические, серьезные, незначительные и т. д. В отчете также указывается статус проблем, поскольку у проектов есть время решить их до публикации окончательного отчета.
Наряду с кратким изложением стандартный отчет содержит рекомендации, примеры избыточного кода и подробную информацию об ошибках кодирования. Перед выпуском окончательной версии у проекта есть крайний срок для принятия мер по выявленным выводам и устранению выявленных проблем.
Где можно запросить аудит смарт-контракта?
Несколько сервисов аудита смарт-контрактов стали известны своими услугами. Два из них особенно популярны, и для проведения аудита у них потребуется первоначальная смета и предоставление информации.
Сертик
CertiK — лидер отрасли в области аудита смарт-контрактов. Сотни проектов провели аудит своих смарт-контрактов. Одним из примеров является PancakeSwap, крупнейший протокол автоматизированного маркет-мейкера (AMM) на BSC. Ниже представлен фрагмент аудита PancakeSwap, проведенного CertiK.

Подавляющее большинство проектов, поддерживаемых Binance Labs, также провели аудит своих контрактов с CertiK. CertiK публикует рейтинговую таблицу проверенных проектов, которая позволяет сравнивать каждый из них, а также оценку безопасности. Обратите внимание, что помимо Ethereum, CertiK также охватывает проекты BSC и Polygon.

ConsenSys Осмотрительность
Компания ConsenSys, которой руководит соучредитель Ethereum Джозеф Любин, является одним из крупнейших имен в криптовалютной индустрии в области разработки блокчейнов. Компания ConsenSys Diligence предлагает аудит смарт-контрактов на Ethereum. Они также предоставляют автоматизированную услугу, которая проверяет контракты виртуальной машины Ethereum (EVM) и выявляет распространенные ошибки.
Сколько стоит аудит смарт-контракта?
Стоимость аудита зависит от количества проверяемых смарт-контрактов. Обычно аудит стоит тысячи долларов. В случае крупного проекта стоимость процесса может легко превысить 10 000 долларов США. Репутация компании, проводящей аудит, также влияет на стоимость.
Заключительные соображения
К счастью для инвесторов и пользователей, аудит смарт-контрактов стал стандартом. Однако если каждый проект будет проходить аудит, это уже не будет показателем, гарантирующим ценность и легитимность. Поэтому крайне важно, чтобы вы сами прочитали аудит. Даже если у вас нет технических знаний, будет полезно ознакомиться с комментариями и уровнем серьезности потенциальных проблем.
Теперь, когда вы столкнетесь с аудитом, вам будет немного легче понять его содержание. Как всегда, прежде чем принять какое-либо инвестиционное решение, тщательно оцените общую картину и примите во внимание всю информацию.


