Argomenti di tendenza
#
Bonk Eco continues to show strength amid $USELESS rally
#
Pump.fun to raise $1B token sale, traders speculating on airdrop
I primi due exploit noti contro circuiti ZK attivi sono appena accaduti, e non erano bug sottili e sottodimensionati.
Erano verificatori Groth16 distribuiti senza completare la cerimonia di setup fidato. Uno è stato salvato da un white-hat per circa ~$1.5M, l'altro drenato per 5 ETH.
🧵
Entrambi i protocolli utilizzavano Circom + snarkjs, il stack più comune per i deployment Groth16.
Il bug? Hanno saltato la Fase 2 della configurazione fidata: il passo di contribuzione specifico del circuito.
Senza di essa, i parametri γ e δ della chiave di verifica sono entrambi impostati sullo stesso valore: il generatore G2.
Perché γ = δ rompe tutto?
Controlli di verifica Groth16:
e(-A, B) · e(α, β) · e(vk_x, γ) · e(C, δ) = 1
Quando γ = δ, un attaccante può impostare C = -vk_x per annullare entrambi i termini, quindi impostare A = α, B = β per annullare il resto. L'equazione diventa 1 · 1 = 1. Nessun testimone necessario.
Il Foom Protocol (~1,4 milioni di dollari) era un dApp di lotteria su Base ed Ethereum. Un salvataggio da parte di @duha_real e un altro whitehat indipendente hanno drenato i contratti prima che un attore malevolo potesse farlo, utilizzando prove falsificate per estrarre il 99,97–99,99% dei token.
Il Veil Protocol (~$5K) era un fork di Tornado Cash su Base. Un attaccante ha prosciugato l'intero pool in un'unica transazione, 29 prelievi falsificati utilizzando nullificatori fittizi come 0xdead0000, estraendo l'intero saldo di 2,9 ETH del pool.
Questo è snarkjs che funziona come previsto. Quando esegui la configurazione groth16, inizializza γ e δ al generatore G2 come segnaposto. Ci si aspetta che tu esegua zkey contribute per randomizzare δ. Salta quel passaggio e il tuo verificatore accetta qualsiasi prova.
La parte spaventosa: non si trattava di un difetto crittografico profondo o di un bug sottile nel circuito. Era un errore di distribuzione: mancava un comando CLI. E questo è rimasto in produzione con fondi reali a rischio.
conclusioni:
- Rivedi sempre gli script di distribuzione, non solo il codice del circuito
- Controlla le tue chiavi di verifica: se vk_gamma_2 == vk_delta_2, le tue prove sono falsificabili
- Abbiamo collaborato con @DedaubSecurity per scansionare le catene EVM alla ricerca di altri contratti interessati, non sono stati trovati contratti di alto valore, ma alcuni esistono
4,07K
Principali
Ranking
Preferiti
