Este é o tipo de bug que mantém as equipas de protocolo acordadas à noite. Um exploit de $5M no ZKSwap, possibilitado por uma única declaração deixada no lugar errado. Aqui está uma análise aprofundada de como isso aconteceu e como a monitorização onchain poderia tê-lo impedido. 🧵
1/ No dia 9 de julho, o GMX foi hackeado por $42M. Mas algo mais aconteceu nesse dia e quase ninguém notou: a ponte do ZKSwap foi silenciosamente drenada por $5M. A parte interessante? Não houve nenhuma exploração sofisticada envolvida. Apenas uma função crítica que não fez... nada.
2/ ZKSwap é um zk-rollup construído na Ethereum. Como muitos rollups, utiliza uma ponte para mover ativos entre L1 e L2. Como medida de segurança, a ponte inclui um "Modo Exodus", uma forma para os usuários recuperarem fundos sem precisar do operador. Em teoria, essa é uma ótima ideia. Na prática…
3/ O Modo Exodus permite que os usuários provem manualmente que possuíam tokens no último estado L2 verificado. É um mecanismo de fallback: sem confiança, auto-custodial, não interativo. Mas a implementação do ZKSwap tinha um erro fatal: A função responsável por verificar as provas não verificava nada. Literalmente.
4/ Aqui está o código que deveria ter parado o ataque 👇 À primeira vista, parece um verdadeiro verificador de zk-proof. Mas olhe de perto a primeira linha: return true; É isso. Nada mais é executado.
5/ O resultado? Cada "prova" de retirada (não importa quão falsa) passou na validação. O contrato aceitou reivindicações arbitrárias sobre saldos de tokens... e os creditou como se fossem reais. Transformou um mecanismo de fallback sem confiança em uma torneira desprotegida.
6/ O atacante não precisava de exploits sofisticados - apenas chamadas repetidas para exit() com dados falsos. Eles contornaram as verificações de saldo, retiraram através de múltiplos tokens e abusaram da lógica fraca de nulificadores para evitar a detecção. Tudo isso enquanto o contrato dizia: ✅
7/ Isto não foi um caso obscuro. Esta era a lógica central para a recuperação de ativos, deixada completamente aberta. E como o Modo Exodus raramente é ativado, o caminho quebrado passou despercebido... durante meses.
8/ Aqui está o que deveria ter acionado alarmes: • Modo Exodus sendo ativado após uma longa inatividade • Dezenas de chamadas de retirada acontecendo todas ao mesmo tempo • Aumento repentino nas mudanças de balancesToWithdraw Tudo isso era visível e poderia ter sido interrompido com monitoramento onchain em tempo real.
9/ Qual é a lição? • O código de emergência ainda é código de produção • Caminhos de fallback não ajudam se não funcionarem • Monitorização em tempo real não é opcional, é crítica para a sobrevivência
Mostrar original
37,85 mil
422
O conteúdo apresentado nesta página é fornecido por terceiros. Salvo indicação em contrário, a OKX não é o autor dos artigos citados e não reivindica quaisquer direitos de autor nos materiais. O conteúdo é fornecido apenas para fins informativos e não representa a opinião da OKX. Não se destina a ser um endosso de qualquer tipo e não deve ser considerado conselho de investimento ou uma solicitação para comprar ou vender ativos digitais. Na medida em que a IA generativa é utilizada para fornecer resumos ou outras informações, esse mesmo conteúdo gerado por IA pode ser impreciso ou inconsistente. Leia o artigo associado para obter mais detalhes e informações. A OKX não é responsável pelo conteúdo apresentado nos sites de terceiros. As detenções de ativos digitais, incluindo criptomoedas estáveis e NFTs, envolvem um nível de risco elevado e podem sofrer grandes flutuações. Deve considerar cuidadosamente se o trading ou a detenção de ativos digitais é adequado para si à luz da sua condição financeira.