Команда AkuDreams NFT переписала код после ошибки на 34 миллиона долларов США
Команда AkuDreams, долгожданного проекта невзаимозаменяемых токенов (NFT), который был запущен в пятницу, переписала код после того, как недостатки в первом коде смарт-контракта привели к тому, что 34 миллиона долларов США были заблокированы «навсегда».
В воскресном обновлении проект сообщил, что Anonymice, команда, стоящая за несколькими проектами NFT, «переписала наш контракт на чеканку, и несколько разработчиков проверяли и проверяли».
AkuDreams — это 3D-проект NFT на тему космонавтов, запущенный Микой Джонсоном, художником и бывшим профессиональным игроком в бейсбол. Проект состоит из 15 000 аватаров Ethereum (ETH) со случайными характеристиками.
В пятницу 5 500 NFT были проданы с аукциона в формате голландского аукциона, где цены стартовали с 3,5 ETH (9 960 долларов США) и продолжали снижаться. В конце концов, самая низкая ставка будет определять окончательную цену NFT, а те, кто предложит более высокую ставку, получат возмещение.
Тем не менее, не все было гладко, так как обнаружилось несколько недостатков в коде. Сначала эксплуататор использовал ошибку в контракте, чтобы остановить все возмещения и отказы от контракта, а это означало, что те, кто сделал ставку выше окончательной цены NFT, не получили возмещения.
К счастью, эксплуататор только попросил команду признать проблему, подчеркнув важность инвестиций в безопасность.
«Ну, это было весело, я не собирался эксплуатировать это, лол. Иначе я бы не использовал coinbase. Как только вы, ребята, публично признаете, что эксплойт существует, я немедленно удалю блокировку», — сказал эксплуататор в прямом эфире в сообщениях.
В сообщении в Твиттере команда взяла на себя ответственность, и эксплуататор разблокировал эксплойт. Однако вскоре проект столкнулся с новыми проблемами — часть средств была заблокирована, и команда «никогда не сможет получить к ним доступ».
Согласно ветке разработчика под псевдонимом 0xInuarashi, ошибка в коде не учитывала пользователей, создающих несколько NFT за одну транзакцию.
«Было сделано требование returnProgress >= totalBids», — уточнил 0xInuarashi, добавив, что предполагается, что все возвраты должны быть обработаны перед снятием средств.
0xInuarashi сказал, что returnProgress никогда не может превысить 3669, в то время как totalBids составляет 5495 элементов. Поскольку код требует, чтобы returnProgress был больше или равен totalBids, 0xInuarashi пришел к выводу, что «команда никогда не сможет вывести свои ETH» на сумму около 34 миллионов долларов США.
«Совершенные ошибки никому не дороже, чем мне самому. Я реинвестировал почти все в создание Aku», — написал Джонсон в Твиттере, добавив, что «почти все пойдет на возмещение, и мы продолжим строить то, что намеревались сделать».