一条假消息,两亿美元坏账:Kelp DAO 跨链攻击与 DeFi 连锁崩塌全复盘
2026-04-2009:00
富贵
2026-04-20 09:00
富贵
2026-04-20 09:00
收藏文章
订阅专栏

2026 年 4 月 18 日 17:35:00 UTC,一笔调用 LayerZero EndpointV2 合约 lzReceive 函数的以太坊交易安静地完成了。从伪造跨链销毁消息、无抵押铸造 116,500 枚 rsETH,到存入 Aave V3 抵押借出超 2.36 亿美元 WETH,全程 46 分钟内完成,攻击者在 Kelp DAO 的应急暂停将其关在门外之前,已经完成了整个变现闭环。


这件事的破坏半径,远不止 Kelp DAO 一家。被攻破的是 Kelp DAO 基于 LayerZero OFT 标准构建的桥接适配器合约,随即引发的连锁反应穿透了整个 DeFi 借贷市场:攻击者用凭空铸造的 rsETH 作为抵押品在 Aave V3、Compound V3、Euler 等协议借出真实 WETH,在以太坊主网与 Arbitrum 留下约 2.36 亿美元无法被正常清算的坏账;Aave、SparkLend、Fluid 紧急冻结 rsETH 市场,AAVE 代币短时下跌逾 10%;20 余条链上持有 wrapped rsETH 的用户,发现手中的代币储备库已被清空。这不是一次「某协议被黑了」的孤立事件——它是一次通过跨链桥的单点缺陷,向上游借贷市场传导的系统性冲击。把这些边界说清楚,是分析这件事的前提。


0x1 核心地址与事件索引


先把链上可查的硬数据列清楚。

同日 18:26 和 18:28,攻击者两次尝试追加 40,000 枚 rsETH 的铸造,均因合约已被暂停而失败。若非如此,损失上限将逼近 3.91 亿美元。


0x2 Kelp DAO 的架构:理解攻击面的前提


Kelp DAO 由 Stader Labs 创始人 Amitej G 和 Dheeraj B 联合创立,隶属于 KernelDAO 生态。其核心产品是基于 EigenLayer 构建的流动再质押代币 rsETH:用户存入 ETH 或 stETH、rETH 等主流 LST,协议将其通过 EigenLayer 进行再质押,铸造出一枚同时承载「以太坊基础质押收益 + EigenLayer 再质押收益」的可流通凭证。


攻击发生前,协议累计再质押超 25 万枚 ETH,rsETH 总流通量约 63 万枚,服务近 3 万名独立存款用户。


跨链布局是理解这次攻击的关键背景。rsETH 采用 LayerZero 的 OFT(Omnichain Fungible Token)全链同质化代币标准,部署在以太坊主网、Arbitrum、Base、Linea、Blast 等超 20 条链。以太坊主网的桥接合约充当储备金库角色——其他链上的 wrapped rsETH,都由主网这个库里锁定的原生 rsETH 提供 1:1 背书。


OFT 的正常跨链逻辑是:用户在源链(如 Unichain)销毁 rsETH → LayerZero 跨链消息层通过 DVN(去中心化验证网络)验证,将销毁消息传递至目标链 → 目标链(以太坊主网)桥接合约验证通过后,从储备库释放对应数量的 rsETH 至用户地址。


这个验证环节,就是攻击者的突破口。


0x3 漏洞根源:单 DVN 配置下的一条假消息


攻击的核心漏洞定位,来自 Defiprime 在攻击发生 6 小时后的首发技术分析:


Kelp DAO 的 OFT 适配器采用了 1-of-1 单 DVN(去中心化验证网络)配置。


LayerZero 的消息安全架构支持多 DVN 联合验证——即需要多个独立验证节点各自确认跨链消息有效,才允许目标链执行操作。这是一个与多签逻辑同构的设计:单一节点被攻破,不足以让假消息通过。然而 Kelp DAO 的实现只配置了 LayerZero Labs 单个验证节点。这意味着攻击者只需让这一个 DVN 接受伪造签名,就能让整条跨链消息路径全程畅通。


更深层的漏洞在 lzReceive 的消息处理函数上。Kelp DAO 的桥接合约在实现这个函数时,未对跨链消息的源链 ID、源合约地址、消息 payload 进行完整的合法性校验——攻击者可以构造一条声称来自 Unichain 的虚假销毁消息,以太坊主网的桥接合约将其判定为合法,随即执行 mint 操作,从零凭空生成了 116,500 枚 rsETH。


把这两个因素叠在一起:单 DVN 单点故障 + 消息 payload 校验缺失。前者使伪造签名的成本极低,后者使伪造的内容可以随意构造。两者相乘,攻击者只需花一点 Gas 费,就能让系统相信 Unichain 上刚发生了一笔价值 2.92 亿美元的合法跨链销毁。


值得注意的是,LayerZero 官方截至目前未发布声明,行业主流判断是:漏洞出在 Kelp DAO 集成 LayerZero OFT 标准时的自定义实现上,而非 LayerZero 底层协议本身的通用缺陷。这个区别直接影响到责任归属和后续行业自查的方向。


还有一个历史遗留问题值得记录在案:早在 2023 年 11 月的 Code4rena 公开审计中,安全研究员已指出 Kelp DAO 合约存在管理员权限过大、外部合约调用校验不足的高风险问题;2024 年 Mixbytes 的审计报告中也标记了价格计算套利风险和节点委托合约前置运行风险。但本次被利用的跨链消息校验缺陷,未在过往任何审计中被发现和修复。


0x4 攻击链路:逐步还原


整个攻击从准备到主体完成横跨约 11 小时,核心获利阶段发生在不到 46 分钟内。


阶段一:筹备


2026-04-18 07:35 UTC 前后,攻击者通过 Tornado Cash 1-ETH 混币池,向 6 个核心操作钱包注入启动资金,完成地址匿名化,切断资金溯源链路。随后完成攻击合约部署和伪造跨链消息数据的调试构造。


阶段二:伪造消息,突破桥接合约


17:35 UTC,攻击者在以太坊主网调用 LayerZero EndpointV2 合约的 lzReceive 函数,传入伪造的源链 ID、源合约地址和虚假的 Unichain 销毁消息 payload。桥接合约验证通过,mint 逻辑被触发,116,500 枚 rsETH 无抵押铸入攻击者控制地址。这一步的攻击成本,几乎只有 Gas 费。


阶段三:进入借贷市场,完成变现闭环


这是整个攻击中最关键、也最需要单独分析的一步。攻击者没有选择直接在 DEX 抛售——因为 rsETH 的链上流动性深度有限,大量抛售会立即砸穿价格,能兑换的 ETH 远低于账面价值。


攻击者选择的路径是:将无背书的 rsETH 作为抵押品存入 Aave V3、Compound V3、Euler 等头部借贷协议,借出 WETH/ETH 等主流资产。这条路的逻辑是:借贷协议接受 rsETH 为合法抵押品,是因为此前 rsETH 是经过 Aave 风控委员会评估、由真实再质押资产背书的优质 LRT。协议的抵押率设定,是基于「这枚代币有真实价值」这个前提。攻击者凭空铸造出来的 rsETH,在协议眼中与正常持仓的 rsETH 无从区分——账本上,这就是 2.92 亿美元的优质抵押品。

攻击后 1 小时内,攻击者在以太坊主网 Aave V3 形成约 1.77 亿美元坏账,在 Arbitrum 链形成约 0.72 亿美元坏账,合计约 2.36–2.49 亿美元 WETH 被借出,抵押品则是一文不值的伪造 rsETH。


阶段四:协议暂停,追加攻击失败


18:21 UTC,Kelp DAO 多签紧急执行 pauseAll,冻结 LRT 存款池、提现合约、LRT 预言机、rsETH 代币本身等所有核心合约。18:26 和 18:28 UTC,攻击者两次尝试用相同手法再铸造 40,000 枚 rsETH,均因合约已被暂停而交易失败,潜在约 1 亿美元的追加损失被阻止。


阶段五:资金整合,开始隐匿


攻击者将从各借贷协议借出的 ETH 逐步汇总至单个主钱包,截至 2026-04-19 07:00 已整合约 75,700 枚 ETH(约 1.78 亿美元)。剩余资金分散在超 20 条链的不同地址,暂无资金转入中心化交易所或二次混币的公开链上记录。


0x5 Aave 危害深度分析:DeFi 乐高的另一面


Kelp DAO 的合约被攻破,这是这个故事的第一章。真正让这件事成为整个 DeFi 生态问题的,是第二章——攻击者用伪造抵押品在 Aave 形成的坏账。


坏账如何产生


Aave 的正常清算机制依赖一个前提:当借款人的健康因子(Health Factor)跌破 1,协议允许清算人偿还部分债务,并以折扣价获取抵押品,完成坏账的市场化出清。这个机制的运作前提是:抵押品有可变现的市场价值


攻击者存入的 rsETH,在铸造的瞬间就已经丧失了背书。Kelp DAO 暂停合约之后,rsETH 的价格急剧脱钩,L2 网络上的 wrapped rsETH 流动性近乎枯竭。没有人愿意以任何有意义的价格购买失去背书的 rsETH,清算机器人无利可图,清算操作无从发生。攻击者的借款头寸,就此成为无法通过正常市场机制出清的死账。


换句话说:这批坏账不是因为借款人破产,而是因为抵押品从一开始就是假的。这是一种 Aave 的清算架构从未被设计来应对的场景。


Umbrella:第一次真实压力测试


Aave 在 2025 年底以 Umbrella 系统替换了原有的 Safety Module。旧版 Safety Module 用 AAVE 代币持有者的质押资产作为最后保险,Umbrella 则是将 aToken(即用户在 Aave 存款的凭证)直接引入保险机制——用户将 aWETH 质押进 Umbrella 保险库,在协议出现坏账时承担自动削减(slashing)的风险,换取相应的收益奖励。


这是 Umbrella 上线以来第一次面对真实规模的坏账压力测试,数量级是 2 亿美元级别。根据 Aave 文档,系统设计允许在极端情境下对质押资产进行最高全额削减,但设有「第一损失保护」机制(deficit offset),一定阈值内的坏账由 Aave DAO 财库优先吸收,超过阈值的部分才触发 staker 削减。


在市场对此的解读中,关键问题有两个:


第一,Umbrella 的设计目标是覆盖正常市场波动中的渐进坏账积累,而非应对单笔 2 亿美元规模的结构性冲击。这次事件会让 staker 被削减多少,取决于 DAO 的坏账处置方案,截至目前尚无定论。


第二,对于普通的 WETH 存款人而言,问题更加直接:他们的资产已经被借走了,借款人的抵押品是假的,正常提款路径被阻塞。0xQuit 等审计开发者在 X 上发出警告:在 Umbrella 完成清算周期之前,WETH 储备池的部分提款可能暂时无法执行,最终回款可能面临一定比例的减损。

连锁冻结与市场反应


Aave 在攻击后数小时内冻结了 V3 和 V4 的全部 rsETH 市场,禁止新存入和新借贷。创始人 Stani Kulechov 明确表态:Aave 的合约未被攻破,问题源于 rsETH 本身。


但市场没有耐心区分这些边界。AAVE 代币在事件发生后数小时内短时下跌 10%–13%。SparkLend、Fluid 跟进冻结各自的 rsETH 市场;Lido Finance 暂停涉及 rsETH 的 earnETH 产品存款;Ethena 出于谨慎,临时暂停了与以太坊主网的全部 LayerZero OFT 桥接——尽管 Ethena 明确无 rsETH 风险敞口,且抵押率维持在 101% 以上。


这种连锁反应,是 DeFi 可组合性(Composability)的另一面:乐高积木的每一块都紧密咬合,当其中一块因为桥接漏洞变成空心的,它上面叠着的每一层都会感受到震动。攻击者武器化了这种架构,将凭空铸造的代币转化为对整个借贷生态的系统性损伤。


0x6 L2 上的孤立资产:另一个待解的问题


rsETH 被部署在超 20 条链上,主网储备库为所有链上的 wrapped rsETH 提供背书。储备库在这次攻击中被清空,意味着 Arbitrum、Base、Linea、Blast、Scroll 等链上持有 rsETH 的用户,手中的代币背后已经没有对应的 ETH 支撑。


这不是一个抽象的表述。对于 L2 网络上的 rsETH 持有者,当前面临的问题是:如果跨链回以太坊主网赎回 ETH,储备库已无充足资产兑付;如果继续持有,代币价值取决于 Kelp DAO 能否通过其他途径——比如动用协议自身的 EigenLayer 底仓——回补储备,而这个方案的执行路径和时间表目前完全未知。


L2 网络上 wrapped rsETH 的流动性已近乎枯竭,没有买家愿意在背书情况不明的状态下接盘。这部分用户的损失如何量化、由谁承担,是 Kelp DAO 后续赔偿方案中最难处理的一块。


0x7 变现路径的进化:为何这次损失规模是上次的千倍


把 Kelp DAO 这次与五天前的 Hyperbridge 事件(2026 年 4 月 13 日)放在一起看,技术谱系上它们高度相似:伪造消息或证明、欺骗验证层、在目标链完成无背书铸造。但最终的损失规模相差近千倍——Hyperbridge 攻击者套现了 108 枚 ETH,Kelp DAO 攻击者落袋约 75,700 枚 ETH。

差距不在漏洞本身,在变现路径的设计。


Hyperbridge 的攻击者在铸出 10 亿枚桥接 DOT 后,走的是 DEX 抛售路径:进 Uniswap V4 的流动性池换 ETH,变现上限由池子深度决定。池子里有多少 ETH,就最多换多少。名义上的 10 亿枚,实际只能兑换 108 枚 ETH,因为流动性在冲击瞬间就已枯竭。10 亿 dot 也只能换 23.7 万美元(市场价可是 10 亿 美元)。


Kelp DAO 攻击者绕过了这个瓶颈。rsETH 同样有 DEX 流动性有限的问题,大量抛售同样会立即砸穿价格。攻击者的选择是:不去砸价格,而是把伪造代币送进借贷协议的风控模型里,让它在模型眼中等同于真实资产,然后用这个「资产」借出真正的 WETH。


这条路能走通,依赖借贷协议风控模型的一个隐含前提——抵押品的价值由链上预言机报价和历史信誉决定,不由铸造来源决定。rsETH 在被 Aave DAO 批准进入白名单时,它是经过多轮风险评估的优质 LRT;那份风险评估里,没有一条覆盖「rsETH 的跨链桥被伪造消息攻破,储备库被凭空抽空」这个场景。协议信任的是历史上的 rsETH,无法识别铸造出来的这批是赝品。


这就是借贷协议变现路径比 DEX 高效的原因:它绕过了市场深度,直接套用了历史信用额度。2.92 亿美元名义价值的伪造代币,转化成了约 2.36 亿美元的真实 WETH 负债。效率之高,是 Hyperbridge 那条路径无法比拟的。


0x8 两个待解的账单


这件事留下了两个层次的待解问题,性质不同,但都没有简单答案。


第一层是技术账单。Kelp DAO 的 OFT 适配器用 1-of-1 DVN 配置把多方验证的护城河变成了独木桥,lzReceive 里缺失的 payload 完整性校验让这座独木桥变成了一张纸。修复这两个问题在技术上并不困难,LayerZero 的多 DVN 配置方案本就存在;问题是同样的配置选择,在其他采用 OFT 标准的协议里还存在多少,目前没有人给出过完整的统计。Ethena 在事件发生后数小时内暂停了自己的 LayerZero OFT 桥接,理由是「等待根因确认」——这个动作本身说明了一些事情。


第二层是经济账单。Aave 的 WETH 储备池持有约 2.36 亿美元的不可清算坏账,Umbrella 保险模块面临上线以来规模最大的真实测试,staker 的实际削减比例和 DAO 财库的兜底边界,截至目前没有定论。对于普通的 WETH 存款人,提款路径暂时受阻。对于 L2 网络上的 rsETH 持有者,赔偿方案和时间表完全未知。


这两层账单背后有一个共同的结构性问题:当跨链 LRT 被主流借贷协议接受为一级抵押品时,那条跨链桥的安全性,实际上就成了借贷协议风控框架的一部分——只是没有被显式写进任何风控模型。rsETH 进入 Aave 白名单的那一刻,这个依赖关系就已经建立,等待的只是一次让它变得可见的事件。

【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。

专栏文章
查看更多
数据请求中

推荐专栏

数据请求中

一起「遇见」未来

DOWNLOAD FORESIGHT NEWS APP

Download QR Code