Tento víkend útočník odcizil 186,4 milionu ZEAL a 54,4 miliardy NACHO z peněženky mostu Kaspa KRC-20, aniž by vlastnil její soukromý klíč, a poté tyto tokeny recykloval prostřednictvím sítí druhé vrstvy (L2) a prodal je do likviditních fondů. Zvláštní na tom je, že samotná síť Kaspa nebyla napadena. Pět platných transakcí oklamalo off-chain indexer tak, že uznal převody, které ve skutečnosti nikdo nepodepsal, čímž zůstaly mostové tokeny bez krytí a některé fondy přišly až o 99,6 % své hodnoty na straně KAS.
Indexátor Kasplex KRC-20 obchází podpis a vyprázdňuje dva fondy tokenů

Hlavní závěry
- Útočník přesunul 54,4 miliardy NACHO, aniž by držel soukromý klíč mostové peněženky.
- Fondy Zealous Swap ztratily po těchto padělaných převodech 94 % až 99,6 % své hodnoty na straně KAS.
- Igra pozastavila klíčové výběry, zatímco provozovatelé KRC-20 se připravují na opravu a reindexaci systému.
Pět transakcí, žádný soukromý klíč
Soukromý klíč má představovat hranici mezi vlastnictvím kryptoměny a pouhým vědomím, kde se nachází. 20. září někdo našel způsob, jak tento předpoklad u tokenů KRC-20 obejít, aniž by vůbec narušil základní řetězec Kaspa.
Útočník přesunul 186 425 259 ZEAL a 54 397 983 246 NACHO z úschovné adresy mostu, ačkoli neměl pod kontrolou její soukromý klíč. Tyto tokeny byly poté odeslány zpět na stejnou úschovnou adresu jako běžné vklady do mostu, vyraženy na EVM vrstvě Igra Labs a Kasplex L2 a vyhozeny do likviditních poolů Zealous Swap.
Než se situace uklidnila, zůstatky útočníka v L2 ZEAL a NACHO byly prázdné, zatímco postižené fondy ztratily mezi 94 % a 99,6 % své hodnoty na straně KAS. A tady je ten háček: vrstva jedna (L1) Kaspa fungovala přesně tak, jak měla.
Prázdný podpis, který přesto prošel
Vlastnictví tokenů KRC-20 není vynucováno přímo konsensem Kaspa. Pokyny k tokenům jsou obsaženy v transakcích Kaspa, zatímco off-chain indexátor Kasplex tyto pokyny čte a určuje, kdo co vlastní. Obvykle obsahuje převod KRC-20 veřejný klíč, instrukce tokenu a platný podpis. Útočník zachoval tuto známou strukturu, ale zadal prázdný podpis a za OP_ENDIF přidal OP_NOT.

Prázdný podpis způsobí, že OP_CHECKSIG vrátí hodnotu „false“, místo aby transakci rovnou zrušil. Dodatečný OP_NOT tento výsledek změnil zpět na „true“, čímž Kaspa považovala transakci za platnou. Na úrovni konsensu se nic neporouchalo. U indexeru to však bylo jinak. Ten rozpoznal obálku KRC-20, ale nevyžadoval, aby skript přesně odpovídal kanonickému formátu. V důsledku toho uznal padělaný převod za legitimní. Vlastní API Kasplexu dokonce vrátilo opAccept: 1 u první padělané transakce ZEAL.
Padělek mohl vytvořit kdokoli
Nejhorší na tom bylo, že útočník nemusel odhalovat žádné skryté přihlašovací údaje. Standardní adresa Kaspa odhaluje veřejný klíč potřebný k vytvoření padělané operace KRC-20. To znamená, že přesun tokenů na jinou adresu základní problém nevyřeší. Dokud nebude indexer opraven a jeho historie znovu zaindexována, lze stejnou chybu teoreticky využít proti zůstatkům KRC-20 i jinde.
Pět transakcí padělalo převody ZEAL a NACHO. Naproti tomu devět drobných výběrů po jedné jednotce bylo skutečně podepsáno správcem a zdá se, že šlo o testy, zda výstupní cesta funguje. Zajímavé je, že legitimní transakce byly právě ty drobné. Peněženka správce obsahovala zhruba 50 dalších tokenů KRC-20. Útočník si vybral dva.
Tokeny tam stále jsou, ale jejich krytí již ne
V neděli ráno Igra uvedl, že byly odcizeny veškeré zásoby ZEAL a NACHO z úschovné peněženky, čímž v sítích vrstvy 2 zůstalo 97 651 212 ZEAL a 42 570 879 908 NACHO bez plného krytí na vrstvě 1. Dalších 4,5 miliardy NACHO zůstalo u útočníka na L1.
Igra pozastavila výběry z iKAS do Kaspa L1 a převody přes Hyperlane, zatímco uživatelé byli varováni před propojováním tokenů KRC-20, nákupem ZEAL nebo NACHO na decentralizovaných burzách (DEX) na L2 nebo přidáváním likvidity do postižených poolů. Nativní KAS, konsensus Kaspa a aktiva Igra, která nebyla propojenými tokeny KRC-20, byla označena jako nedotčená.
Samotná oprava softwaru tento chaos nevyřeší. Zealous Swap uvádí, že provozovatelé musí opravit indexer a znovu zaindexovat jeho historii, přičemž je třeba odmítat prázdné podpisy, nesprávně formátované tagy a skripty, které pokračují za OP_ENDIF. Nacho the Kat mezitím uvádí, že komunita hodlá přejít na standard KCC-20, který je navržen tak, aby pravidla tokenů byla zakomponována do skriptů vynucovaných samotnou sítí.
Tento problém navazuje na řadu exploitů, chyb, hackerských útoků a úniků dat z posledních několika týdnů. V sobotu poskytovatel infrastruktury Lightning Network s úschovou i bez úschovy, Blink Wallet, oznámil, že bylo vyprázdněno „několik desítek“ účtů s úschovou. Společnost zabývající se kyberbezpečností DCENT zaznamenala tento týden rovněž odčerpání prostředků z peněženek DCENT App Wallets. K tomu dochází v době, kdy se kyberútoky zintenzivnily, a někteří mají podezření, že tuto vlnu útočníků podporuje umělá inteligence.
Tento článek byl přeložen z angličtiny pomocí umělé inteligence. Původní anglická verze je autoritativním zdrojem; automatické překlady mohou obsahovat nepřesnosti, zejména v právní a regulační terminologii.











