2026年4月18日,KelpDAO的rsETH跨链桥遭到利用,损失约2.9亿美元,成为当年最大的DeFi安全事件。初步证据指向Lazarus集团,这是一个有充分记录的国家支持的攻击者,其攻击目标通常是加密基础设施[1]。此次攻击并未利用智能合约漏洞,而是通过污染了单个去中心化验证器网络(DVN)节点的基础RPC基础设施,伪造跨链消息,从而在未销毁源链相应代币的情况下释放了rsETH代币。
此次利用事件的详细情况已由LayerZero[1]和KelpDAO[2]进行了充分报道。本文将从不同角度切入。我们不重述攻击过程,而是深入探讨利用事件发生后的连锁反应:一个单点基础设施依赖如何引发了冻结五条链上数十亿美元流动性的级联效应,以及这种级联效应如何迫使去中心化治理框架在公开场合行使中心化应急权力。
KelpDAO事件描绘了一条贯穿“去中心化”技术栈三层因果链:单点DVN依赖促成了攻击;DeFi的组合性(也称为“DeFi乐高”),即协议可以像积木一样相互连接的特性,将此次跨链桥攻击转化为系统性的流动性危机;而危机的规模反过来又迫使治理框架暴露出其内嵌的中心化应急权力。
背景:KelpDAO利用事件简述
KelpDAO是rsETH的发行方,rsETH是一种流动性再质押代币(LRT),代表了跨多个操作员的已质押ETH头寸。为了实现rsETH的跨链转移,KelpDAO集成了LayerZero的消息协议,该协议依赖于DVN。DVN是独立的验证器,负责在跨链消息在目标链上执行之前确认其合法性。
关键的配置选择:KelpDAO的rsETH OApp使用了1比1的DVN设置,以LayerZero Labs运营的DVN作为唯一验证器。这意味着rsETH全部的跨链安全性依赖于一个单一的验证实体。LayerZero的集成文档明确建议使用具有冗余的多DVN配置,并且LayerZero表示在事件发生前已将这一最佳实践传达给了KelpDAO[1]。KelpDAO方面则认为,1比1的设置是“LayerZero文档中记录的配置,也是任何新OFT部署的默认配置”,并且在L2扩展期间,“默认设置已获得肯定确认是合适的”[2]。
攻击者攻破了LayerZero Labs DVN使用的两个RPC节点,用恶意版本替换了其二进制文件,使其仅向DVN的IP地址返回伪造的链状态数据,而对其他所有观察者(包括LayerZero自身的监控基础设施)都表现正常。与此同时,对未被攻破的RPC节点的DDoS攻击迫使系统故障转移到被污染的节点。结果是:DVN确认了一个在源链上从未发生过的跨链消息,从以太坊侧适配器(0x85d4...8ef3)释放了116,500个rsETH,而未发生相应的源侧销毁[1, 3]。释放交易为0x1ae232...db4222。链上证据是明确的:以太坊目标端接受了nonce 308,而Unichain源端仍报告最大出站nonce为307[10]。
KelpDAO在46分钟内检测到异常并暂停了所有相关合约。此干预阻止了随后针对另外40,000 rsETH(约9500万美元)的攻击尝试[2]。但到那时,攻击者已经进入下一阶段:通过DeFi借贷协议将盗取的rsETH转化为借入资产。
从伪造代币到借入资产
攻击者并未简单地出售盗取的rsETH。这116,500个代币分散在七个分支钱包中,并通过多个渠道变现,包括通过聚合器直接兑换成ETH、Compound V3的供应头寸,以及重新桥接到Arbitrum[10]。但最关键的路径是通过Aave:攻击者将89,567 rsETH(约2.21亿美元)存入以太坊核心和Arbitrum两条链上的Aave借贷市场。利用Aave的E-Mode(一种允许相关资产享有更高贷款价值比的资本效率功能),攻击者以抵押的rsETH为基础,借入了82,620 WETH和821 wstETH[3]。
这些头寸已被最大化杠杆化。攻击者七个地址的健康因子在1.01到1.03之间,仅略高于清算阈值[3]。之所以能做到这一点,是因为Aave对rsETH的E-Mode LTV设置为93%,清算阈值为95%,仅留下了2个百分点的安全缓冲。
两条链上各地址的细分情况:
| 市场 | 地址 | 抵押rsETH |
借入WETH |
借入wstETH |
|---|---|---|---|---|
| Ethereum Core | 0x1f4c...adef |
53,000.00 ($1.3471亿) | 52,440.58 ($1.2613亿) | |
| Ethereum Core | 0x8d11...2d49 |
400.00 ($102万) | 393.92 ($95万) | |
| Arbitrum | 0eba7...129b |
12,573.80 ($3193万) | 12,381.93 ($2945万) | |
| Arbitrum | 0xcbb2...55cc |
9,299.00 ($2361万) | 4,307.87 ($1025万) | 8.13 ($2.382万) |
| Arbitrum | 0x1b74...644c |
8,000.00 ($2033万) | 7,877.92 ($1895万) | |
| Arbitrum | 0xbb6a...c787 |
770.00 ($196万) | 758.25 ($180万) | |
| Arbitrum | 0x8d11...2d49 |
1,024.43 ($260万) | 28.68 ($7万) | 813.11 ($2382.32万) |
| Arbitrum | 0xe9e2...d181 |
4,500.00 ($1144万) | 4,307.87 ($1066万) | |
| 总计 | 89,567.22 rsETH ($2.2761亿) | 82,620.49 WETH ($1.9825亿) | 821.24 wstETH ($241万) |
来源:来自Etherscan、Arbiscan和DeBank的链上数据汇总,截至2026年4月22日16:51 UTC。美元价值反映了每笔交易时的代币价格。
Web3最佳安全审计师
在上线前验证设计、代码和业务逻辑
级联效应:一次桥接利用如何冻结了五条链上的WETH
下图总结了完整的级联效应。第一步和第二步(桥接利用和Aave抵押品存款)已在上面的背景部分介绍。本节其余部分将详细探讨第三步到第五步:为什么WETH必须被冻结,哪些参数决定了级联效应的严重性,以及冻结造成的实际成本。
为什么WETH必须被冻结
4月19日,Aave的协议守护者冻结了Aave V3和V4上的所有rsETH和wrsETH市场,阻止了基于rsETH抵押品的新存款和借款[8]。这是预期的第一步响应。
意想不到的第二步发生在4月20日:Aave冻结了以太坊、Arbitrum、Base、Mantle和Linea上的WETH储备金[3, 8]。
为什么冻结WETH,一个未被利用且与跨链桥无关的资产?因为攻击者存入了在没有相应源链支持的情况下被铸造的rsETH。Aave的预言机继续以全市场价值对其进行定价,将其视为合法的抵押品,与正确桥接的rsETH无异。攻击者利用了这种信息不对称,通过抵押品借入真实的WETH,而该抵押品在系统层面代表着未被支持的负债。这耗尽了借贷池中的WETH,将受影响市场的利用率推至100%。在完全利用的情况下,现有WETH存款人无法提款,清算人也无法获得执行清算所需的底层资产。清算机制,即协议防止坏账的主要防御手段,实际上已被瘫痪[3]。
如果WETH借贷保持开放,其他链上的剩余池流动性将可能通过同样的机制被耗尽:存入rsETH,借出WETH,然后弃置。冻结WETH并非可选,而是控制损失的唯一途径。
决定级联效应严重性的三个参数
此次级联效应的严重性并非偶然。三个协议参数决定了直接损失和后续冻结的范围。
1. LTV:每单位受污染抵押品能提取多少健康资产
Aave对rsETH的E-Mode LTV为93%,意味着每存入一美元的受污染rsETH,可以借出0.93美元的WETH。作为参考,Spark Protocol在此期间将rsETH LTV设定为72%,Fluid约为75%[3]。Aave的参数在市场上最具侵略性。
这是一个经过深思熟虑的设计决定,而非疏忽。2026年1月,Aave治理将rsETH的E-Mode LTV从92.5%提高到93%,将本已很窄的安全缓冲从2.5%进一步压缩到2%[3]。基础(非E-Mode)LTV故意设置为接近零(0.05%),实际上迫使所有有意义的rsETH借款都通过高LTV的E-Mode路径进行。
2. 池深度:每个市场对流动性耗尽的脆弱性
相同的借款金额,在目标池中的深度不同,影响也大相径庭。
| 链 | 市场 | WETH储备(攻击前) | 攻击者借款 | 直接耗尽比例 |
|---|---|---|---|---|
| 以太坊 | V3 Core | 59.8亿美元 | 52,834.50 WETH (~1.27亿美元) | ~2.1% |
| Arbitrum | V3 | 3.31亿美元 | 29,785.98 WETH (~7100万美元) | ~21.5% |
| Mantle | V3 | 1.09亿美元 | N/A | 无攻击者活动;预防性冻结WETH |
| Base | V3 | 2.04亿美元 | N/A | 无攻击者活动;预防性冻结WETH |
| Linea | V3 | 3300万美元 | N/A | 无攻击者活动;预防性冻结WETH |
攻击者仅将rsETH存入了Aave V3市场。Aave V4(仅以太坊,2026年3月30日上线)也受到预防性rsETH冻结的影响[8],但未在此表格中体现。WETH储备数据来自LlamaRisk[3];攻击者借款根据上面的各地址细分得出。
攻击者集中在以太坊核心和Arbitrum上借款。但关键观察是攻击者从未触及的链上发生了什么。由于rsETH被接受为Mantle、Base和Linea上的抵押品,一旦底层的桥接支持被侵蚀,这些链上任何现有用户以rsETH为后盾的头寸都存在潜在的坏账风险。Aave冻结五条链上WETH的决定是一个合理的反应:将这些市场保持开放将使它们面临与攻击者在以太坊和Arbitrum上已展示的相同耗尽机制[3, 8]。
3. 跨链部署计数:冻结的传播范围
rsETH被列为23个Aave V3市场中的11个市场的抵押品,其中7个显示出实质性风险敞口[3]。攻击者仅在2条链上操作。但预防性WETH冻结至少影响了5条链,包括攻击者从未存入任何代币的市场。LTV决定了每个链上提取的金额;池深度决定了每个市场承受的压力程度。但最终决定冻结传播范围的是rsETH被接受为抵押品的链的数量。
这些参数并非静态。在攻击发生前九天,即4月9日,Aave的风险管家提高了rsETH的供应上限:以太坊核心从480,000提高到530,000,Mantle从52,000提高到70,000[3]。虽然这并不意味着因果关系(攻击者的准备时间线很可能早于这些变化),但它强调了常规参数调整如何可能意外扩大未来事件的爆炸半径。
冻结的实际影响
结果是:2.9亿美元的桥接利用事件导致了五条链上WETH流动性的冻结,影响了总储备金超过67亿美元的市场。
直接损失仅限于攻击者的借款。但在DeFi借贷中,冻结并非小规模的运营不便。它锁定用户流动性,阻止提款,破坏活跃头寸,并损害了保护协议免受坏账影响的清算机制。绝大多数受影响的用户从未与rsETH、KelpDAO或任何跨链桥互动过。他们是Aave上的WETH存款人和借款人,参与的是他们认为理所当然的一个直接借贷市场。
WETH是DeFi最基础的流动性资产。冻结它相当于因为一家不同的金融机构使用了大多数存款人闻所未闻的产品而被欺诈,而关闭了镇上最大银行的提款。
LlamaRisk的事件报告[3]对两种坏账场景进行了建模,并提供了按链区分的短缺预测,这是当时最详细的风险传播分析。但即使是这项分析也侧重于潜在的坏账,而不是冻结本身的更广泛运营成本,包括受影响的所有市场的提款冻结、头寸中断和清算能力受损。全面量化级联效应的总影响仍是一个悬而未决的问题。
如果攻击级联复杂,恢复过程已被证明同样不简单。组合性在实现损害的同时也限制了修复。Aave不能简单地“解冻一切”。每个市场都必须独立评估,风险状况因当地rsETH敞口、WETH利用率水平和攻击者活动而异。时间线说明了这一点:
- 4月19日:协议守护者冻结了Aave V3和V4上所有
rsETH和wrsETH储备[8]。 - 4月20日:以太坊、Arbitrum、Base、Mantle和Linea上的
WETH被冻结[3, 8]。 - 4月21日:仅以太坊核心V3上的
WETH被解冻,LTV作为预防措施仍保持为0。以太坊Prime、Arbitrum、Base、Mantle和Linea上的WETH仍被冻结[8]。
攻击事件发生四天后,六个受影响市场中的五个仍处于冻结状态。恢复路径在复杂性上与攻击路径相似:逐个协议、逐条链地进行,每一步都需要治理协调和风险评估。
响应:Arbitrum如何在没有签名的情况下移动了30,766 ETH
当Aave正在管理借贷级联效应时,Arbitrum上正在进行一场并行的响应。4月21日,Arbitrum安全委员会宣布已采取紧急行动,冻结了Arbitrum One上攻击者持有的30,766 ETH[6]。这些资金被转移到一个中间冻结地址(0x...0DA0),该地址只能通过后续Arbitrum治理行动访问[7]。
治理行动
Arbitrum安全委员会是Arbitrum DAO治理结构中的一个正式组成部分,而非外部参与者或临时委员会。紧急行动通过Arbitrum治理论坛[7]公开宣布,在执法部门关于攻击者身份的输入下执行[6],并记录了完整的交易细节。安全委员会在其既定授权范围内行事,权衡了“对Arbitrum社区安全和完整性的承诺,同时不影响任何Arbitrum用户或应用程序”[6]。
这不是一个秘密决策。这是一项经治理批准的紧急行动,透明执行,并提供了链上证据供任何人验证。
技术机制
是什么让这一行动如此引人注目,不是治理决策本身,而是它如何在链上执行的。根据BlockSec的Phalcon追踪分析[9],安全委员会采用了一种原子性的三步方法:
-
升级执行器暂时升级了以太坊收件箱合约(
DelayedInbox),增加了一个名为sendUnsignedTransactionOverride的新功能。 -
该功能被用来创建一个冒充攻击者地址的跨链消息。消息通过
Bridge.enqueueDelayedMessage注入,kind=3,在Arbitrum的Nitro堆栈中映射为L1MessageType_L2Message。此消息类型允许在L2上执行L2MessageKind_UnsignedUserTx。关键在于,此路径不需要签名检查。发送方参数从标准的msg.sender路径转移到一个由调用者控制的输入,通过L1→L2地址别名进行转换,以携带攻击者的地址上下文。 -
在L2上执行转账后,收件箱合约恢复到其原始实现。
L1交易[4]和由此产生的L2交易[5]均可在Phalcon Explorer上公开查看。L2交易中显示的“从攻击者到0x...0DA0”并非标准的由用户签名的转账。这是一个链级强制状态转换,一笔通过治理级别基础设施升级权力执行、无需所有者私钥即可移动资产的交易。
困境
该机制原理上很简单:可升级合约赋予了无限的能力。如果一个合约可以被升级,它的行为就可以被改变,以执行任何操作,包括在没有持有人签名的情况下转移资产。这种能力是任何建立在可升级合约上的系统固有的。现在,30,766 ETH存放在一个被冻结的地址中。只有后续的Arbitrum治理投票才能决定其处置。原子性的升级-执行-恢复模式没有在收件箱合约上留下永久性更改,也没有影响到其他用户或应用程序[6]。
Arbitrum安全委员会的行动,根据大多数合理的评估,是正确的选择。攻击者被确认为国家支持的行动者。执法部门介入。治理过程是公开的。7100万美元的被盗资产被追回,或者至少被阻止进一步洗白。
但使之成为可能的能力超出了这个特定案例。原则上,相同的升级-执行-恢复机制可用于移动Arbitrum One上任何地址持有的任何资产。安全委员会的权力不仅限于攻击者地址或被盗资金。它是一种由治理规范约束的通用能力,而非代码约束。
这就是困境。用户在一种隐含的心理模型下与L2互动:“我的资产由我的私钥控制,没有人能在没有我签名的情况下移动它们。”KelpDAO的响应表明,这种模型是不完整的。在Arbitrum,以及在任何具有可升级桥接合约和安全委员会的L2上,资产都可以通过绕过签名检查的治理级别操作来移动。
Arbitrum在这方面并非独一无二。Aave的市场冻结也是由治理驱动的紧急行动。在KelpDAO事件期间,多个协议同时行使了中心化应急权力:Aave冻结了五条链上的市场,Arbitrum安全委员会执行了强制转账,KelpDAO则在全球范围内暂停了合约。事实上的“去中心化”生态系统的危机响应,是协调一致地行使中心化权力。
问题不在于是否应该存在应急权力。KelpDAO的案例有力地证明了应该存在。问题在于这些权力的界限、触发条件和问责机制是否足够透明。将资产存入L2的用户应该能够回答一个基本问题:在什么情况下,安全委员会可以移动我的资金,我有什么追索权?
被盗资金的当前状况
独立的链上追踪(可在MetaSleuth[11]上查看完整可视化)显示,攻击者将116,500 rsETH分散到七个一级地址,大部分作为抵押品存入Aave(以太坊核心和Arbitrum)借出WETH和wstETH,并将收益汇总到两条链上的一个共享地址0x5d39...7ccc(以太坊 / Arbitrum)。截至2026年4月22日05:42 UTC,被盗资金处于四种不同的状态:
| 状态 | 金额 | 位置 | 详情 |
|---|---|---|---|
| 冻结 | 30,765.67 ETH | Arbitrum上的0x0000...0da0 |
2026年4月21日03:35:08 UTC由Arbitrum安全委员会强制转账,无签名,通过sendUnsignedTransactionOverride治理升级执行 |
| 桥接拦截 | 3,575.57 rsETH |
Arbitrum上的LZMultiCall 0x8e60...286e |
2026年4月18日18:30:31 UTC跨链转账尝试失败 |
| 空闲 | 25,701.76 ETH | 以太坊上的0xd4b8...1530 |
2026年4月21日11:16 UTC收到,自此未动 |
| 分散或正在分散 | ~50,000 ETH | 以太坊上的0xf980...0b85和0x62c7...c64e,分散到103个独立的一级地址 |
0xf980...0b85在2026年4月21日08:05至20:21 UTC之间分散了约25,000 ETH,然后将其最后的8.989 ETH直接扫入0x62c7...c64e;0x62c7...c64e于20:13 UTC开始分散,截至2026年4月22日05:41 UTC仍活跃 |
约31%的收益被冻结或拦截,23%仍闲置在一个休眠的以太坊地址中,46%已分散或正在分散到103个一级地址。作为Aave抵押品存入的rsETH仍被存入,借出的WETH和wstETH也未偿还——攻击者已放弃了该借贷头寸。
结论
KelpDAO事件描绘了一条贯穿“去中心化”技术栈三层因果链。
它始于单点依赖。KelpDAO的1比1 DVN配置将跨链验证简化为一个实体,使得整个桥接可以通过一个被攻破的基础设施组件进行利用。该架构支持去中心化;但配置则不支持。
接着,组合性将桥接利用转化为系统性的流动性危机。一次攻击冻结了DeFi最基础的资产WETH,横跨五条链,影响了数十亿美元的流动性,而这些流动性的持有者与rsETH或KelpDAO毫无关系。级联效应的范围受到可衡量参数的影响:激进的LTV设定、浅的流动性池以及广泛的跨链抵押品部署。
反过来,危机的规模迫使去中心化治理行使中心化应急权力。Arbitrum安全委员会通过治理批准的原子性合约升级,在未获持有人签名的情况下移动了30,766 ETH。Aave则通过治理驱动的紧急行动,冻结了多条链上的市场。这种响应是有效的、透明的,并且可以说是必要的。它也证明了“无需许可”是有实际界限的。
单点依赖促成了利用;组合性放大了损害;损害揭示了始终存在的中心化权力,它内嵌在可升级合约和治理框架中。解决这些相互关联的动态需要所有参与者的行动:
对于协议:协议的整体安全性取决于其最薄弱的环节,在本例中是DVN基础设施而非智能合约[10]。有效的安全性需要跨越多个维度的系统性覆盖,包括代码安全、基础设施安全、密钥管理和运营安全。全面的评估和渗透测试应压力测试整个技术栈,而非孤立地测试单个组件。链上监控可在数分钟而非数小时内实现应急响应,而快速的跨链资金追踪对于协调资产冻结和最大化追回至关重要。对于借贷协议而言,来自跨链合成资产的抵押品应根据上述三个参数(LTV、池深度和跨链部署计数)在“完全抵押品崩溃”场景下进行压力测试。
对于L2治理和DAO:应急权力应透明且负责。大多数主要L2已具备这些能力,但它们通常深埋在技术文档中,而非呈现在面向用户的材料中。治理框架应规范触发条件、范围限制、时间限制和事后问责要求。
对于用户:理解DeFi组合性所固有的系统性风险。在此次事件中,从未接触过rsETH的WETH存款人的流动性在五条链上被冻结。个体头寸风险只是整体图景的一部分;您的资产与之交互的协议、池、抵押品类型和链,都构成了一个相互关联的风险表面。
参考资料
[1] LayerZero Core, "KelpDAO Incident Statement": https://x.com/LayerZero_Core/status/2046081551574983137
[2] KelpDAO, "April 18 Incident: Additional Context": https://x.com/KelpDAO/status/2046332070277091807
[3] LlamaRisk, "rsETH Incident Report" (April 20, 2026): https://governance.aave.com/t/rseth-incident-report-april-20-2026/24580
[4] BlockSec Phalcon Explorer, L1 Transaction (Arbitrum Security Council action): https://app.blocksec.com/phalcon/explorer/tx/eth/0x079984c56c5670108f5c6f664904178f9b364340351949a42e4637d1f645f770
[5] BlockSec Phalcon Explorer, L2 Transaction (Arbitrum forced transfer): https://app.blocksec.com/phalcon/explorer/tx/arbitrum/0x5618044241dade84af6c41b7d84496dc9823700f98b79751e257608dac570f6b
[6] Arbitrum, "Security Council Emergency Action": https://x.com/arbitrum/status/2046435443680346189
[7] Arbitrum Governance Forum, "Security Council Emergency Action 21/04/2026": https://forum.arbitrum.foundation/t/security-council-emergency-action-21-04-2026/30803
[8] Aave, rsETH incident updates (April 19-21, 2026): https://x.com/aave/status/2045593585966252377
[9] BlockSec Phalcon, "Arbitrum Security Council freeze analysis": https://x.com/Phalcon_xyz/status/2046467830498173088
[10] banteg, "Kelp rsETH Unichain → Ethereum Path Investigation": https://gist.github.com/banteg/705d0284513b74ad20f61d90f5b5de62
[11] MetaSleuth, KelpDAO exploit trace: https://metasleuth.io/result/eth/0x1ae232da212c45f35c1525f851e4c41d529bf18af862d9ce9fd40bf709db4222?source=600c61cd-f0cd-4dff-8687-14e02f6ccd24



