Tópicos em alta
#
Labubu craze goes global with memecoin price exploding 3,000%
#
Startup meta gains attention onchain
#
ETH is showing strong price momentum following the recent Pectra upgrade.
#
Boop.Fun leading the way with a new launchpad on Solana.
Versão popular: Uma "tradução" simples para interpretar a análise do @CetusProtocol hacker pelo chefe de tecnologia:
Esse ataque expõe um problema clássico de estouro de número inteiro, que se manifesta no truncamento de dados durante a conversão de tipo.
Detalhes técnicos desmontados:
1) Localização da vulnerabilidade: O problema ocorre no mecanismo de conversão de tipo da função get_amount_by_liquidity, e a conversão de conversão de U256 para U64 causa perda de dados de alto nível.
2) Processo de ataque:
1. O invasor passa uma grande quantidade de parâmetros de liquidez através da função add_liquidity;
2. O número de tokens B necessários para o cálculo da chamada get_delta_b função do sistema;
3. No processo de cálculo, os dois dados do tipo U128 são multiplicados e o resultado teórico deve ser do tipo U256;
Falha chave: o resultado u256 é convertido em u64 quando a função retorna, resultando no truncamento dos dados de 128 bits de alto nível.
3) Efeito de utilização: A cota de liquidez que originalmente exigia um grande número de tokens para cunhar agora pode ser concluída com apenas um número muito pequeno de tokens. O invasor obtém uma grande parte da liquidez a um custo muito baixo e, em seguida, realiza a arbitragem do pool destruindo parte da liquidez.
Analogia simples: Assim como usar uma calculadora que só pode exibir 8 dígitos para calcular 1 bilhão × 1 bilhão, o resultado de um cálculo de 20 dígitos só pode exibir os últimos 8 dígitos e os primeiros 12 dígitos desaparecem diretamente. O invasor explora essa vulnerabilidade.
Para ser claro: essa vulnerabilidade não tem nada a ver com a arquitetura de segurança subjacente do @SuiNetwork, e a "glória" de segurança da linguagem Move ainda é confiável por enquanto. Por que?
A linguagem Move tem vantagens significativas em termos de gerenciamento de recursos e segurança de tipo, e pode efetivamente evitar problemas de segurança de baixo nível, como gastos duplos e vazamento de recursos. No entanto, desta vez o protocolo Cetus é um erro matemático no nível da lógica do aplicativo, não uma falha de design na própria linguagem Move.
Especificamente, o sistema de tipos do Move, embora rigoroso, ainda depende do julgamento correto do desenvolvedor para elenco explícito. Quando um programa executa ativamente uma conversão de tipo de U256 para U64, o compilador não pode dizer se isso é intencional ou um erro lógico.
Além disso, esse incidente de segurança não tem nada a ver com as principais funções subjacentes do Sui, como mecanismo de consenso, processamento de transações e gerenciamento de estado. A Sui Network executa fielmente apenas as instruções de transação enviadas pelo protocolo Cetus, e a vulnerabilidade decorre das falhas lógicas do próprio protocolo da camada de aplicação.
Para ser franco, nenhuma quantidade de linguagens de programação avançadas pode eliminar completamente os erros lógicos na camada de aplicação. O Move pode evitar a maioria dos riscos de segurança subjacentes, mas não pode substituir os desenvolvedores com verificação de limites da lógica de negócios e proteção contra estouro de operações matemáticas.
53.44K
Melhores
Classificação
Favoritos