Subiecte populare
#
Bonk Eco continues to show strength amid $USELESS rally
#
Pump.fun to raise $1B token sale, traders speculating on airdrop
#
Boop.Fun leading the way with a new launchpad on Solana.
Primele două exploatări cunoscute împotriva circuitelor ZK live au avut loc pur și simplu, și nu au fost bug-uri subtile subconstrânse.
Au fost verificatori Groth16 desfășurați fără a finaliza ceremonia de configurare de încredere. Unul a fost salvat de tip white-hat pentru ~1,5 milioane de dolari, celălalt a fost drenat pentru 5 ETH.
🧵
Ambele protocoale foloseau Circom + snarkjs, cel mai comun stack pentru implementările Groth16.
Gândacul? Au sărit peste Faza 2 a configurației de încredere: pasul de contribuție specific circuitului.
Fără aceasta, parametrii γ și δ cheii de verificare sunt ambele setate la aceeași valoare: generatoarele G2
De ce γ = δ strică totul?
Verificări Groth16:
e(-A, B) · e(α, β) · e(vk_x, γ) · e(C, δ) = 1
Când γ = δ, un atacator poate seta C = -vk_x pentru a anula ambii termeni, apoi poate seta A = α, B = β pentru a anula restul. Ecuația devine 1 · 1 = 1. Nu e nevoie de martor.
Protocolul Foom (~1,4 milioane de dolari) a fost o dApp de loterie pe Base și Ethereum. O salvare whitehat de către @duha_real și un alt whitehat independent a epuizat contractele înainte ca un actor rău intenționat să poată face asta, făcând buclă de dovezi false pentru a extrage 99,97–99,99% din tokenuri.
Protocolul Vălului (~5.000$) a fost un fork Tornado Cash pe bază. Un atacator a golit întregul pool într-o singură tranzacție, 29 de retrageri falsificate folosind anulatori ficționari precum 0xdead0000, extragând soldul total de 2,9 ETH al pool-ului.
Asta e snarkjs care funcționează așa cum a fost conceput. Când rulezi groth16 setup, acesta inițializează γ și δ către generatorul G2 ca un înlocuitor. Se așteaptă să rulezi zkey contribute pentru a randomiza δ. Sari peste acest pas, verificatorul tău acceptă orice dovadă.
Partea înfricoșătoare: nu a fost o greșeală criptografică profundă sau un bug subtil de circuit. A fost o greșeală de desfășurare: lipsea o comandă CLI. Și a stat în producție, cu fonduri reale în pericol.
Concluzii:
- Revizuirea întotdeauna a scripturilor de implementare, nu doar codul de circuit
- Verifică-ți cheile de verificare: dacă vk_gamma_2 == vk_delta_2, dovezile tale pot fi falsificate
- Am colaborat cu @DedaubSecurity pentru a scana lanțurile EVM pentru alte contracte afectate, niciunul de mare valoare nu a fost găsit, dar unele există
4,13K
Limită superioară
Clasament
Favorite
