Vamos começar com uma história simples sobre pedir dinheiro:
Estou planejando pedir um milhão emprestado do meu bom amigo Jack Ma. Sem hesitar, Jack Ma pega no telefone, liga para o banco e, depois de verificar a sua identidade, diz ao banco: "Estou a autorizar fulano a levantar um milhão". O banco reconhece e regista esta autorização.
O próximo passo é eu ir ao banco e dizer ao caixa que estou aqui para retirar o 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 milhão.
Esta história é uma boa analogia de como a autorização Aprovar funciona na Ethereum. Neste processo, apenas Jack Ma (o proprietário do ativo) pode ligar para o banco para dar a autorização (on-chain), e o banco (contrato de token) gerencia essas autorizações. Somente após isso posso eu (a parte autorizada) retirar um montante que não exceda a autorização. Se o banco não encontrar nenhum registo de autorização, o meu pedido de levantamento será sem dúvida rejeitado.
Agora, o que aconteceria se usássemos um método diferente de autorização - Permissão? Como funcionaria pegar dinheiro emprestado de Jack Ma então?
Desta vez, peço emprestado mais um 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. Depois, levo esse cheque ao 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.
A esta altura, você provavelmente já consegue 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 implementação está intimamente ligada aos picos acentuados nos preços do gás que a mainnet Ethereum experimentou durante esse período.
Imagem: Preços do Gás na Rede Principal da ETH Permaneceram Altos de 2020 a 2022
A combinação de um mercado de touro furioso e o efeito de criação de riqueza de novos projetos on-chain alimentou o entusiasmo dos usuários para transacionar on-chain. Eles estavam dispostos a pagar taxas mais altas para obter suas transações processadas mais rapidamente porque, às vezes, ser confirmado mesmo apenas um bloco mais cedo poderia resultar em retornos significativamente mais altos.
No entanto, isso levou a uma desvantagem: quando os usuários queriam negociar tokens on-chain, muitas vezes tinham que suportar taxas de gás exorbitantes. Sob o método Approve, completar uma única troca de tokens exigia duas transações (TX). Para usuários com fundos menores, as taxas de transação podem 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 a autorização ao transferir tokens, assim como na história de empréstimos, eu só precisava mostrar o cheque de Jack Ma ao retirar o dinheiro do banco.
Jack Ma ocupado salva-se a si mesmo de uma chamada telefónica, e parece que os utilizadores também poupam uma TX. Quando o preço do gás está alto, as poupanças nas taxas podem ser substanciais, dando a impressão de ser uma situação vantajosa para todos. No entanto, poucos se aperceberam de que a caixa de Pandora estava a ser aberta silenciosamente...
Antes do surgimento do Permit, uma das táticas comuns que os hackers usavam para pescar os utilizadores de criptomoedas era enganá-los a assinar uma transação de Aprovação. Como estas transações exigiam que os utilizadores gastassem gás, muitas vezes levantava suspeitas, tornando mais difícil para os hackers terem sucesso. Mesmo que os utilizadores tenham clicado acidentalmente na transação, o facto de ter demorado algum tempo a ser confirmada na cadeia de blocos deu-lhes a oportunidade de submeter outra transação com o mesmo nonce para a cancelar - tornando relativamente difícil para os hackers concretizarem os 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 requer apenas uma assinatura, o que reduz 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 segurar a autorização e atacar no momento mais vantajoso, maximizando seus ganhos.
Isto 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 de @ScamSniffer"">@ScamSniffer:
Imagem: Relatório de Ataque de Phishing da ScamSniffer para o primeiro semestre de 2024
Tal cenário provavelmente estava além do que os desenvolvedores originais tinham previsto. 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 por ser uma lâmina de um só lado — afiada como navalha — abrindo um buraco enorme no escudo que deveria proteger os ativos dos usuários.
A licença não é o único método de autorização baseado em assinaturas. Por exemplo, a Uniswap mais tarde introduziu o Permit2, permitindo que todos os tokens ERC-20 suportem assinaturas offline. Como a principal DEX, a ação da Uniswap aumentou ainda mais a dependência dos utilizadores 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 Consciencialização
Mantenha a calma quando tentado por airdrops.
Os airdrops de projetos criptográficos podem parecer atraentes, mas na maioria das vezes, eles são ataques de phishing disfarçados de airdrops. Ao encontrar essas informações, não se apresse em reivindicá-las. Em vez disso, verifique a legitimidade do airdrop e seu site oficial em várias fontes para evitar cair em armadilhas de phishing.
Evite Assinar Cegamente
Se acidentalmente aterrar num site de phishing e não se aperceber disso, tire um momento para rever cuidadosamente a transação quando a sua carteira lhe pedir para assinar. Se termos como Permitir, Permitir2, Aprovar ou AumentarPermissão aparecerem, significa que a transação está a pedir autorização de token. Neste ponto, deve ser cauteloso porque os airdrops legítimos não requerem este processo. As carteiras de hardware Keystone implementaram o parsing e as funcionalidades de visualização de transações, permitindo aos utilizadores compreender melhor os detalhes da transação e evitar a assinatura cega, o que poderia levar a consequências graves de decisões precipitadas.
Imagem: Keystone Hardware Wallet, Rabby Wallet Parsing and Displaying Permit2 Signature Transactions
2⃣ Faça bom uso das ferramentas
ScamSniffer
Para o usuário médio, identificar com precisão sites de phishing pode ser altamente desafiador e é fácil para alguns passarem despercebidos. Ao usar o plugin do navegador ScamSniffer, você receberá alertas ao tentar acessar sites potenciais de phishing, dando-lhe a chance de parar de interagir antes que seja tarde demais.
Revogar
Revoke.cashpermite visualizar as autorizações de token na sua carteira. Recomendamos revogar quaisquer autorizações suspeitas ou ilimitadas. É uma boa prática limpar regularmente as suas autorizações e limitá-las apenas aos montantes necessários.
3⃣ Segregação de Ativos e Multi-Sig
Como diz o ditado, não coloque todos os seus ovos numa cesta só - este princípio também se aplica aos ativos criptográficos. Por exemplo, você pode armazenar grandes quantidades de ativos numa carteira fria como a Keystone, enquanto utiliza uma carteira quente para transações do dia a dia. Mesmo que seja vítima de um ataque, o seu saldo total não será comprometido.
Para aqueles com demandas de segurança mais elevadas, o uso de carteiras multi-assinatura (multi-sig) pode aumentar ainda mais a proteção. Os ativos sob multi-sig só podem ser movidos quando um determinado limiar de aprovações de carteira é alcançado. Se uma carteira for comprometida, mas o limiar não for atingido, os hackers não terão acesso aos seus ativos.
Embora não possamos negar o valor que a Gate.io trouxe, o crescente número de roubos também mostra que os riscos que ela apresenta podem superar seus benefícios. Assim como o antigo método ethsign, que era favorecido pelos hackers devido à sua baixa legibilidade e falhas significativas de segurança, a Permit agora foi desativada pela maioria do software de carteira, com suas funcionalidades substituídas por alternativas mais seguras.
Ao nos concentrarmos no Permit, não estamos também numa encruzilhada semelhante à enfrentada pelo ethsign? A questão de melhorar e atualizar ou descartar completamente é uma questão que os desenvolvedores ETH precisam dedicar tempo para considerar e discutir.
Antes de se chegar a quaisquer conclusões, a Keystone tem como objetivo melhorar a prevenção de riscos relacionados com o Permite nas suas carteiras de hardware. Estamos a iniciar uma votação para adicionar as seguintes funcionalidades:
Vamos começar com uma história simples sobre pedir dinheiro:
Estou planejando pedir um milhão emprestado do meu bom amigo Jack Ma. Sem hesitar, Jack Ma pega no telefone, liga para o banco e, depois de verificar a sua identidade, diz ao banco: "Estou a autorizar fulano a levantar um milhão". O banco reconhece e regista esta autorização.
O próximo passo é eu ir ao banco e dizer ao caixa que estou aqui para retirar o 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 milhão.
Esta história é uma boa analogia de como a autorização Aprovar funciona na Ethereum. Neste processo, apenas Jack Ma (o proprietário do ativo) pode ligar para o banco para dar a autorização (on-chain), e o banco (contrato de token) gerencia essas autorizações. Somente após isso posso eu (a parte autorizada) retirar um montante que não exceda a autorização. Se o banco não encontrar nenhum registo de autorização, o meu pedido de levantamento será sem dúvida rejeitado.
Agora, o que aconteceria se usássemos um método diferente de autorização - Permissão? Como funcionaria pegar dinheiro emprestado de Jack Ma então?
Desta vez, peço emprestado mais um 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. Depois, levo esse cheque ao 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.
A esta altura, você provavelmente já consegue 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 implementação está intimamente ligada aos picos acentuados nos preços do gás que a mainnet Ethereum experimentou durante esse período.
Imagem: Preços do Gás na Rede Principal da ETH Permaneceram Altos de 2020 a 2022
A combinação de um mercado de touro furioso e o efeito de criação de riqueza de novos projetos on-chain alimentou o entusiasmo dos usuários para transacionar on-chain. Eles estavam dispostos a pagar taxas mais altas para obter suas transações processadas mais rapidamente porque, às vezes, ser confirmado mesmo apenas um bloco mais cedo poderia resultar em retornos significativamente mais altos.
No entanto, isso levou a uma desvantagem: quando os usuários queriam negociar tokens on-chain, muitas vezes tinham que suportar taxas de gás exorbitantes. Sob o método Approve, completar uma única troca de tokens exigia duas transações (TX). Para usuários com fundos menores, as taxas de transação podem 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 a autorização ao transferir tokens, assim como na história de empréstimos, eu só precisava mostrar o cheque de Jack Ma ao retirar o dinheiro do banco.
Jack Ma ocupado salva-se a si mesmo de uma chamada telefónica, e parece que os utilizadores também poupam uma TX. Quando o preço do gás está alto, as poupanças nas taxas podem ser substanciais, dando a impressão de ser uma situação vantajosa para todos. No entanto, poucos se aperceberam de que a caixa de Pandora estava a ser aberta silenciosamente...
Antes do surgimento do Permit, uma das táticas comuns que os hackers usavam para pescar os utilizadores de criptomoedas era enganá-los a assinar uma transação de Aprovação. Como estas transações exigiam que os utilizadores gastassem gás, muitas vezes levantava suspeitas, tornando mais difícil para os hackers terem sucesso. Mesmo que os utilizadores tenham clicado acidentalmente na transação, o facto de ter demorado algum tempo a ser confirmada na cadeia de blocos deu-lhes a oportunidade de submeter outra transação com o mesmo nonce para a cancelar - tornando relativamente difícil para os hackers concretizarem os 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 requer apenas uma assinatura, o que reduz 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 segurar a autorização e atacar no momento mais vantajoso, maximizando seus ganhos.
Isto 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 de @ScamSniffer"">@ScamSniffer:
Imagem: Relatório de Ataque de Phishing da ScamSniffer para o primeiro semestre de 2024
Tal cenário provavelmente estava além do que os desenvolvedores originais tinham previsto. 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 por ser uma lâmina de um só lado — afiada como navalha — abrindo um buraco enorme no escudo que deveria proteger os ativos dos usuários.
A licença não é o único método de autorização baseado em assinaturas. Por exemplo, a Uniswap mais tarde introduziu o Permit2, permitindo que todos os tokens ERC-20 suportem assinaturas offline. Como a principal DEX, a ação da Uniswap aumentou ainda mais a dependência dos utilizadores 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 Consciencialização
Mantenha a calma quando tentado por airdrops.
Os airdrops de projetos criptográficos podem parecer atraentes, mas na maioria das vezes, eles são ataques de phishing disfarçados de airdrops. Ao encontrar essas informações, não se apresse em reivindicá-las. Em vez disso, verifique a legitimidade do airdrop e seu site oficial em várias fontes para evitar cair em armadilhas de phishing.
Evite Assinar Cegamente
Se acidentalmente aterrar num site de phishing e não se aperceber disso, tire um momento para rever cuidadosamente a transação quando a sua carteira lhe pedir para assinar. Se termos como Permitir, Permitir2, Aprovar ou AumentarPermissão aparecerem, significa que a transação está a pedir autorização de token. Neste ponto, deve ser cauteloso porque os airdrops legítimos não requerem este processo. As carteiras de hardware Keystone implementaram o parsing e as funcionalidades de visualização de transações, permitindo aos utilizadores compreender melhor os detalhes da transação e evitar a assinatura cega, o que poderia levar a consequências graves de decisões precipitadas.
Imagem: Keystone Hardware Wallet, Rabby Wallet Parsing and Displaying Permit2 Signature Transactions
2⃣ Faça bom uso das ferramentas
ScamSniffer
Para o usuário médio, identificar com precisão sites de phishing pode ser altamente desafiador e é fácil para alguns passarem despercebidos. Ao usar o plugin do navegador ScamSniffer, você receberá alertas ao tentar acessar sites potenciais de phishing, dando-lhe a chance de parar de interagir antes que seja tarde demais.
Revogar
Revoke.cashpermite visualizar as autorizações de token na sua carteira. Recomendamos revogar quaisquer autorizações suspeitas ou ilimitadas. É uma boa prática limpar regularmente as suas autorizações e limitá-las apenas aos montantes necessários.
3⃣ Segregação de Ativos e Multi-Sig
Como diz o ditado, não coloque todos os seus ovos numa cesta só - este princípio também se aplica aos ativos criptográficos. Por exemplo, você pode armazenar grandes quantidades de ativos numa carteira fria como a Keystone, enquanto utiliza uma carteira quente para transações do dia a dia. Mesmo que seja vítima de um ataque, o seu saldo total não será comprometido.
Para aqueles com demandas de segurança mais elevadas, o uso de carteiras multi-assinatura (multi-sig) pode aumentar ainda mais a proteção. Os ativos sob multi-sig só podem ser movidos quando um determinado limiar de aprovações de carteira é alcançado. Se uma carteira for comprometida, mas o limiar não for atingido, os hackers não terão acesso aos seus ativos.
Embora não possamos negar o valor que a Gate.io trouxe, o crescente número de roubos também mostra que os riscos que ela apresenta podem superar seus benefícios. Assim como o antigo método ethsign, que era favorecido pelos hackers devido à sua baixa legibilidade e falhas significativas de segurança, a Permit agora foi desativada pela maioria do software de carteira, com suas funcionalidades substituídas por alternativas mais seguras.
Ao nos concentrarmos no Permit, não estamos também numa encruzilhada semelhante à enfrentada pelo ethsign? A questão de melhorar e atualizar ou descartar completamente é uma questão que os desenvolvedores ETH precisam dedicar tempo para considerar e discutir.
Antes de se chegar a quaisquer conclusões, a Keystone tem como objetivo melhorar a prevenção de riscos relacionados com o Permite nas suas carteiras de hardware. Estamos a iniciar uma votação para adicionar as seguintes funcionalidades: