Резюме

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


вступ

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

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


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

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

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

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

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

4. Аудиторська група візьме до уваги нові перегляди та невирішені помилки перед видачею остаточного звіту.

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


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

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

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


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

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

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

2. Надати попередню цінову пропозицію на основі необхідного обсягу робіт.

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

4. Створіть перший проект звіту, що містить знайдені помилки, і надайте його команді проекту для відгуків і подальших виправлень.

5. Розгляньте дії, вжиті групою для вирішення порушених питань, і видайте остаточний звіт.


Аудит розумних контрактів

паливна ефективність

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

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

Контрактні лазівки

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

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

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

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

Вразливості безпеки платформи

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


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

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

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


Де доступний аудит смарт-контрактів?

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

CertiK

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


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


Ретельність ConsenSys

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


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

Точна плата за аудит залежить від кількості смарт-контрактів, які необхідно перевірити. Як правило, плата за аудит досягає тисяч доларів. У деяких великих проектах вартість може легко перевищити 10 000 доларів США. Аудиторська фірма, яка проводить аудит, і її репутація також впливатимуть на те, скільки ви заплатите.


Підведіть підсумки

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

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