- Вернуться к меню
- Вернуться к менюЦены
- Вернуться к менюИсследовать
- Вернуться к менюКонсенсус
- Вернуться к менюПартнерский материал
- Вернуться к меню
- Вернуться к меню
- Вернуться к менюВебинары и Мероприятия
Coinbase и ZenGo спорят о стандартах QR-кодов, которые могут заблокировать токены ERC-20
Пользователи, которым необходимо использовать QR-коды, должны проверять данные транзакции перед ее окончательным подтверждением, чтобы сэкономить деньги и избежать лишних хлопот.
Небольшие проблемы, усугубленные отсутствием координации действий разработчиков, могут оказать огромное влияние на безопасность монет пользователей Криптo .
Показательный пример:
В среду начальник службы безопасностиЗенГо, поставщик Криптовалюта кошелька, твитнулИсследование показало, что проблемы с 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, ответил на твит Биэри.
Technically, Coinbase Wallet is doing the right thing here (using the EIP-681 standard), and ZenGo is not supporting it correctly. However, I do agree that EIP-681 is a terrible standard because it's not backwards compatible. https://t.co/XmwFxTeWjg
— Pete Kim (@petejkim) March 23, 2021
Биэри заявил, что, хотя 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.
