Що таке аудит безпеки смарт-контрактів?
Головна сторінка
Статті
Що таке аудит безпеки смарт-контрактів?

Що таке аудит безпеки смарт-контрактів?

Середній рівень
Опубліковано Mar 1, 2022Оновлено Apr 27, 2023
8m

Короткий зміст

Аудити безпеки надає детальний аналіз смарт-контрактів проєкту. Вони є важливими для захисту коштів, інвестованих через них. Оскільки всі транзакції в блокчейні є остаточними, кошти не можуть бути повернені у разі їхньої крадіжки. Як правило, аудитори вивчають код смарт-контрактів, складають звіт та надають його проєкту для покращень. Потім випускається остаточний звіт з докладним описом всіх помилок та вже виконаної роботи для вирішення проблем з продуктивністю або безпекою.


Вступ

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

Хоча більшість людей розуміють важливість аудиту для кібербезпеки, мало хто занурюється в рядки коду. Давайте розглянемо методи, інструменти та результати, які зазвичай спостерігаються при аудиті безпеки смарт-контрактів, щоб ви могли приймати більш обґрунтовані рішення.


Що таке аудит смарт-контракту?

Аудит безпеки перевіряє та коментує код смарт-контракту проєкту. Як правило, ці контракти написані мовою програмування Solidity та надаються через GitHub. Аудит безпеки особливо цінний для DeFi проєктів, які розраховують обробляти блокчейн-транзакції на мільйони доларів або величезну кількість користувачів. Аудит зазвичай проходить у чотири етапи:

1. Смарт-контракти надаються аудиторській групі для первинного аналізу.

2. Аудиторська група представляє свої висновки по проєкту для вживання заходів.

3. Команда проєкту вносить зміни з урахуванням виявлених проблем.

4. Аудиторська група випускає свій остаточний звіт з урахуванням всіх нових змін або помилок, що залишаються.

Для багатьох користувачів криптовалют, аудит смарт-контрактів необхідний при інвестуванні у нові DeFi проєкти. Це стало стандартом для проєктів, які хочуть, щоб їх сприймали серйозно. Деякі постачальники аудиторських послуг також вважаються лідерами галузі, що робить їх аудит ціннішим в очах інвесторів.


Навіщо нам потрібний аудит смарт-контрактів?

Завдяки тому, що через смарт-контракти переказуються або блокуються великі суми, вони стають привабливими цілями для зловмисних атак з боку хакерів. Незначні помилки кодування можуть призвести до крадіжки величезних сум грошей. Наприклад, при зломі DAO на блокчейні Ethereum було втрачено приблизно 60 мільйонів доларів в ETH, що призвело навіть до форку мережі Ethereum.

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


Як працює аудит смарт-контрактів?

Процес аудиту смарт-контракту є досить стандартним серед постачальників аудиту. Хоча підхід кожного аудитора може трохи відрізнятися, типовий процес виглядає так:

1. Визначення сфери аудиту. Специфікації смарт-контракту та проєкту визначаються призначенням проєкту та загальною архітектурою. Специфікація допомагає команді аудиторів зрозуміти цілі проєкту під час написання та використання коду.

2. Надання початкової ціни в залежності від об'єму необхідної роботи.

3. Виконання тестів. Тести будуть різними залежно від аудиторської групи, інструментів аналізу та методів. Зазвичай проводяться як ручні, так й автоматизовані тести.

4. Створення першої чернетки звіту зі знайденими помилками та надання команді проєкту для коментарів та подальших виправлень.

5. Публікація остаточного звіту з урахуванням всіх дій, вжитих командою для вирішення проблем.


Методи аудиту смарт-контрактів

Ефективність gas 

Аудит смарт-контракту фокусується не лише на безпеці блокчейну. Аудитори також дивляться на ефективність та оптимізацію. Деякі контракти здійснюють складну серію транзакцій для виконання своєї передбачуваної функції. Оскільки комісії gas в таких мережах, як Ethereum, є відносно дорогими, ефективні контракти можуть значно заощадити на транзакційних витратах.

Оптимізація їхньої продуктивності також є показником навичок розробників. Неефективні кроки дають більше точок для відмови, і їх слід уникати. Коли вартість gas є високою, смарт-контракти можуть не виконуватися, особливо якщо використовується низький ліміт gas.

Вразливості контрактів

Більша частина аудиту включає перевірку контрактів на наявність вразливостей у системі безпеки. Хоча деякі проблеми легко побачити, багато експлойтів включають передові методи і стратегії для вилучення коштів. Наприклад, маніпулювання ринком може бути використане зі слабкими смарт-контрактами для проведення атак на флеш-позики. Щоб знайти ці проблеми, аудитори запускають процес злому та імітують зловмисні атаки на смарт-контракт. До поширених уразливостей належать:

1. Проблеми з повторним входом: Коли смарт-контракт робить зовнішній виклик іншому зовнішньому контракту, перш ніж будуть усунені будь-які наслідки. Потім зовнішній контракт може рекурсивно викликати вихідний смарт-контракт і взаємодіяти з ним так, як не повинен, оскільки баланс вихідного контракту ще не оновлений.
2. Переповнення та антипереповнення цілого числа: Коли смарт-контракт виконує арифметичну операцію, але вихід перевищує ємність сховища (зазвичай 18 знаків після коми). Це може призвести до неправильного розрахунку сум.
3. Можливості випередження: Погано структурований код може заздалегідь попередити про ринкові покупки або продажі. Це, у свою чергу, може дозволити іншим використовувати інформацію та торгувати нею у своїх інтересах.

Недоліки безпеки платформи

Більшість аудитів включають перегляд мережі, в якій розміщені контракти, і навіть API, що використовується для взаємодії з DApp. Проєкт може бути вразливий для DDoS-атаки або мати скомпрометований інтерфейс користувача вебсайту, а це означає, що користувачі фактично підключать свої гаманці до шахрайських блокчейн додатків.


Що таке аудиторський звіт?

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

Поряд із резюме, стандартний звіт міститиме рекомендації, приклади надлишкового коду та повну розбивку на наявність помилок кодування. Проєкту дається час, щоб вжити заходів відповідно до висновків звіту, перш ніж буде випущено остаточну версію.


Де я можу отримати аудит смарт-контракту?

Ряд сервісів по аудиту смарт-контрактів добре відомі завдяки своїм послугам. Два з них особливо популярні, і для отримання від цих сервісів аудиту потрібна попередня оплата та передача інформації.

CertiK

CertiK є лідером в галузі аудиту смарт-контрактів. Сотні проєктів провели аудити своїх смарт-контрактів у цьому сервісі. Одним із прикладів є PancakeSwap, найбільший автоматизований маркет мейкер (AMM) на BSC. Нижче наведено частину аудиту PancakeSwap від Certik.


Крім того, переважна більшість проєктів, які підтримує Binance Labs, перевірили свої контракти у CertiK. CertiK випускає список перевірених проєктів, який дозволяє порівнювати кожен із них разом з оцінкою безпеки. Зверніть увагу, що, крім Ethereum, CertiK також охоплює проєкти на BSC та Polygon.


ConsenSys Diligence

Під керівництвом Джозефа Любіна, співзасновника Ethereum, ConsenSys є одним з найбільших імен індустрії криптовалют у розробці блокчейну. ConsenSys Diligence пропонує аудити смарт-контрактів Ethereum. Компанія також надає автоматизований сервіс, який перевіряє контракти Віртуальної машини Ethereum (EVM) на наявність поширених помилок.


Скільки коштує аудит смарт-контракту?

Точна вартість аудиту залежить від кількості смарт-контрактів, що перевіряються. Як правило, аудит коштуватиме тисячі доларів. Аудит великого проєкту може легко коштувати понад 10 000$. Аудиторська компанія, що проводить ваш аудит, та її репутація також вплинуть на розмір вашої оплати.


Заключні думки

На щастя для інвесторів та користувачів, аудит смарт-контрактів став золотим стандартом. Однак коли він є в кожному проєкті, це вже не просто показник цінності. Ось чому неймовірно важливо читати аудит самостійно. Навіть якщо у вас немає технічних знань, корисно поглянути на коментарі та серйозність потенційних проблем.

Коли ви зіткнетеся з аудитом, вам принаймні буде легше зрозуміти його зміст. Як завжди, переконайтеся, що перед будь-яким інвестиційним рішенням – ви повинні розглядати всю картину та враховувати всю інформацію.