摘要
2026年3月15日,一名攻击者绕过了Venus Protocol核心池(BNB Chain)上THE(Thena)市场的供应上限,将抵押头寸膨胀至预期限制的3.67倍,并提取了借入的资产。早期媒体报道估计总损失为370万美元;我们对所有三笔提取交易的链上分析也证实了总计提取价值577万美元和协议坏账215万美元[3]。
几项分析[1, 2, 3]以及Venus官方声明[5]已详细剖析了攻击机制,包括供应上限绕过、捐赠向量和资金流。本文不详细回顾这些发现。相反,它着重于完整的链上数据揭示了借贷协议所依赖的风险假设,以及DeFi社区可以从此次事件中吸取的教训。
两组数据值得仔细研究。首先,攻击者的完整盈亏:在九个月内花费了约916万美元购买THE和vTHE,从Venus提取了577万美元,攻击者在链上仍亏损415万美元。其次,清算记录:254个不同的机器人通过8048笔交易竞争平仓,但仍累积了215万美元的坏账,因为5300万THE无法在一个只有数百万美元深度的市场上出售。
这些数据点挑战了DeFi借贷中一个普遍的假设:过度抵押加上竞争性清算市场将使协议保持偿付能力。在此案例中,头寸名义上过度抵押了3.67倍,并且清算市场表现活跃。当抵押品缺乏实际流动性时,两者都不足以。
背景
供应上限是Compound式借贷市场中标准的风险控制措施。它们限制了可作为抵押品存入的资产数量,为协议对波动性或低流动性代币的风险敞口设定了上限。Venus为THE市场设置了**1450万THE**的供应上限,反映了该代币稀薄的链上流动性。
在供应上限的背后,还有两个额外的安全层。基于预言机的抵押品估值决定了借款人可以凭其存款借入多少。如果头寸变得抵押不足,则预期会有竞争性清算市场介入:第三方机器人以折扣价偿还债务并扣押抵押品,使协议保持偿付能力。
这种三层结构(风险敞口限制、估值、清算)构成了大多数借贷协议的风险框架。Venus的THE事件同时测试了这三层,而这三层均被证明不足。以下章节将按顺序追踪每一层是如何被突破的。
攻击
绕过:捐赠攻击
大多数Compound分叉中的供应上限仅约束铸币路径:即在检查上限后再发行vTokens的标准存款功能。它们不考虑直接转移到合约地址的代币。
攻击者利用了这一漏洞。直接ERC-20转账到vTHE合约会增加合约的基础代币余额,而不会铸造新的vTokens。在Compound式会计中,这会膨胀vTokens与基础资产之间的exchangeRate。任何现有的vToken持有者都会受益:他们的vTokens现在代表了对更多基础代币的要求权,增加了协议所见的有效抵押品价值。
这种“捐赠攻击”是Compound分叉中一种已知的漏洞类型。任何仅在铸币路径上强制执行供应上限的协议都易受攻击。
准备(2025年6月至2026年3月)
攻击并非始于3月15日。攻击者通过Tornado Cash从一个资金地址(0x7a79...f234)获得了7400ETH,将其存入Aave作为抵押品,并借入了992万美元的稳定币(USDT、DAI、USDC)。这些资金分布在多个钱包中,用于从2025年6月开始购买THE,逐步建立了一个联合头寸,到攻击当天上午,该头寸已达到供应上限的84%(约1220万THE)。

这段为期九个月的准备期始终在链上可见。一个实体在接近供应上限时的集中度不断增加,这是一个可检测的风险信号,而传统的交易级别监控会忽略这一点。
攻击者通过多个地址进行操作,所有地址都可以追溯到同一个Tornado Cash资金来源:
| 地址 | 角色 |
|---|---|
| 0x7a79...f234 | 资金来源:从Tornado Cash接收7400ETH,存入Aave,借入992万美元稳定币 |
| 0x43c7...2f82 | 攻击者EOA |
| 0x737b...a619 | 攻击合约:通过transferFrom()捐赠约3610万THE,预先存入158万USDC作为抵押品,借入463万THE用于捐赠,执行捐赠绕过,接收借入资产。于12:04 UTC被清算。 |
| 0x1a35...6231 | 攻击者钱包:通过铸币路径存入THE,持有vTHE |
执行(UTC 3月15日 11:00-12:42)
以下分析基于三笔攻击交易:
UTC 11:00,攻击者持有1220万THE在协议内,仍在1450万的上限内。在接下来的两个小时里,他们执行了捐赠绕过和递归杠杆循环:
- 直接向
vTHE合约转入THE代币(绕过供应上限) - 以膨胀的抵押品(
CAKE、BNB、BTCB、USDC)为依据借入资产 - 使用借入的资产在公开市场上购买更多
THE - 等待TWAP预言机更新以反映更高的价格
- 以增加的借款能力重复操作
| 时间(UTC) | 存入的THE |
上限百分比 | 状态 |
|---|---|---|---|
| 11:00 | 1220万 | 84% | 在上限内 |
| 12:00 | 4950万 | 341% | 上限已绕过 |
| 12:42 | 5320万 | 367% | 最高点 |
时间线数据来源:AllezLabs [1]。
由于THE的链上流动性极低,即使是适度的购买也会对价格产生显著影响。THE的总市场价格从约0.27美元上涨到超过0.53美元(根据CoinMarketCap),由于流动性稀薄,DEX现货价格在个别交易中可能飙升得更高。Venus的TWAP预言机更新至约0.53美元,使攻击者在每个周期都获得了更大的借款能力。

该系统估值该抵押品约为3000万美元。该估值基于预言机价格,而不是市场实际可吸收的价值。THE的实际市场深度是该名义价值的一小部分。
过度扩张与崩溃
在提取了第一轮借入资产后,攻击者本可以停止。相反,他们继续部署借入资金购买更多THE,试图再次推高价格。这使得健康因子达到约1。
一旦清算开始,5300万THE进入了一个没有深度的市场。THE的价格暴跌至约0.21美元,远低于攻击前的0.27美元水平。此时,系统的最后一道防线本应启动:第三方清算人介入,平仓并限制损失。
清算现实
在DeFi借贷中,假设很简单:当头寸亏损时,第三方清算人介入,偿还债务,以折扣价扣押抵押品,并使协议保持偿付能力。Venus的THE事件并未破坏这一机制。它暴露了其局限性。
他们来了。但不够。
链上清算数据显示(来源:Venus的Dune仪表板[4],以及额外的交易级别分析)显示:
| 指标 | 数值 |
|---|---|
总清算交易(vTHE,3月15日) |
8048 |
| 唯一清算调用者 | 254 |
| 清算入口合约 | 0x0870...cf43 (Venus Core Pool Liquidator) |
| 总偿还债务 | 约1420万美元 |
| 剩余坏账 | 215万美元 |
对Dune仪表板的初步解读表明,Venus自己的合约是唯一的清算方。这是具有误导性的。0x0870...cf43是Venus的核心池清算合约,这是一个无需许可的入口,任何外部调用者都可以通过它执行清算。查询实际交易发送者会发现254个不同的地址通过8048笔交易争夺清算机会。清算市场表现活跃。
在8048笔vTHE清算交易中,8039笔针对攻击者的主要头寸(0x1a35);其余9笔清算了四名持有少量vTHE且受价格下跌影响的无关用户。
参与度并未转化为回收。机器人偿还了约1420万美元的债务(BNB、BTC、CAKE、USDC、WBNB),并换取了vTHE。为了实现任何利润,他们需要将THE卖到公开市场上。由于5300万THE刚刚被倾倒在一个只有数百万美元深度的市场中,被扣押的抵押品无法在不产生巨额滑点的情况下兑换成稳定价值。结果:215万美元的债务未能覆盖,成为Venus资产负债表上的坏账。
两个头寸,两种结果
攻击者操作了两个具有不同抵押品类型的头寸[1]。它们的清算结果截然不同:
| 地址 | 抵押品 | 交易数 | 偿还债务 | 结果 |
|---|---|---|---|---|
| 0x1a35(攻击者钱包) | vTHE |
8039 | 约1420万美元 | 215万美元坏账(扣押的THE流动性差) |
| 0x737b(攻击合约) | vUSDC |
603 | 72.9万美元 | 干净回收(扣押了158万USDC) |
0x737b头寸被早期清算(UTC 12:04),因为其抵押品为158万USDC,而债务以快速升值的THE计价。在操纵阶段THE价格飙升时,0x737b的THE债务价值超过了其USDC抵押品,触发了清算。这可能是故意的:0x737b的目的是借入THE以进行捐赠绕过,一旦任务完成,损失USDC抵押品是可以接受的代价。从Venus的角度来看,这次清算很干净:USDC是流动且稳定的,因此协议回收的价值超过了偿还的金额。
0x1a35的清算讲述了真实的故事。其抵押品是THE本身。254个机器人通过8039笔交易竞争清算该头寸,但扣押的THE未能以接近其预言机报告的价值出售。时间线显示了动态:
| 小时(UTC) | 交易数 | 偿还债务 | 阶段 |
|---|---|---|---|
| 12:00 | 3416 | 约383万美元 | THE价格下跌,滑点最大 |
| 13:00 | 4626 | 约1040万美元 | 价格稳定,大部分清算 |
所有坏账都源于这个以THE为抵押的头寸。0x1a35的总债务约为1640万美元(偿还+坏账)。清算人设法覆盖了其中约87%。剩余的约13%,即215万美元,成为协议损失。
关于Dune估值的一点说明: Venus Dune仪表板[4]使用其
daily_market_info表中的每日快照价格来估算扣押的抵押品。由于THE的价格在盘中从约0.53美元跌至0.21美元,这种方法显著低估了在早期、较高价格清算窗口期间扣押的THE的价值。实际坏账,即所有清算完成后仍未覆盖的未偿债务,约为215万美元[3],比原始Dune美元差额更可靠。
资金追踪
清算数据显示了头寸是如何被平仓的,但没有回答谁从这次事件中实际获利。追踪完整的资金流揭示的景象与标准的“盗窃”叙事相悖。
一些媒体报道将此描述为“370万美元的利用”,可能只计算了一部分借入的资产。早期分析集中在以THE为抵押的头寸(0x1a35)上,但忽略了攻击合约独立的以USDC为抵押的头寸(0x737b),导致账目不完整。对所有三笔提取交易的链上追踪总计为577万美元。
攻击者的链上盈亏
成本方面:
攻击者的资金链:通过Tornado Cash收到7400ETH,存入Aave作为抵押品,借入992万美元稳定币(USDT、DAI、USDC),并分配给多个钱包以购买THE和vTHE。
| 项目 | 金额 | 美元价值 | 说明 |
|---|---|---|---|
| Aave抵押品 | 7400 ETH |
约1400万美元+ | 从Tornado Cash存入 |
| Aave借款 | USDT + DAI + USDC |
992万美元 | 以ETH抵押品为担保 |
THE收购 |
约3610万 THE |
约649万美元 | 9个月平均购买价格约0.17美元 |
vTHE收购 |
约1210万 vTHE |
约267万美元 | 由0x1a35购买并持有 |
总支出(649万美元 + 267万美元 = 916万美元)占了992万美元Aave借款的大部分。Aave头寸(7400ETH抵押品,约992万美元债务)保持开放;攻击者可以获得扣除未偿债务后的ETH。
收入方面(从Venus提取的3笔交易):
| 交易 | 攻击合约(0x737b)收到的资产 | 美元价值 |
|---|---|---|
| 0x4f477e...5663f | 6000万 vUSDC + 913,858 CAKE + 1,972.53 WBNB |
4,189,131 |
| 0x4253a8...ca296 | 1,044,003 CAKE |
1,460,264 |
| 0xfd64d0...54808 | 95,164 CAKE |
124,910 |
| 总计 | 2,053,025 CAKE + 1,972.53 WBNB + 6000万 vUSDC |
5,774,305 |
净链上盈亏:为负。 攻击者从Aave借款992万美元,从Venus提取577万美元。Venus的两个头寸(合约0x737b和钱包0x1a35)均被完全清算,未留下任何链上剩余价值。415万美元的差额仍作为未偿还的Aave债务。攻击者在Aave上的7400ETH抵押品(约1400万美元+)可以吸收此损失,但链上操作单独来看明显无利可图。
协议损失
在所有清算完成后,Venus剩下约215万美元的坏账[3]:
| 资产 | 金额 | 美元价值 |
|---|---|---|
CAKE |
约118万 | 约165万美元 |
THE |
约184万 | 约50万美元 |
| 总坏账 | 约215万美元 |
如果Venus官方事后报告给出不同坏账数字,请以官方为准更新。
价值分配
| 参与方 | 净盈亏 | 说明 |
|---|---|---|
| 攻击者(链上) | -415万美元 | 借款992万美元,提取577万美元,剩余415万美元Aave债务 |
| 第三方清算人 | 未知 | 254个机器人参与;盈亏取决于THE的退出价格 |
| Venus Protocol | -215万美元 | 所有清算完成后剩余的坏账 |
| 攻击者(中心化交易所) | 未知 | 可能通过永续合约获利 |
在大多数DeFi利用事件中,“缺失的价值”在协议损失和攻击者收益之间,由清算人和套利交易者捕获。在此,254个清算机器人争夺扣押的THE,但该代币被破坏的流动性意味着抵押品无法有效兑换成稳定价值。大部分价值被销毁而不是重新分配。
如果攻击者获利,最可能的机制是通过中心化交易所的链下永续期货头寸:在价格上涨阶段(0.27美元至超过0.53美元)做多THE,然后在清算瀑布(0.53美元至清算后0.21美元)之前做空THE[2, 3]。由于中心化交易所活动的隐蔽性,无法从链上数据验证此CEX活动。在类似事件中,利用链上操纵作为链下衍生品利润的亏损前置的模式已被提出,但由于中心化交易所活动的模糊性,仍难以证实。随着DeFi与CEX的相互作用加深以及长尾代币的永续市场扩大,这种跨平台攻击可能成为日益普遍的攻击向量。
教训:三道防线
此次攻击利用了一个已知的漏洞,使用了教科书式的杠杆循环,仍然造成了215万美元的坏账。真正的失败并非单一机制,而是整个风险栈中弱点的累积效应。
第一道防线:风险敞口限制
Venus的供应上限仅约束了标准的mint路径。直接将代币转入vToken合约完全绕过了它。任何依赖会计假设的风险控制措施都必须在所有可能的状态改变操作中验证这些假设,而不仅仅是预期的存款流程。
第二道防线:抵押品估值
预言机报告的抵押品价值可能与清算人实际能实现的价值 [2] 产生显著偏差。该头寸的预言机报告抵押品约为3000万美元,债务约1600万美元,但仍产生215万美元的坏账,因为纸面上的3000万美元THE在一个只有数百万美元深度的市场中只能实现其价值的一小部分。对于流动性差的代币,即使是3倍的抵押率也无法提供真正的安全边际。借贷协议应纳入考虑市场深度、预期滑点和集中度风险的流动性调整抵押品估值。
第三道防线:清算
整个借贷模式假设,当头寸亏损时,清算人会介入并使协议恢复正常。在此次事件中,仅vTHE头寸就处理了254个清算机器人和8048笔交易。清算市场活跃且竞争激烈。但仍不够:仍有215万美元的坏账。问题不在于清算人不足,而在于流动性不足。当5300万THE进入一个只有数百万美元深度的市场时,无论机器人多么有竞争力,都无法将扣押的抵押品转化为足够的价值来偿还未偿债务。当抵押品的实现价值与其预言机报告的价值发生显著偏差时,协议不能将清算视为可靠的后备。
监控差距
九个月的累积阶段从一开始就在链上可见:一个实体接近供应上限,在低流动性资产中的集中度增加,在数月内逐渐建立头寸。Venus承认“在利用事件发生前,一些社区成员曾标记过该地址”,但指出“该地址当时完全在协议限制范围内运行”,并且作为一个无需许可的协议,“我们不能也不应仅凭怀疑就冻结或列入黑名单地址”[5]。作为其补救措施的一部分,Venus表示正在“探索链上风险监控机制,能够标记异常累积模式并触发治理级别的审查”[5]。
这表明存在关键的能力差距。传统的交易级别监控无法捕捉此次攻击:没有单笔交易是恶意的,并且在九个月的累积过程中,任何时候都没有违反规则。需要的是头寸级别的趋势检测:跟踪单个实体在低流动性资产中的集中度随时间相对于供应上限、市场深度和清算能力的变化。这需要一个在交易层之上运行的持续监控基础设施,通过跨地址和时间窗口关联链上状态变化,在系统性风险发生之前将其暴露出来。
参考文献
- [1] AllezLabs, "Venus Protocol THE Incident Timeline": https://x.com/AllezLabs/status/2033239532355858536
- [2] hklst4r, "Venus THE Attack Analysis": https://x.com/hklst4r/status/2033192855443808515
- [3] EmberCN, "Venus THE Attacker Fund Flow": https://x.com/EmberCN/status/2033204517467308144
- [4] Venus Protocol Liquidation Dashboard (Dune): https://dune.com/xvslove_team/venus-liquidations
- [5] Venus Protocol, "$THE Market Incident: What We Know So Far": https://x.com/VenusProtocol/status/2033471885259034989



