Site icon ruCoins.info

Инвесторы DeFi-проекта UniCats лишились всех средств

Инвесторы, которые стремятся получить быструю прибыль, открыли для себя новый DeFi-протокол под названием UniCats, который служит для выращивания дохода, аналогично протоколам SushiSwap или Yam Finance. Однако в отличие от них, разработчики UniCats оказались мошенниками.

По словам исследователя ZenGo Алекса Манускина, из кошелька одного из пользователей UniCats украдены токены UNI на сумму более $140000. Причем кража средств из кошельков происходит даже после того, как пользователи удаляют свои средства из протокола.

Пользователи стали жертвами рискованной функции, которая присутствует в большинстве DeFi-проектов, но на которую никто не обращает внимания. Большинство протоколов запрашивают автоматическую авторизацию для снятия неограниченного количества неких токенов из кошелька клиента и клиент не раздумывая о последствиях дает разрешение. Децентрализованные приложения, такие как Compound, Uniswap, Kyber и другие, тоже имеют такие бесконечные разрешения. Это позволяет смарт-контрактам совершать транзакции с любым количеством токенов от имени владельца кошелька, без участия самого владельца.

Некоторые кошельки позволяют вручную настраивать предельную сумму, но по умолчанию обычно устанавливается максимально возможное значение.

Именно эта функция была использована злоумышленниками UniCats. Контракт UniCats содержал скрытую функцию «setGovernance», которая позволяет его владельцу вызывать любую функцию от имени контракта. Поскольку пользователи предоставили возможность бесконечного вывода средств, разработчик смог полностью истощить кошельки своих пользователей.

Украденные токены были немедленно конвертированы в Ethereum (ETH) и отправлены в микшер Tornado Cash для запутывания следов.

Стоит помнить, что механизм бесконечной авторизации позволяет контракту неограниченное время управлять токенами в кошельке пользователя. Это означает, что новые токены, отправленные на этот кошелек, могут быть украдены в любой момент в будущем. То есть кошелек остается полностью скомпрометированным до тех пор, пока разрешение не будет специально отменено.

Конечно, сейчас невозможно избежать такого механизма из-за ограничения стандарта токенов ERC-20. DApp-приложения и смарт-контракты не могут определить, перевел ли пользователь средства в контракт. Следовательно, контракт переводит деньги от имени пользователя, что требует утверждения. Автоматическое утверждение экономит газ и время, поскольку пользователям не нужно утверждать каждую транзакцию отдельно. Однако возникает риск недобросовестных проектов, как UniCats. Новые стандарты, такие как ERC-777, исправляют недостаток, хотя этот тип токенов тоже имеет свои уязвимости.

Exit mobile version