返回 Web3 笔记
Day 96

Day 96:JELLY 事件深度复盘 — 低流动性资产操纵与架构反思

JELLY事件全链路复盘:自我清算攻击手法、HLP金库$1350万浮亏、验证者强制下架争议、中心化vs去中心化取舍、防御方案设计

2026-04-13
交易HyperliquidJELLY安全事件清算操纵Day96

核心概念

JELLY 事件概述

一句话定义:2025年3月,攻击者通过在 Hyperliquid 上建立巨额低流动性代币(JELLYJELLY)空头头寸,然后在外部交易所拉盘,利用 HLP 金库被迫接盘的机制漏洞,造成 HLP $1,350万未实现亏损的市场操纵事件。

类比理解:想象你在一个赌场(Hyperliquid)对赌一场冷门球赛的比分。你先押"主队输"(做空),然后自己去赛场收买球员让主队赢(拉盘)。赌场的保险基金(HLP)被迫赔付——因为它自动接了你的对手盘。最终赌场经理(验证者)紧急宣布比赛无效,强行以你想要的比分结算。

为什么这个事件重要?

JELLY 事件的重要性:
═══════════════════════════════════════

1. 暴露了 Perp DEX 最核心的风控问题
   └── 低流动性资产 + 高杠杆 = 操纵温床

2. 挑战了"去中心化"的叙事
   └── 验证者手动干预 ≈ 中心化交易所的熔断

3. 揭示了 HLP 设计的结构性缺陷
   └── 做市 + 保险 双重角色冲突

4. 对整个 Perp DEX 赛道的产品设计产生深远影响
   └── 此后所有协议都在加强低流动性资产风控

知识点详解

知识点 1:攻击手法全链路还原

JELLY 攻击时间线 (2025年3月):
═══════════════════════════════════════

背景:
├── JELLYJELLY:一个低流动性 meme 代币
├── 现货市场深度极薄:全市场流动性 < $500 万
├── Hyperliquid 上线了 JELLY 永续合约
└── OI 上限设置不够保守

攻击步骤:

Step 1: 建立巨额空头
━━━━━━━━━━━━━━━━━━━
├── 攻击者在 Hyperliquid 开 $410 万 JELLY 空头
├── 使用多个账户分散建仓
├── 仓位大小远超 JELLY 现货流动性
└── 故意设置低保证金,让仓位容易被清算

Step 2: 自我清算(故意)
━━━━━━━━━━━━━━━━━━━━━━
├── 攻击者停止追加保证金
├── 同时在外部交易所小幅拉盘 JELLY 现货
├── 触发 Hyperliquid 上的清算
├── 清算后的"水下空头"被转给 HLP 金库
│   └── HLP 的保险功能:自动接盘无法市场化清算的仓位
└── 攻击者失去了保证金,但"毒丸仓位"已转移

Step 3: 外部拉盘
━━━━━━━━━━━━━━━━━━━━━━
├── 攻击者在多个外部交易所大量买入 JELLY 现货
├── JELLY 价格暴涨 429%($0.01 → $0.05+)
├── HLP 持有的空头仓位浮亏急剧扩大
├── HLP 面临 $1,350 万未实现亏损
└── 无法在市场上平仓(流动性不足)

Step 4: 攻击者获利
━━━━━━━━━━━━━━━━━━━━━━
├── 攻击者在其他账户做多 JELLY
├── 从拉盘中获利
├── 提取 $626 万利润
└── 总计:花 $410 万保证金 → 赚 $626 万

整个攻击逻辑图:
━━━━━━━━━━━━━━━━━━━━━━

  攻击者
  ├── 开空头 ($410万) ──→ Hyperliquid JELLY 永续
  ├── 故意清算 ──────────→ 水下仓位转给 HLP
  ├── 拉盘 JELLY 现货 ──→ 外部交易所 (+429%)
  └── 做多获利 ($626万) ←─ Hyperliquid + 外部

  HLP 金库
  ├── 被动接盘空头
  ├── 面临 $1,350万 浮亏
  └── 无法在市场平仓(流动性不足)

知识点 2:协议响应与争议

Hyperliquid 紧急响应:
═══════════════════════════════════════

时间线:
├── T+0min:HLP 浮亏被社区发现
├── T+~2min:验证者投票强制下架 JELLY 永续合约
├── 结算价格:$0.0095(vs 预言机显示 $0.50)
└── 手动覆盖预言机价格

具体操作:
1. 验证者多数投票下架 JELLY 市场
2. 以 $0.0095 结算所有未平仓位
3. 攻击者的多头仓位以极低价格结算(亏损)
4. HLP 的空头以 $0.0095 结算(大幅减亏)
5. 部分做多的普通用户也被强制以低价结算

争议焦点:
═══════════════════════════════════════

支持干预方:
├── "不干预会导致 HLP 和所有用户更大损失"
├── "保护多数用户利益 > 维护少数交易者权利"
├── "传统交易所也有熔断和强制结算机制"
├── "验证者投票 = 去中心化治理的一种形式"
└── "pragmatism > idealism"

反对干预方:
├── "2 分钟内决策,这不是去中心化治理"
├── "$0.0095 结算价格是人为操纵"
├── "Code is Law 原则被违反"
├── "与传统交易所的行为无异"
├── "正常做多 JELLY 的用户也被强制亏损结算"
└── "如果验证者可以随时改规则,那和 CEX 有什么区别?"

知识点 3:根本原因分析

根因分析(五个"为什么"):
═══════════════════════════════════════

Why 1: 为什么攻击能成功?
└── OI 上限不足:$410 万空头 > JELLY 现货流动性

Why 2: 为什么 OI 上限设置不当?
└── 没有动态关联现货深度:上币时静态设定

Why 3: 为什么 HLP 会接盘毒丸仓位?
└── HLP 设计:做市 + 保险双重角色
    └── 保险角色要求自动接盘所有清算残余

Why 4: 为什么 HLP 无法在市场上平仓?
└── 低流动性:JELLY 全市场深度 < $500 万
    └── $410 万空头无法被市场吸收

Why 5: 为什么需要人工干预?
└── 缺乏自动化风控机制
    └── 没有代码化的熔断器/OI 动态限制

根因总结:
═══════════════════════════════════════

技术层面:
├── 1. OI 上限没有与现货流动性动态挂钩
├── 2. HLP 做市+保险角色冲突
├── 3. 缺乏自动熔断机制
└── 4. 低流动性资产的保证金要求不够高

治理层面:
├── 1. 上币审查流程不够严格
├── 2. 紧急响应依赖人工而非代码
├── 3. 验证者权力边界不清
└── 4. 缺乏透明的危机处理 SOP

知识点 4:与传统金融对比

传统交易所 vs Hyperliquid 紧急措施:
═══════════════════════════════════════

维度          传统交易所 (NYSE/CME)      Hyperliquid
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
熔断触发      预设规则(-7%/-13%/-20%)  无(人工判断)
决策过程      分钟级(预编程自动)         2 分钟(验证者投票)
透明度        规则事前公开                 事后解释
结算方式      按最后正常交易价格           人为设定 $0.0095
赔偿机制      有明确的投资者保护           无明确补偿方案
监管          SEC/CFTC 监管               无监管
追溯权        可以起诉/仲裁               难以追责

关键差异:
├── 传统金融:规则事前明确 → 自动执行 → 事后可追诉
└── Hyperliquid:规则不完整 → 人工判断 → 事后争议

PM 洞察:
├── 去中心化 ≠ 没有规则
├── 最好的机制是"代码化的规则"
├── 紧急措施应该是预编程的,不是临时决策
└── 传统金融的熔断机制值得借鉴

知识点 5:防御方案设计

多层防御方案:
═══════════════════════════════════════

Layer 1: 动态 OI 上限
━━━━━━━━━━━━━━━━━━━
公式:Max OI = f(现货深度, 流动性, 波动率)

├── 实时采集:
│   ├── 前 5 个 DEX 的订单簿深度
│   ├── 24h 现货交易量
│   └── 30d 波动率
│
├── 计算:
│   Max OI = min(
│     现货深度 × 0.3,      # 不超过现货深度的 30%
│     24h 交易量 × 0.5,    # 不超过日交易量的 50%
│     LP 池规模 × 0.1       # 不超过 LP 池的 10%
│   )
│
└── 更新频率:每小时重新计算

Layer 2: 分级保证金
━━━━━━━━━━━━━━━━━━━
├── 低流动性资产:维持保证金 ≥ 10%(vs 主流 0.5%)
├── 杠杆限制:低流动性资产最高 5x(vs 主流 50x)
├── 动态调整:波动率↑ → 保证金↑
└── 大仓位附加:仓位 > OI 的 10% → 额外保证金

Layer 3: HLP 风控
━━━━━━━━━━━━━━━━━
├── 分离做市和保险角色
│   ├── 做市金库:正常做市盈亏
│   └── 保险金库:专门覆盖清算残余
├── 单市场敞口上限:HLP 总值的 2%
├── 累计亏损阈值:单日 > 1% → 暂停接盘
└── 低流动性市场:HLP 不自动接盘

Layer 4: 代码化熔断器
━━━━━━━━━━━━━━━━━━━━━
├── 价格熔断:5 分钟内价格变动 > 30% → 暂停交易 5 分钟
├── 仓位熔断:单账户增仓 > OI 的 20% → 延迟 10 分钟
├── 流动性熔断:市场深度下降 > 50% → 降低杠杆上限
└── 所有规则预编程,无需人工干预

Layer 5: 清算优化
━━━━━━━━━━━━━━━━━
├── 分级清算:每次最多清算 25%
├── 拍卖清算:清算仓位通过拍卖而非市价单
├── 延迟清算:低流动性市场用 TWAP 清算(1-5 分钟)
└── Keeper 竞争:多个 Keeper 竞标接盘,减少滑点

知识点 6:对 PM 的启示

产品经理的关键思考:
═══════════════════════════════════════

1. "去中心化"是光谱,不是二元选择
   ├── 完全去中心化 ≠ 无治理
   ├── 关键是治理过程透明、规则事前明确
   └── 最好的方式:规则代码化,紧急情况链上投票

2. 产品设计需要"防御性思维"
   ├── 假设攻击者会利用每一个漏洞
   ├── 低流动性 + 高杠杆 = 操纵温床
   └── 每个新功能上线前做"红蓝对抗"

3. 角色分离原则
   ├── 做市和保险是不同的业务
   ├── 混合角色 = 利益冲突
   └── 参考传统金融:做市商 ≠ 保险公司

4. 用户信任是最大资产
   ├── 一次不透明的干预 > 长期去中心化叙事的损害
   ├── 透明的 SOP > 英雄主义救火
   └── 事后复盘和改进 > 回避问题

5. 传统金融的智慧不能丢
   ├── 熔断机制:有效的制度设计
   ├── 风险限额:基本的风控常识
   └── 投资者保护:去中心化也需要

实践练习

练习 1:设计 OI 上限方案

任务:为 HIP-3(无许可上币)后的新市场设计 OI 上限

输入参数:
├── 代币 X 现货日交易量:$200 万
├── 最大流动性深度(2% 价格范围):$50 万
├── 30 日波动率:150%(高波动)
├── HLP 总值:$28 亿

计算过程:
├── 基础 OI 上限 = min($200万 × 0.5, $50万 × 0.3) = min($100万, $15万) = $15万
├── 波动率调整:150% > 100% → 乘以 0.5 → $7.5万
├── HLP 敞口限制:$28亿 × 0.001 = $280万 → 不限制
└── 最终 OI 上限:$7.5万

结论:$7.5 万的 OI 上限意味着攻击者无法建立足够大的仓位来操纵
对比 JELLY:$410 万 >> 应有的 OI 上限

练习 2:设计紧急响应 SOP

去中心化交易所紧急响应 SOP:
═══════════════════════════════════════

Level 1 (自动):代码化熔断
├── 触发:价格 5min 变动 >30%
├── 动作:暂停新开仓 5 分钟
├── 通知:全网广播
└── 恢复:价格稳定后自动恢复

Level 2 (自动):风控升级
├── 触发:保险基金消耗 >5%/小时
├── 动作:降低所有杠杆上限 50%、提高保证金率
├── 通知:全网广播 + 官方公告
└── 恢复:需要 12 小时无事件

Level 3 (半自动):验证者投票
├── 触发:保险基金消耗 >20% 或单一市场异常
├── 动作:验证者 2/3 投票决定
├── 选项:暂停市场 / 强制结算 / 其他
├── 时限:1 小时内必须决策
└── 透明度:所有投票记录上链

Level 4 (手动):紧急下架
├── 触发:系统性风险或确认攻击
├── 动作:验证者 3/4 投票下架市场
├── 结算:使用 TWAP 价格(过去 1 小时)
├── 赔偿:保险基金赔偿无辜受影响用户
└── 复盘:48 小时内发布事后分析报告

面试题

问题 1:如何设计 OI 上限防止低流动性资产操纵?

简短回答:OI 上限应该动态关联现货流动性——取现货深度的 20-30%、日交易量的 30-50%、LP 池规模的一定比例中的最小值,并根据波动率实时调整,确保没有人能建立超过市场吸收能力的仓位。

详细回答

  1. 公式设计:Max OI = min(现货深度×30%, 24h成交量×50%, LP池×10%) × 波动率调整系数
  2. 数据来源:多个 DEX 的实时订单簿深度、CEX 价格做交叉验证
  3. 更新频率:每小时自动重新计算,极端波动时每5分钟
  4. 分级执行:接近上限时提高保证金、达到上限时停止开仓
  5. HLP 保护:HLP 对单市场敞口额外设上限(如总值的0.1%)
  6. 上线策略:新市场初期超保守(OI上限极低),观察两周后逐步放开

问题 2:去中心化交易所是否需要"紧急刹车"机制?

简短回答:需要,但应该尽量代码化——用预编程的熔断规则替代人工干预,人工干预只作为最后防线,且必须通过链上投票和事后透明复盘。

详细回答

  1. 现实需求:不可能预见所有攻击向量,紧急机制是必要的安全阀
  2. 代码优先:80%的紧急情况应由预编程规则自动处理(价格熔断、OI限制)
  3. 治理作为兜底:20%的极端情况通过验证者快速投票(2/3多数)
  4. 透明度要求:所有干预记录上链、48小时内发布复盘报告
  5. 补偿机制:被干预影响的无辜用户应从保险基金获得补偿
  6. 传统金融参考:NYSE的熔断机制(-7%/-13%/-20%)是有效的制度设计
  7. 核心原则:去中心化 ≠ 无治理,而是治理过程透明可验证

明日预告

Day 97:2025.10 闪崩复盘 — $193亿清算与ADL优化

  • 美国对华关税触发大规模清算
  • 162 万账户爆仓、$193.5 亿清算
  • Hyperliquid 35,000 次 ADL 事件
  • ADL 过度使用造成 $6.3 亿不必要损失
  • 清算系统优化方案设计