Проект криптовалюты под названием YAM закрылся 12 августа после того, как ее создатели обнаружили, что существующая в коде программная ошибка фактически лишает их возможности управлять валютой.
Данная строчка кода:
totalSupply = initSupply.mul(yamsScalingFactor);
должна была выглядеть так:
totalSupply = initSupply.mul(yamsScalingFactor).div(BASE);
«Мы обнаружили ошибку в контракте на перебазирование, из-за которой было извлечено гораздо больше YAM, чем предполагалось для продажи в пул Uniswap YAM/yCRV, что привело к отправке большого количества избыточного YAM в резерв протокола», — разъяснили авторы проекта.
«Учитывая модуль управления YAM, эта ошибка сделает невозможным достижение кворума, а это означает, что никакие действия по управлению будут невозможны, и средства в казначействе будут заблокированы», — добавили они.
В YAM должна была действовать система управления смарт-контрактами, которая распределяет голоса на основе активов. «Ошибка в логике распределения привела к тому, что по контрактам было выпущено гораздо больше токенов, чем предполагалось», — объяснил Джеймс Прествич, основатель криптовалютного бизнеса Summa. — «Эти токены принадлежали самому контракту на управление и поэтому не могли голосовать. Поскольку они существуют и не могут голосовать, невозможно вообще обеспечить минимальное участие в голосовании. Это означает, что управление навсегда отключено, и все другие токены заблокированы навсегда».
Ошибка в коде заблокировал токены Curve (yCRV) на сумму около $750 000 в казначействе YAM. Эти активы были предназначены для использования в качестве резервной валюты для поддержания стоимости YAM.
При этом создатели настаивали, что ошибка не повлияла напрямую на балансы или активы в контрактах на размещение.
Но после того, как попытки восстановить контроль над казначейством YAM потерпели неудачу, соучредитель Брок Элмор принес в твиттере официальные извинения.
i’m sorry everyone. i’ve failed. thank you for the insane support today. i’m sick with grief
— belmore (@brockjelmore) August 13, 2020
Стоимость токена, которая достигала $183,44, упала до $1,04. Еще за день до закрытия проекта, когда в обращении находилось около 29 млн токенов YAM, его рыночная капитализация составляла около $525 млн.
Теоретически, инвесторы в криптовалюту могли это предвидеть. В репозитории проекта на GitHub прямо указано, что аудит кода не проводился. «Соавторы приложили все усилия для обеспечения безопасности этих контрактов, но не дают никаких гарантий», — поясняет файл README.md проекта. — «Работа была проверена всего несколькими парами глаз. Это вероятность, а не просто возможность того, что есть ошибки». Связанный с проектом веб-сайт yam.finance также выдает всплывающее предупреждение при посещении.
Представители крипторынка считают, что ошибку обнаружили благодаря внешнему аудиту стандартными методами тестирования.
Несмотря на свой провал, YAM Finance намерена повторить попытку: «Мы создадим грант Gitcoin для координации финансируемого сообществом аудита контрактов YAM. «Если цель финансирования будет достигнута, по завершении аудита мы планируем поддержать запуск YAM 2.0 через контракт на миграцию из YAM».