本周末,一名攻击者在未持有私钥的情况下,从一个Kaspa KRC-20桥接钱包中提取了1.864亿ZEAL和544亿NACHO,随后通过第二层(L2)网络对这些代币进行“循环利用”,并将其卖入流动性池。 奇怪的是,Kaspa 本身并未遭到黑客攻击。五笔有效的交易欺骗了链下索引器,使其将实际上无人签署的转账识别为有效交易,导致桥接代币失去背书,部分流动性池的 KAS 侧价值甚至被清空了高达 99.6%。
Kasplex KRC-20 索引器签名绕过机制耗尽了两个代币池

关键要点:
- 一名攻击者在未持有桥接钱包私钥的情况下,转移了544亿NACHO。
- 在伪造转账发生后,Zealous Swap 流动性池的 KAS 侧价值损失了 94% 至 99.6%。
- 随着 KRC-20 运营商准备修复漏洞并重新索引系统,Igra 已暂停关键提现功能。
五笔交易,无需私钥
私钥本应是区分“真正拥有加密货币”与“仅知其所在位置”的分界线。9月20日,有人发现了一种绕过这一假设的方法,针对KRC-20代币,且完全未破坏Kaspa的主链。
攻击者从一个桥接托管地址转移了 186,425,259 ZEAL 和 54,397,983,246 NACHO,尽管他们并不控制该地址的私钥。 随后,这些代币被作为普通桥接存款退回至同一托管地址,在Igra Labs的EVM层和Kasplex L2上铸造,并注入Zealous Swap的流动性池中。
待尘埃落定后,攻击者的 L2 ZEAL 和 NACHO 余额已清空,而受影响的流动性池则损失了 94% 至 99.6% 的 KAS 侧价值。 关键点在于:Kaspa的第一层(L1)完全按照预期运行。
一个仍被通过的空签名
KRC-20 代币的所有权并非由 Kaspa 共识直接强制执行。代币指令包含在 Kaspa 交易中,而链下的 Kasplex 索引器会读取这些指令并确定谁拥有什么。 通常情况下,KRC-20 转账包含公钥、代币指令和有效签名。攻击者保留了这一常见结构,但提供了空签名,并在 OP_ENDIF 之后添加了 OP_NOT。

空签名会导致 OP_CHECKSIG 返回 false,而非直接终止交易。额外的 OP_NOT 将该结果翻转回 true,使 Kaspa 仍将该交易视为有效。 在共识层面上,一切似乎都正常。但索引器的情况则截然不同。它识别出了 KRC-20 封套,却并未要求脚本必须完全符合标准格式。因此,它将这笔伪造的转账视为合法交易。甚至 Kasplex 自身的 API 在处理第一笔伪造的 ZEAL 交易时,也返回了 opAccept: 1。
任何人都能制造伪造交易
最恶劣的一点在于,攻击者无需发现任何隐藏的凭证。 一个标准的 Kaspa 地址会暴露构建伪造 KRC-20 操作所需的公钥。这意味着将代币转移到另一个地址并不能解决根本问题。在索引器修复并重新索引其历史数据之前,理论上该漏洞仍可被用于攻击其他地方的 KRC-20 余额。
共有五笔交易伪造了ZEAL和NACHO的转账。相比之下,九笔仅有一单位的微额提现是由托管方真实签名的,似乎是用于测试退出路径是否有效的探针交易。有趣的是,合法交易恰恰是这些微额交易。该托管钱包中还持有大约50种其他KRC-20代币,而攻击者只选择了其中两种。
代币仍在,但底层资产已不复存在
周日早晨,Igra表示托管钱包中的全部ZEAL和NACHO持仓已被盗走,导致第二层网络上留有97,651,212枚ZEAL和42,570,879,908枚NACHO,这些代币均未获得第一层网络的完全支持。 另有45亿NACHO仍由攻击者持有在L1上。
Igra 已暂停 iKAS 向 Kaspa L1 的提币及 Hyperlane 转账,同时警告用户切勿桥接 KRC-20 代币、在 L2 去中心化交易所(DEX)购买 ZEAL 或 NACHO,或向受影响的流动性池提供流动性。 原生 KAS、Kaspa 共识资产以及非 KRC-20 跨链代币形式的 Igra 资产被描述为未受影响。 仅修复软件并不能彻底解决这一问题。 Zealous Swap表示,运营商需要修补索引器并重新索引其历史数据,同时拒绝空签名、格式错误的标签以及超出OP_ENDIF范围的脚本。与此同时,Nacho the Kat表示,社区计划转向KCC-20标准,该标准旨在将代币规则纳入由网络自身执行的脚本中。
这一问题紧随过去几周内接连发生的一系列漏洞利用、程序错误、黑客攻击和数据泄露事件之后。上周六,闪电网络托管型和非托管型基础设施提供商 Blink Wallet 披露,有“几十个”托管账户被清空。 网络安全公司 DCENT 本周也发现其 DCENT App 钱包遭到资金盗取。这一事件发生之际,网络安全攻击正日益加剧,有人怀疑人工智能正在协助这波攻击者。
本文由人工智能从英文翻译而来。英文原版为权威来源;自动翻译可能存在不准确之处,尤其是在法律和监管术语方面。











