Atak wymierzony był w newralgiczne miejsce styku logiki układów zero-knowledge z procesowaniem transakcji na głównej warstwie Ethereum (tzw. L1). Jak podaje CertiK, jedna z funkcji weryfikacyjnych kontraktu sprawdzała jedynie początek dostarczonego dowodu kryptograficznego, co oznaczało, że parametry autoryzujące transfer tokenów nigdy nie przechodziły pełnej kontroli . Atakujący mógł przedstawić dowód, który przechodził wstępne testy, podczas gdy głębiej w strukturze danych zawierał szkodliwe instrukcje wypłaty.
Szczegółowa analiza SlowMist wskazuje na źródło problemu: błąd w ograniczeniach pętli rozliczeniowej L1 w kontrakcie RollupV3. Haker wykorzystał rozbieżność między parametrami numRealTxs i decoded_slots, co pozwoliło na przesłanie 31 pustych slotów do korzenia stanu L2 poprzez dowód ZK, skutecznie omijając weryfikację na poziomie kontraktu L1 . Ostatecznie skonstruował 14 dowodów ZK-rollup; ostatnie siedem z nich, w oddzielnych transakcjach, opróżniało kontrakt kolejno z każdego z siedmiu różnych aktywów
.
To, co wyróżnia ten incydent, to fakt, że atak był strukturalnie nie do powstrzymania – i to z założenia. Protokół Aztec Connect został wycofany w marcu 2023, a użytkownicy mieli ponad rok na wycofanie swoich funduszy . W 2024 roku Aztec Labs poszło o krok dalej, celowo zrzekając się wszystkich kluczy administracyjnych i kontroli nad systemem. Kontrakty stały się całkowicie niezmienialne: bez mechanizmu aktualizacji, bez właściciela i, co kluczowe, bez funkcji pauzy (zatrzymania)
.
„Aztec Connect został wycofany 3 lata temu. Aztec Labs nie posiada żadnych kluczy administracyjnych ani kontroli nad systemem; nie można go wstrzymać ani zaktualizować” – poinformował zespół na platformie X kilka godzin po ataku, potwierdzając, że z niezmienialnego kontraktu wyprowadzono ok. 2,1 miliona dolarów . Podkreślono, że obecna sieć Aztec Network i token AZTEC ERC-20 nie zostały dotknięte, ale jednocześnie przyznano, że nie istnieje żaden mechanizm odzyskania utraconych środków
.
Mimo przedłużonego okna na wypłatę i komunikacji wokół zamknięcia protokołu, w momencie ataku w starych kontraktach wciąż tkwiło ok. 2,1 miliona dolarów w aktywach pozostałych po użytkownikach, którzy nie zdążyli lub nie wiedzieli o konieczności ich wycofania . Fundusze te istniały w czymś na kształt cyfrowego stanu zawieszenia: nikt nie mógł ich legalnie wypłacić bez interakcji z wycofanym rollupem i nikt nie mógł interweniować, gdy luka została wykorzystana.
Eksploit Aztec Connect to podręcznikowa ilustracja problemu „kontraktów zombie” w świecie zdecentralizowanych finansów. Niezmienialne smart kontrakty nie znikają po prostu, gdy projekt zostaje zamknięty. Trwają one w łańcuchu bloków wraz z całą swoją logiką – i przechowywanymi wartościami – często zatrzymując aktywa użytkowników na czas nieokreślony. Gdy klucze administracyjne są usuwane w imię pełnej decentralizacji, kontrakt staje się trwałą, niemożliwą do załatania pułapką, w której każda nieodkryta luka przeistacza się w bombę zegarową mogącą wybuchnąć po latach, bez żadnej możliwości reakcji .
To ryzyko jest asymetryczne. Projekty zrzekające się kontroli zyskują wiarygodność, bo nikt nie ma „tylnych drzwi”, ale to użytkownicy, którzy nie wypłacą środków w okresie przejściowym, ponoszą pełne konsekwencje. Przypadek Aztec pokazuje, że nawet po trzech latach miliony dolarów mogą pozostawać uwięzione w kontrakcie, który wszyscy uważali za martwy.
Dla zespołów DeFi planujących deprecjację protokołu płynie z tego jasna lekcja. Przed usunięciem kluczy administracyjnych projekty muszą albo wymusić całkowite wypłaty środków, albo wdrożyć awaryjny mechanizm oparty na opóźnieniu czasowym (timelock), który nie wymaga stałej kontroli administracyjnej. Bez tych zabezpieczeń porzucona, ale niezmienialna infrastruktura będzie nieuchronnie przyciągać atakujących, gotowych szukać luk, których nie da się już naprawić .