В четверг представители Decentral Bank сообщили об исправлении бага в смарт-контракте, который привёл к выпуску около 10 триллионов стейблкоинов USN. Команда сожгла эти токены и планирует вознаградить внимательного пользователя за нахождение ошибки.
Decentral Bank — это децентрализованная автономная организация (DAO), которая занимается разработкой стейблкоина USN на блокчейне Near.
Ошибка была обнаружена, когда пользователь под ником «pavladiv.near» попытался обменять 5 USN ($ 5) на 5 USD Tether (USDT) в 01:35 утра по восточному поясному времени 6 июля. Он попытался совершить сделку через сетевой механизм свопа на Decentral Bank.
Однако в сети возникла проблема, из-за которой механизм свопа отказывался работать, если на кошельке не было USDT (по факту он не нужен для свопа). Таким образом, обменять валюту не удалось.
Пользователь пытался осуществить процесс дважды, и в обоих случаях безрезультатно. Поскольку транзакция не прошла, смарт-контракт USN попытался вернуть средства. Именно на данном этапе и произошёл сбой.
Он заключался в том, что при возврате USN пользователю pavladiv.near была неправильно поставлена десятичная запятая. Вместо того, чтобы вернуть 4,9995 USN (около $ 5), ошибка смарт-контракта в обоих случаях привела к выпуску 4,9995 трлн USN. Получается, около $ 10 трлн возникли попросту из ниоткуда.
Заметив ошибку, команда Decentral Bank приостановила действие контракта и внесла исправления, чтобы предотвратить неправильное размещение десятичной запятой при возмещении неудачного свопа. Команда также сожгла лишние токены USN, выпущенные в результате этого бага, восстановив оборотное предложение USN до корректного состояния.
Если бы ошибку не заметили, её можно было бы использовать для создания бесконечного числа USN. Это могло бы привести к полному истощению пула ликвидности USDT на Ref Finance. Ref Finance — это протокол DeFi в сети Near, а также один из спонсоров и основных участников Decentral Bank.
Разработчики USN сообщили о тестировании соответствующего исправления для пользователей с кошельками без USDT. В Decentral Bank посоветовали пользователям хранить небольшую часть USDT при выполнении подобных свопов до выпуска патча.
Пользователь, обнаруживший проблему, будет вознагражден премией за нахождение бага.
Виктор блоггер, философ, творческая личность. Его страсть к словам и чудесам цифрового мира – вот что побуждает его писать для вас.