免责声明:金色财经所有资讯仅代表作者个人观点,不构成任何投资理财建议。请确保访问网址为(jinse.com.cn) 举报

    深度解剖:USR脱锚后的Morpho金库闪电贷NAV操纵攻击

    2026 年 3 月 22 日,Resolv 协议遭遇私钥泄露,攻击者凭空铸造了 8000 万枚无抵押 USR,导致 USR 从 $1 暴跌至 $0.025。

    这场灾难的余波不仅仅停留在 USR 持有者身上,一群更聪明的人,在 Morpho 上执行了一场精密的金库 NAV 操纵攻击。

    本文将一步步拆解这个攻击的底层逻辑。

    一、先理解Morpho的两层架构

    在聊攻击之前,你必须先理解 Morpho 的架构设计,否则后面完全看不懂。

    Morpho 的世界分为两层

    底层

    Morpho Blue(也叫 Morpho Core)。 这是一个极简的、不可升级的借贷协议。它的设计哲学是"无许可"——任何人都可以创建借贷市场,任何人都可以存入、借出、清算。

    每个市场由五个参数唯一确定:贷款资产、抵押品资产、清算线(LLTV)、预言机地址、利率模型。

    市场之间完全隔离,一个市场出事不会波及其他市场。

    上层

    MetaMorpho Vault(金库)。 这是一个 ERC-4626 标准的金库,相当于一个"基金产品"。

    用户把 USDC 存进金库,金库管理员(Curator)负责把这些钱分配到不同的 Morpho Blue 市场里去放贷赚利息。

    用户持有的是金库份额(shares),份额的价值随着利息累积而增长。

    WkLcthJiSc5SnYqvTXm3lYNivzUNWfyYTKSwAqdf.jpeg

    核心公式——每股净值(NAV / Price Per Share):每股净值 = totalAssets / totalSupply

    totalAssets 是金库在所有市场里的供应头寸总和(包括已借出的部分,因为那些是"应收账款")。totalSupply 是金库发行的总份额数。利息累积时,totalAssets 增长但 totalSupply 不变,所以每股净值上升——这就是你赚到钱的原理。

    二、supply(onBehalf) —— 任何人都能替金库存钱

    这是整个攻击的第一个关键点。

    在 Morpho Blue 里,supply() 函数有一个 onBehalf 参数。这个设计的本意是方便第三方代付——比如自动化策略合约可以替用户存钱。

    但它是完全无许可的任何人都可以指定任何地址作为 onBehalf,包括金库地址。

    Morpho 官方文档明确警告:"Warning: Anyone can supply on behalf of the vault so the call to updateWithdrawQueue that expects a market to be empty can be griefed by a front-run."

    当你替金库 supply 了 1 万 USDC,金库在这个市场的 supply position 就增加了 1 万,totalAssets 也就增加了 1 万。但金库的总份额(totalSupply)没有变——因为没有人通过金库的 deposit() 函数存入新资金。

    结果:每股净值被抬高了。

    正常情况下,这等于给金库"捐钱"——你自掏腰包替所有股东增加了收益,傻子才这么做。但在特定条件下,这可以被利用。

    三、Supply Cap = 0 ≠ 安全

    USR 脱锚后,一些金库管理员紧急将 USR/USDC 市场的 Supply Cap 设为 0,意味着管理员不能再往这个市场投钱了。听起来问题解决了?

    问题在于:Supply Cap 是金库层面的限制,不是 Morpho Blue 层面的限制。

    kuDt8xeaHbXW2NqonavTbIProIDfNtvX5tsWS1xL.jpeg

    金库管理员能控制的是金库自己的 _supplyMorpho() 内部函数。

    但 supply(onBehalf=vault) 是直接跟 Morpho Blue Core 合约交互的,完全绕过了金库层面的一切逻辑:supply queue、supply cap、allocator 权限检查,通通不经过。

    用一个比喻:金库管理员关了前门(Cap=0),但攻击者从 Morpho Core 的后门把钱直接塞了进来。

    四、写死的预言机——坏账的隐身衣

    这是第二个关键条件。

    USR/USDC 市场的预言机被设置为固定 1:1。也就是说,无论 USR 在外部市场跌到多少,在 Morpho 的世界里,1 USR 永远等于 1 USDC。

    i3I8FgMSmuafOPulet74YdrZ53opNou2eu7bA2eh.jpeg

    为什么金库管理员会用固定预言机?因为 USR 是"稳定币",正常情况下价格波动很小。固定预言机可以避免短期流动性不足导致的"假清算"。

    但当 USR 真的脱锚了,固定预言机就成了灾难——借款人用不值钱的 USR 做抵押借走了足额 USDC,协议却浑然不知。

    Morpho 的坏账处理机制在这里完全失效了——V1.0 的实时反映和 V1.1 的均摊机制,前提都是协议能识别到坏账。

    预言机写死了,就什么都识别不到。

    五、攻击全流程——五步闭环

    现在所有条件齐了。以下是在单笔交易内完成的原子操作:

    PMsHN3tMxF8wjMGYa2Rbwf5LIxhIXlwbco38KjY9.jpeg

    六、为什么一定需要闪电贷?

    这是最容易被忽略的问题。攻击的利润来源是"虚增 totalAssets 后按份额比例分配增值"。如果攻击者不存闪电贷,他持有 0% 的份额——就算把 totalAssets 抬高了天,增值全归其他股东,他自己一分钱拿不到。

    6NjKZhVPW2taxGUfhLyJRp7PvhFDtSoriQdOUa7I.jpeg

    七、谁亏了钱?

    攻击者多拿走的 12,300 USDC 不是凭空出现的。这笔钱来自金库在其他健康市场的真实流动性。

    金库赎回时,会按照 withdraw queue 的顺序从各个市场提取 USDC。USR 市场里的 USDC 已经被借光了,提不出钱。所以赎回的资金来自其他市场——比如 wETH/USDC、cbBTC/USDC 等正常运作的市场。

    7nhFXDs3GBY9Oy5H5CDIZJ30PYHb52qtCJURQ1he.jpeg

    八、三层漏洞的叠加效应

    这次攻击不是单一漏洞,而是三个设计问题的叠加:

    fPElPZ6zEeaVt9rbQCWCCN5Rz8h4JFdJ4fMQQuqn.jpeg

    结语

    Morpho 的极简设计哲学——无许可、不可升级、最小治理——在大多数时候是优势。但这次事件表明,极简设计的代价是将更大的责任推给了上层参与者

    协议不做预言机验证,管理员就必须自己做好。协议不限制 supply(onBehalf),金库层面就需要额外的防护。

    对于存款人而言,"选择正确的 Curator"比"选择 Morpho"本身更重要。协议是工具,工具是否安全取决于使用它的人。

    jinse.com.cn 0
    好文章,需要你的鼓励
    jinse.com.cn 0
    好文章,需要你的鼓励
    参与评论
    0/140
    提交评论
    文章作者: / 责任编辑:

    声明:本文由入驻金色财经的作者撰写,观点仅代表作者本人,绝不代表金色财经赞同其观点或证实其描述。

    提示:投资有风险,入市须谨慎。本资讯不作为投资理财建议。

    金色财经 > 菠菜菠菜谈FinTech > 深度解剖:USR脱锚后的Morpho金库闪电贷NAV操纵攻击
    • 寻求报道
    • 金色财经中国版App下载
      金色财经APP
      iOS & Android
    • 加入社群
      Telegram
    • 意见反馈
    • 返回顶部
    • 返回底部