Разработчик вернул $2 миллиона, заблокированных в контракте ICO HongCoin 2016 года

ETH-0,36%
EUL-4,77%

Разработчик, известный как Florent, восстановил примерно 1 003 ETH, что по текущим ценам составляет около 2 миллионов долларов, из контракта ICO HongCoin 2016 года, где средства были заблокированы на протяжении девяти лет. Продажа токенов Ethereum была задумана так, чтобы автоматически возвращать инвесторам деньги, если сбор средств не достигнет целевого показателя, но программная ошибка не позволила функции возврата выполниться для держателей с балансами, превышающими исчерпанный глобальный счётчик. Florent использовал уязвимость переполнения в админ-функции контракта; он работал с командой HongCoin около недели, чтобы разблокировать средства для 48 первоначальных инвесторов. Восстановление демонстрирует, как ранние уязвимости смарт-контрактов из эпохи до SafeMath продолжают удерживать ценность в ончейне.

Уязвимость переполнения заблокировала возвраты на девять лет

Контракт HongCoin, представленный в 2016 году как инвестиционный фонд, управляемый сообществом, содержал механизм возврата, который отклонял любого держателя токенов, чей баланс превышал значение глобального счётчика. Годы частичных возвратов снизили этот счётчик до 356, ограничив общий объём возвратов 3,56 ETH (примерно 7 000 долларов), при этом у большинства оставшихся держателей имелись гораздо более крупные суммы.

Florent рассказал The Block, что контракт был развёрнут с устаревшей версией языка программирования Solidity, в которой не было защит от ошибок переполнения. При таких ошибках число, достигающее достаточно высокого значения, сбрасывается до 0 или 1 — уязвимость, которую позже устранила библиотека SafeMath.

Разработчик нашёл обходной путь через админ-функцию команды, изначально предназначенную для чеканки наградных токенов для конкретных событий. Вызов этой функции с точным входным значением сбрасывал баланс держателя до 1, что позволяло проверке возврата пройти и разблокировать заблокированные ETH.

Сотрудничество команды позволило процесс белой разблокировки

Админ-функция была ограничена мультисиг-кошельком HongCoin, что исключало односторонние действия. Florent отправил команде письмо по электронной почте, проверил последовательность транзакций на форкнутом мейннете Foundry, и команда подписала транзакции на разблокировку. По словам Florent, весь процесс занял около недели с момента первого письма.

Из 48 первоначальных инвесторов, которые теперь могут претендовать на средства, 41 нуждался в эксплуатации для сброса баланса. Остальные семеро имели суммы, достаточно небольшие, чтобы вернуть деньги напрямую через уже существующую функцию. Команда подписала 41 транзакцию — по одной на каждого заблокированного держателя — на общий объём примерно 1 000 ETH, который действительно оказался в ловушке.

Два инвестора вернули себе в сумме 96,5 ETH (примерно 193 000 долларов) и добровольно отправили Florent награду за whitehat. Florent сказал The Block, что не было никаких комиссий, долей или посреднических вознаграждений. «Вне самой команды никто, по сути, не имел стимула копать контракт так пристально», — сказал Florent. «Не было изъяна владения, который позволил бы кому-то украсть средства себе, так что для хакера здесь не было смысла; единственный результат любого эксплойта — ETH возвращается первоначальным инвесторам».

Разработчик ранее освободил 19,329 ETH из провалившихся контрактов

В воскресенье, 24 мая, Florent описал восстановление 19,329 ETH — примерно 40 590 долларов — из двух более старых контрактов. Первый — провалившийся январский ICO 2018 года, где 5,141 ETH были удержаны за неиспользованной публичной функцией возврата. Второй случай касался пользователя Liquality Wallet: у него было семь истёкших атомарных свопов на общую сумму 14,190 ETH. Florent вернул средства от имени пользователя после того, как Liquality закрыла своё приложение в 2024 году.

Методология сканера выявляет контракты с высокой «застрявшей» стоимостью

Florent сказал, что недавно поднял self-hosted ноду Ethereum и создал сканер, который помечает каждый контракт с объёмом более 100 ETH, после чего проработал подходящих кандидатов. «Многие контракты — это форки других контрактов, поэтому изъян в одном — это тот же изъян во всех остальных внутри кластера», — сказал Florent. «При этом крупные, хорошо известные кластеры уже довольно тщательно перерывали».

Отвечая на вопрос об использовании ИИ, Florent сказал, что применял Claude Code, чтобы ускорить сортировку и кластеризацию контрактов, но столкнулся с ограничениями при анализе смарт-контрактов. «ИИ часто смещён тем, что контракт раньше не взламывали, и что у предыдущих людей не получилось найти способ пройти дальше… поэтому он часто по умолчанию говорит: “это невозможно взломать, я перепробовал всё”, — хотя это нередко неверно».

Восстановление происходит на фоне волны эксплойтов в DeFi. Атаки составили сотни миллионов долларов только за апрель, во главе с примерно 293 миллионами долларов, выведенными из Kelp DAO. Недавно сооснователь компании по безопасности OpenZeppelin заявил, что считает весь DeFi небезопасным. Некоторые эксплойты завершались возвратами whitehat или добровольными возвратами — например, в Euler Finance почти полностью восстановили средства после эксплойта 2023 года.

«В последнее время наблюдается явное возрождение хакеров на протоколах, и DeFi становится сложным пространством для инвестиций», — сказал Florent. «Мне бы хотелось увидеть контрдвижение людей, которые пытаются защищать вещи, а не эксплуатировать их. Это морально более вознаграждающе, и это также может хорошо оплачиваться».

FAQ

Что стало причиной того, что средства ICO HongCoin оставались заблокированными на девять лет?

Программная ошибка в функции возврата контракта HongCoin 2016 года отклоняла любого держателя, чей токен-баланс превышал значение глобальной переменной счётчика. Годы частичных возвратов снизили этот счётчик до 356, что не позволяло делать возвраты держателям с более крупными балансами, при этом в контракте не было защит от переполнения, которые были стандартными в более поздних версиях Solidity.

Как Florent разблокировал удержанные ETH, не украдя их?

Florent обнаружил админ-функцию, изначально предназначенную для чеканки наградных токенов. Вызывая её с определённым входным значением, он мог сбросить баланс держателя до 1 из‑за уязвимости переполнения, что позволяло проверке возврата пройти. Админ-функция требовала подписей HongCoin team, поэтому Florent координировался с командой около недели, чтобы выполнить 41 транзакцию на разблокировку для заблокированных инвесторов.

Сколько ETH Florent восстановил из старых контрактов?

Florent восстановил примерно 1 003 ETH (примерно 2 миллиона долларов) из контракта HongCoin. В воскресенье, 24 мая, он описал освобождение дополнительно 19,329 ETH (около 40 590 долларов) из двух других контрактов: провалившегося январского ICO 2018 года с 5,141 ETH и семи истёкших атомарных свопов Liquality Wallet на общую сумму 14,190 ETH.

Дисклеймер: Информация на этой странице может быть получена из источников третьих сторон и предоставляется только для ознакомления. Она не отражает взгляды или мнения Gate и не является финансовой, инвестиционной или юридической рекомендацией. Торговля виртуальными активами связана с высоким риском. Пожалуйста, не основывайте свои решения исключительно на данных этой страницы. Подробнее смотрите в Дисклеймере.
комментарий
0/400
Нет комментариев