你在借贷协议里存了 10 个 ETH,借出一些稳定币。健康因子 1.65,离清算线还很远。
半夜市场急跌。你被清算了——而你手机上的行情软件显示,价格从来没跌到那个位置。
清算依据的不是你看的那个价格,是预言机报的价格。而在那几分钟里,这两个数不一样。
第四篇讲了中心化交易所的强平机制,第八篇提了跨链桥的手续费。但这两处各自还有一块没写,而它们恰好是加密市场里损失规模最大的两类机制性风险。
它们的共同点是:平时完全不可见,触发时是一次性的、不可逆的。 这个形状在第十篇已经出现过——低波动 + 尾部归零。
本文仅用于记录和普及基础知识,不构成投资建议。参与 DeFi 借贷和跨链操作可能导致资产全部损失。
第一部分:DeFi 借贷的清算
一、和 CEX 强平的根本区别
| CEX 强平(第四篇) | DeFi 清算 | |
|---|---|---|
| 执行者 | 平台的风控引擎 | 任何人,通过调用合约 |
| 触发依据 | 标记价格(多所指数) | 预言机价格 |
| 竞争性 | 无,平台垄断 | 公开竞争,机器人抢单 |
| 亏损兜底 | 保险基金 → ADL | 协议产生坏账 |
| 你能否干预 | 追加保证金 | 追加抵押品,但需要发交易上链 |
最后一行是关键差异,第五节会展开。
打个比方
CEX 的强平像一栋楼里的物业:出了事,物业来处理,你可以打电话给他们、可以补交钱、流程是内部的。
DeFi 的清算像把你的房子挂在一个公开的告示板上:一旦条件满足,街上任何一个人都可以来把它拿走,而且有一群专门盯着告示板的机器人,反应比你快几个数量级。
⚠️ 所以"追加抵押品"这个动作在两边的难度完全不同。在 CEX 你点一下按钮;在链上你要发一笔交易并等它被打包——而清算发生的那一刻,恰恰是全网最拥堵、Gas 最贵的时候。你和清算机器人在抢同一个区块的位置,而它出价比你狠。
这就是上表最后一行的实际含义:你不是没有干预的权利,你是在一场你注定跑得更慢的比赛里行使这个权利。
二、核心参数
LTV、清算阈值、健康因子
三个容易混淆的数字:
- 最大 LTV:你最多能借出多少(相对抵押品价值)
- 清算阈值(Liquidation Threshold):超过多少就会被清算。它总是高于最大 LTV,中间的差额就是你的缓冲
- 健康因子(Health Factor):
HF = Σ(抵押品价值ᵢ × 清算阈值ᵢ) / 总债务价值
HF < 1 → 可被清算
一个完整的算例
存入抵押品:10 ETH,当时 ETH = $2,000 → $20,000
该资产清算阈值:82.5%
借出:10,000 USDC
HF = 20,000 × 0.825 / 10,000 = 1.65
ETH 跌到多少会被清算?
解 X × 10 × 0.825 = 10,000
X = $1,212
即 ETH 从 $2,000 跌到约 $1,212 —— 跌幅 39.4%
清算发生时会怎样
两个参数决定后果:
- 清算罚金(Liquidation Bonus):给清算人的激励,常见 5%–10%
- 单次清算比例(Close Factor):一次最多能清算多少债务。Aave V2 是 50%;V3 在健康因子很低时允许全额
接上例,假设 HF 跌破 1,清算人偿还 50% 债务:
清算人代付:5,000 USDC
清算人取走:5,000 × 1.05 = $5,250 的 ETH(按 5% 罚金)
────────────────────────────
你的净损失:$250(就是那 5% 罚金)
罚金看起来不大。但真正的损失通常不在这里——在于你被迫在最低点卖出了抵押品,而这个「卖出」不是你决定的。
三、⚠️ 预言机风险:清算依据不是市场价
这是 DeFi 借贷最重要、也最容易被忽略的一点。
清算是按预言机报出的价格触发的,不是按你在交易所看到的价格。
这带来三类问题:
1. 更新延迟与偏差阈值。
多数价格预言机不是每个区块都更新,而是设定了触发条件(价格偏离超过某个百分比,或超过某个时间间隔)。这意味着:
- 你的 HF 显示的不是实时状态
- 剧烈行情中,预言机价格可能滞后于市场价格
2. 预言机被操纵。
如果某个协议使用流动性不足的 DEX 池作为价格来源,攻击者可以用闪电贷推动池内价格,制造虚假的清算或虚假的超额借贷。这类攻击在 DeFi 历史上反复发生,是智能合约漏洞之外最主要的攻击方式之一。
3. 预言机失效导致坏账。
反过来,如果预言机停止更新或报出错误的高价,该清算的仓位没有被清算,等到价格更新时抵押品已经不足以覆盖债务——协议直接产生坏账。
实际含义
健康因子不是安全边际。 它是一个基于外部数据源的估计值,而那个数据源本身有延迟、有偏差、可能被攻击。
所以留出的缓冲应该远大于直觉。HF = 1.2 看起来「还有 20% 空间」,但在一次剧烈波动 + 预言机跳变中,这个空间可能瞬间消失。
四、Gas 拥堵:无法自救的时刻
⭐ 这一节就是"告示板"那个比方最锋利的地方:你要补抵押品,得排队上链;而盯着告示板的机器人出价比你狠。 你不是没有自救的权利,你是在一场注定跑得更慢的比赛里行使它。
极端行情下会同时发生几件事:
价格暴跌 → 大量仓位接近清算
→ 所有人同时想追加抵押品或还款
→ 清算机器人同时抢着执行清算
→ 链上交易需求暴增 → Gas 费飙升
→ 你的救援交易被卡住或成本极高
你最需要发交易的时刻,正是最难发出交易的时刻。
Black Thursday:一个完整的案例
2020 年 3 月 12 日,加密市场单日暴跌。在 MakerDAO 上发生了一连串机制性失效:
- ETH 价格急速下跌,大量抵押仓位触及清算线
- 以太坊网络严重拥堵,Gas 费飙升
- 清算拍卖机制在当时依赖清算人出价,而大部分清算人的机器人因为 Gas 设置不足而无法参与
- 结果出现了以 0 DAI 中标的拍卖——有人几乎免费拿走了抵押品
- 协议产生了数百万美元规模的坏账,最终通过增发并拍卖 MKR 代币来弥补
这个案例值得记住的地方在于:每一个环节单独看都是设计好的,失效发生在它们同时承压的时候。 这正是第六篇「相关性在危机中趋向 1」在协议层面的版本。
五、其他你应该知道的机制
你无法和清算机器人竞争
清算是 MEV 的一部分(第四篇)。当你的仓位接近清算线时,已经有机器人在监控并等待。你不可能靠手动操作抢在它们前面自救。
唯一有效的做法是提前留足缓冲,而不是打算在临界时补救。
利率是浮动的
借款利率随资金池的利用率变化。当大量资金被借走时,利率会按曲线急剧上升。
两个后果:
- 你的借款成本可能在你没做任何操作的情况下大幅上升
- 利用率接近 100% 时,存款人无法提取 ——「随时可取」在极端情况下不成立
递归借贷(Looping)放大一切
「存入 → 借出 → 换成抵押品 → 再存入 → 再借出」这种循环可以把有效杠杆放大数倍。
它把上面所有风险同步放大,而且清算是连锁的:一次清算降低抵押品,进一步降低 HF,触发下一次清算。
「稳定币抵押借稳定币」也不是无风险
看起来两边都锚定 1 美元,价格不会变。但:
- 任何一侧脱锚(第四篇的 USDC/UST 案例),HF 立刻变化
- 预言机对稳定币的报价同样可能滞后
- 这类仓位常被加到很高的杠杆,因为「感觉很安全」——而这正是第十篇讲的低波动诱惑
第二部分:跨链桥
六、为什么桥是损失重灾区
跨链桥把大量资产锁在一个合约里,同时它的安全性取决于最弱的那个环节。这两件事加在一起,使它成为攻击回报比最高的目标。
历史上规模最大的几起加密安全事件中,桥占了相当比例:Ronin(约 6.25 亿美元)、BNB Bridge(约 5.7 亿)、Wormhole(约 3.26 亿)、Nomad(约 1.9 亿)、Harmony Horizon(约 1 亿)等,Poly Network(约 6.11 亿)的资金后来被归还。
金额均为公开报道的估算值。重点不在具体数字,而在于这些事件的成因是可以分类的。
七、桥的类型 = 信任假设
选桥的本质是选择你信任谁。
| 类型 | 谁在验证 | 主要风险 |
|---|---|---|
| 托管式 | 一个中心化实体 | 该实体作恶或被攻破 |
| 多签 / 外部验证者 | N 个签名者中的 M 个 | 凑够 M 个私钥即可盗取全部资金 |
| 乐观式 | 默认有效,设挑战期 | 验证逻辑漏洞、挑战期无人挑战 |
| 轻客户端 / 原生验证 | 在目标链上验证源链共识 | 安全性最高,成本也最高 |
| 流动性网络 | 两端各有资金池,不铸造包装资产 | 池子流动性、路由方风险 |
Ronin 事件就是第二行的教材:验证者集合较小且门槛不高,攻击者取得足够数量的私钥后,直接以「合法」签名转走资金——合约层面没有任何漏洞,被攻破的是信任假设本身。
八、包装资产的本质:它是一张欠条
这一点值得单独强调。
当你把 ETH 通过桥转到另一条链,你在目标链上拿到的不是 ETH,而是一个由桥发行的、声称由锁在源链的 ETH 支持的代币。
源链:你的 ETH 被锁在桥合约里
目标链:你拿到一张「凭此可以换回 ETH」的凭证
桥被攻破 → 源链的 ETH 没了 → 你手里的凭证失去背书 → 归零
这和第四篇那句话是同构的:
在 CEX 上,你是平台的无担保债权人。 持有包装资产,你是桥的无担保债权人。
区别只在于对手方从一家公司换成了一段代码加一组签名者。
九、历史攻击的漏洞类型
按成因分类,比记住金额有用:
| 类型 | 机制 | 例子 |
|---|---|---|
| 私钥 / 多签被攻破 | 攻击者取得足够签名权 | Ronin、Harmony |
| 签名验证漏洞 | 伪造出被合约接受的「有效」签名 | Wormhole |
| 初始化 / 升级缺陷 | 一次错误的配置让任意消息被视为已验证 | Nomad |
| 消息重放 | 同一条跨链消息被重复执行 | 多起 |
| 前端 / DNS 劫持 | 合约没问题,你被引导到假界面 | 多起 |
最后一行提醒一件事:桥的合约安全和你的操作安全是两回事。 第十四篇讲的书签访问、域名核对在这里同样适用。
十、一个判断框架
用桥之前,问这几个问题:
- 谁在验证这笔跨链? 是多签、乐观式,还是原生验证?
- 如果是多签,门槛是多少、签名者是谁? 分散程度如何?
- 合约是否可升级?升级权限在谁手里? 可升级 = 管理员可以随时改变逻辑
- 锁仓量相对于它的安全投入是否失衡? 一个锁着十亿美元、由 5 个签名者守护的桥,风险显而易见
- 有没有更安全的替代路径?
第 5 条经常被忽略
一个反直觉但正确的判断:在很多情况下,通过一家大型中心化交易所中转,反而比用跨链桥更安全。
路径 A:链 X --桥--> 链 Y
风险:桥的全部攻击面
路径 B:链 X --提到 CEX--> CEX 内部划转 --提到--> 链 Y
风险:CEX 的对手方风险(第四篇),但仅限于资金在途的时间
路径 B 的风险敞口是短暂的(几分钟到几小时),路径 A 如果你持有包装资产则是持续的。两者需要按具体情况权衡,但「桥比 CEX 安全」不是一个可以默认成立的假设。
十一、实操要点
- 不要长期持有包装资产。 跨链是为了去用,用完就换回原生资产。风险敞口的时间越短越好
- 大额分批。 先小额测试(第十四篇),确认路径通畅再转主体
- 优先原生 / 官方桥,而不是收益更高的第三方桥
- 转账前确认目标链地址格式,转错链在很多情况下不可逆
- 跨链后立刻确认拿到的是什么代币 ——同一个资产在一条链上可能有多个来自不同桥的版本,它们互不通用、流动性差异巨大
最后一条造成的实际麻烦很常见:你拿到了一个「看起来对」的代币,却发现它在目标链上几乎没有流动性,卖出滑点极高。
十二、这一篇的结论
DeFi 清算
- 健康因子 = Σ(抵押品 × 清算阈值) / 债务,HF < 1 即可被任何人清算。
- 直接损失是清算罚金(约 5%–10%),但真正的代价是在最低点被迫卖出,且不由你决定。
- ⚠️ 清算按预言机价格触发,不是市场价格。 预言机有延迟、有偏差阈值、可被操纵。健康因子不是安全边际。
- 你最需要发救援交易的时刻,正是 Gas 最贵、最难发出去的时刻。 Black Thursday 上 MakerDAO 出现 0 DAI 中标的清算拍卖并产生坏账。
- 你无法和清算机器人竞争。 唯一有效的做法是提前留足缓冲。
- 借款利率浮动,利用率接近 100% 时存款人取不出钱。
- 「稳定币抵押借稳定币」不是无风险——它只是把风险换成了脱锚,且因为「感觉安全」而更容易被加到高杠杆。
跨链桥
- 选桥 = 选择你信任谁。 多签桥的风险是「凑够 M 个私钥就能拿走全部资金」,Ronin 就是这样丢的,合约层面没有漏洞。
- 包装资产是一张欠条。 持有它,你是桥的无担保债权人——和第四篇「CEX 上你是平台的无担保债权人」同构。
- 攻击成因可以分类:私钥被攻破、签名验证漏洞、初始化缺陷、消息重放、前端劫持。记分类比记金额有用。
- 「桥比 CEX 安全」不是默认成立的假设。 CEX 中转的风险敞口是短暂的,持有包装资产的敞口是持续的。
- 不要长期持有包装资产,跨链后立刻确认拿到的是哪个版本的代币。