Bitget App
Торгуйте разумнее
Купить криптоРынкиТорговляФьючерсыEarnWeb3ПлощадкаПодробнее
Торговля
Спот
Купить и продать криптовалюту
Маржа
Увеличивайте капитал и эффективность средств
Onchain
Безграничные возможности торговли.
Конвертация и блочная торговля
Конвертируйте криптовалюту в один клик без комиссий
Обзор
Launchhub
Получите преимущество заранее и начните побеждать
Скопировать
Копируйте элитного трейдера в один клик
Боты
Простой, быстрый и надежный торговый бот на базе ИИ
Торговля
Фьючерсы USDT-M
Фьючерсы с расчетами в USDT
Фьючерсы USDC-M
Фьючерсы с расчетами в USDC
Фьючерсы Coin-M
Фьючерсы с расчетами в криптовалютах
Обзор
Руководство по фьючерсам
Путь от новичка до профессионала в торговле фьючерсами
Акции по фьючерсам
Получайте щедрые вознаграждения
Bitget Earn
Продукты для легкого заработка
Simple Earn
Вносите и выводите средства в любое время, чтобы получать гибкий доход без риска
Ончейн-Earn
Получайте прибыль ежедневно, не рискуя основной суммой
Структурированный Earn
Надежные финансовые инновации, чтобы преодолеть рыночные колебания
VIP и Управление капиталом
Премиум-услуги для разумного управления капиталом
Займы
Гибкие условия заимствования с высокой защитой средств
Технический анализ: взлом Balancer на $120M, в чем заключалась уязвимость?

Технический анализ: взлом Balancer на $120M, в чем заключалась уязвимость?

BlockBeatsBlockBeats2025/11/04 06:25
Показать оригинал
Автор:BlockBeats

Ключевая проблема этой атаки заключается в обработке протоколом транзакций на небольшие суммы.

Original Article Title: " Balancer $120M Hack Vulnerability Technical Analysis"
Original Source: ExVul Security


Введение


3 ноября 2025 года протокол Balancer подвергся атаке на нескольких сетях, включая Arbitrum и Ethereum, что привело к потере активов на сумму $120 миллионов. Основной причиной атаки стала двойная уязвимость, связанная с потерей точности и манипуляцией Invariant.


Инфраструктура Chainlink уже давно поддерживает самые высокие стандарты в пространстве Web3, что делает её естественным выбором для X Layer, который стремится предоставлять инструменты институционального уровня для разработчиков.


Ключевая проблема этой атаки заключается в логике протокола при обработке малых транзакций. Когда пользователи совершают обмены на небольшие суммы, протокол вызывает функцию _upscaleArray, которая использует mulDown для округления в меньшую сторону. Когда баланс в транзакции и сумма ввода достигают определённой границы округления (например, диапазон 8-9 wei), возникает заметная относительная ошибка точности.


Эта ошибка точности передаётся в вычисление значения Invariant протокола D, вызывая аномальное снижение значения D. Колебания значения D напрямую снижают цену Balancer Pool Token (BPT) в протоколе Balancer. Хакер воспользовался этой заниженной ценой BPT через заранее спланированный торговый путь для проведения арбитража, что в конечном итоге привело к огромным потерям активов.


Эксплуатируемая транзакция:


https://etherscan.io/tx/0x6ed07db1a9fe5c0794d44cd36081d6a6df103fab868cdd75d581e3bd23bc9742


Транзакция перевода активов:


https://etherscan.io/tx/0xd155207261712c35fa3d472ed1e51bfcd816e616dd4f517fa5959836f5b48569


Технический анализ


Вектор атаки


Точкой входа для атаки стал контракт Balancer: Vault, при этом соответствующей входной функцией была batchSwap, которая внутри вызывает onSwap для обмена токенов.


Технический анализ: взлом Balancer на $120M, в чем заключалась уязвимость? image 0


С точки зрения параметров функции и ограничений можно получить следующую информацию:


1. Атакующему необходимо вызывать эту функцию через Vault, напрямую вызвать её нельзя.


2. Функция внутри вызывает _scalingFactors() для получения коэффициента масштабирования для операций масштабирования.


3. Операция масштабирования сосредоточена либо в _swapGivenIn, либо в _swapGivenOut.


Анализ схемы атаки


Механизм расчёта цены BPT


В модели стабильного пула Balancer цена BPT является важной точкой отсчёта, определяющей, сколько BPT получает пользователь и сколько активов приходится на каждый BPT.


Технический анализ: взлом Balancer на $120M, в чем заключалась уязвимость? image 1


В расчёте обмена пула:


Технический анализ: взлом Balancer на $120M, в чем заключалась уязвимость? image 2


Часть, выступающая в роли якоря цены BPT, — это неизменяемое значение D, то есть для управления ценой BPT необходимо контролировать D. Давайте подробнее рассмотрим процесс вычисления D:


Технический анализ: взлом Balancer на $120M, в чем заключалась уязвимость? image 3


В приведённом выше коде процесс вычисления D зависит от массива масштабированных балансов. Это означает, что требуется операция по изменению точности этих балансов, что приводит к некорректному вычислению D.


Корень проблемы потери точности


Технический анализ: взлом Balancer на $120M, в чем заключалась уязвимость? image 4


Операция масштабирования:


Технический анализ: взлом Balancer на $120M, в чем заключалась уязвимость? image 5


Как показано выше, при прохождении через _upscaleArray, если баланс очень мал (например, 8-9 wei), округление вниз в mulDown приводит к значительной потере точности.


Детализация процесса атаки


Фаза 1: Настройка к границе округления


Технический анализ: взлом Balancer на $120M, в чем заключалась уязвимость? image 6


Фаза 2: Провоцирование потери точности (основная уязвимость)


Технический анализ: взлом Balancer на $120M, в чем заключалась уязвимость? image 7


Фаза 3: Извлечение прибыли из заниженной цены BPT


Технический анализ: взлом Balancer на $120M, в чем заключалась уязвимость? image 8


Выше злоумышленник использует Batch Swap для проведения нескольких обменов в одной транзакции:


1. Первый обмен: BPT → cbETH (корректировка баланса)


2. Второй обмен: wstETH (8) → cbETH (провоцирование потери точности)


3. Третий обмен: базовый актив → BPT (фиксация прибыли)


Все эти обмены происходят в одной batch swap транзакции, используя одно и то же состояние баланса, но каждый обмен вызывает _upscaleArray для изменения массива балансов.


Отсутствие механизма обратного вызова


Основной процесс инициируется Vault. Как это приводит к накоплению потери точности? Ответ заключается в механизме передачи массива балансов.


Технический анализ: взлом Balancer на $120M, в чем заключалась уязвимость? image 9


Судя по приведённому выше коду, хотя Vault создаёт новый массив currentBalances при каждом вызове onSwap, в Batch Swap:


1. После первого обмена баланс обновляется (но из-за потери точности обновлённое значение может быть неточным)


2. Второй обмен продолжает вычисления на основе результата первого обмена


3. Потеря точности накапливается, в конечном итоге вызывая значительное снижение значения invariant D


Ключевая проблема:


Технический анализ: взлом Balancer на $120M, в чем заключалась уязвимость? image 10


Резюме


Атаку на Balancer можно резюмировать по следующим причинам:


1. Функция масштабирования использует округление вниз: _upscaleArray использует mulDown для масштабирования, что приводит к значительной относительной потере точности при очень малых балансах (например, 8-9 wei).


2. Вычисление значения invariant чувствительно к точности: Вычисление invariant D зависит от массива масштабированных балансов, и потеря точности напрямую влияет на вычисление D, вызывая его снижение.


3. Отсутствие проверки изменения invariant: В процессе обмена не было проверки, что изменение invariant D находится в разумных пределах, что позволило злоумышленникам многократно использовать потерю точности для занижения цены BPT.


4. Накопление потери точности в batch swaps: В рамках одного batch swap потеря точности от нескольких обменов накапливается и в конечном итоге приводит к значительным финансовым потерям.


Эти две проблемы — потеря точности и отсутствие проверки — в сочетании с тщательным подбором граничных условий злоумышленником привели к этим потерям.


0

Дисклеймер: содержание этой статьи отражает исключительно мнение автора и не представляет платформу в каком-либо качестве. Данная статья не должна являться ориентиром при принятии инвестиционных решений.

PoolX: вносите активы и получайте новые токены.
APR до 12%. Аирдропы новых токенов.
Внести!

Вам также может понравиться

Аналитики оценивают потенциальное воздействие на 285 миллионов долларов в DeFi после убытка Stream Finance в 93 миллиона долларов

Аналитики YieldsAndMore отметили возможное воздействие более чем на 285 миллионов долларов, связанное с потерей Stream Finance в размере 93 миллионов долларов. Ситуация вокруг Stream дополняет бурную неделю для DeFi, наряду с эксплойтом Balancer на 128 миллионов долларов и атакой на оракул Moonwell на 1 миллион долларов.

The Block2025/11/04 18:04
Аналитики оценивают потенциальное воздействие на 285 миллионов долларов в DeFi после убытка Stream Finance в 93 миллиона долларов

Sequans продаёт почти треть своих запасов bitcoin для погашения долга на фоне падения BTC до минимального уровня за четыре месяца

Sequans продала 970 BTC, сократив свои резервы биткоина до 2 264 BTC и уменьшив долговую нагрузку вдвое. После этой продажи компания опустилась с 29 на 33 место в рейтинге Bitcoin Treasuries.

The Block2025/11/04 18:03
Sequans продаёт почти треть своих запасов bitcoin для погашения долга на фоне падения BTC до минимального уровня за четыре месяца

Hut 8 вошла в десятку крупнейших публичных держателей bitcoin с более чем 13 000 BTC

Быстрый обзор: майнер bitcoin опубликовал свой квартальный отчет во вторник, показав, что его запас BTC увеличился более чем на 50% по сравнению с третьим кварталом 2024 года. Около 70 миллионов долларов дохода Hut 8 за третий квартал поступило от добычи bitcoin, в основном через его дочернюю компанию American Bitcoin, контрольный пакет которой принадлежит Hut 8 и которую поддерживает Trump.

The Block2025/11/04 18:03
Hut 8 вошла в десятку крупнейших публичных держателей bitcoin с более чем 13 000 BTC