Актуальные темы
#
Bonk Eco continues to show strength amid $USELESS rally
#
Pump.fun to raise $1B token sale, traders speculating on airdrop
#
Boop.Fun leading the way with a new launchpad on Solana.
Изучение прошлых эксплойтов смарт-контрактов — отличный способ стать лучшим разработчиком Solidity.
В последнее время я потратил некоторое время на изучение многих эксплойтов, которые произошли за последние пару лет.
Понимание коренной причины взлома — это отличный способ научиться мыслить иначе при написании кода.
Это также дает вам лучшее понимание того, какие компоненты являются наиболее критичными при рассмотрении новых кодовых баз.
Я рекомендую всем, кто хочет улучшить свои навыки в Solidity, ознакомиться с прошлыми эксплойтами на @RektHQ или посмотреть документацию @phylaxsystems, где мы разбираем взломы и как утверждения могли бы их предотвратить.
Изучая эти прошлые взломы, я понял, что часто эксплойты возможны из-за отсутствия проверок в коде или неправильных расчетов, которые приводят к тому, что протоколы попадают в состояния, в которых они не должны находиться. Как только эксплойт произошел, ошибка часто кажется очевидной. Нам нужно убедиться, что протоколы могут легче идентифицировать эти проблемы.
Многим протоколам было бы полезно потратить время на определение инвариантов и обеспечение того, чтобы их нельзя было нарушить.
Запись утверждений — отличный способ убедиться, что эти инварианты никогда не могут быть нарушены.
Последний эксплойт, который я изучал, был эксплойт Abracadabra в марте 2025 года, в результате которого было потеряно ~$13 млн:
Ошибка: sendValueInCollateral() извлек реальные токены, но забыл обновить внутренние учетные переменные.
Эксплойт: orderValueInCollateral() продолжал сообщать одно и то же значение залога, даже после того, как токены были удалены.
Результат: злоумышленник многократно занимал против "фантомного залога", пока средства не были исчерпаны.
Утверждение, которое проверяет простой инвариант, что "сообщенный залог" соответствует "фактическому залогу", предотвратило бы взлом.

948
Топ
Рейтинг
Избранное