Tämä on sellainen bugi, joka pitää protokollatiimit hereillä öisin. 5 miljoonan dollarin hyväksikäyttö ZKSwapissa, jonka mahdollistaa yksi väärään paikkaan jätetty lause. Tässä on syväsukellus siihen, miten se tapahtui ja kuinka ketjun sisäinen valvonta olisi voinut pysäyttää sen. 🧵
1/ Heinäkuun 9. päivänä GMX hakkeroitiin 42 miljoonalla dollarilla. Mutta jotain muuta tapahtui sinä päivänä, ja tuskin kukaan huomasi: ZKSwapin silta tyhjennettiin hiljaa 5 miljoonalla dollarilla. Mielenkiintoinen osa? Siihen ei liittynyt mitään hienoa urotekoa. Vain kriittinen toiminto, joka teki... ei mitään.
2/ ZKSwap on Ethereumiin rakennettu zk-rollup. Kuten monet rollupit, se käyttää siltaa resurssien siirtämiseen L1:n ja L2:n välillä. Turvana silta sisältää "Exodus-tilan", jonka avulla käyttäjät voivat periä varoja takaisin ilman operaattoria. Teoriassa se on loistava idea. Käytännössä...
3/ Exodus-tilan avulla käyttäjät voivat manuaalisesti todistaa omistavansa tokeneita viimeisessä vahvistetussa L2-tilassa. Se on varamekanismi: luottamukseton, omaehtoinen, ei-interaktiivinen. Mutta ZKSwapin toteutuksessa oli yksi kohtalokas virhe: todisteiden tarkistamisesta vastaava toiminto ei vahvistanut mitään. Kirjaimellisesti.
4/ Tässä on koodi, jonka olisi pitänyt pysäyttää hyökkäys 👇 Ensi silmäyksellä se näyttää todelliselta zk-proof-todentajalta. Mutta katsokaa tarkkaan ensimmäistä riviä: palaa todeksi; Se siitä. Mikään muu ei toimi.
5/ Tulos? Jokainen nostotodistus (riippumatta siitä, kuinka väärennös) läpäisi vahvistuksen. Sopimus hyväksyi mielivaltaiset väitteet token-saldoista... ja antoi heille tunnustusta ikään kuin ne olisivat todellisia. Se muutti luotettavan varamekanismin vartioimattomaksi hanaksi.
6/ Hyökkääjä ei tarvinnut hienoja haavoittuvuuksia, vaan vain toistuvia kutsuja exit():lle keksityillä tiedoilla. He ohittivat saldotarkistukset, vetäytyivät useista tokeneista ja käyttivät väärin heikkoa mitätöintilogiikkaa välttääkseen havaitsemisen. Samalla kun sopimuksessa sanottiin: ✅
7/ Tämä ei ollut mikään epäselvä reunatapaus. Tämä oli omaisuuden takaisin saamisen ydinlogiikka, joka jätettiin täysin avoimeksi. Ja koska Exodus-tila käynnistyy harvoin, katkennut polku jäi huomaamatta... kuukausien ajan.
8/ Tässä on se, minkä olisi pitänyt laukaista hälytykset: • Exodus-tila käynnistyy pitkän lepotilan jälkeen • Kymmeniä nostopuheluita kerralla • Äkillinen piikki saldoissaToDraw-muutoksissa Kaikki se oli näkyvissä, ja se olisi voitu pysäyttää reaaliaikaisella ketjun seurannalla.
9/ Joten mikä on opetus? • Hätäkoodi on edelleen tuotantokoodi • Varapolut eivät auta, jos ne eivät toimi • Reaaliaikainen seuranta ei ole valinnaista, se on selviytymisen kannalta kriittistä
Näytä alkuperäinen
34,19 t.
379
Tällä sivulla näytettävä sisältö on kolmansien osapuolten tarjoamaa. Ellei toisin mainita, OKX ei ole lainatun artikkelin / lainattujen artikkelien kirjoittaja, eikä OKX väitä olevansa materiaalin tekijänoikeuksien haltija. Sisältö on tarkoitettu vain tiedoksi, eikä se edusta OKX:n näkemyksiä. Sitä ei ole tarkoitettu minkäänlaiseksi suositukseksi, eikä sitä tule pitää sijoitusneuvontana tai kehotuksena ostaa tai myydä digitaalisia varoja. Siltä osin kuin yhteenvetojen tai muiden tietojen tuottamiseen käytetään generatiivista tekoälyä, tällainen tekoälyn tuottama sisältö voi olla epätarkkaa tai epäjohdonmukaista. Lue aiheesta lisätietoa linkitetystä artikkelista. OKX ei ole vastuussa kolmansien osapuolten sivustojen sisällöstä. Digitaalisten varojen, kuten vakaakolikoiden ja NFT:iden, omistukseen liittyy suuri riski, ja niiden arvo voi vaihdella merkittävästi. Sinun tulee huolellisesti harkita, sopiiko digitaalisten varojen treidaus tai omistus sinulle taloudellisessa tilanteessasi.