Ezen a hétvégén egy támadó 186,4 millió ZEAL-t és 54,4 milliárd NACHO-t csalt ki egy Kaspa KRC-20 hídpénztárcából anélkül, hogy a titkos kulcs birtokában lett volna, majd a tokeneket a második rétegű (L2) hálózatokon keresztül újraforgatta, és likviditási poolokba adta el őket. A furcsa az, hogy magát a Kaspa-t nem hackelték meg. Öt érvényes tranzakció megtévesztette egy off-chain indexelőt, amely így olyan átutalásokat ismerte fel, amelyeket valójában senki sem írt alá, így a hídon átvitt tokenek fedezet nélkül maradtak, és egyes poolok KAS-oldali értékük akár 99,6%-át is elvesztették.
A Kasplex KRC-20 Indexer Signature két token-készletből csapol ki pénzt

Főbb tanulságok
- Egy támadó 54,4 milliárd NACHO-t mozgatott meg anélkül, hogy a hídpénztárca privát kulcsával rendelkezett volna.
- A Zealous Swap-poolok a hamis átutalások után KAS-oldali értékük 94–99,6%-át vesztették el.
- Az Igra felfüggesztette a legfontosabb kivezetéseket, miközben a KRC-20-üzemeltetők a rendszer javítására és újraindexelésére készülnek.
Öt tranzakció, titkos kulcs nélkül
A titkos kulcsnak elvileg azt a határt kell jelölnie, hogy valaki a kriptovaluta tulajdonosa-e, vagy csupán tudja, hol található az. Szeptember 20-án valaki megtalálta a módját, hogy ezt a feltételezést megkerülje a KRC-20 tokenek esetében anélkül, hogy egyáltalán megzavarta volna a Kaspa alapláncát.
A támadó 186 425 259 ZEAL-t és 54 397 983 246 NACHO-t mozgatott el egy híd-letéti címről, annak ellenére, hogy nem rendelkezett annak privát kulcsával. Ezeket a tokeneket ezután rendes hídbetétek formájában visszaküldték ugyanarra a letéti címre, az Igra Labs EVM-rétegén és a Kasplex L2-n verve, majd a Zealous Swap likviditási pooljaiba öntötték.
Mire a por leült, a támadó L2-es ZEAL- és NACHO-egyenlegei kiürültek, míg az érintett likviditási medencék a KAS-oldali értékük 94–99,6%-át vesztették el. Itt van a bökkenő: a Kaspa első rétege (L1) pontosan azt tette, amit kellett.
Egy üres aláírás, ami mégis átment
A KRC-20 tokenek tulajdonjogát a Kaspa konszenzus nem érvényesíti közvetlenül. A token utasítások a Kaspa tranzakciókon belül szerepelnek, míg egy láncon kívüli Kasplex indexelő olvassa el ezeket az utasításokat, és határozza meg, ki mi tulajdonosa. Normális esetben egy KRC-20-átutalás tartalmaz egy nyilvános kulcsot, token-utasításokat és egy érvényes aláírást. A támadó megtartotta ezt a jól ismert szerkezetet, de üres aláírást adott meg, és az OP_ENDIF után hozzáadott egy OP_NOT-ot.

Az üres aláírás miatt az OP_CHECKSIG false értéket ad vissza, ahelyett, hogy azonnal megszakítaná a tranzakciót. A hozzáadott OP_NOT azonban visszaállította az eredményt true-ra, így a Kaspa számára érvényes tranzakciónak tűnt. A konszenzusos rétegen semmi sem ment rosszul. Az indexelővel azonban más volt a helyzet. Felismerte a KRC-20-borítékot, de nem követelte meg, hogy a szkript pontosan megfeleljen a kanonikus formátumnak. Következésképpen a hamis átutalást legitimnek minősítette. A Kasplex saját API-ja még az első hamis ZEAL-tranzakcióra is opAccept: 1 értéket adott vissza.
Bárki elkészíthette a hamisítást
A legrosszabb fordulat az volt, hogy a támadónak nem kellett felfedeznie semmilyen rejtett hitelesítő adatot. Egy szabványos Kaspa-cím nyilvánosságra hozza a hamis KRC-20-művelet létrehozásához szükséges nyilvános kulcsot. Ez azt jelenti, hogy a tokenek áthelyezése egy másik címre nem oldja meg az alapvető problémát. Amíg az indexelőt nem javítják ki, és a történetét újra nem indexelik, ugyanaz a hiba elvileg máshol is kihasználható a KRC-20-egyenlegek ellen.
Öt tranzakcióval hamisították meg a ZEAL- és NACHO-átutalásokat. Ezzel szemben kilenc apró, egy egységes kivételt valóban a letéti szolgáltató írt alá, és úgy tűnik, ezekkel azt tesztelték, hogy működik-e a menekülési útvonal. Érdekes módon a jogos tranzakciók voltak az apróak. A letéti pénztárcában körülbelül 50 egyéb KRC-20 token volt. A támadó kettőt választott ki.
A tokenek még mindig ott vannak, de a fedezet már nincs
Vasárnap reggel Igra közölte, hogy a letéti pénztárca teljes ZEAL- és NACHO-állományát ellopták, így 97 651 212 ZEAL és 42 570 879 908 NACHO maradt a 2. rétegű hálózatokon teljes L1-es fedezet nélkül. További 4,5 milliárd NACHO maradt a támadónál az L1-en.
Az Igra felfüggesztette az iKAS-ból a Kaspa L1-re történő kivonásokat és a Hyperlane-átutalásokat, miközben a felhasználókat figyelmeztették, hogy ne hídolják át a KRC-20 tokeneket, ne vásároljanak ZEAL-t vagy NACHO-t a L2-es decentralizált tőzsdéken (DEX-eken), és ne adjanak likviditást az érintett poolokhoz. A natív KAS, a Kaspa konszenzus és az Igra eszközök, amelyek nem voltak áthidolt KRC-20 tokenek, nem érintettek.
A szoftver kijavítása önmagában nem fogja rendbe hozni a helyzetet. A Zealous Swap szerint az üzemeltetőknek javítaniuk kell az indexelőt, és újra kell indexelniük annak előzményeit, elutasítva az üres aláírásokat, a hibásan formázott címkéket és az OP_ENDIF után is folytatódó szkripteket. Nacho the Kat eközben azt mondja, hogy a közösség a KCC-20 felé kíván elmozdulni, amely egy olyan szabvány, amelynek célja, hogy a tokenek szabályait a hálózat által maga érvényesített szkriptekbe foglalja.
A probléma az elmúlt hetek során bekövetkezett számos kihasználás, hiba, hackelés és adatlopás nyomán merült fel. Szombaton a Lightning Network letéti és nem letéti infrastruktúra-szolgáltatója, a Blink Wallet nyilvánosságra hozta, hogy „néhány tucat” letéti fiókot kiürítettek. A DCENT kiberbiztonsági vállalatnál is megfigyelték a héten, hogy a DCENT App Wallets-ből pénzt szivattyúztak ki. Mindez egybeesik a kiberbiztonsági támadások fokozódásával, és egyesek gyanítják, hogy a mesterséges intelligencia is segíti ezt a kihasználók hullámát.
Ezt a cikket mesterséges intelligencia segítségével fordították le angolról. Az eredeti angol nyelvű változat a hiteles forrás; az automatikus fordítások pontatlanságokat tartalmazhatnak, különösen a jogi és szabályozási terminológiában.











