В смарт-контрактах всё решает порядок действий. Ошибка в одной строке кода может превратить защищённый контракт в открытый сейф.
▪️ Атака с повторным входом — тип уязвимости в смарт-контрактах, когда злоумышленник может повторно вызвать функцию контракта до того, как завершится предыдущее действие.
Контракт делает внешний вызов до обновления баланса и атакующий успевает повторно отправить запрос, выводя средства несколько раз до полного обнуления.
📉 Классический пример — взлом The DAO в 2016 году
Контракт DAO позволял пользователю вывести свои средства, но обновлял баланс после перевода. Атакующий воспользовался этим, чтобы вызывать функцию вывода бесконечное количество раз — пока контракт полностью не опустел.
К сожалению, мы, как простые пользователи никак не можем на это повлиять, поэтому для их предотвращения сами разработчики должны соблюдать принципы безопасности.
➖
Такие атаки — напоминание, что даже
децентрализация не спасает от человеческих ошибок. Без правильной логики смарт-контракты становятся уязвимее, чем кажется.
@cryptowiki_channel