Является ли BNB действительно токеном ERC-20?. Есть вопрос, который я хотел бы поднять здесь. Эта проблема была выявлена командой Futereum, которая нашла серьезную ошибку с токеном Binance (BNB), которая должна была быть исправлена уже.
Если вы отправитесь на Etherscan и посмотрите токен Binance, вы сможете увидеть, что он читает [ERC-20], то есть он должен подчиняться стандарту ERC-20, выпущенному командой Open Zeppelin, доступному здесь.
Конечно, ни один стандарт не является без ошибок - независимо от того, насколько велика команда. Только в прошлом году сообщалось, что 130 токенов ERC-20 пострадали от проблемы, когда функции передачи токенских контрактов ничего не возвращают при вызове. По сути, как объяснил Лукас Кремер, проблема заключалась в следующем:
“Вызывающий контракт отправляет внешний вызов [BadToken], который обрабатывает вызов, делает передачу и не возвращает логическое возвращаемое значение. Вызывающий контракт теперь ищет возвращаемое значение в памяти, но поскольку токен не записывал возвращаемое значение, он будет принимать все, что он найдет в этой позиции памяти в качестве возвращаемого значения внешнего вызова. Это уже довольно плохо: принимать некоторые данные, которые находятся в слоте памяти в качестве возвращаемого значения, не является хорошей идеей”.
Какой риск?
Как описано выше, самый большой риск заключается в том, что смарт-контракт, ожидающий интерфейс ERC-20, не сможет взаимодействовать с контрактом старого токена (если скомпилирован с версией Solidity ≥ 0.4.22). Это может означать, что токены, которые отправляются в такой контракт, останутся там навсегда, даже если контракт имеет функцию для передачи токенов ERC-20.
Проблема, кажется, намного больше для Binance просто потому, что она строит свой собственный децентрализованный обмен (DEX) и блокчейн экосистему. Я могу придумать две проблемные ситуации:
Токены BNB не могут быть отправлены на децентрализованную биржу, которая составила контракт с версией Solidity ≥ 0.4.22.
Если Binance использует ту же логику смарт-контракта для создания Binance DEX, токен ERC-20 не будет работать там. Конечно, это чисто спекуляция, так как качество разработки токена BNB не диктует качество Binance.
Возможные решения?
Интересно, что Binance хочет, чтобы токены ERC-20 мигрировали на свой собственный блокчейн, цепочку Binance, которая кажется мне немного надуманной. Строго говоря, я не вижу веской причины, почему команда не будет работать с гораздо более безопасным протоколом, таким как Ethereum или Stellar. Единственное преимущество, которое я вижу, заключается в том, что проекты могут сэкономить несколько (миллионов) долларов на листинговые сборы, плюс они, возможно, будут иметь право голоса по консенсусу blockchain, поскольку он будет основан на DPoS.
В недавнем интервью основатель Binance Чанпенг “CZ” Чжао сказал:
“Монета Binance будет мигрировать в цепочку Binance как родную монету. Мы также поощряем другие токены ERC-20 мигрировать в Binance Chain. Для этого есть много преимуществ. Binance Chain - это более быстрая цепочка; очень легко создать токен на Binance Chain. Нет смарт-контрактов для программирования, это более безопасно, меньше места для ошибок [...]”
Если цель технологии blockchain заключается в увеличении децентрализации, это кажется неправильным способом ее продвижения. Тем не менее, как напомнил нам CZ во время интервью на Ivan on Tech, Binance является частной компанией, целью которой является зарабатывать деньги (и я пари как можно больше).
Должны ли мы просто оставить будущее криптовалют в руках другой частной компании?
Binance создал значимый продукт, который объединяет миллионы пользователей каждый день. Я сам был постоянным пользователем Binance с момента его создания, и я могу смело сказать, что у него есть один из лучших пользовательских интерфейсов.
Я надеюсь, что Binance DEX докажет, что я ошибаюсь, и вся экосистема будет действительно децентрализована.
Disclaimer: The views and opinions expressed by the author should not be considered as financial advice. We do not give advice on financial products.