Share this article

Coinbase e ZenGo discutem sobre padrões de código QR que podem bloquear tokens ERC-20

Usuários que precisam usar códigos QR devem verificar os detalhes da transação antes de finalmente confirmá-la para economizar dinheiro e dores de cabeça.

Pequenos problemas, agravados pela falta de coordenação dos desenvolvedores, podem ter um grande impacto na segurança das moedas dos usuários de Cripto .

Story continues
Don't miss another story.Subscribe to the The Protocol Newsletter today. See all newsletters

Um caso em questão:

Quarta-feira, o chefe de segurança daZenGo, um provedor de carteira de Criptomoeda , tweetou para forapesquisa mostrando que problemas com códigos QR gerados pelo aplicativo da Coinbase.com resultaram em alguns usuários enviando fundos para o endereço do contrato em vez do endereço da carteira pretendido dentro do aplicativo. Esse erro efetivamente deixa os fundos presos, sem nenhuma maneira de reverter a transação.

O problema do código QR identificado pela ZenGo é baseado em um problema de compatibilidade com versões anteriores entreERC-67(o padrão original de formato de URL QR) e o mais novoEIP-681padrão. A Coinbase usa EIP-681, criando problemas de compatibilidade entre ela e outras carteiras que usam o padrão mais antigo.

“Os códigos QR são um formato muito problemático para o domínio da Criptomoeda ”, disse Tal Be'ery, cofundador e pesquisador de segurança da ZenGo. “Como os códigos QR não são legíveis por humanos, é difícil para os usuários detectar erros, introduzidos por malícia ou por engano. Devido à irreversibilidade da Criptomoeda, os erros geralmente são fatais.”

Dito isso, os códigos QR podem ser mais confiáveis ​​e menos propensos a erros do que um Human copiando e colando um endereço de carteira.

Esta questão afetou algunsusuários nos últimos oito mesese, de acordo com Be'ery, provavelmente já existe há mais tempo. Foirelatado publicamenteem dezembro de 2020 também.

Os padrões de código QR EIP e ERC

A ZenGo descobriu o problema como parte de seu processo de garantia de qualidade. Be'ery disse que a equipe estava testando o módulo de decodificação de QR da ZenGo alimentando-o com códigos QR, gerados por uma variedade de carteiras, e notou que o aplicativo ZenGo não lida com QRs de aplicativo Coinbase para tokens ERC-20, como Tether ou DAI.

Os tokens ERC-20 podem ser usados ​​normalmente para representar objetos, dar direitos de voto, pagar taxas de transação, fazer crowdfunding e incorporar novos recursos em um token. ERC-20 é atualmente o padrão de token ERC mais popular no Ethereum.

Leia Mais: O que é o padrão de token Ethereum ERC-20?

Depois que os códigos QR são decodificados de acordo com o antigo padrão de URL de código QR usado pelo ZenGo, a URL aparece no campo de endereço abaixo do código QR como, essencialmente, “Ethereum:<endereço>” seguido por alguns parâmetros opcionais.

No formato mais recente, suportado pelo aplicativo da Coinbase, a URL decodificada aparece abaixo do código QR como “ERC-20 Ethereum:<endereço do contrato>/transfer?address=<endereço do destinatário>”.

Isso significa que, de acordo com Be'ery, se os desenvolvedores não forem cuidadosos com sua implementação, um algoritmo pode decidir apenas pegar o primeiro parâmetro como o endereço relevante para enviar e ignorar todos os outros.

“Quando esse algoritmo ‘ingênuo’ é aplicado no formato mais novo, ele fará com que o usuário da carteira envie fundos erroneamente para o próprio contrato ERC-20 e não para o destinatário pretendido, resultando em perda de dinheiro”, disse Be’ery.

Be'ery tuitou um exemplo do aplicativo da Coinbase, com o primeiro endereço sendo o endereço do contrato e não o endereço da carteira.

A documentação do padrão EIP-681 <a href="https://eips.ethereum.org/EIPS/eip-681%23backwards-compatibility">Ethereum</a> reconhece esse problema, essencialmente afirmando que ele é compatível com versões anteriores de ETH , mas não com pagamentos ERC-20.

Leia Mais: Fomos à caça de golpes de Cripto nas lojas de aplicativos do Google e da Apple. Aqui está o que encontramos

'Um padrão terrível'

A Coinbase não forneceu um comentário solicitado até o momento, mas Pete Kim, chefe de engenharia da Coinbase Wallet, respondeu ao tweet de Be'ery.

Be'ery disse que, embora a Coinbase não esteja "errada" por seguir algum padrão, a equipe da ZenGo acredita que é um caso clássico de "É melhor ser inteligente do que estar certo".

“Ao implementar uma funcionalidade de carteira cruzada, como códigos QR que podem ser criados por uma carteira e consumidos por outra, é melhor usar uma atitude de 'menor denominador comum'”, disse Be'ery.

“Especificamente, o ZenGo cria códigos QR que codificam o endereço em um formato bruto (a Trust Wallet também faz isso) que apenas especifica o endereço e nada mais. É básico e, portanto, deixa menos espaço para erros e incompatibilidades.”

Kim depoiscorrigiu-se, observando que o novo padrão estava sendo usado no aplicativo de varejo da Coinbase, ou em seu aplicativo de câmbio, em vez da Coinbase Wallet, que é um aplicativo de carteira não custodial.

Kim continuou dizendo que este era um bug no ZenGo por não suportar o padrão EIP-681, observando que outras carteiras como Trust, Exodus,Criptoe Metamask suportam EIP-681 corretamente.

Escolhendo o endereço certo

Enquanto isso, como regra geral, Be’ery disse que os usuários que devem usar códigos QR devem verificar os detalhes da transação antes de finalmente confirmar a transação. Por exemplo, pesquisar um endereço emEtherscaninformará se o endereço é um endereço de contrato ou um endereço de carteira. Infelizmente, verificar quais padrões sua carteira preferida suporta é bastante difícil.

Tudo isso pode parecer árduo para novatos no espaço que não estão familiarizados com os contornos da Cripto, e pode ser. No entanto, é algo que pode economizar BIT dinheiro e dores de cabeça a longo prazo.

“É por isso que no ZenGo aumentamos nossos códigos QR com alguns indicadores visuais sobre o tipo de moeda/token e também o próprio endereço para fácil comparação e verificação”, disse Be'ery.

"O mais importante com a leitura de QR code é não se confundir com os diferentes formatos e padrões, e é melhor falhar no caso de um formato não suportado (como fazemos) e não tentar 'adivinhar' e colocar os fundos dos nossos clientes em risco. Podemos decidir no futuro oferecer suporte a esse formato também, e então escolheremos o endereço 'certo', para que nenhum fundo [seja perdido]."

Correção: Quinta-feira, 3 de março de 2021, 16:00 UTC:A versão original deste artigo afirmava que o problema era com a Coinbase Wallet. Foi alterado para afirmar que o problema é com endereços de carteira dentro do aplicativo Coinbase.com.

Comentários adicionais de Pete Kim da Coinbase Wallet foram adicionados.

Benjamin Powers

Powers é um repórter de tecnologia na Grid. Anteriormente, ele foi repórter de Política de Privacidade na CoinDesk , onde se concentrou em Política de Privacidade financeira e de dados, segurança da informação e identidade digital. Seu trabalho foi destaque no Wall Street Journal, Daily Beast, Rolling Stone e New Republic, entre outros. Ele é dono de Bitcoin.

Benjamin Powers