Токены ERC-404 продолжают набирать популярность, однако крипторазработчики указали на риски безопасности еще не прошедшего аудит экспериментального стандарта.
Как работает ERC-404
Стандарт представляет собой смешанную реализацию ERC-20/ERC-721, когда при покупке монеты на кошельке также автоматически появляется NFT. При этом он позволяет владеть дробной частью так называемого «фракционного» невзаимозаменяемого токена.
3/ The goal of ERC404 seems to be allowing NFTs to be traded with the more robust liquidity of fungible token pools.
— quit (👀,🦄) (@0xQuit) February 6, 2024
They've accomplished this by effectively rendering transfers below a certain amount (the total supply of NFTs) invalid. Odd choice, but we'll see why in a second.
«Цель ERC-404 заключается в том, чтобы позволить торговать NFT с более надежной ликвидностью пулов взаимозаменяемых токенов. Они добились этого, фактически сделав переводы ниже определенной суммы (общего количества NFT) недействительными. Странный выбор […]», — написал разработчик и аудитор Solidity под ником Quit.
Эксперт провел анализ кода ERC-404 и заметил множество общих деталей со стандартами, взятыми за основы. Изменения появляются в механизме подтверждения транзакций.
Quit объяснил: если отправляемая сумма находится в «диапазоне отчеканенных токенов», происходит перемещение активов в формате ERC-721, при значении выше или ноль — в ERC-20.
Разработчик также отметил «очень дорогое обслуживание» функции, которая имитирует ERC721Enumerable. Она отвечает за отображение списка всех токенов, принадлежащих учетной записи.
По его словам, передача NFT из стандартной коллекции Azuki стоит около 45 000 Gwei, а трансфер токена Pandora — свыше 100 000 Gwei.
«[В ERC-404] транзакция сжигает/чеканит NFT в соответствии с изменениями баланса отправителя/получателя. В случае записи актива нам нужен список невзаимозаменяемых токенов, принадлежащих отправителю», — объяснил высокую стоимость газа Quit.
Согласно официальной странице на GitHub, ERC-404 является экспериментальным, и два комбинируемых стандарта «не предназначены для смешивания». Однако разработчики стремятся объединить их «настолько надежным образом, насколько это возможно, минимизируя компромиссы».
Проблемы безопасности
После детального изучения Quit обратил внимание на угрозу эксплойта. Согласно его анализу, использующие ERC-404 NFT уязвимы для кражи со стороны держателей взаимозаменяемых токенов ERC-404.
9/ You might be able to guess what happens.
— quit (👀,🦄) (@0xQuit) February 8, 2024
This is a valid withdrawal amount, because the depositor has a balance much higher than the request.
However, Pandora interprets it as an ERC721 transfer, and thus our token depositor is able to steal the NFT from our NFT depositor. pic.twitter.com/sQwn9828Jp
Это осуществимо в том случае, если NFT был депонирован в протокол кредитования, неправильно настроенный для нового стандарта.
«Данный эксплойт я вполне ожидаю увидеть в определенный момент, если ERC-404 останется популярным. […] Урок заключается в том, что нам не следует перегружать существующие сигнатуры функций новыми, скрытыми и неинтуитивными механиками», — заявил Quit.
ERC-404 еще не утвержден Ethereum Foundation и сообществом, а официальная страница EIP на момент написания недоступна. При этом программный код не проходил аудиторских проверок.
За экспериментальным стандартом стоят анонимные разработчики под псевдонимами ctrl и Acme. В ходе беседы с Cointelegraph они заявили, что команда проекта «работает круглосуточно» для регистрации EIP:
«Это длительный процесс, здесь много политики […] Обычно это занимает пару недель».
По их словам, получение одобрения для такого рода инициативы — «одна из самых бюрократических вещей, которую можно представить».
Отвечая на вопрос о безопасности и возможном эксплойте, разработчики переложили ответственность на другие платформы, которые «интегрируют и неправильно используют контракт ERC-404».
«Это все равно, что опубликовать фотографию машины и объяснить, как вломиться в нее через открытую дверь», — добавили они.
Ранее ForkLog сообщал, что значительный рост Pandora принес трейдеру около $1,2 млн за два дня.