Аудит - это ручной процесс, но его можно и нужно улучшить с помощью инструментов, технологий и автоматизации. Как правило, наиболее эффективным подходом является привлечение реальных экспертов-людей для проведения окончательного обзора. Аудиторы сначала изучают более широкую инфраструктуру кода, чтобы понять, чего пытается достичь проект. Затем более конкретные области кода проверяются и тестируются в различных условиях. Результаты этих выводов компилируются и проходят последнюю проверку, а в конечном итоге отправляются обратно команде разработчиков и впоследствии публикуются в Интернете, где их может увидеть общественность.
Аудиторские отчеты являются важной линией защиты для разработчиков, гарантирующей, что они не запустят неисправный сервис. Однако обычным пользователям и инвесторам тоже следует их прочитать. Они могут дать критическое представление как о неотъемлемых рисках, связанных с использованием платформы или актива, так и о том, насколько усердна и прозрачна команда в устранении этих рисков. Эта информация важна, когда на кону реальные деньги, потому что это может означать разницу между выбором надежных сервисов и потерей всего. Кроме того, отсутствие качественного аудита также следует рассматривать как огромный красный флаг, потому что честные проекты хотят быть прозрачными в отношении своей безопасности.
Как прочитать аудит смарт-контракта
Теперь давайте объясним, что вы, скорее всего, увидите, просматривая результаты аудита. Различные аудиты могут быть представлены немного по-разному, но все они должны более или менее содержать одинаковые компоненты. Для начала должен быть обзор, содержащий различную информацию о проверяемом проекте. Это должно включать адрес смарт-контракта, информацию об используемой версии компилятора, о том, на каком блокчейне он построен, и определенные внешние допущения, такие как привилегированные роли и интеграции, от которых зависит безопасность проекта. Это может быть полезно, если вы не знакомы с проектом, в то время как другие, возможно, уже знают большую часть этой информации.
Кроме того, важно проверить версию кода, которая была проверена. Возможно, что в будущем изменения в коде могут произойти и последующий аудит не будет проведен. Крайне важно осознавать, что любое изменение, происходящее после аудита, может привести к ошибкам, поэтому важен строгий контроль версий и аудиты изменений.
Далее будет настоящая суть аудита: обзор всех выводов команды. Должен быть список всех найденных ошибок или проблем, подробное описание проблемы и, скорее всего, несколько предложений по ее устранению. Проблемы классифицируются по категориям серьезности, обычно в соответствии с незначительными, умеренными и критическими. Незначительные проблемы обычно не подвергают риску средства, но их следует решать. Критические проблемы подразумевают неминуемую угрозу активам и должны быть немедленно устранены.
Обнаруженные ошибки также могут быть ранжированы по степени вероятности их использования. Это связано с тем, что некоторые эксплойты могут быть разрушительными, но их трудно осуществить. Другие могут быть довольно простыми, но на самом деле ничего не нарушают. Предоставление множества параметров для оценки угроз дает разработчикам наилучшие представления о том, на что следует обратить внимание в первую очередь.
Даже если описания обнаруженных ошибок слишком технические, краткое изложение на простом английском языке должно содержать основные выводы и обобщать состояние проекта. Хотя подробная разбивка предназначена скорее для команды разработчиков, большинству пользователей будет проще всего понять этот раздел, и его должно быть достаточно, чтобы помочь вам решить, насколько надежен сервис.
Какие проверки часто обнаруживают
Нет недостатка в вещах, которые могут пойти не так с платформой или активом, управляемым смарт-контрактами. Уязвимости могут сильно различаться и быть довольно сложными, но существуют некоторые распространенные причины. Например, смарт-контракты, позволяющие владельцу чеканить или сжигать токены, должны использоваться осторожно. Если эта функция реализована неправильно, вероятность того, что злоумышленник использует ее для создания или уничтожения миллионов активов, очень высока. К счастью, ранее в этом году именно этот тип уязвимости был выявлен в цепочке BNB Binance до того, как злоумышленник смог ее использовать.
Тогда в способе проверки транзакций могут быть недостатки. Известно, что Nomad Bridge подвергся эксплойту, созданному в результате обычного обновления, которое позволяло любому пользователю ретранслировать старые транзакции, а просто менять местами свой собственный адрес. Это привело к потере Nomad более 150 миллионов долларов США не одним злоумышленником, а множеством разных пользователей, потому что эксплойт было невероятно легко воспроизвести.
Примеры можно продолжать, но теперь вы должны понять важность того, что дают аудиты безопасности платформам смарт-контрактов и протоколам блокчейна. Они одинаково защищают разработчиков и пользователей, пока выполняются доверенными третьими сторонами. Именно так индустрия гарантирует, что до конца 2023 года и далее не будет наблюдаться продолжающаяся тенденция, начавшаяся в предыдущие годы, и криптовалюта сможет заслужить лучшую репутацию в глазах общественности.