Entendendo as Mensagens de Assinatura
Há muitas concepções erradas sobre assinaturas. Neste artigo, eu gostaria de cobrir quatro tipos de mensagens de assinaturas para ajudar os usuários a entender os riscos associados ao assinar mensagens (também muitas vezes chamados de assinaturas “gasless” [sem taxa]) na Ethereum ou em outras blockchains compatíveis com a EVM (Máquina Virtual da Ethereum).
Os Quatro Tipos De Assinatura
É absolutamente importante que todos os usuários da Ethereum na web3 entendam esses tipos de assinaturas.
Tipo #1 - A Prova de Identidade (Seguro)
Este é o tipo principal de assinatura utilizado na web3. Entretanto não há um padrão único de como esse tipo se parece, há algumas coisas comuns, como os Termos de Serviço, seu endereço de carteira pública, algumas vezes um Nonce para impedir ataques de repetição e potencialmente uma pequena string para garantir que a mensagem que você está assinando seja a mesma na carteira digital e na carteira de hardware. Veja alguns exemplos abaixo:


Tipo #2 - A Assinatura Digitada [Interação com Contratos Inteligentes] (Use com Cautela)
Muitas vezes algumas partes dos contratos inteligentes dependem de assinaturas off-chain para fazer as coisas acontecerem. Estes tipos de assinatura irão repartir todas as entradas que farão parte da interação com o contrato. Muito útil, porém é aí que se deve ter muito cuidado caso você tenha aprovações em aberto. Como discutido no artigo sobre aprovações, embora consigamos entender perfeitamente o que estão fazendo neste exemplo, é necessário garantir que a fonte na qual está pedindo esse tipo de assinatura é confiável.
Por exemplo, se você observar o tipo de aprovação de assinatura da imagem abaixo em um ambiente fora da Opensea, você deve ficar bem atento e nunca assiná-lo. Isto é particularmente importante caso esteja utilizando a sua carteira de “Venda”, como nós introduzimos no nosso artigo “Carteira Para Cada Ocasião”.

Tipo #3 - A Assinatura Hexadecimal Ofuscada (Use Com Cautela Extrema!)
Agora, só porque algo não possui uma assinatura digitada de acordo com o padrão EIP-712 acima, não significa que é um scam. Entretanto, significa que você confia na contraparte com qualquer tipo de mensagem que você possa estar assinando, já que você está essencialmente “Assinando Cegamente” uma mensagem. Embora não vejamos essas assinaturas sendo utilizadas na Opensea nesses tempos, graças às melhorias no contrato da Seaport, eu ainda daria uma pausa antes de assinar esses tipos de mensagens, especialmente caso esteja em uma carteira com aprovações em aberto. Não tem certeza? Dê uma olhada no nosso artigo revogando aprovações e veja quais aprovações você possui em aberto no seu endereço de carteira!

Tipo #4 - ETH_Sign - Desatualizado & Bem, Um Pouco Assustador (Perigoso!)
Este é um tipo de assinatura muito perigoso, basicamente o “cheque em branco” da Ethereum.
O solicitante pode usar esta assinatura para assinar qualquer transação com sua chave privada. A boa notícia é que a Metamask mostra um grande aviso vermelho caso seja requisitado. Este tipo permite que alguém, caso a assinatura seja criada corretamente, consiga “repetir” qualquer transação para benefício próprio, como por exemplo enviando ETH para eles mesmos. Isto não depende de aprovações como wETH roubados, NFTs e outros tokens precisam. Este é o único tipo de assinatura que possui esse risco e deve ser evitada a todo custo, já que é raramente utilizado por serviços de maneira legítima!

ATUALIZAÇÃO: Baseado no nosso feedback e de outros da comunidade, ETH_SIGN agora é desativado por padrão na Metamask (porém você pode ativá-la nas configurações avançadas), então estamos deixando aqui para completar! Nós vemos isso como uma grande vitória para o espaço e simplifica nossa mensagem sobre assinaturas.
Adendos sobre Permit & Permit2
Em nosso artigo Tudo Sobre Aprovações, nós falamos sobre um tipo especial de assinatura para alguns tokens, que podem dar permissões para certos tokens ERC-20 sem a necessidade fazer uma aprovação on-chain, chamado Permit (AKA EIP-2612). Alguns tokens importantes implementaram essa funcionalidade como o $USDC, $DAI e outros tokens DeFi.
Recursos Adicionais
Nós entendemos que estamos simplificando alguns termos técnicos aqui, então antes que vocês falem “vocês estão usando as palavras erradas pra isso!” apenas saiba que nós estamos tentando simplificar a estrutura para que fique mais inteligível para todos! Abaixo há mais recursos e explicações mais técnicas sobre assinaturas, tipos de assinatura e suas implementações!
Mais informações técnicas aqui:
Can your wallet be drained simply by signing a message in Metamask?
Let's talk about it.
🧵👇— IOE (@CT_IOE) June 8, 2022
Mais alguns artigos úteis sobre Assinaturas:
- Intro to cryptography and Signatures in Ethereum - by Immunefi
- Signing Data | Metamask - by Metamask
Possui alguma questão ou gostaria de aprender mais sobre segurança na web3 e estar a par das informações de segurança, golpes e táticas? Junte-se a nós no discord em https://discord.gg/boringsecurity . ![]()


