Zano cofnęło blockchain po błędzie
Błąd w Gateway Addresses pozwolił wyemitować ponad 200 mln dolarów w tokenach. Zano cofnęło 30 dni historii i zapowiada pełne odtworzenie sald.
Zano cofnęło 30 dni łańcucha po luce w zabezpieczeniach
Zano zdecydowało się na wyjątkowo radykalny ruch: reset blockchaina do stanu sprzed około miesiąca. Powodem był błąd w mechanizmie weryfikacji, który pozwolił atakującemu wygenerować nieautoryzowane tokeny o łącznej wartości przekraczającej 200 mln dolarów. Problem dotyczył zarówno ZANO, jak i stablecoina fUSD.
Co dokładnie poszło nie tak?
Według opisu zespołu źródłem incydentu były Gateway Addresses wprowadzone wraz z Hard Fork 6. Ten typ adresów miał ułatwić integrację Zano z giełdami, mostami i innymi usługami, ale w implementacji zabrakło kluczowej weryfikacji.
W praktyce oznaczało to, że atakujący mógł skonstruować transakcję w taki sposób, aby sieć uznała ją za poprawną, mimo że w jej wnętrzu ukryto dodatkowe monety. Te środki nie były jedynie błędem księgowym — mogły być normalnie wydawane i przesyłane jak prawdziwe tokeny.
Jak przebiegał atak?
Zespół Zano odtworzył kilka etapów incydentu:
- 28 sierpnia atakujący zarejestrował Gateway Address i zapłacił wymaganą opłatę 100 ZANO.
- 29 sierpnia doszło do pierwszej emisji, w której powstało około 18,4 mln ZANO.
- 24 września pojawiły się dwa niewielkie, pozornie testowe depozyty po 0,05 ZANO.
- 25 września ponownie wybito około 18,4 mln ZANO, a podobny schemat wykorzystano także wobec fUSD.
Pierwsza z nielegalnych emisji była później warta około 102 mln dolarów, a łączna skala zdarzenia przekroczyła 200 mln dolarów.
Dlaczego wykrycie było tak trudne?
Zano działa jako sieć stawiająca na prywatność, dlatego transakcje są projektowane tak, by ukrywać szczegóły ruchu środków. W tym przypadku właśnie to utrudniło reakcję na atak.
Mechanizmy takie jak ring signatures mieszają rzeczywiste wydatki z innymi wyjściami, co sprawia, że śledzenie przepływu środków jest bardzo trudne. Zespół podał, że potencjalnie powiązane z incydentem były:
- 117 941 outputów,
- 65 301 transakcji.
Z tej samej analizy wynika też, że po pierwszej emisji wygenerowano około 165 700 kolejnych outputów, co odpowiadało mniej więcej 71% aktywności sieci w analizowanym okresie. Innymi słowy: prywatność, która normalnie jest zaletą Zano, w tym przypadku uniemożliwiła precyzyjne odseparowanie fałszywych i prawidłowych środków.
Dlaczego projekt zdecydował się na rollback?
Zano uznało, że nie da się wiarygodnie i selektywnie usunąć tylko nieautoryzowanych monet. Jedynym sposobem na odzyskanie kontroli nad podażą było cofnięcie łańcucha do punktu sprzed pierwszego ataku.
Za taki punkt odniesienia wybrano blok 3 833 000, czyli moment sprzed aktywacji problematycznej zmiany. W efekcie Hard Fork 7 uruchomił nowy łańcuch od tego miejsca i wyłączył Gateway Addresses.
Oznacza to, że z aktualnej wersji blockchaina wypadło około 30 dni historii, w tym:
- transakcje,
- nagrody ze stakingu,
- wydobyte bloki z okresu objętego incydentem.
Co z saldami użytkowników?
Zano zapowiada, że zrekompensuje wszystkie dotknięte salda bez zmiany całkowitej podaży ZANO ani harmonogramu emisji. Finansowanie ma pochodzić z kilku źródeł:
- funduszu rozwojowego projektu,
- prywatnych środków członków zespołu,
- wsparcia zewnętrznych contributorów.
Proces będzie wymagał także współpracy z giełdami i dostawcami usług, którzy muszą przeanalizować aktywność z całego problematycznego okresu przed ponownym otwarciem wpłat i wypłat.
Co to oznacza dla rynku?
Incydent pokazuje, jak trudne bywa pogodzenie prywatności, zgodności z regułami emisji i możliwości audytu. W sieciach, które ukrywają szczegóły transakcji, naprawa błędu może wymagać nie tylko poprawki kodu, ale też cofnięcia dużej części historii.
W przypadku Zano wybrano właśnie taki scenariusz: zamiast próbować ręcznie wyłuskać każdą podejrzaną monetę, projekt zbudował nowy łańcuch od bezpiecznego punktu i zaczął proces odtwarzania sald od zera.