Logo
Share this article

Coinbase и ZenGo спорят о стандартах QR-кодов, которые могут заблокировать токены ERC-20

Пользователи, которым необходимо использовать QR-коды, должны проверять данные транзакции перед ее окончательным подтверждением, чтобы сэкономить деньги и избежать лишних хлопот.

Небольшие проблемы, усугубленные отсутствием координации действий разработчиков, могут оказать огромное влияние на безопасность монет пользователей Криптo .

STORY CONTINUES BELOW
Don't miss another story.Subscribe to the The Protocol Newsletter today. See all newsletters

Показательный пример:

В среду начальник службы безопасностиЗенГо, поставщик Криптовалюта кошелька, твитнулИсследование показало, что проблемы с QR-кодами, сгенерированными приложением Coinbase.com, привели к тому, что некоторые пользователи отправляли средства на адрес контракта, а не на предполагаемый адрес кошелька в приложении. Эта ошибка фактически замораживает средства, без возможности отменить транзакцию.

Проблема QR-кода, обнаруженная ZenGo, основана на проблеме обратной совместимости междуЕРК-67 (исходный стандарт формата QR URL) и более новый ЭИП-681стандарт. Coinbase использует EIP-681, что создает проблемы совместимости между ним и другими кошельками, использующими старый стандарт.

«QR-коды — очень проблемный формат для Криптовалюта сферы», — сказал Тал Беэри, соучредитель и исследователь безопасности в ZenGo. «Поскольку QR-коды не читаются человеком, пользователям сложно обнаружить ошибки, внесенные либо злоба или по ошибке. Из-за необратимости Криптовалюта ошибки обычно фатальны.”

При этом QR-коды могут быть более надежными и в целом менее подверженными ошибкам, чем копирование и вставка адреса кошелька Human .

Эта проблема затронула некоторыепользователи за последние восемь месяцеви, по словам Беэри, вероятно, существовал дольше. Это былопублично сообщенои в декабре 2020 года.

Стандарты QR-кодов EIP и ERC

ZenGo обнаружила эту проблему в рамках своего процесса обеспечения качества. Be'ery сказал, что команда тестировала модуль декодирования ZenGo QR, передавая ему QR-коды, сгенерированные различными кошельками, и заметила, что приложение ZenGo не обрабатывает QR-коды приложения Coinbase для токенов ERC-20, таких как Tether или DAI.

Токены ERC-20 обычно могут использоваться для представления объектов, предоставления права голоса, оплаты комиссий за транзакции, краудфандинга и включения новых функций в токен. В настоящее время ERC-20 является самым популярным стандартом токенов ERC на Ethereum.

Читать дальше: Что такое стандарт токенов Ethereum ERC-20?

После декодирования QR-кодов в соответствии со старым стандартом URL-адресов QR-кодов, используемым ZenGo, URL-адрес отображается в адресном поле под QR-кодом, по сути, как «Ethereum:<address>», за которым следуют некоторые необязательные параметры.

В новом формате, поддерживаемом приложением Coinbase, декодированный URL отображается под QR-кодом как «ERC-20 Ethereum:<адрес контракта>/transfer?address=<адрес получателя>».

По словам Биэри, это означает, что если разработчики не будут осторожны с реализацией, алгоритм может решить просто взять первый параметр в качестве соответствующего адреса для отправки и проигнорировать все остальные.

«Когда этот «наивный» алгоритм применяется к новому формату, это приводит к тому, что пользователь кошелька ошибочно отправляет средства на сам контракт ERC-20, а не предполагаемому получателю, что приводит к потере денег», — сказал Беэри.

Биэри опубликовал в Твиттере пример из приложения Coinbase, где первый адрес — это адрес контракта, а не адрес кошелька.

Документация по стандарту EIP-681 <a href="https://eips.ethereum.org/EIPS/eip-681%23backwards-compatibility">Ethereum</a> признает эту проблему, по сути заявляя, что он обратно совместим с платежами ETH , но не с платежами ERC-20.

Читать дальше: Мы отправились на охоту за Криптo в Google и Apple App Stores. Вот что мы обнаружили

«Ужасный стандарт»

Coinbase не предоставила запрошенный комментарий к моменту публикации статьи, но Пит Ким, руководитель отдела разработки кошелька Coinbase, ответил на твит Биэри.

Биэри заявил, что, хотя Coinbase не «ошибается», поскольку следует какому-то стандарту, команда ZenGo считает, что это классический случай «лучше быть умным, чем быть правым».

«При реализации функциональности, охватывающей несколько кошельков, например QR-кодов, которые могут быть созданы ONE кошельком и использованы другим, лучше использовать подход «наименьшего общего знаменателя»», — сказал Биэри.

«В частности, ZenGo создает QR-коды, которые кодируют адрес в необработанном формате (кошелек Trust делает то же самое), который просто указывает адрес и ничего больше. Это базовый подход, поэтому он оставляет меньше места для ошибок и несовместимостей».

Ким позжепоправил себя, отметив, что новый стандарт использовался в розничном приложении Coinbase или в их приложении для обмена, а не в Coinbase Wallet, который является некастодиальным приложением-кошельком.

Ким продолжил, заявив, что это ошибка в ZenGo, поскольку он не поддерживает стандарт EIP-681, отметив, что другие кошельки, такие как Trust, Exodus,Криптo.comи Metamask корректно поддерживают EIP-681.

Выбор правильного адреса

В то же время, как правило, Be'ery сказал, что пользователи, которые должны использовать QR-коды, должны проверять детали транзакции, прежде чем окончательно подтвердить транзакцию. Например, поиск адреса наEtherscanсообщит вам, является ли адрес адресом контракта или адресом кошелька. К сожалению, проверить, какие стандарты поддерживает ваш предпочтительный кошелек, довольно сложно.

Все это может показаться сложным для новичков в этой области, которые не знакомы с контурами Криптo, и это может быть так. Однако это то, что может сэкономить им BIT денег и головной боли в долгосрочной перспективе.

«Именно поэтому в ZenGo мы дополняем наши QR-коды некоторыми визуальными индикаторами типа монеты/токена, а также самим адресом для удобства сравнения и проверки», — сказал Беэри.

«Самое главное при считывании QR-кода — не запутаться в разных форматах и стандартах, и лучше потерпеть неудачу в случае неподдерживаемого формата (как это делаем мы) и не пытаться «угадывать» и подвергать риску средства наших клиентов. Возможно, в будущем мы решим поддерживать и этот формат, и тогда мы выберем «правильный» адрес, так что никакие средства [не будут потеряны]».

Исправление: Четверг, 3 марта 2021 г., 16:00 UTC:В оригинальной версии этой статьи говорилось, что проблема была в Coinbase Wallet. В нее было внесено изменение, чтобы указать, что проблема связана с адресами кошельков в приложении Coinbase.com.

Добавлены дополнительные комментарии от Пита Кима из Coinbase Wallet.

Benjamin Powers

Пауэрс — технический репортер в Grid. Ранее он был репортером по Политика конфиденциальности в CoinDesk , где занимался вопросами Политика конфиденциальности данных и финансов, информационной безопасности и цифровой идентичности. Его работы публиковались в Wall Street Journal, Daily Beast, Rolling Stone и New Republic, среди прочих. Он владеет Bitcoin.

Benjamin Powers