Iotex ioTube 跨链桥私钥泄露事件复盘

02月21日,周六。 全球大部分地区还在睡梦中时,攻击者悄无声息地拿到了IoTeX ioTube跨链桥验证合约的所有者密钥——这把钥匙能打开金库里的一切。 没有零日漏洞。没有精巧的数学攻击。只是一把钥匙换了手,然后四步执行,4,400万美元的真实资产从TokenSafe被抽走,8.21亿枚毫无资产支撑的CIOTX代币被凭空铸造。 这不是一次"黑客攻击"。这是一次权限的全面接管。 背景铺垫 ioTube是IoTeX生态的核心跨链桥。 它的运作逻辑很直接:用户将IOTX锁在以太坊上的智能合约里,ioTube在IoTeX主网铸造等量的包装代币ioIOTX;反向操作则销毁包装代币,释放主网资产。这是典型的双向锚定(two-way peg)系统,扮演着以太坊与IoTeX之间的"边境海关"角色。 ioTube持有大量跨链资产——USDC、USDT、WBTC、WETH、IOTX、PAXG、DAI、BUSD、UNI——这些资产被锁在TokenSafe金库中,等待用户通过ioTube完成跨链操作。 关键问题:谁持有这座金库的钥匙? ioTube的验证合约使用单一所有者密钥(owner key)管理权限。这把钥匙不只是"签名验证"——它是合约的最高管理员权限,可以单方面转移金库中任意资产,可以升级合约逻辑,可以铸造新代币。 这把钥匙由ioTube团队保管。 2026年2月21日,这把钥匙易手。 事件发生 以下是根据Rekt News、链上分析师Specter、PeckShield、IoTeX官方声明以及The Block报道交叉验证的事件时间线: 第一阶段:链上预警(02月21日,UTC时间) Specter是第一个在链上发现异常的人。他在社交媒体上写道: “IoTeX的私钥可能已泄露,TokenSafe已被抽干,总损失约430万美元。USDC、USDT、IOTX、WBTC、BUSD已被抽走。资产已被换入ETH,其中45 ETH已通过跨链进入比特币。” (PeckShield来源:Specter推文,UTC时间) 九十分钟后,PeckShield将损失数字更新至800万美元(来源:PeckShieldAlert)。 第二阶段:资产转移(同一日内) 攻击者分批将真实资产从TokenSafe转出: 代币 数量 约值 USDC — — USDT — — WBTC — — WETH — — IOTX — — PAXG — — DAI — — BUSD — — UNI — — 合计 $4,400,000 (信息来源:Rekt News - IoTeX Rekt,2026年2月25日发布) 第三阶段:恶意铸造 在抽走真实资产的同时,攻击者利用拿到的owner key,在以太坊上发起了10笔铸造交易,总计凭空铸造了: 8.21亿枚CIOTX(约值$4.09M) 930万枚CCS代币(已废弃代币,无市场价值,来源:IoTeX联合创始人Raullen Chai) (信息来源:Defimon Alerts,链上Mint交易记录) ...

May 26, 2026 · 1 min · Warren Wong

KelpDAO — 当受害者成为武器:2.9 亿美元跨链桥攻击复盘

17:35 UTC,4月18日。 116,500个rsETH从KelpDAO的金库消失。这一刻,它们从未在Unichain上存在过——链上nonce记录清清楚楚:Unichain最后发出的编号是307,第308号数据包从未出现过。 但以太坊这边,adapter收到了"有效"签名,把钱放出去了。 2.9亿美元。用时不到一个区块。 这不是一次漏洞攻击。这是穿越信任边界的一刀——精准,干净,在没有任何人来得及反应之前就结束了。 背景铺垫 KelpDAO是一个流动性质押协议。 用户把ETH存进来,KelpDAO通过EigenLayer做再质押,用户收到rsETH作为凭证——可以交易,可以跨链,可以在DeFi里当抵押物用。 到2026年4月,rsETH已经部署到了超过20条链上:Arbitrum、Base、Mantle、Unichain、Linea……所有链上的rsETH,最终都连回以太坊主网的一个共享金库——通过LayerZero的OFT跨链标准连接。 这个金库里,装着用户信任KelpDAO保管的所有ETH。 跨链的意思是:你在Arbitrum上看到的"我的rsETH",实际上是一张欠条,欠条的主人是以太坊主网上的金库。金库安全,你的资产就安全。金库破了,你的资产就没了。 LayerZero是那条连接金库和各条链的管道。每一笔跨链操作,都要经过LayerZero的DVN(去中心化验证网络)来确认:真的有人锁了ETH,可以发币了。 LayerZero的架构允许——也推荐——运行多个独立的DVN,要求跨验证者共识后才授权转账。 KelpDAO的配置是:1个DVN,0个备用,0个门槛。 唯一被授权的验证者:LayerZero Labs自己的基础设施,标签是"LayerZero: DVN"。 事件发生 攻击者并不是从外部攻进来的。 他们先拿到了LayerZero内部RPC节点的访问权限——具体怎么拿到的,LayerZero至今没有给出完整解释。 拿到之后,他们做了两件事: 第一,在两个独立节点集群上替换了geth二进制文件。 这是供应链攻击。节点运营商以为自己在运行正常的软件,实际上每一个字节都被换过了。 第二,对剩余的干净节点发起DDoS攻击,迫使所有流量切换到被植入恶意程序的节点上。 这些被污染的节点只向DVN的IP地址发送伪造数据——告诉DVN"Unichain上发生了一笔交易"。而它们对其他所有查询者返回真实数据,包括LayerZero自己的监控系统。 DVN只看到了它被允许看到的东西。 恶意节点向DVN提交了一个伪造数据包:声称有116,500 rsETH在Unichain上被锁定并销毁。DVN的2-of-3多签签了字。数据包被认证为有效。 以太坊的adapter做了它唯一该做的事:检查哈希值是否匹配(匹配,因为签名是对的),放币。 签名是真的。数据包是假的。 这就是链上证据——Unichain的nonce 308从未存在过,Unichain上rsETH总供应量只有49.26个,不可能销毁116,500个,没有Transfer事件,没有PacketSent事件。 Nonce 307是一次真实转账,nonce 308是凭空出现的。两个数据包结构完全相同,区别只在于:一个是真实的,一个是被签出来的。 攻击者还准备了第二个数据包,nonce 309,目标再拿40,000 rsETH(约1亿美元)。但KelpDAO的紧急多签刚好在那个时候冻结了收款地址,第二笔没有成功。 这就是为什么最终损失是2.9亿美元而不是4亿美元。运气成分只有这么多。 整个攻击的种子资金:约230美元,从Tornado Cash出来,距离攻击不到10小时。 结果与余波 被盗的rsETH直接进了Aave V3。 8个预先进好的钱包同时行动:存rsETH进Aave,开E-Mode,用几乎99%的借款率借走真实的WETH,然后把WETH汇总到一个收集地址。 单最大一个分支:53,000 rsETH进了Aave V3,拿走了约52,440 ETH。整个过程4分钟。然后WETH转走,rsETH抵押物留在原地。 现在Aave V3的合约里还锁着89,567个rsETH——这些代币现在毫无价值,因为KelpDAO的合约已被冻结。但Aave的合约无法清算它们,因为市场无法消化这个量级。 这就是坏账。 与此同时,75,701 ETH(约1.75亿美元)开始通过THORChain、Umbra、Chainflip和BitTorrent洗出去。每一步都转成比特币。 36小时之内,清洗完成。 比特币无法追踪,无法冻结,无法归还。 Arbitrum做了唯一一次有效的反击:4月20日,12人安全委员会投票(9票赞成),动用紧急权限,把攻击者在Arbitrum上的30,766 ETH强行转到一个冻结地址。约7360万美元保住了。 这个决定充满争议——一个链上治理机构,有没有权力单方面冻结资金? Marc Zeller的说法代表了很多人的矛盾心理:“我天生反对Arbitrum刚才做的事。但我理解这个决定。让人拿回钱,比坚持一种会让朝鲜黑客带着钱走人的立场更重要。” 但75,700 ETH不在Arbitrum上。它已经在链上换成了比特币,没有任何机构可以冻结。 余震 Aave在48小时内净流出84.5亿美元。WETH资金池利用率触及100%——所有存款都被借出去了,正常用户无法提款。 这不是Aave的坏账问题。这是银行挤提。 MEXC撤了4.31亿。Abraxas Capital撤了3.92亿。一个标记为Nonco的巨鲸撤了4.057亿。 Curve、Euler、SparkLend、Ethena、EtherFi、WBTC、TRON、Pengu、Morpho——一共31个以上协议暂停了LayerZero跨链操作。不是因为它们被攻击了,而是因为它们不确定自己是不是下一个。 ...

April 20, 2026 · 2 min · Warren Wong