Смарт-контракт работает ровно так, как написан в коде. Проблема в том, что ошибка в логике может стоить проекту миллионов. Ниже — 3 самых известных класса уязвимостей, которые важно понимать и разработчикам, и инвесторам.
• Reentrancy — повторный вход в функцию
Это атака, при которой злоумышленник вызывает функцию вывода средств и до обновления баланса в контракте успевает зайти в неё снова. Итог: контракт отправляет деньги несколько раз, хотя должен был один.
Как это происходит:
- контракт сначала переводит средства
- только потом обновляет внутреннее состояние
- атакующий контракт через fallback/receive повторно вызывает вывод
Почему опасно:
Именно такой тип атаки стал причиной взлома The DAO в 2016 году — одного из самых известных инцидентов в истории Ethereum.
Как защититься:
- использовать паттерн Checks-Effects-Interactions
- сначала обновлять состояние, потом делать внешний вызов
- ставить ReentrancyGuard
- минимизировать внешние вызовы внутри критичных функций
• Overflow и underflow — переполнение и отрицательное смещение
Это ошибки арифметики, когда число выходит за допустимые пределы типа. В старых версиях Solidity это могло приводить к “обнулению” или неожиданно огромным значениям.
Пример:
если к максимальному uint прибавить 1, значение может вернуться к 0.
Так злоумышленник способен изменить расчёты баланса, эмиссии или лимитов.
Что важно знать:
- в Solidity 0.8+ встроены автоматические проверки переполнения
- в старых контрактах для защиты использовали SafeMath
- даже сейчас ошибки возможны при
uncheckedблоках или нестандартной логике
Риски:
- неверный расчёт наград
- обход ограничений
- манипуляции с балансами и займами
• Flash loan атаки — мгновенные займы для манипуляций
Flash loan позволяет взять крупную сумму без залога и вернуть её в рамках одной транзакции. Если не вернуть — вся транзакция отменяется.
Сама технология не вредна. Уязвимость возникает, когда протокол:
- доверяет цене из одного пула ликвидности
- использует слабый оракул
- допускает манипуляцию залогом, курсом или голосованием
Сценарий атаки:
- злоумышленник берёт flash loan
- резко двигает цену актива в DEX
- использует искажённую цену в другом протоколе
- выводит прибыль и возвращает займ в той же транзакции
Как защититься:
- использовать TWAP-оракулы и надёжные внешние источники цен
- ограничивать критичные операции в одном блоке
- добавлять защиту от манипуляции ликвидностью
- проводить стресс-тесты экономической модели
Что важно инвестору 📉
Перед вложением в DeFi-проект полезно проверить:
- был ли аудит смарт-контрактов
- есть ли bug bounty программа
- какие оракулы используются
- были ли уже инциденты или эксплойты
- насколько прозрачно команда описывает риски
Вывод
Reentrancy бьёт по логике вывода средств, overflow — по арифметике, flash loan атаки — по экономике протокола. Даже “рабочий” контракт не всегда безопасен. В крипте выигрывает не только доходность, но и понимание того, где именно может сломаться система. 🧠
📌 В конце дня лучший риск-менеджмент — это не только диверсификация, но и базовое понимание архитектуры DeFi.
Подборку каналов про криптовалюты, DeFi и безопасность блокчейн-проектов стоит держать под рукой — это помогает быстрее замечать важные сигналы рынка.