Уязвимости смарт-контрактов: reentrancy, overflow, flash loan

Объясняем крипту простыми словами: как купить первый раз, безопасно хранить, переводить и не нарушать закон в РФ. Делаем пошаговые гайды, чек‑листы и разборы метрик CoinMarketCap/Gecko без шума и хайпа. Наша цель — ваша безопасность, понимание рисков и уверенные действия в мире цифровых активов.

reentrancyoverflowflash loan

Смарт-контракт работает ровно так, как написан в коде. Проблема в том, что ошибка в логике может стоить проекту миллионов. Ниже — 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 и безопасность блокчейн-проектов стоит держать под рукой — это помогает быстрее замечать важные сигналы рынка.

🫵 Подборка каналов
🐋 Каталог ботов и приложений
🛩 Навигация

Читайте так же