一、问题背景:DeFi 中的“PnL 抽取攻击”
假设攻击者想操纵系统赚“假利润”。
他可以:
- 用小资金在 Hyperliquid 上拉高某资产价格(比如推高标记价 Mark Price);
- 然后从另一账户提取这次拉高带来的“未实现利润(unrealized PnL)”;
- 之后价格再跌回去,但他已经拿走了钱。
在普通 DEX 上(没有额外设计的系统),
攻击者可以利用系统对“标记价格”的信任来反复抽走利润。
问题就在于:
系统允许“未平仓但浮盈”的保证金被转出。
这就像你买了股票涨了,但没卖出,就去银行抵押那部分账面利润贷款。
如果价格是被你自己操纵上去的,系统就会被骗。
二、Hyperliquid 的思路
它不是靠“身份识别”(比如限制多账户),
而是通过纯粹的资金逻辑设计,让这类攻击从资本角度变得“划不来”。
Hyperliquid 的做法是:
区分两类保证金操作:
- “保证金转出/转入”
- “新开仓或加仓”
并且为这两种操作设计了不同的保证金要求(margin requirement)。
举个例子:
假设:
- 你开了一个 20x 的多仓;
- 价格上涨 5%,你账面上赚了 100%(因为 20 倍杠杆 × 5% 涨幅)。
这时你想:
把这部分“账面利润”提出来,不平仓。
在传统系统中:
系统会允许你直接把这笔“未实现盈利”转出到钱包里。
→ 这就可能被攻击者利用。
在 Hyperliquid 系统中:
系统对“转出”操作要求更高的保证金安全边界。
规则大意:
只有当你的仓位盈利到足够多(比如 18.3% 的缓冲区间),
才能安全提取部分 PnL 而不触发潜在风险。
否则,系统会认为:
价格稍微波动就可能让这笔转出变成系统损失。
三、数学逻辑:为什么是“约 18.3%”
文章里提到的计算:
(20% - 2 × 维护保证金比率 / 3) = 18.3%
解释如下:
- 20% 是一个示例的“极限波动区间”(用 20x 杠杆时的对应区间)。
- 维护保证金比率假设是 3%;
- 计算后得到大概 18.3%。
这意味着:
如果攻击者想在系统中伪造可提取利润,
他得把价格操纵到距离爆仓点近 18% 的幅度。
这非常难、成本极高。
四、效果
| 对象 | 效果 | 
|---|---|
| 正常用户 | 正常交易、盈利提取仍然流畅。比如涨 5% 后,你就能部分提取利润,不影响仓位。 | 
| 攻击者 | 想利用假拉盘来抽钱,必须拉盘接近 20%,成本极大、几乎不可能反复执行。 | 
所以:
攻击从理论上可行 → 变成经济上不划算。
五、核心理念总结一句话
Hyperliquid 的机制不是靠“谁能做什么”,
而是靠“做坏事会非常贵”。
六、形象比喻(让你一秒懂)
想象一个赌场:
- 普通赌场:你赢了就能马上提现。攻击者可以假装赢钱、操控筹码、骗钱。
- Hyperliquid 的赌场:你赢了也得先等一段时间(或满足特定安全区间),才能提走奖金。
 如果你作弊想提早拿钱,代价极高。
这就是“分离转账与开仓保证金”的本质。