风险管理

DeFi 风险检查指南:从 TVL、收益到清算与退出

用七层检查表拆解 DeFi 风险:追踪资金流与收益来源,核对资产、权限、预言机、清算边界,并用小额存取验证退出路径。

DeFi 风险七层检查与小额退出验收流程

DeFi 风险是资金流、底层资产、管理权限、价格数据、清算与退出条件共同造成损失的可能。检查时,顺序比工具更重要:用 7 层流程先确认钱去了哪里、收益由谁支付,再核对权限、预言机和退出;只要其中一层无法复验,就先不入金。

先看结论

  • TVL 说明某种统计口径下的规模,不是协议安全评分。
  • APY 必须拆成基础收益、奖励代币、复投假设和实际成本。
  • 审计不能约束管理员,也不能替底层协议、资产和预言机担保。
  • 借贷策略先算清算边界,流动性策略先算资产偏离和退出结果。
  • 真正完成研究的信号,是能用小额走完存入、查询、赎回和到账闭环。

本文不是推荐协议,也不给任何收益承诺。它提供的是一张可以反复复用的检查表:每个结论都要对应官方文档、链上地址、公开参数或交易回执。

DeFi 风险先看什么:一张七层检查表

DeFi 风险先看什么 一张七层检查表的流程与风险要点示意

研究一个协议时,可以按下面这张协议风险矩阵推进。我的判断是,统一安全分不值得依赖,因为它会把足以暂停的单点风险平均掉。只有对协议做了 7 次检查,并留下相应证据,才进入小额验收。

层级 要回答的问题 可接受的证据 一票暂停
资金流 资产从钱包去了哪里,最后拿到什么 官方合约、区块浏览器、存取回执 不知道授权给谁或最终持有什么
收益 谁在付钱,收入来自真实需求还是补贴 利率模型、费用来源、奖励规则 只能用新资金或币价上涨解释
资产 底层资产、凭证资产和包装关系是什么 代币合约、储备与赎回说明 同名资产无法核对合约
权限 谁能升级、暂停、改参数和转移资产 管理员、多签、时间锁、事件记录 高权限地址和变更机制不透明
预言机 价格从哪里来,多久更新,异常时怎么办 数据源、时间戳、偏差与备用机制 价格陈旧仍可继续借贷或赎回
清算 什么条件触发损失,谁执行清算 阈值、公式、仓位压力测试 无法算出接近清算的边界
退出 怎样赎回,最终收到什么,是否依赖队列 小额退出、目标资产、交易哈希 无法完整退出或出口流动性不明

不要把七项压缩成一个总分。一个协议可能合约权限较稳,却暴露于脆弱的底层资产;也可能 TVL 很大,但退出依赖少数流动性池。统一分数会把真正需要暂停的单点风险平均掉。

如何画资金流,确认最后持有什么

先把操作写成一行,不点存入按钮:

钱包资产 → 授权对象 → 存款合约 → 凭证资产 → 外部策略 → 收益资产 → 赎回合约 → 最终到账资产

再为每个箭头补四个字段:网络、合约地址、资产符号、控制方。页面只写“存入 USDC”并不够,你可能拿到生息凭证、流动性池份额或金库份额;外层金库还可能把资产转入第三方借贷、交易或挖矿策略。

以 Beefy 这类收益聚合金库为例,官方文档说明,用户存入后获得代表金库份额的 mooToken,策略会把资产投入外部池、农场或借贷协议并自动复投。也就是说,风险不只来自金库本身,还来自底层策略、第三方协议和资产。Beefy VaultsBeefy Strategies 可以用来核对这一层结构,但具体金库仍要逐个查。

资金流表至少记录:

字段 示例写法 检查重点
输入资产 某网络上的某代币合约 不只看符号,核对合约
授权对象 Router、Vault 或 Pool 合约 是否为官方当前地址
收到资产 存款凭证、LP 或金库份额 是否可转让、怎样赎回
外部依赖 借贷池、DEX、跨链资产 每多一层就多一个故障点
收益资产 原资产或奖励代币 谁支付、能否卖出
退出结果 原资产、组合资产或包装资产 是否需要额外兑换和网络费

如果官方页面、文档和链上交互显示的地址不一致,停止操作,不要依赖搜索广告或私信客服解释。

TVL 为什么不是安全评分

TVL(Total Value Locked,总锁仓价值)是把协议合约中的资产按价格折算后的规模指标。它适合观察规模和趋势,不适合直接判断安全。

DefiLlama 方法文档说明,其 TVL 统计会避免在同一协议内把存款凭证再次存入产生的价值重复计算。它的纳入规则还会审查没有真实交易或借款、少数地址为激励刷出的流动性,以及循环或缺少足额支持的资产。这个规则本身就说明:一个 TVL 数字背后有口径、资产组成和真实使用问题。

看 TVL 时至少拆成五个问题:

  1. 增长来自净存入,还是底层币价上涨?
  2. 资产是否集中在少数地址或单一代币?
  3. 是否包含包装资产、协议自有代币或循环抵押?
  4. 同一协议在不同网络的退出条件是否一致?
  5. TVL 下降时,费用、借款和赐回是否仍正常?

高 TVL 可以降低“小到无人使用”的可能性,却不能证明合约没有漏洞、管理员不会改参数、预言机不会失真、稳定币不会脱锚或所有人能同时退出。常见的误区是把参与人数和资产规模当成别人已经替自己完成了安全审查。

APY 从哪里来,收益由谁支付

APY(Annual Percentage Yield,年化收益率)只有在收益来源和复投假设明确时才有意义。页面上的一个数字,可能把性质完全不同的收入合并了。

收益来源 谁在支付 必查问题 主要损失路径
借款利息 借款人 借款需求和利率是否真实 利率反转、坏账、清算
交易手续费 交易者 交易量和你的份额是否持续 无常损失、价格影响
协议业务分配 协议收入 收入是否真正归存款人 分配规则和治理改变
奖励代币 项目方或治理 发行周期、解锁和流动性 稀释、价格下跌、无法卖出
杠杆循环 自己增加借贷敞口 净利差能否覆盖成本 利率上升、清算、网络拥堵

实际记录不要只抄“APY 12%”一类页面数字,而要拆成:基础利率、奖励币种、奖励数量、复投频率、网络费、交换滑点、借款成本和退出成本。动态数字只记录核验时间,不当成未来承诺。

三个快速判断很实用:

  • 没有新奖励代币时,基础收益还剩多少?
  • 收益代币下跌或无法卖出时,本金能否原路退出?
  • 市场需求下降时,谁还有理由继续支付这笔收益?

如果回答只能依赖“后面会有更多用户”或“代币还会涨”,它更接近价格投机,不是稳定现金流。

如何检查底层资产与无常损失

如何检查底层资产与无常损失的流程与风险要点示意

同样叫“美元稳定币”的资产,发行方、储备、赎回、跨链方式和合约都可能不同。包装资产、生息资产和流动性池份额更不能只看简称。

对每个底层资产记录:原生网络、代币合约、发行或托管方、赎回方式、价格来源、主要流动性和极端情况下的暂停权限。如果池中有两个或更多资产,还要写清价格偏离时池子会留下什么。

Uniswap 对无常损失的说明指出,当池中代币价格相对入池时发生变化,流动性提供者相对单纯持币可能出现价值损失。手续费收入不能自动覆盖这种资产再平衡损失。

因此,“稳定币池波动小”不能推导出“没有无常损失”或“本金安全”。一旦某个资产脱锚,套利会改变池内资产比例,退出时可能收到更多弱势资产。检查时要分别模拟:单边下跌、单边上涨、脱锚、流动性骤降和奖励代币归零。

管理员、升级权限和时间锁怎么看

智能合约公开,不等于没有控制者。研究权限时,核心问题是“谁能做什么、多久后生效、用户是否有时间退出”。

OpenZeppelin Access Control把权限控制定义为限制谁能调用特定功能。文档特别提醒 DEFAULT_ADMIN_ROLE 权限高;OwnableAccessControl 可以防止未授权访问,却不能阻止有权限的管理员主动执行危险操作。TimelockController 的延迟则能给用户审查维护操作和退出的时间。

至少检查以下权限:

权限 要找的链上证据 风险问题
升级实现合约 Proxy、实现地址、升级事件 能否替换核心逻辑
修改参数 角色、治理提案、执行账户 能否调高费用或改变清算阈值
暂停和恢复 Pauser、Guardian 暂停时能否退出,谁能恢复
资产转移 Treasury、Emergency withdraw 是否能转走用户或策略资产
更换策略 Vault 与 Strategy 事件 是否会新增未经评估的第三方依赖

多签比单一账户分散,但还要看签名门槛、签名人独立性和时间锁。审计报告也必须对得上当前合约地址、实现版本和审计范围;一个“Audited”徽章不能替代这些检查。

预言机为什么会影响清算与提款

借贷、衍生品和部分金库需要用外部价格判断抵押价值、清算线或份额净值。价格不是连续、绝对真实的数值;它有数据源、触发条件和更新时间。

Chainlink Data Feeds说明,价格源通常在偏差超过阈值或达到 heartbeat(心跳间隔)时更新,并非连续流式刷新。使用方应检查最新更新时间和合理价格边界;如果数值超过可接受的陈旧时限,应暂停操作或进入备用模式。不同资产和网络的心跳与偏差条件可能不同。

核对预言机时,记录:

  • 协议使用哪个数据源和合约地址;
  • updatedAt 等时间戳是否在可接受范围;
  • 市场快速波动或停盘时采用什么保护;
  • 价格异常时能否继续借款、清算、存入或提款;
  • 包装资产和低流动性资产是否依赖二级市场报价。

不要因为“用了知名预言机”就结束检查。协议必须正确读取、校验并处理异常数据,否则可靠的数据源也可能被错误使用。

Aave 健康因子和清算边界怎么算

Aave 健康因子和清算边界怎么算的流程与风险要点示意

借贷协议先算损失边界,再看利差。Aave 官方给出的健康因子公式是:

Health Factor =(抵押品总价值 × 加权平均清算阈值)÷ 借款总价值

Aave 清算说明明确,健康因子低于 1 表示进入清算风险;官方也没有给所有资产通用的“安全健康因子”。因为抵押资产波动、借款资产、参数、相关性和个人补仓能力都不同。

做仓位压力测试时,不需要猜一个永久安全值,而要填四组情景:

情景 输入变化 要观察的结果
抵押品下跌 价格分级下调 健康因子何时接近 1
借款资产上涨 债务价值分级上调 是否比预期更快触线
利率上升 借款成本持续增加 净收益是否变负
网络拥堵 补抵押或还款延迟、费用上升 是否来得及执行应对动作

记录当前健康因子只是起点。还要明确监控频率、预警位置、可用的还款资产、补仓网络和最迟停止线。无法持续监控的仓位,就不应把缓冲压得很小。

聚合金库为什么还要检查底层策略

聚合金库把多步操作封装成一次存款,便利并没有消除底层依赖。Beefy 官方说明,Vault 自动执行策略和复投,但审计不等于无风险,用户仍暴露于智能合约、底层协议和代币失效等风险。

研究金库时需要同时看两层:

  1. Vault 层:存款和赎回合约、份额计算、费用、暂停与升级权限。
  2. Strategy 层:资金被投入哪个池、农场或借贷协议,策略是否可替换,退出要经过几笔交易。

一条策略可能串联代币、DEX、奖励合约、借贷池和价格源。任意一层异常都会传到金库。金库页面显示的 APY 只反映某种估算,不能说明每一层都可退出。

把底层依赖画成树:金库为根,策略合约为第二层,外部协议、池和资产为叶子。每个叶子都标注官方地址、权限、退出方式和失败影响。看不见策略或无法解释外部依赖时,不要因为操作简单就放松检查。

如何完成小额存入与退出验收

研究最终要落到一笔可追踪的小额闭环。小额不是“绝对安全”,它的作用是在地址、网络、授权、份额和赎回仍有未知项时限制损失范围。

按下面顺序执行:

  1. 从官方文档交叉确认网络、前端域名和合约地址。
  2. 准备独立的小额交互账户,只放本次所需资产和网络费。
  3. 记录输入资产、授权对象、授权额度和预计收到的凭证。
  4. 先存入小额,保存交易哈希并在区块浏览器确认成功。
  5. 核对收到的凭证资产、份额和协议页面记录是否一致。
  6. 等待一个可观察周期,确认收益展示的币种与来源。
  7. 赎回全部小额,记录是否需要等待、领取或额外兑换。
  8. 核对最终到账资产、数量、网络费和全部交易哈希。
  9. 操作结束后检查剩余授权,按需要降低或撤销。

验收表可以直接复制:

协议 / 网络 / 官方域名:
输入资产合约 / 数量:
授权对象 / 额度:
收到的凭证资产合约 / 数量:
底层策略与外部依赖:
存入交易哈希:
赎回条件 / 等待时间:
最终到账资产 / 数量:
赎回交易哈希:
实际网络费 / 滑点 / 其他成本:
剩余授权处理:
本次未验证项:

小额退出成功,只证明这条路径在当时可用。准备增加金额前,还要重新看权限变化、TVL 组成、流动性、预言机状态和市场压力。

哪些信号出现时应立即暂停

下面任一项出现,都不要用“收益很高”抵消:

  • 页面、官方文档和区块浏览器的合约地址对不上;
  • 无法说明存入后得到什么资产,或退出会收到什么;
  • 收益来源只能靠奖励发行、新资金进入或币价上涨解释;
  • 管理员、升级、暂停、转移资产或更换策略权限不透明;
  • 审计报告与当前部署版本、地址或功能范围不匹配;
  • 预言机时间戳陈旧,协议仍允许敏感操作;
  • 借贷仓位无法算出接近清算的压力边界;
  • 小额存入后不能按文档完成赎回和到账;
  • 私信客服要求助记词、私钥、远程控制或额外转账解锁;
  • 你发现自己在用预期收益为未解决风险找理由。

暂停不等于断言项目一定有问题,而是证据暂时不足。把未解决项写进记录,等官方说明、链上状态或小额验收能够回答后再继续。

常见问题

TVL 高就代表 DeFi 协议安全吗?

不代表。TVL 是按特定口径统计的协议资产规模,不能替代对资产质量、合约权限、预言机、清算和退出流动性的检查。

页面显示的 APY 就是最终收益吗?

不是。APY 可能包含利息、手续费、奖励代币和复投假设,还要扣除价格变化、无常损失、借款成本、网络费和滑点。

审计过的 DeFi 协议可以放心使用吗?

审计只能证明特定代码、版本和范围曾被检查,不能保证当前部署、底层资产、管理员行为、预言机和市场条件没有风险。

Aave 健康因子多少才安全?

Aave 官方没有给所有资产通用的安全值;健康因子低于 1 会进入清算风险。应根据抵押品波动、借款资产、预言机和自己的补仓能力保留缓冲。

小额存入成功能证明协议安全吗?

不能。小额存入和退出只能验证当时账户、网络、合约和赎回路径可用,无法证明未来代码、权限、价格、流动性或大额退出条件不变。

发现哪些信号时应该停止入金?

无法解释资金流和收益来源、官方地址与链上不一致、管理员权限不透明、预言机数据陈旧、清算边界算不清或小额无法完整退出时,都应暂停。

行动清单

行动清单的流程与风险要点示意

第一次研究时,按这条最短路线执行:

  1. 画出资金流,确认最后持有什么。
  2. 拆开 TVL 组成和 APY 来源,不抄单一数字。
  3. 核对每个底层资产、合约地址和外部依赖。
  4. 查管理员、升级、暂停、策略更换和时间锁。
  5. 查预言机数据源、更新时间和异常处理。
  6. 借贷仓位做价格、利率和网络拥堵压力测试。
  7. 用小额完成存入、查询、赎回和到账闭环。
  8. 保存交易哈希和未解决项,条件变化后重新检查。

如果无法用自己的话回答“钱经过哪里、收益谁支付、谁能改规则、什么条件会损失、怎样退出”,研究就还没有完成。

参考资料