В последние недели два заметных протокола DeFi — Balancer Composable Stable Pools и Yearn yETH — подверглись серьёзным атакам, эксплуатирующим тонкие численные ошибки. У Balancer было украдено более $120 млн, несмотря на то что контракты считались проверенными и безопасными. Механизм атак схож: небольшие ошибки округления становятся критичными при искусственно уменьшенной ликвидности, что позволяет злоумышленникам манипулировать ценами и извлекать прибыль.
Главная уязвимость проявляется при минимальной ликвидности, когда «1 wei» может исказить соотношение резервов и повлиять на цену. В Balancer это стало возможным благодаря комбинации пакетных свопов и возможности временно выпускать и сжигать LP-токены, фактически создавая flash-loan эффект. Схожие закономерности наблюдались и в атаке на yETH.
Эксперты предлагают несколько методов защиты: округление в пользу пула, виртуальная ликвидность и соблюдение точности математических операций. Особенно эффективной мерой считается runtime enforcement — проверка соблюдения критически важных экономических инвариантов на этапе исполнения. Это позволяет блокировать операции, которые нарушают ключевые свойства протокола, даже если выявить ошибку заранее невозможно.
Таким образом, контроль точности вычислений и проверка инвариантов на исполнении становятся обязательными для надёжного функционирования сложных DeFi-систем.
по материалам
уникальность