Эксплойты smart-contracts: 5 паттернов, которые повторяются снова и снова
Чаще всего взлом начинается не с «суперсложной математики», а с одной из типовых ошибок в логике контракта. Уязвимости удобно делить по тому, где ломается допущение: доступ, порядок вызовов, расчёт баланса или работа с внешним контрактом.
• Reentrancy — контракт отправляет средства до обновления состояния, и внешний вызов возвращается в ту же функцию.
• Ошибки access control — критичная функция остаётся без жёсткой проверки роли, владельца или списка разрешённых адресов.
• Integer/precision bugs — некорректная арифметика, округления и неверные единицы измерения.
• Oracle/manipulation — протокол доверяет цене или данным, которые можно временно исказить.
• Unchecked external calls — контракт не проверяет, завершился ли внешний вызов успешно, и продолжает работу как будто всё в порядке.
Отдельная группа — логические баги в апгрейдах и инициализации. Пропущенный initializer, неверный storage layout или забытый admin-путь часто дают атакующему доступ без взлома криптографии.
Для ревью полезен простой чек-лист: где меняется состояние до внешнего вызова; какие функции завязаны на роль; откуда берутся цены; что будет при нулевом, пустом или повторном вводе; можно ли вызвать функцию дважды за одну транзакцию.
Лучший фильтр — смотреть не на «код красивый», а на сценарии отказа: если один шаг идёт не по плану, контракт должен безопасно остановиться, а не продолжать выполнять цепочку.
Crypta Сводка — новости криптовалют и регуляции
@CryptASvodka
Эксплойты smart-contracts: 5 паттернов, которые повторяются снова и снова
Этот пост опубликован в Telegram-канале Crypta Сводка — новости криптовалют и регуляции. Подписаться можно по ссылке: @CryptASvodka.