L2停机如何避免错误清算? 图 1
L2停机如何避免错误清算? · 图 1

L2排序器停机时,链的安全承诺可能仍由L1保护,但普通用户常用的RPC、提交与确认通道会受阻。少数能直接走L1强制入口的参与者拥有不同访问条件。若借贷协议照常接受价格并允许清算,用户可能在无法补仓时被处理;排序器刚恢复也需要缓冲。

停机状态为何要单独喂价

价格Feed可能仍返回一个数,但它不能说明用户是否能公平地在L2提交交易。Sequencer Uptime Feed专门记录排序器可用性,消费者读取latestRoundData中的answer和startedAt,把交易通道风险与资产价格风险分开。

两类Feed解决两类风险

  1. Sequencer Uptime Feed的answer为0表示排序器运行,1表示停机;startedAt记录状态上次改变的时间。
  2. 排序器恢复后应等待配置的grace period,再允许依赖实时价格的清算或关键操作,给普通用户恢复交互机会。
  3. 排序器状态检查不能替代价格Feed的新鲜度、答案范围和轮次检查,两类风险需要分别处理。

恢复后不能立刻开闸

answer回到0只说明排序器恢复。积压消息需要处理,钱包和普通用户也需要重新连接、补充抵押或偿还债务。协议用block.timestamp减startedAt,未超过grace period时继续暂停清算。宽限时长是风险参数,不应机械照抄示例常量。

还要继续检查价格Feed

排序器正常不代表价格答案新鲜。消费者仍要验证updatedAt、答案正值、业务允许的最大延迟和Feed地址。Arbitrum未初始化时startedAt可能为0,也要显式拒绝或处理。两个Feed任何一个异常,都不应落入“继续使用旧价格”的静默分支。

检查条件协议动作
answer0为up,1为downdown时暂停敏感操作
startedAt状态上次变化时间计算恢复后经过时间
grace period业务配置阈值未结束前拒绝清算
price feedupdatedAt、答案范围独立检查价格新鲜度

健康因子和清算比例可参考Aave清算规则;L2交易仍需按回执状态确认,任何预言机或合约地址先执行连接与地址检查

清算开关的演练步骤

  1. 从Chainlink官方页面取得目标网络Feed地址
  2. 检查answer并处理startedAt为0
  3. 按业务风险设置并测试grace period
  4. 独立验证价格Feed的新鲜度和范围
  5. 演练停机、恢复、积压与再次停机

状态Feed不会让排序器恢复

Sequencer Feed不是去中心化排序器,也不能让停机网络继续正常出块;它只是给应用一个可执行的状态信号。暂停清算也不等于暂停所有功能,存款、还款、提款和治理应逐项分析,避免把安全开关做成新的资金锁死点。