У недавньому аналізі інциденту компанія Zano розкрила деталі вразливості, яка змусила її здійснити безпрецедентне 30-денне «перемотування» блокчейну. Зловмисник скористався відсутністю перевірки в адресах шлюзів (Gateway Addresses), щоб випустити приблизно 18,4 мільйона ZANO в рамках однієї транзакції, а потім повторив цю схему і зробив те саме з fUSD. Перша уразливість залишалася непоміченою майже місяць, а власні механізми захисту конфіденційності Zano робили підроблені монети дедалі важчими для відрізнення від справжніх.
Зано заявляє, що незаконні токени на суму понад 200 млн доларів призвели до 30-денного «перемотування» блокчейну

Основні висновки
- Zano повідомила, що в результаті однієї зловмисної транзакції було створено приблизно 18,4 мільйона ZANO, а згодом було випущено ще більше токенів.
- Zano відстежила можливу підозрілу активність у 117 941 виходах і 65 301 транзакції.
- Команда Zano пояснила, що уражені залишки будуть відновлені без зміни пропозиції ZANO.
Одна пропущена перевірка — 18,4 мільйона ZANO
30-денне «перемотування» блокчейну Zano вже здавалося радикальним кроком. Тепер команда пояснила, що ховалося за цим, і механізм, мабуть, ще дивніший. Вразливість, що з’явилася після Hard Fork 6, дозволила зловмиснику створювати монети, які мережа приймала як справжні, починаючи з 29 серпня.
За даними команди розробників, під час першої реальної атаки в рамках однієї транзакції було випущено 2^64 базових одиниць, що становить приблизно 18,4 мільйона ZANO. Про це ніхто не дізнався майже місяць. До того часу, як 25 вересня внутрішні інструменти Zano подали сигнал тривоги, підроблені монети вплуталися в систему конфіденційності, спеціально створену для ускладнення відстеження транзакцій.
Проблема почалася з «адрес-шлюзів» — нового типу адрес, запровадженого в рамках Hard Fork 6 для спрощення інтеграції Zano з платформами централізованих бірж (CEX), мостами та іншими сервісами. Виходи-шлюзи розкривають суму та ідентифікатор активу, на відміну від стандартних конфіденційних виходів Zano, де обидва ці параметри приховані.
Однак у реалізації бракувало критично важливої перевірки. Zano повідомила, що зловмисник міг сформувати спеціально розрахований ідентифікатор активу, який все ще відповідав би вимогам доказів транзакцій мережі, водночас вставляючи довільну суму в прихований вихід.
«Коротко кажучи, кожна транзакція Zano повинна доводити, що монети були створені відповідно до правил консенсусу», — пояснила команда. «Через відсутність перевірки зловмисник міг задовольнити вимоги цього доказу, одночасно «приховуючи» додаткові монети в транзакції».
Ці монети не були просто декоративними бухгалтерськими записами. Команда зазначила:
«Ці монети функціонували як справжні ZANO і могли витрачатися у звичайному порядку».
Перший випуск монет пролежав непоміченим майже місяць
28 серпня зловмисник зареєстрував адресу шлюзу, сплативши необхідну комісію у розмірі 100 ZANO, і, судячи з усього, перевірив, чи прийме Zano сфабрикований неіснуючий актив. Наступного дня почалася справжня атака.
В результаті однієї транзакції було випущено приблизно 18,4 мільйона ZANO, вартість яких на даний момент становить близько 102 мільйонів доларів. Майже через місяць, 24 вересня, зловмисник здійснив два легітимні депозити по 0,05 ZANO кожен, очевидно, перевіряючи звичайний шлях внесення коштів. 25 вересня було створено ще 18,4 мільйона ZANO, після чого було повторено той самий маневр із 2^64 базовими одиницями з використанням стейблкоіну fUSD. Загалом це понад 200 мільйонів доларів у вигляді незаконних криптотокенів.
А ось найцікавіше. Перед Hard Fork 6 компанія Zano провела тестування за допомогою штучного інтелекту (ШІ), аудити команди та програми винагороди за виявлення багів. Жодна з цих заходів не виявила цю вразливість.
«Початковий експлойт залишався непоміченим майже місяць, оскільки збільшений вихід виглядав як будь-який інший приватний вихід», — зазначила команда.
Функція конфіденційності спрацювала, і саме це стало проблемою
Як тільки фальшиві монети потрапили до конфіденційної системи транзакцій Zano, точно визначити, куди саме вони потрапили, стало зовсім іншим завданням. Кільцеві підписи змішують витрати з іншими виходами, що призводить до поширення невизначеності щоразу, коли монети переміщуються.
Zano просканувала кожен вихід, потенційно пов’язаний із трьома транзакціями карбування. До блоку 3 878 388 слід охоплював 117 941 вихід, створений у результаті 65 301 транзакції. З моменту першого випуску було створено приблизно 165 700 вихідних транзакцій, що становило близько 71 % активності мережі за цей період.
«Це і є конфіденційність, що працює так, як передбачалося», — зазначив Zano. «Ніхто, включаючи команду Zano, не може точно визначити, які саме вихідні транзакції зазнали впливу».
Це поставило проєкт у скрутне становище. Саме ті властивості конфіденційності, яких користувачі очікували від Zano, завадили розробникам чітко відокремити легітимні монети від несанкціонованих. «Єдиний спосіб перевірити цілісність запасу — це продовжити ланцюжок від точки, що передує першій атаці», — пояснила команда.
Місяць пішов під ніж, і почалося відновлення
Цією точкою став блок 3 833 000, що передував хард-форку 6. Хард-форк 7 перезапустив ланцюг з цієї точки та вимкнув адреси шлюзів, що означає: транзакції, винагороди за стейкінг та видобуті блоки з ураженого періоду більше не існують в оновленому реєстрі.
Зіно також зазначив, що уражені залишки будуть повністю відновлені без зміни обсягу пропозиції ZANO або графіка емісії. Фінансування надходитиме з фонду розвитку, особистих коштів членів команди та зовнішніх спонсорів. Біржі тепер повинні ретельно перевірити діяльність за місяць, транзакцію за транзакцією, перш ніж знову відкрити доступ.
«Наразі ніяких дій не потрібно», — повідомила команда користувачам у своїх соціальних мережах.
Цю статтю перекладено з англійської мови за допомогою штучного інтелекту. Оригінальна англомовна версія є авторитетним джерелом; автоматичні переклади можуть містити неточності, особливо в юридичній та нормативній термінології.











