Суть експлойту полягала в атаці на межу між логікою верифікації доказів із нульовим розголошенням та процесингом розрахунків на першому рівні Ethereum. За даними CertiK, одна з функцій верифікації контракту перевіряла лише початок поданого доказу. Через це параметри, які використовувалися для авторизації переказу токенів, ніколи не проходили повної валідації . Зловмисник зміг подати доказ, що успішно проходив початкові перевірки, хоча глибше в пакеті даних містилися шкідливі інструкції на виведення коштів.
Подальший аналіз від компанії SlowMist виявив першопричину в обмеженнях обходу в циклі розрахунків L1 всередині RollupV3. Атакуючий використав розбіжність між параметрами numRealTxs та decoded_slots, що дозволило передати 31 порожній слот до кореня стану L2 через ZK-доказ, оминувши повну верифікацію на рівні контракту L1 . Загалом зловмисник сконструював 14 ZK-доказів, причому останні сім доказів спустошили різні активи з контракту в окремих транзакціях
.
Унікальність цього інциденту полягає в тому, що атака була структурно невідворотною — за задумом. Підтримку Aztec Connect було припинено в березні 2023 року, а користувачам дали більше року на виведення коштів . У 2024 році Aztec Labs пішли ще далі, свідомо відмовившись від усіх ключів адміністратора та контролю над системою. Контракти стали повністю незмінними: без механізму оновлення, без власника і, що критично, без функції екстреної паузи
.
«Підтримку Aztec Connect було припинено 3 роки тому. Aztec Labs не мають жодних ключів адміністратора чи контролю над системою; її неможливо поставити на паузу чи оновити», — заявили в команді у соцмережі X через кілька годин після експлойту, підтвердивши переміщення близько $2,1 млн з незмінного контракту . Вони наголосили, що поточна мережа Aztec Network та її токен AZTEC ERC-20 не постраждали, але визнали, що механізму для повернення втрачених коштів не існує
.
Попри тривалий період виведення та комунікацію навколо закриття протоколу, на момент атаки близько $2,1 млн залишкових коштів користувачів усе ще були заблоковані в старих контрактах . Ці активи перебували в своєрідному підвішеному стані: ніхто не міг їх законно вивести без взаємодії із застарілим роллапом, і ніхто не міг втрутитися, коли спрацювала вразливість.
Експлойт Aztec Connect — це хрестоматійний приклад проблеми «контрактів-зомбі» у децентралізованих фінансах. Незмінні смарт-контракти не зникають безслідно після закриття проєкту. Вони залишаються в блокчейні з усією своєю логікою — та активами, — часто зберігаючи кошти користувачів на невизначений термін. Коли ключі адміністратора відкликаються заради досягнення повної децентралізації, контракт перетворюється на постійну, непридатну для виправлення «медову пастку». Будь-яка невиявлена вразливість стає бомбою уповільненої дії, яка може спрацювати через роки без жодної можливості втрутитися .
Цей ризик є асиметричним. Проєкти, що відмовляються від контролю, заробляють довіру через відсутність «чорного ходу», але користувачі, які не встигли вивести кошти під час вікна виведення, несуть усі ризики. Кейс Aztec показує, що навіть через три роки мільйони доларів можуть залишатися всередині контракту, який усі вважали «мертвим».
Для команд DeFi, що планують закриття протоколу, урок очевидний. Перш ніж відмовлятися від ключів адміністратора, необхідно або примусово завершити всі виведення коштів, або впровадити механізм екстреної паузи на основі тимчасового блокування, який не потребує постійного контролю. Без таких запобіжників закинута, але незмінна інфраструктура неминуче приваблюватиме зловмисників, готових шукати вразливості, які вже ніколи не можна буде виправити .
Comments
0 comments