Разработчик помог разблокировать около $2 млн в Ethereum из замороженного ICO-контракта 2016 года
- Разработчик Florent заявил о разблокировке 1003 ETH из контракта HongCoin, средства в котором были заморожены девять лет.
- Причиной блокировки стала ошибка в функции возврата средств в смартконтракте.
- Для обхода ограничения использовали уязвимость integer overflow в старой версии Solidity.
- По словам Florent, 48 ранних инвесторов теперь могут вернуть свои активы.
Разработчик под псевдонимом Florent сообщил о разблокировке 1003,62 ETH на сумму около $2 млн из смартконтракта ICO-проекта HongCoin 2016 года.
По словам Florent, HongCoin не смог достичь целевого объема финансирования во время ICO. При этом смартконтракт должен был автоматически вернуть средства инвесторам. Однако ошибка в функции возврата привела к блокировке активов на годы.
В комментарии The Block разработчик объяснил, что проблема возникла из-за некорректной проверки баланса пользователей. После частичных возвратов глобальный счетчик контракта снизился до 356, из-за чего большинство инвесторов больше не могли пройти проверку для вывода средств.
Для разблокировки средств Florent использовал административную функцию смартконтракта с уязвимостью переполнения целого числа (integer overflow). Из-за отсутствия механизмов защиты в старых версиях Solidity специальный параметр позволял сбросить баланс пользователя и пройти проверку на возврат средств.
Он подчеркнул, что не имел прямого доступа к контракту. Административная функция работала только через мультиподпись HongCoin, поэтому команда проекта самостоятельно подписала 41 транзакцию после тестирования решения в локальном форке Ethereum через Foundry.
По оценкам Florent, средства могут вернуть 48 ранних инвесторов. При этом только 41 адрес нуждался в отдельном сбросе баланса. Двое пользователей уже вернули 96,5
Читать на incrypted.com