O que é o EIP-7702? Uma assinatura pode fazer sua carteira executar o programa de outra pessoa?
Nos últimos dias, após o roubo na Binance, muita gente tem perguntado sobre o EIP-7702. Em uma frase: ele permite que um endereço de carteira comum (EOA) também receba código de contrato para executar.
Segundo o texto da especificação oficial do Ethereum:
1. É adicionado um novo tipo de transação, que inclui uma “lista de autorizações”.
2. Cada autorização é assinada pelo titular do endereço e contém o ID da chain, o endereço do contrato de destino e o nonce.
3. Depois que a autorização entra em vigor, um “ponteiro de delegação” é gravado no seu endereço. A partir daí, quem chamar seu endereço executará aquele código de contrato, usando sua identidade de endereço.
4. Essa delegação permanece ativa; não desaparece depois de ser usada. Para revogá-la, é preciso assinar novamente, apontando para o endereço zero.
A intenção por trás do projeto é boa: operações em lote, pagamento de taxas por terceiros e permissões limitadas para chaves secundárias.
Mas a própria especificação é bem direta: o código delegado tem acesso irrestrito à conta; os aplicativos não devem esperar que os usuários assinem esse tipo de autorização, e as carteiras não devem oferecer esse recurso; se o contrato delegado for mal escrito, outras pessoas podem ter controle quase total do seu endereço.
Voltando ao incidente. Segundo a Chainalysis, na rede Ethereum, o invasor enviou uma autorização com assinatura válida, fazendo uma carteira quente da Binance executar um código implantado pelo próprio invasor e, em seguida, usou essa carteira para retirar todos os ativos. Ainda não foi publicado o relatório técnico completo da Binance sobre a origem dessas assinaturas de autorização. Não tire conclusões precipitadas nem coloque toda a culpa em um único EIP.
É desagradável dizer isso, mas, depois que esse tipo de autorização é assinado, basta uma chamada para esvaziar a carteira. Quando uma pessoa comum clica em “Confirmar”, não deveria fazê-lo de olhos fechados.
Três coisas para verificar:
1. Não assine solicitações de assinatura que você não entende, especialmente se mencionarem “autorizar”, “delegar” ou “atualizar conta”.
2. Confie apenas na análise de assinatura da própria carteira, não nas explicações exibidas em janelas pop-up de páginas da web.
3. Verifique regularmente as autorizações e o status de delegação do endereço; revogue o que não estiver usando.
Sua carteira já exibiu avisos como “atualizar conta”? Você clicou na época?
#EIP7702 #钱包安全 $ETH