Нещодавно було виявлено два серйозні вразливості в контракті цифрового колекційного проєкту, який привернув велику увагу. Команда безпеки під час перевірки цього контракту виявила, що ці вразливості можуть призвести до блокування активів користувачів, а також до того, що вечірка проєкту не зможе вилучити більше 34 мільйонів доларів.
Перший вразливість стосується функції повернення коштів. Програма повернення коштів в контракті використовує циклічний метод для повернення коштів всім користувачам. Однак, якщо адреса певного користувача є злочинним контрактом, вона може відмовитися приймати повернення коштів, що призведе до невдачі транзакції і, відповідно, вплине на всі операції повернення коштів користувачів. На щастя, ця вразливість не була фактично використана.
!
Щоб уникнути подібних проблем, рекомендується вечірці проєкту при розробці механізму повернення коштів врахувати такі моменти:
Обмеження, що лише звичайні користувацькі рахунки можуть брати участь у вечірці проєкту
Використовуйте ERC20 токени, такі як WETH, замість рідних активів.
Дизайн дозволяє користувачам самостійно подавати запити на повернення коштів, а не обробляти їх партіями.
Другий вразливість виникла через логічну помилку в коді. У функції вилучення коштів проєкту є умова, яка мала б порівнювати дві певні змінні, але помилково використовувалася інша змінна для порівняння. Це призвело до того, що умова ніколи не могла бути виконана, і вечірка проєкту не змогла вилучити кошти з контракту. Наразі близько 34 мільйонів доларів активів залишаються назавжди заблокованими в контракті.
!
Ця подія ще раз підкреслила, що навіть відомі проєкти можуть стикатися з низькорівневими помилками. Розробницька команда під час розробки проєкту повинна писати достатню кількість тестових випадків і розвивати базову обізнаність про безпеку. Хоча в сфері децентралізованих фінансів безпековий аудит став звичайною практикою, у проєктах цифрових колекцій цей етап часто ігнорується, що врешті-решт призводить до величезних втрат.
Ця подія нагадує нам, що під час розробки блокчейн-проєктів, незважаючи на розмір проєкту, слід приділяти увагу роботі з безпеки, щоб уникнути вразливостей, які можуть призвести до серйозних наслідків. Водночас це також підкреслює важливість деталей у розробці смарт-контрактів, адже маленька помилка в коді може призвести до втрат на мільйони доларів.
!
Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
У проєкті цифрових колекцій виявлено суттєву уразливість у контракті, 34 мільйони доларів США були назавжди заблоковані.
Нещодавно було виявлено два серйозні вразливості в контракті цифрового колекційного проєкту, який привернув велику увагу. Команда безпеки під час перевірки цього контракту виявила, що ці вразливості можуть призвести до блокування активів користувачів, а також до того, що вечірка проєкту не зможе вилучити більше 34 мільйонів доларів.
Перший вразливість стосується функції повернення коштів. Програма повернення коштів в контракті використовує циклічний метод для повернення коштів всім користувачам. Однак, якщо адреса певного користувача є злочинним контрактом, вона може відмовитися приймати повернення коштів, що призведе до невдачі транзакції і, відповідно, вплине на всі операції повернення коштів користувачів. На щастя, ця вразливість не була фактично використана.
!
Щоб уникнути подібних проблем, рекомендується вечірці проєкту при розробці механізму повернення коштів врахувати такі моменти:
Другий вразливість виникла через логічну помилку в коді. У функції вилучення коштів проєкту є умова, яка мала б порівнювати дві певні змінні, але помилково використовувалася інша змінна для порівняння. Це призвело до того, що умова ніколи не могла бути виконана, і вечірка проєкту не змогла вилучити кошти з контракту. Наразі близько 34 мільйонів доларів активів залишаються назавжди заблокованими в контракті.
!
Ця подія ще раз підкреслила, що навіть відомі проєкти можуть стикатися з низькорівневими помилками. Розробницька команда під час розробки проєкту повинна писати достатню кількість тестових випадків і розвивати базову обізнаність про безпеку. Хоча в сфері децентралізованих фінансів безпековий аудит став звичайною практикою, у проєктах цифрових колекцій цей етап часто ігнорується, що врешті-решт призводить до величезних втрат.
Ця подія нагадує нам, що під час розробки блокчейн-проєктів, незважаючи на розмір проєкту, слід приділяти увагу роботі з безпеки, щоб уникнути вразливостей, які можуть призвести до серйозних наслідків. Водночас це також підкреслює важливість деталей у розробці смарт-контрактів, адже маленька помилка в коді може призвести до втрат на мільйони доларів.
!