Аудит смарт контракта — Проверка исходного кода

Аудит смарт контракта

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

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

Даже один незначительный баг в коде смарт-контракта может привести к печальным последствиям и потере денежных средств. Почему такое случается, если смарт-контракты считаются сегодня одним из самых безопасных методов управления средствами? При всем их совершенстве, хакеры тоже не дремлют. Они становятся более изобретательными по мере роста сложности контрактов. Как говорится, «блокчейн безопасен, а блокчейн-приложения — не всегда». Именно для того, чтобы бороться с этим и не допускать таких случаев, существуют аудиты смарт-контрактов, которые в последнее время набирают все большую популярность.

Методы проверки смарт контрактов

Аудит смарт контракта — это процесс, который тщательно исследует фрагмент кода для выявления ошибок, уязвимостей и рисков до того, как код будет развернут и использован.

Аудит смарт контракта

Обратите внимание, что аудит не является юридическим документом, подтверждающим безопасность кода. Никто не может на 100% гарантировать, что в коде не будет будущих ошибок или уязвимостей. Это просто гарантия того, что ваш код был проверен экспертом и это безопасно в его точки зрения.

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

Тесты:

  • Юнит-тесты или модульное тестирование — тестирования отдельных частей контракта.
  • Регрессионное тестирование — запуск тех же тестов на уже протестированном ранее коде, после того как код был изменен. Повторный запуск тестов после изменений.
  • Интеграционные тесты — тесты на взаимодействие модулей и системы в целом. То есть это тестирование на взаимодействие контрактов.
  • Формальное тестирование — тестирование смарт-контракта на соответствие документации.

Аудит

  • Аудит сторонним разработчиком. Помимо основного разработчика контракт провреяется еще и разработчиком аудитором.
  • Баг-баунти — схема, при которой код выкладывается в git-репозиторий и всех желающих приглашают за вознаграждение (обычно токенами) найти ошибки.

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

Наиболее часто встречающиеся critical багги — это всё-таки логические проблемы имплементации, а не типовые уязвимости, такие как access rights, integer overflow, reentrancy. Большой, полный аудит решений невозможен без опытных разработчиков, которые способны проверить высокоуровневую логику контрактов, их lifecycle, аспекты реальной эксплуатации и соответствие заданию, а не только типовые паттерны атак.

Аудит смарт контрактов — Лучшие сервисы

Первым проектом, попавшим в наш обзор оказался сервис Telescr.in. Расскажем о нем более подробно:

Telescr.in — Это команда blockchain разработчиков, работающих на рынке с 2016 года, которая предлагает комплексную услугу по углубленному анализу смарт-контрактов и DeFi приложений.

Telescrin - Аудит смарт контрактов

Преимущества проекта Telescr.in:

  • Команда работает на рынке с 2016 года.
  • Фиксированный срок выполнения заказа.
  • Возможен срочный аудит.
  • Сервис предоставляет все необходимые гарантии.
  • Отчеты сервиса простые и понятные.
  • Верификация отчета цифровой подписью.

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

Сервис Telescr.in предлагает на выбор два вида аудита – Light и Full.

Light — Быстрый и относительно дешевый аудит, который проверяет контракт на признаки exit-скама. По окончанию вы получаете подписанный мини-отчет сертификат, подтверждающий, что контракт не имеет возможности exit-скама от разработчиков. При этом логика контракта и возможные нарушения безопасности не проверяются. Имеет фиксированный срок выполнения в пределах 1-2х дней, в зависимости от объема кода. Кому подойдет: смарт-контрактам, небольшим проектам, которые не имеют достаточного бюджета, но имеют какую-то идею или прототип. Стоимость от 200$.

Full — Полный аудит с указанием всех ошибок, уязвимостей, неточностей, возможностей для улучшения. По окончанию вы получаете подписанный pdf отчет. По срокам такой аудит занимает больше времени, но в итоге вы получаете гарантию работоспособности вашего кода, или отчет со всеми найденными недостатками. Срок выполнения от 2х дней. Кому подойдет: DeFi проекты, смарт-контракты со сложной логикой, криптовалютные проекты. Стоимость: от 700$.

Подробнее о сервисе Telescr.in читайте в этой статье — https://bitcoins-mining.net/smart-contract-audit/telescr-in.


allGood Studio — Компания профессионально занимается блокчейн разработкой, создает проекты на Ethereum (ETH), Tron (TRX), Exonum, Steemit и EOS. Обладает всеми сертификатами безопасности и имеет за плечами более 70 разработанных смарт-контрактов.

allGood Studio - Аудит смарт контракта

Компания allGood Studio уже более 15 лет в IT разработке, и уже успела создать более 70 смарт-контрактов и провести более 25 ICO. С помощью протокола тестирования и аудита компания предоставляет защиту от заморозки ваших средств и непредвиденных ошибок в контракте.

allGood Studio также предлагает и другие, среди которых:

  • Аудит смарт контракта.
  • Пентест — Тест на проникновение сайта для повышения безопасности.
  • Личный кабинет инвестора.
  • Своя криптобиржа за 30 дней.

По окончанию работы предоставляется детальный отчет с классификацией выявленных проблем и рекомендациями по их устранению. Стоимость проведения аудита от 390 EUR.

Подробнее о сервисе allGood Studio читайте в этой статье — https://bitcoins-mining.net/smart-contract-audit/allgood-studio.

Со временем, данный список будет расширяться и в него будут добавляться наиболее профессиональные сервисы, предлагающие аудит смарт контракта.

Заключение

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

Kryptex программа для майнинга

Поддержите проект Bitcoins-Mining.net
Мы принимаем ЮMoney | Яндекс Деньги

Пожертвовать Bitcoin на развитие проекта

Отсканируйте QR-код или скопируйте указанный адрес Bitcoins-Mining.net
Отсканируйте QR-код или скопируйте указанный ниже адрес в свой кошелек, чтобы отправить Bitcoin:
Купить Bitcoin

Пожертвовать Bitcoin Cash на развитие проекта

Отсканируйте QR-код или скопируйте указанный адрес Bitcoins-Mining.net
Отсканируйте QR-код или скопируйте указанный ниже адрес в свой кошелек, чтобы отправить Bitcoin Cash:
Купить Bitcoin Cash

Пожертвовать Ethereum на развитие проекта

Отсканируйте QR-код или скопируйте указанный адрес Bitcoins-Mining.net
Отсканируйте QR-код или скопируйте указанный ниже адрес в свой кошелек, чтобы отправить Ethereum:
Купить Ethereum

Пожертвовать Litecoin на развитие проекта

Отсканируйте QR-код или скопируйте указанный адрес Bitcoins-Mining.net
Отсканируйте QR-код или скопируйте указанный ниже адрес в свой кошелек, чтобы отправить Litecoin:
Купить Litecoin

Пожертвовать Monero на развитие проекта

Отсканируйте QR-код или скопируйте указанный адрес Bitcoins-Mining.net
Отсканируйте QR-код или скопируйте указанный ниже адрес в свой кошелек, чтобы отправить Monero:
Купить Monero