Dit is het soort bug dat protocollenteams 's nachts wakker houdt.
Een $5M exploit op ZKSwap, mogelijk gemaakt door een enkele verklaring die op de verkeerde plaats is achtergelaten.
Hier is een diepgaande analyse van hoe het is gebeurd en hoe on-chain monitoring het had kunnen stoppen.
🧵

1/ Op 9 juli werd GMX gehackt voor $42M.
Maar er gebeurde die dag nog iets anders en bijna niemand merkte het op: de brug van ZKSwap werd stilletjes leeggehaald voor $5M.
Het interessante deel? Er was geen ingewikkelde exploit bij betrokken. Gewoon een kritische functie die... niets deed.

2/ ZKSwap is een zk-rollup gebouwd op Ethereum.
Net als veel rollups gebruikt het een brug om activa tussen L1 en L2 te verplaatsen.
Als een waarborg bevat de brug een "Exodus Mode", een manier voor gebruikers om fondsen terug te vorderen zonder de operator nodig te hebben.
In theorie is dat een geweldig idee. In de praktijk...
3/ Exodus-modus stelt gebruikers in staat om handmatig te bewijzen dat ze tokens bezaten in de laatst geverifieerde L2-status.
Het is een fallback-mechanisme: vertrouwenloos, zelfbewarend, niet-interactief.
Maar de implementatie van ZKSwap had één fatale fout: de functie die verantwoordelijk was voor het verifiëren van bewijzen verifieerde helemaal niets.
Letterlijk.
4/ Hier is de code die de aanval had moeten stoppen 👇
Op het eerste gezicht lijkt het een echte zk-proof verifier.
Maar kijk goed naar de eerste regel: return true;
Dat is het. Niets anders wordt uitgevoerd.

5/ Het resultaat? Elke opname "bewijs" (ongeacht hoe nep) doorstond de validatie.
Het contract accepteerde willekeurige claims over tokenbalansen... en crediteerde ze alsof ze echt waren.
Het veranderde een vertrouwensloze fallback-mechanisme in een onbewaakte kraan.
6/ De aanvaller had geen fancy exploits nodig - alleen herhaalde aanroepen naar exit() met verzonnen gegevens.
Ze omzeilden balanscontroles, trokken geld terug via meerdere tokens en misbruikten zwakke nullifier-logica om detectie te vermijden.
Dat alles terwijl het contract zei: ✅

7/ Dit was geen obscure randgeval.
Dit was de kernlogica voor activa-herstel, volledig open gelaten.
En omdat Exodus-modus zelden wordt geactiveerd, bleef het gebroken pad... maandenlang onopgemerkt.
8/ Dit zijn de dingen die alarmen hadden moeten laten afgaan:
• Exodus-modus die wordt geactiveerd na lange inactiviteit
• Tientallen opnameverzoeken die tegelijkertijd plaatsvinden
• Plotselinge piek in wijzigingen van balancesToWithdraw
Dit alles was zichtbaar en had kunnen worden gestopt met realtime on-chain monitoring.

9/ Wat is de les?
• Noodcode is nog steeds productiecoded
• Terugvalpaden helpen niet als ze niet werken
• Real-time monitoring is geen optie, het is cruciaal voor overleving
37,32K
420
De inhoud op deze pagina wordt geleverd door derden. Tenzij anders vermeld, is OKX niet de auteur van het (de) geciteerde artikel(en) en claimt geen auteursrecht op de materialen. De inhoud is alleen bedoeld voor informatieve doeleinden en vertegenwoordigt niet de standpunten van OKX. Het is niet bedoeld als een goedkeuring van welke aard dan ook en mag niet worden beschouwd als beleggingsadvies of een uitnodiging tot het kopen of verkopen van digitale bezittingen. Voor zover generatieve AI wordt gebruikt om samenvattingen of andere informatie te verstrekken, kan deze door AI gegenereerde inhoud onnauwkeurig of inconsistent zijn. Lees het gelinkte artikel voor meer details en informatie. OKX is niet verantwoordelijk voor inhoud gehost op sites van een derde partij. Het bezitten van digitale activa, waaronder stablecoins en NFT's, brengt een hoge mate van risico met zich mee en de waarde van deze activa kan sterk fluctueren. Overweeg zorgvuldig of de handel in of het bezit van digitale activa geschikt voor je is in het licht van je financiële situatie.