Tópicos populares
#
Bonk Eco continues to show strength amid $USELESS rally
#
Pump.fun to raise $1B token sale, traders speculating on airdrop
Os primeiros dois exploits conhecidos contra circuitos ZK ao vivo acabaram de acontecer, e não foram bugs sutis de subcondicionamento.
Foram verificadores Groth16 implementados sem completar a cerimônia de configuração confiável. Um foi resgatado por um hacker ético por cerca de ~$1.5M, o outro drenado por 5 ETH.
🧵
Ambos os protocolos usaram Circom + snarkjs, a pilha mais comum para implementações Groth16.
O erro? Eles pularam a Fase 2 da configuração confiável: a etapa de contribuição específica do circuito.
Sem isso, os parâmetros γ e δ da chave de verificação são ambos definidos para o mesmo valor: os gens de G2.
Por que γ = δ quebra tudo?
Verificações de Groth16:
e(-A, B) · e(α, β) · e(vk_x, γ) · e(C, δ) = 1
Quando γ = δ, um atacante pode definir C = -vk_x para cancelar ambos os termos, depois definir A = α, B = β para cancelar o resto. A equação se torna 1 · 1 = 1. Nenhuma testemunha necessária.
O Foom Protocol (~$1.4M) era uma dApp de loteria na Base e Ethereum. Um resgate de whitehat por @duha_real e outro whitehat independente drenaram os contratos antes que um ator malicioso pudesse, utilizando provas forjadas para extrair 99.97–99.99% dos tokens.
O Veil Protocol (~$5K) foi um fork do Tornado Cash na Base. Um atacante drenou toda a pool em uma transação, 29 retiradas forjadas usando anuladores fictícios como 0xdead0000, extraindo o saldo total de 2.9 ETH da pool.
Isto é o snarkjs a funcionar como previsto. Quando você executa o setup do groth16, ele inicializa γ e δ para o gerador G2 como um espaço reservado. Espera-se que você execute zkey contribute para randomizar δ. Pule essa etapa, e seu verificador aceitará qualquer prova.
A parte assustadora: isto não foi uma falha criptográfica profunda ou um bug sutil no circuito. Foi um erro de implementação: faltava um comando CLI. E ficou em produção com fundos reais em risco.
conclusões:
- Revise sempre os scripts de implantação, não apenas o código do circuito
- Verifique suas chaves de verificação: se vk_gamma_2 == vk_delta_2, suas provas são forjáveis
- Trabalhamos com @DedaubSecurity para escanear cadeias EVM em busca de outros contratos afetados, nenhum de alto valor encontrado, mas alguns existem
4,08K
Top
Classificação
Favoritos
