Liquidation 安全
LIQ-01: 清算机制在极端行情下是否仍然有效?
- 描述: 在快速下跌或剧烈波动行情中,如果清算逻辑执行效率不足、Gas 消耗过高、价格更新滞后或存在批量处理限制,可能导致抵押品价值迅速低于债务但系统未能及时清算,从而产生坏账并放大平台系统性风险。
- 建议: 对极端市场条件进行压力测试与仿真分析,确保在高波动、高拥堵环境下清算机制仍可顺利执行,同时优化 Gas 结构,避免在清算流程中引入过多的外部调用或复杂循环。
LIQ-02: 预言机操纵与价格滞后风险是否得到控制?
- 描述: 清算高度依赖预言机喂价。如果使用单一 DEX 现货价格,极易遭遇闪电贷操纵导致恶意清算;如果使用延迟喂价,又可能在极端行情下出现“穿仓”还未触发清算的情况。
- 建议: 必须使用可靠的去中心化预言机(如 Chainlink)配合 TWAP/VWAP 机制,并对价格偏差(Deviation)和数据新鲜度(Staleness)进行严格校验。
LIQ-03: 抵押不足或违约时是否可以强制清算?
- 描述: 若系统在抵押率低于阈值或贷款逾期时无法触发清算,或存在逻辑路径使某些头寸无法被清算(例如特定的资产白名单或权限拦截),将直接增加系统坏账率。
- 建议: 确保在抵押不足的任何情况下,外部清算人均可无障碍触发清算,并验证清算条件判断逻辑是否存在被绕过或被阻断的边界异常。
LIQ-04: 是否存在自清算套利空间?
- 描述: 若协议允许用户主动触发自身清算,且清算奖励(Liquidator Bonus)与手续费结构设计不合理,用户可能在处于临界状态时主动清算自己,从而低价拿回抵押品进行套利(自清算套利),削弱系统激励平衡。
- 建议: 审计清算奖励机制与罚没比例,确保“自清算/被清算损失”始终大于“主动补仓或还款的成本”,消除正向套利预期。
LIQ-05: 暂停转账或抵押操作时是否可能导致非预期清算?
- 描述: 若协议在紧急暂停(Pausable)存款、还款或追加抵押期间,仍允许预言机更新和清算执行,用户可能因系统层面无法及时操作而被强制清算,造成无辜用户的资金损失和信任危机。
- 建议: 统筹设计暂停逻辑,确保清算机制与追加抵押/还款机制的状态强绑定;在解除暂停后,应给予用户一定的“宽限期”(Grace Period)以补充抵押物。
LIQ-06: 是否存在通过抢跑(Front-running)防止清算的操控空间?
- 描述: 恶意借款人可能通过监控 Mempool,在前置交易(front-running)中极小额度地增加抵押物或偿还微小债务,使 HF(健康因子)勉强回到安全线上,从而阻断清算人的清算交易(即“粉尘清算阻断交易”)。
- 建议: 优化清算触发判断,对还款或追加抵押设置最小限额或冷却时间,或者在清算执行时允许一定范围内的滑点或状态宽容。
LIQ-07: 小额仓位(Dust Amounts)是否具备合理的清算激励?
- 描述: 若小额仓位的清算奖励不足以覆盖以太坊主网的 Gas 成本,清算人将主动放弃这些仓位,导致协议内积压大量“粉尘坏账”。
- 建议: 在借款时设置最低借款金额(Minimum Borrow Amount)下限,或者引入协议级别的“批量清算/兜底清算”机制,由协议自身出资清理小额坏账。
LIQ-08: LTV 与健康因子计算是否包含累计利息?
- 描述: 若在 Loan-to-Value(LTV)计算中未实时计入已累计但未支付的借款利息,将低估真实的债务规模。这可能使部分仓位在账面上健康,但实际已触达清算线。
- 建议: 在任何涉及 LTV、健康因子与清算判定的逻辑中,必须优先执行
accrueInterest()或动态计算当前最新债务总额。
LIQ-09: 坏账(Bad Debt)处理机制是否健全?
- 描述: 当抵押品价值因市场崩溃跌破债务价值(资不抵债)时,清算人无利可图将停止清算。此时协议若没有合理的坏账社交化(Socialized Loss)机制或保险基金(Insurance Fund)兜底,将陷入死亡螺旋。
- 建议: 引入协议费率储备金(Reserve Factor)吸收坏账,并在合约层面设计当
Collateral Value < Debt时的坏账记账与拍卖销账机制。
LIQ-10: 闪电贷与大额清算的连环踩踏(清算级联)风险?
- 描述: 清算人在清算大额仓位时,往往需要通过闪电贷借出资金并在 DEX 中抛售抵押品换回资金。集中的抛压会导致 DEX 价格暴跌,触发预言机喂价降低,进而引爆下一轮清算(清算级联/连环爆仓)。
- 建议: 对大头寸采用部分清算(Close Factor,例如每次最多只能清算 50% 债务)机制,并使用时间加权(TWAP)平滑价格波动,防止恶意闪电贷连环狙击。
LIQ-11: 清算奖励(Penalty/Bonus)计算是否存在精度或溢出错误?
- 描述: 清算奖励计算公式往往涉及债务代币精度与抵押代币精度的转换计算。如果存在除以零、精度截断或向下取整导致的不一致,清算人可能获得计算异常的奖励(过高导致协议亏损,过低导致无人清算)。
- 建议: 严格遵循先乘后除原则,针对
decimals不一致的 Token(如 18 位的 WETH 和 6 位的 USDC)进行严密的精度对齐与边界测试。
LIQ-12: 是否存在用户无法正常还款的永久债务风险?
- 描述: 在某些极端条件下,例如费用结构异常、存款池利用率(Utilization Rate)达到 100% 导致提款/还款逻辑卡死,用户可能处于无法完全偿还债务的状态,形成“永久负债”。
- 建议: 审查借贷与资金池底层逻辑,确保无论流动性多紧张,单纯的“偿还债务”操作都绝不应被阻塞。
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
