Vamos começar com uma história simples sobre emprestar dinheiro:
Estou planejando pegar emprestado um milhão de meu bom amigo Jack Ma. Sem hesitar, Jack Ma pega o telefone, liga para o banco e, após verificar sua identidade, diz ao banco: 'Estou autorizando fulano a sacar um milhão'. O banco confirma e registra essa autorização.
O próximo passo é eu ir ao banco e dizer ao caixa que estou aqui para sacar o um milhão autorizado por Jack Ma. O banco verifica o registro de autorização e, após confirmar que sou a pessoa certa, entrega o um milhão.
Essa história é uma boa analogia de como a autorização de Aprovação funciona no Ethereum. Nesse processo, apenas Jack Ma (o proprietário do ativo) pode ligar para o banco para dar a autorização (na cadeia), e o banco (contrato de token) gerencia essas autorizações. Somente depois disso posso (a parte autorizada) sacar um valor que não exceda a autorização. Se o banco não encontrar nenhum registro de autorização, meu pedido de saque será, sem dúvida, rejeitado.
Agora, o que aconteceria se usássemos um método de autorização diferente - Permitir? Como funcionaria pedir dinheiro emprestado de Jack Ma então?
Desta vez, eu peço emprestado outro milhão. Generoso como sempre, Jack Ma nem se dá ao trabalho de ligar para o banco. Em vez disso, ele pega um talão de cheques, preenche o valor, assina e me entrega. Então eu levo este cheque para o banco. Mesmo que o banco não tenha nenhum registro de autorização, ele pode verificar a assinatura de Jack Ma no cheque e, com base nisso, me entrega o valor especificado.
Agora, você provavelmente pode ver a diferença nos processos. Aprovar, como uma função central do ERC-20, tem sido amplamente utilizado desde logo após o lançamento do Ethereum. Então, por que o método Permit foi introduzido no ERC-2612 para alcançar um resultado semelhante?
A proposta ERC-2612 foi introduzida em março de 2019 e concluiu sua revisão final em outubro de 2022. Sua implantação está intimamente ligada aos picos acentuados nos preços do gás que a Ethereum mainnet experimentou durante esse período.
Imagem: Preços de gás na rede principal do ETH permaneceram altos de 2020 a 2022
A combinação de um mercado de alta efeito touro e a criação de riqueza de novos projetos on-chain alimentou o entusiasmo dos usuários para transações on-chain. Eles estavam dispostos a pagar taxas mais altas para que suas transações fossem processadas mais rapidamente, porque às vezes ser confirmado apenas um bloco mais cedo poderia resultar em retornos significativamente mais altos.
No entanto, isso levou a um aspecto negativo: quando os usuários queriam negociar tokens on-chain, muitas vezes tinham que suportar taxas de gás exorbitantes. Com o método Approve, a conclusão de uma única troca de token exigia duas transações (TX). Para usuários com fundos menores, as taxas de transação poderiam ser um pesadelo.
A introdução do Permit do ERC-2612 mudou esse processo substituindo a aprovação on-chain por assinaturas offline, que não precisam ser enviadas imediatamente. Os usuários só precisam fornecer autorização ao transferir tokens, semelhante à história do empréstimo, em que eu só precisava mostrar o cheque de Jack Ma ao retirar o dinheiro do banco.
Jack Ma ocupado se salva de uma ligação telefônica, e parece que os usuários também economizam uma TX. Quando o preço do gás está alto, as economias em taxas podem ser substanciais, parecendo uma situação vantajosa para ambos. No entanto, poucos perceberam que a caixa de Pandora estava silenciosamente sendo aberta...
Antes do surgimento do Permit, uma das táticas comuns que os hackers usavam para enganar os usuários de criptografia era enganá-los para que assinassem uma transação Aprovar. Como essas transações exigiam que os usuários gastassem gás, muitas vezes levantavam suspeitas, dificultando o sucesso dos hackers. Mesmo que os usuários clicassem acidentalmente na transação, o fato de que ela levou algum tempo para ser confirmada on-chain deu a eles a chance de enviar outra transação com o mesmo nonce para cancelá-la – tornando relativamente difícil para os hackers realizarem seus esquemas.
No entanto, a chegada do Permit foi como um sonho tornado realidade para os hackers. Ao contrário do Approve, o Permit não consome gás e só requer uma assinatura, o que diminui significativamente a guarda do usuário. Além disso, devido à natureza das assinaturas offline, o controle está nas mãos do hacker. Não só os usuários não têm chance de desfazer seus erros, mas os hackers também podem manter a autorização e atacar no momento mais vantajoso, maximizando seus ganhos.
Isso levou a um aumento notável no número de vítimas de phishing e na quantidade de fundos roubados. De acordo com estatísticas da @ScamSniffer"">@ScamSniffer:
Imagem: Relatório de Ataque de Phishing do ScamSniffer para o Primeiro Semestre de 2024
Uma situação como essa provavelmente estava além do que os desenvolvedores originais previam. O objetivo de introduzir o Permit era reduzir os custos de gás, melhorar a experiência do usuário e aumentar a eficiência. O que se pensava ser uma espada de dois gumes, com ganhos e perdas, acabou sendo uma lâmina de um lado só, afiada como uma navalha, abrindo um buraco enorme no escudo que deveria proteger os ativos dos usuários.
Permit não é o único método de autorização baseado em assinaturas. Por exemplo, a Uniswap posteriormente introduziu a Permit2, permitindo que todos os tokens ERC-20 suportem assinaturas offline. Como a No. 1 DEX, a ação da Uniswap aumentou ainda mais a dependência dos usuários em assinaturas offline, o que, por sua vez, aumentou o risco de ataques de phishing.
Como usuários comuns, que medidas podemos tomar para evitar perdas e nos proteger dessa espada de Dâmocles - uma lâmina afiada - que paira sobre nós?
1⃣ Aumentar a conscientização
Mantenha a calma quando tentado por airdrops.
Airdrops de projetos de criptomoedas podem parecer atraentes, mas na maioria das vezes, são ataques de phishing disfarçados de airdrops. Ao se deparar com tais informações, não se apresse em reivindicá-las. Em vez disso, verifique a legitimidade do airdrop e de seu site oficial em várias fontes para evitar cair em armadilhas de phishing.
Evite Assinatura Cega
Se você acidentalmente cair em um site de phishing e não perceber, reserve um momento para analisar cuidadosamente a transação quando sua carteira solicitar que você assine. Se termos como Permit, Permit2, Approve ou IncreaseAllowance aparecerem, significa que a transação está solicitando autorização de token. Neste ponto, você deve ser cauteloso, porque airdrops legítimos não exigem esse processo. As carteiras de hardware Keystone implementaram recursos de análise e exibição de transações, permitindo que os usuários entendam melhor os detalhes da transação e evitem assinaturas cegas, o que poderia levar a consequências graves de decisões precipitadas.
Imagem: Keystone Hardware Wallet, Rabby Wallet Analisando e Exibindo Transações de Assinatura Permit2
2⃣ Faça bom uso das ferramentas
ScamSniffer
Para o usuário médio, identificar com precisão os sites de phishing pode ser altamente desafiador e é fácil que alguns passem despercebidos. Ao usar o plugin do navegador ScamSniffer, você receberá alertas ao tentar acessar sites potenciais de phishing, dando a você a chance de parar de interagir antes que seja tarde demais.
Revogar
Revoke.cashpermite que você visualize as autorizações de token em sua carteira. Recomendamos revogar quaisquer autorizações suspeitas ou ilimitadas. É uma boa prática limpar regularmente suas autorizações e limitá-las apenas às quantidades necessárias.
3⃣ Segregação de ativos e Multi-Sig
Como diz o ditado, não coloque todos os seus ovos em uma cesta - esse princípio também se aplica aos ativos criptográficos. Por exemplo, você pode armazenar grandes quantidades de ativos em uma carteira fria como a Keystone, enquanto usa uma carteira quente para transações diárias. Mesmo se você for vítima de um ataque, seu saldo inteiro não será comprometido.
Para aqueles com demandas de segurança mais elevadas, o uso de carteiras multi-assinatura (multi-sig) pode aprimorar ainda mais a proteção. Ativos sob multi-sig só podem ser movidos quando um determinado limite de aprovações de carteira é alcançado. Se uma carteira for comprometida mas o limite não for atingido, os hackers não terão acesso aos seus ativos.
Embora não possamos negar o valor que o Gate trouxe, o crescente número de roubos também mostra que os riscos que ele apresenta podem superar seus benefícios. Assim como o antigo método de ethsign, que era preferido pelos hackers devido à sua baixa legibilidade e falhas significativas de segurança, o Gate agora foi desativado pela maioria dos softwares de carteira, com suas funcionalidades substituídas por alternativas mais seguras.
Ao nos concentrarmos no Permit, não estamos também em uma encruzilhada semelhante à enfrentada pelo ethsign? Se devemos melhorar e atualizar ou descartar completamente é uma questão que os desenvolvedores de ETH precisam dedicar tempo para considerar e discutir.
Antes de se tirar quaisquer conclusões, a Keystone visa aprimorar a prevenção de riscos relacionados ao Permit em suas carteiras de hardware. Estamos iniciando uma votação para adicionar as seguintes funcionalidades:
Vamos começar com uma história simples sobre emprestar dinheiro:
Estou planejando pegar emprestado um milhão de meu bom amigo Jack Ma. Sem hesitar, Jack Ma pega o telefone, liga para o banco e, após verificar sua identidade, diz ao banco: 'Estou autorizando fulano a sacar um milhão'. O banco confirma e registra essa autorização.
O próximo passo é eu ir ao banco e dizer ao caixa que estou aqui para sacar o um milhão autorizado por Jack Ma. O banco verifica o registro de autorização e, após confirmar que sou a pessoa certa, entrega o um milhão.
Essa história é uma boa analogia de como a autorização de Aprovação funciona no Ethereum. Nesse processo, apenas Jack Ma (o proprietário do ativo) pode ligar para o banco para dar a autorização (na cadeia), e o banco (contrato de token) gerencia essas autorizações. Somente depois disso posso (a parte autorizada) sacar um valor que não exceda a autorização. Se o banco não encontrar nenhum registro de autorização, meu pedido de saque será, sem dúvida, rejeitado.
Agora, o que aconteceria se usássemos um método de autorização diferente - Permitir? Como funcionaria pedir dinheiro emprestado de Jack Ma então?
Desta vez, eu peço emprestado outro milhão. Generoso como sempre, Jack Ma nem se dá ao trabalho de ligar para o banco. Em vez disso, ele pega um talão de cheques, preenche o valor, assina e me entrega. Então eu levo este cheque para o banco. Mesmo que o banco não tenha nenhum registro de autorização, ele pode verificar a assinatura de Jack Ma no cheque e, com base nisso, me entrega o valor especificado.
Agora, você provavelmente pode ver a diferença nos processos. Aprovar, como uma função central do ERC-20, tem sido amplamente utilizado desde logo após o lançamento do Ethereum. Então, por que o método Permit foi introduzido no ERC-2612 para alcançar um resultado semelhante?
A proposta ERC-2612 foi introduzida em março de 2019 e concluiu sua revisão final em outubro de 2022. Sua implantação está intimamente ligada aos picos acentuados nos preços do gás que a Ethereum mainnet experimentou durante esse período.
Imagem: Preços de gás na rede principal do ETH permaneceram altos de 2020 a 2022
A combinação de um mercado de alta efeito touro e a criação de riqueza de novos projetos on-chain alimentou o entusiasmo dos usuários para transações on-chain. Eles estavam dispostos a pagar taxas mais altas para que suas transações fossem processadas mais rapidamente, porque às vezes ser confirmado apenas um bloco mais cedo poderia resultar em retornos significativamente mais altos.
No entanto, isso levou a um aspecto negativo: quando os usuários queriam negociar tokens on-chain, muitas vezes tinham que suportar taxas de gás exorbitantes. Com o método Approve, a conclusão de uma única troca de token exigia duas transações (TX). Para usuários com fundos menores, as taxas de transação poderiam ser um pesadelo.
A introdução do Permit do ERC-2612 mudou esse processo substituindo a aprovação on-chain por assinaturas offline, que não precisam ser enviadas imediatamente. Os usuários só precisam fornecer autorização ao transferir tokens, semelhante à história do empréstimo, em que eu só precisava mostrar o cheque de Jack Ma ao retirar o dinheiro do banco.
Jack Ma ocupado se salva de uma ligação telefônica, e parece que os usuários também economizam uma TX. Quando o preço do gás está alto, as economias em taxas podem ser substanciais, parecendo uma situação vantajosa para ambos. No entanto, poucos perceberam que a caixa de Pandora estava silenciosamente sendo aberta...
Antes do surgimento do Permit, uma das táticas comuns que os hackers usavam para enganar os usuários de criptografia era enganá-los para que assinassem uma transação Aprovar. Como essas transações exigiam que os usuários gastassem gás, muitas vezes levantavam suspeitas, dificultando o sucesso dos hackers. Mesmo que os usuários clicassem acidentalmente na transação, o fato de que ela levou algum tempo para ser confirmada on-chain deu a eles a chance de enviar outra transação com o mesmo nonce para cancelá-la – tornando relativamente difícil para os hackers realizarem seus esquemas.
No entanto, a chegada do Permit foi como um sonho tornado realidade para os hackers. Ao contrário do Approve, o Permit não consome gás e só requer uma assinatura, o que diminui significativamente a guarda do usuário. Além disso, devido à natureza das assinaturas offline, o controle está nas mãos do hacker. Não só os usuários não têm chance de desfazer seus erros, mas os hackers também podem manter a autorização e atacar no momento mais vantajoso, maximizando seus ganhos.
Isso levou a um aumento notável no número de vítimas de phishing e na quantidade de fundos roubados. De acordo com estatísticas da @ScamSniffer"">@ScamSniffer:
Imagem: Relatório de Ataque de Phishing do ScamSniffer para o Primeiro Semestre de 2024
Uma situação como essa provavelmente estava além do que os desenvolvedores originais previam. O objetivo de introduzir o Permit era reduzir os custos de gás, melhorar a experiência do usuário e aumentar a eficiência. O que se pensava ser uma espada de dois gumes, com ganhos e perdas, acabou sendo uma lâmina de um lado só, afiada como uma navalha, abrindo um buraco enorme no escudo que deveria proteger os ativos dos usuários.
Permit não é o único método de autorização baseado em assinaturas. Por exemplo, a Uniswap posteriormente introduziu a Permit2, permitindo que todos os tokens ERC-20 suportem assinaturas offline. Como a No. 1 DEX, a ação da Uniswap aumentou ainda mais a dependência dos usuários em assinaturas offline, o que, por sua vez, aumentou o risco de ataques de phishing.
Como usuários comuns, que medidas podemos tomar para evitar perdas e nos proteger dessa espada de Dâmocles - uma lâmina afiada - que paira sobre nós?
1⃣ Aumentar a conscientização
Mantenha a calma quando tentado por airdrops.
Airdrops de projetos de criptomoedas podem parecer atraentes, mas na maioria das vezes, são ataques de phishing disfarçados de airdrops. Ao se deparar com tais informações, não se apresse em reivindicá-las. Em vez disso, verifique a legitimidade do airdrop e de seu site oficial em várias fontes para evitar cair em armadilhas de phishing.
Evite Assinatura Cega
Se você acidentalmente cair em um site de phishing e não perceber, reserve um momento para analisar cuidadosamente a transação quando sua carteira solicitar que você assine. Se termos como Permit, Permit2, Approve ou IncreaseAllowance aparecerem, significa que a transação está solicitando autorização de token. Neste ponto, você deve ser cauteloso, porque airdrops legítimos não exigem esse processo. As carteiras de hardware Keystone implementaram recursos de análise e exibição de transações, permitindo que os usuários entendam melhor os detalhes da transação e evitem assinaturas cegas, o que poderia levar a consequências graves de decisões precipitadas.
Imagem: Keystone Hardware Wallet, Rabby Wallet Analisando e Exibindo Transações de Assinatura Permit2
2⃣ Faça bom uso das ferramentas
ScamSniffer
Para o usuário médio, identificar com precisão os sites de phishing pode ser altamente desafiador e é fácil que alguns passem despercebidos. Ao usar o plugin do navegador ScamSniffer, você receberá alertas ao tentar acessar sites potenciais de phishing, dando a você a chance de parar de interagir antes que seja tarde demais.
Revogar
Revoke.cashpermite que você visualize as autorizações de token em sua carteira. Recomendamos revogar quaisquer autorizações suspeitas ou ilimitadas. É uma boa prática limpar regularmente suas autorizações e limitá-las apenas às quantidades necessárias.
3⃣ Segregação de ativos e Multi-Sig
Como diz o ditado, não coloque todos os seus ovos em uma cesta - esse princípio também se aplica aos ativos criptográficos. Por exemplo, você pode armazenar grandes quantidades de ativos em uma carteira fria como a Keystone, enquanto usa uma carteira quente para transações diárias. Mesmo se você for vítima de um ataque, seu saldo inteiro não será comprometido.
Para aqueles com demandas de segurança mais elevadas, o uso de carteiras multi-assinatura (multi-sig) pode aprimorar ainda mais a proteção. Ativos sob multi-sig só podem ser movidos quando um determinado limite de aprovações de carteira é alcançado. Se uma carteira for comprometida mas o limite não for atingido, os hackers não terão acesso aos seus ativos.
Embora não possamos negar o valor que o Gate trouxe, o crescente número de roubos também mostra que os riscos que ele apresenta podem superar seus benefícios. Assim como o antigo método de ethsign, que era preferido pelos hackers devido à sua baixa legibilidade e falhas significativas de segurança, o Gate agora foi desativado pela maioria dos softwares de carteira, com suas funcionalidades substituídas por alternativas mais seguras.
Ao nos concentrarmos no Permit, não estamos também em uma encruzilhada semelhante à enfrentada pelo ethsign? Se devemos melhorar e atualizar ou descartar completamente é uma questão que os desenvolvedores de ETH precisam dedicar tempo para considerar e discutir.
Antes de se tirar quaisquer conclusões, a Keystone visa aprimorar a prevenção de riscos relacionados ao Permit em suas carteiras de hardware. Estamos iniciando uma votação para adicionar as seguintes funcionalidades: