MSTR Cat

Blockchain/Nível VII · Evolução/7.1 Ethereum: o computador mundial/Lição 4

Assinatura explícita: UTXOs versus aprovações de tokens

A assinatura que gasta e a permissão que sobrevive a ela

MateriaisUma carteira de hardware com suporte a PSBTAcesso ao Etherscan ou a um explorador de blocos semelhanteA interface do Revoke.cash

Curiosidade

  1. Por que um contrato inteligente pode mover seus tokens anos após você ter interagido com ele?
  2. Qual é a diferença estrutural entre assinar uma transação e conceder autoridade permanente?
  3. Como um formato de arquivo torna todas as entradas e saídas de uma transação Bitcoin visíveis antes que uma assinatura seja aplicada?

Explorar

  1. Nas cadeias EVM, o padrão ERC-20 rege as transferências de tokens. Para mover tokens de uma carteira externa para um contrato, o titular deve primeiro chamar a função `approve`, concedendo ao contrato permissão para gastar uma quantia específica desse token em seu nome. Essa autorização é registrada no estado do contrato e permanece ativa indefinidamente, até ser revogada ou esgotada. Um usuário que aprova 10.000 tokens para uma exchange descentralizada mantém essa autorização mesmo após a troca ser concluída.
  2. O EIP-2612 introduziu o `permit`, permitindo que os usuários assinem uma mensagem off-chain para definir esse limite sem enviar uma transação imediata. A assinatura permanece válida até ser utilizada ou seu prazo expirar, e confere o mesmo poder de gasto. Uma vez que um limite existe, quem controla o endereço aprovado como gastador pode drená-lo chamando `transferFrom`, mesmo que o usuário não tenha interagido com esse contrato desde então.
  3. Os *wallet drainers* exploram essa arquitetura. Sites de phishing enganam os usuários para assinar um `approve` ou `permit` ilimitado para um endereço malicioso. Uma vez assinado, o atacante detém uma permissão permanente para mover tokens à vontade. Revogar essas aprovações exige transações adicionais e taxas de gás, criando atrito. O resultado é que uma única assinatura pode criar uma vulnerabilidade permanente, invisível a menos que o usuário audite ativamente seus limites ativos usando ferramentas como Revoke.cash ou Etherscan.
  4. O modelo UTXO do Bitcoin funciona de maneira diferente. Não existem permissões permanentes. Cada transação gasta explicitamente saídas de transações não gastas (UTXOs) específicas para criar novas. Uma assinatura autoriza o movimento de uma moeda específica de um endereço específico para um destino específico, sem deixar nenhuma autoridade residual. Se um usuário assinar uma transação enviando 1 BTC para uma exchange, essa assinatura não pode ser reutilizada para enviar outros 1 BTC posteriormente.
  5. O BIP-174 define o formato de Transação Bitcoin Parcialmente Assinada (PSBT). Antes da assinatura, um PSBT contém todas as entradas e saídas, permitindo que carteiras de software ou hardware exibam exatamente o que está sendo gasto e para onde vai. O usuário vê toda a estrutura da transação — entradas, saídas, taxas — e assina esse payload específico; com o tipo de assinatura padrão, a assinatura se compromete com a transação inteira. Como nenhuma permissão oculta é criada, uma assinatura maliciosa só pode mover as moedas especificadas nessa única transação; ela não pode deixar uma porta dos fundos para transferências futuras.
  6. O trade-off é a composabilidade. As aprovações da EVM permitem interações complexas em várias etapas, nas quais os contratos gerenciam os saldos de tokens em nome dos usuários em diversas ações. O modelo explícito do Bitcoin exige que cada movimento seja assinado individualmente, limitando a capacidade de delegar autoridade aos contratos inteligentes da mesma maneira fluida. Os usuários ganham segurança por meio da transparência e da ausência de permissões permanentes, mas sacrificam a conveniência de um comportamento automático e contínuo dos agentes.

Fatos-chave

  • A função `approve` do ERC-20 concede a um contrato permissão para gastar tokens em nome de um titular, permanecendo ativa até ser revogada.
  • O EIP-2612 permite assinaturas off-chain para definir limites de tokens sem uma transação imediata.
  • *Wallet drainers* exploram aprovações ilimitadas ou esquecidas para drenar tokens de carteiras comprometidas.
  • As transações de Bitcoin utilizam UTXOs específicos e criam novas saídas; nenhuma permissão permanente é criada.
  • O BIP-174 (PSBT) permite que os usuários inspecionem todas as entradas e saídas de uma transação de Bitcoin antes de assiná-la.
  • A composibilidade do EVM depende de permissões persistentes, enquanto a segurança do Bitcoin depende de assinaturas explícitas e únicas.

Exercício nove, seis, três, um

9ReunirListe 9 ações comuns em DeFi ou criptomoedas que exigem assinaturas do usuário. Indique quais delas criam permissões permanentes e quais são transferências únicas.
6AgruparAgrupe os 9 em 6 grupos com base no que cada assinatura deixa para trás.
3DestilarReduza os 6 para 3 razões principais pelas quais as permissões permanentes criam riscos de segurança únicos em comparação com transferências únicas.
1CristalizarEscreva uma frase sobre o que uma assinatura autoriza em cada modelo e como essa autorização persiste (ou não).

Verificação de fatos

Datas, números e afirmações verificados com as fontes publicadas listadas abaixo.

Abrir na academia interativa →

EN ES ZH JA KO RU DE FR MS