Как провести аудит блокчейна?

  • ❗️Уважаемые форумчане, ознакомьтесь с правилами форума. Все сообщения и темы должны быть опубликованы в разделах, которые соответствуют их тематике и с четким соблюдением правил форматирования. Нарушение этих правил приведет к блокировке вашего аккаунта.

    Для благодарности на форуме существует кнопка "LIKE", а все сообщения с благодарностями - флуд и захламление тем. Так вы только усложняете поиск информации на форуме. Все кто будут оставлять подобные сообщения - будут восприняты как спам и приведут к блокировке.

    Прежде чем создавать тему с вопросом или добавлять новый вопрос в теме - используйте поиск по форуму, с вероятностью 99% ответ на данный вопрос уже есть на форуме. В противном случае флуд с вопросами будет воспринят как накрутка сообщений и ваш аккаунт будет заблокирован.

  • 🤝 Партнерская программа. Пригласи друга и получи 500 баллов. Подробнее
  • 🤑 Общайся на форуме за деньги. На форуме существует оплата за создание тем и сообщений. За публикацию полезной информации, пользователи получают баллы, которые можно обменять на криптовалюту

DonTouch

Начинающий
Топикстартер
15 Авг 2022
178
46
TON Testnet
0
Баллы
0
Планируете провести аудит блокчейна и задаетесь вопросом, насколько важно правильно его провести? Вы попали на нужную статью. Важность кода, если вы хотите, чтобы ваше блокчейн-приложение сияло, невозможно недооценить.

Аудит блокчейна: Что, зачем и как?​

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

Op3LNZ2W90W-SjAf8IpqsjNj67-DUw_tP7zVoDMqNTqZJqbKxQaJi-rVbd0ndEoiH7wvRebhWvXRsqCMTw_5uu-KZqY5LfC2tbQWaNORFGFwRNzbs2RGYb5pxuBqgk7rF5aKxBmG6X5V7sqXDFvklT-JkJOqcIeMLs1YduM0WR0XKnw2UO1DTBq7iA

1. Что такое аудит кода блокчейна?​

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

2. Почему план проекта должен включать аудит кода блокчейна?​

По наблюдениям экспертов, смарт-контракты Ethereum имеют 3-процентный процент отказов. Это действительно проблема, однако ошибки в смарт-контрактах можно предотвратить.

Эксперты в области блокчейна/криптовалют отмечают, что вполне возможно обнаружить ошибки в смарт-контрактах на ранней стадии и предотвратить их попадание в производственную среду.

Как ответственный предприниматель или руководитель бизнеса, планирующий запустить блокчейн-проект, вы должны включить аудит кода блокчейна в свой план проекта. Подробнее о наблюдениях экспертов читайте в статье "Блокчейн смарт-контракты: больше проблем, чем пользы?"

3. Как провести аудит блокчейна?​

Давайте разберемся, какие этапы включает в себя аудит блокчейна:

- Блокировка исходного кода

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

Это также поможет вам отличить уже проверенную версию от любых дальнейших изменений, которые вы внесете в код. Вы должны задокументировать номер версии, временную метку фиксации и т.д. для версии, которую вы проверяете.

- Понимание проекта блокчейн

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

- Проверка проектной документации

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

- Предварительный обзор кода

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

- Статический анализ кода

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

- Анализ качества кода

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

- Анализ наличия известных уязвимостей

Независимая аудиторская группа должна тщательно просканировать код на предмет наличия известных уязвимостей. Примерами известных уязвимостей являются следующие:
  • Реентерабельность;
  • Затенение переменных;
  • Указатели на хранилище, которые могут быть использованы;
  • Переполнения и недополнения;
  • Ошибки, которые могут позволить хакерам проводить атаки типа "отказ в обслуживании" (DoS);
  • Неправильная проверка криптографической подписи;
  • Генерация случайных чисел небезопасным способом;
  • Зависимости временных меток;
  • Были сделаны неверные предположения для упорядочивания транзакций блокчейна.

- Анализ функциональности

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

- Отчетность и отслеживание

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

Устранение ошибок в смарт-контрактах и их повторная проверка - это итерационный процесс. Вам необходимо убедиться, что все такие итерации полностью документированы.


Интересует аудит кода блокчейна?​

Аудит кода блокчейна необходим для вашего блокчейн-проекта. Как я уже объяснял, ваша команда должна тщательно тестировать смарт-контракты, однако этого недостаточно.

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

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

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

Вам следует искать экспертов по разработке блокчейна с глубоким пониманием и опытом в процессах аудита кода блокчейна.

Часто задаваемые вопросы​

1. Что такое технология блокчейн?​

Одноранговые сети Blockchain состоят из множества узлов, которые ведут учет всех транзакций с цифровыми активами в цифровой бухгалтерской книге. Поэтому ее называют прозрачной технологией. Электронная книга блокчейн децентрализована. Распределенная бухгалтерская книга обеспечивает неизменяемость, надежное хранение хранимых данных и безопасное управление записанными транзакциями. Умные контракты обрабатывают соглашения о любых услугах, таких как подготовка финансовых отчетов, финансовая отчетность, операции по цепочке поставок и т.д., посредством цифровых активов между несколькими сторонами на одном блокчейне. Существуют частные и публичные сети блокчейн.

2. Как я могу предотвратить попадание ошибок смарт-контракта в производственную среду блокчейна?​

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

Верификация: Обзоры, проверки и инспекции планов, требований, дизайна, кода, тестовых примеров и т. д.
Валидация: Тестирование прикладной системы.

3. Существует ли инструмент для тестирования смарт-контрактов?​

Технология блокчейн является новой, и инструментальная поддержка в этой области в настоящее время ограничена.

VeriSol от Microsoft Research является одним из таких инструментов проверки смарт-контрактов. Название VeriSol расшифровывается как "Verifier for Solidity", и он работает с Solidity, популярным языком для разработки смарт-контрактов Ethereum.