链上永续合约的挑战:从虚拟AMM到中心化做市商

深入解析链上永续合约的挑战与演进

在研究Solana生态中的永续合约协议后,我逐渐理解了为什么该公链如此重视中心化订单簿(CLOB)的实现。实际上,在区块链上构建永续合约自动做市商(AMM)是一项极其艰巨的任务,以至于一些项目不得不转向拥抱中心化做市商模式。

尽管某协议提出的虚拟AMM(vAMM)解决了在现货AMM基础上增加杠杆的问题,但缺乏中心化做市商的支持,使得永续合约AMM必须通过预设的数值规则来解决对手盘匹配、市场深度和价格偏离等复杂问题。

这导致某协议v1版本在参数调整和公式表达上变得异常复杂。该协议需要根据合约价格偏离状态定义不同的市场情况,如最健康市场、亚健康市场等,共计四种情况。同时,还需要评估多空失衡状态,规定在特定状态下是否对用户仓位进行清算,以及相应的调整系数解决方案。

相比之下,中心化订单簿的设计就显得简洁明了。这也解释了为什么某些公链对订单簿模式情有独钟。

随后,某协议推出了限价单功能,但其使用体验仍与传统订单簿有所不同。目前,该协议上的交易由三种流动性机制支持:

  1. 即时拍卖,由做市商提供流动性
  2. 限价订单簿,同样由做市商提供流动性
  3. AMM,在无做市商介入时由协议自身的AMM提供流动性

然而,从今年8月7日起,该协议将彻底放弃AMM模式,全面转向中心化做市商模式。

虚拟AMM面临以下核心问题:

  1. 资金费率持续流失。协议的保险基金相当于在做空波动率,在市场剧烈波动时容易被套利者蚕食。
  2. 难以维持价格锚定,需要不断补贴以保持期货价格与现货价格的一致性。
  3. 路径依赖性问题。价格偏离越远,维持成本就越高。

甚至连虚拟AMM的创始协议也在探索新方向,计划在新版本中采用更主动的做市策略,以解决早期版本中的资金费率流失问题。新版本将整合某知名DEX的功能,团队认为去中心化永续合约的未来在于CLOB和AMM模式的有机结合。

这种转变实质上是将原本依赖数学公式定价的虚拟AMM,转变为由做市商主动报价的模式。风险从协议层面转移到了市场参与者身上。

目前来看,AMM模式可能更适合现货交易。而链上合约交易仍需在去中心化和中心化之间寻找平衡点。

接下来,让我们深入探讨虚拟AMM的机制,这也是最复杂的部分。

虚拟AMM(vAMM)机制解析

某永续合约协议的虚拟AMM采用了与某知名DEX相同的恒定乘积公式X * Y = K。

对于现货AMM来说,用户直接基于流动性池(LP)进行交易,LP资产的比价反映了现货价格。而虚拟AMM实际上是一个两层结构,LP作为抵押品,真实资产存储在智能合约的保险库中。虚拟AMM本质上是用户开杠杆后的一种价格发现机制。

举例说明:

  1. 假设ETH当前价格为4000 USDT,虚拟AMM池子初始状态为100 ETH和400,000 USDT。

  2. 用户A使用100 USDT作为保证金,10倍杠杆做多ETH:

    • 用户A向智能合约存入1000 USDT作为保证金。
    • 协议将10,000 USDT(100 USDT × 10倍杠杆)记入虚拟AMM,根据恒定乘积公式X * Y = K计算用户A应得的ETH数量。

    初始状态:X * Y = K,100 ETH * 400,000 USDT = 40,000,000 用户A存入1000 USDT后,Y变为410,000 USDT。 X = K / Y = 40,000,000 / 410,000 ≈ 97.5609 ETH 用户A实际获得约2.44 ETH。

    此时虚拟AMM内的状态更新为97.5609 ETH和410,000 USDT。

  3. 用户B随后使用1000 USDT作为保证金,10倍杠杆做空ETH:

    • 用户B向同一合约存入1000 USDT。
    • 协议将-10,000 vUSDT记入虚拟AMM,根据恒定乘积公式计算用户B的空头仓位大小。

    用户B做空了2.4391 ETH,此时虚拟AMM内的状态恢复为100 ETH和400,000 USDT。

价格机制采用资金费率机制,类似中心化交易所永续合约的资金费率支付。具体公式借鉴了某知名交易所的设计。

这里有一个关键点,对于理解虚拟AMM与传统中心化交易所合约的区别至关重要。

在中心化交易所,每个多头都有对应的空头,即存在真实的对手方,所以持仓用户会支付资金费率。交易所仅作为交易场所,不承担任何持仓风险。而在虚拟AMM中,情况完全不同。

可以看到,虚拟AMM利用X * Y = K来定价,而资产作为保证金质押到合约内。本质上,用户是依据价格曲线交易,而非与真实对手方交易。

因此,一旦面临多空失衡,协议需要想办法吸引真实对手盘,而吸引的方式是提供补贴。

这就使得补贴来源的稳定性和资金池变得异常重要,直接关系到项目的生存。

尤其在单边行情或价格剧烈波动时,资金池相当于做空波动率。而做空波动率的特征恰恰是平时小赚,波动时大亏。

某协议在虚拟AMM基础上进行了创新,推出了动态AMM(dAMM),其特点是参数可配置,用来应对标的价格偏离、多空对手盘不对称、深度等问题。但仍有一些问题无法完全解决。

动态AMM机制解析

某协议采用动态AMM,在虚拟AMM的基础上改进,具有以下可配置参数:

  • Peg:价格乘数。控制合约价格与现货价格的偏离度,几乎是通过硬控的方式,让合约价格锚定现货价格。

  • K:控制流动性深度,K值越大,深度越好,滑点越少。反之亦然。在合约价格极度偏离现货价格的情况下,降低K值有助于引起价格波动,将合约价格向现货价格靠拢。

  • 费用池:收入主要用于调整Peg和K。

结合预言机价格(合约价格)与标记价格(现货价格)偏离度的四种情况,形成了复杂的调整策略。

  1. Peg(锚定乘数)

当虚拟AMM合约价格偏离市场现货价格时,用于快速调整价格,使标的价格接近真实市场价格。

公式: Price = (Y / X) * Peg 价格 = (基础资产 / 计价资产)* Peg乘数

调整方案: 每笔交易后检查预言机-标记价格偏离度。如果偏离度超过设定阈值(当前为10%),会有两种选项:

a) 若费用池储备充足,则直接调整Peg,让价格重新锚定; b) 若费用池储备不足,就会比较两种成本:

  • 费率补贴,吸引套利的成本
  • 直接重新锚定的成本

通常情况下,会考虑先降低K值,减少流动性深度,使价格更容易推动。

调整后,亏损方的仓位会真实计损,而盈利方仓位会由费用池补足。

  1. K(流动性深度)

控制滑点大小。K值大,代表两个资产X和Y就多,自然K值越大滑点越小。

由于该协议基于虚拟AMM,其中X * Y = K起到加杠杆之后的定价作用,并非真实LP资产,所以K值是可以调整的。

小结:

  • K值控制价格对交易量的敏感度
  • Peg调整价格的绝对水平
  1. 费用池

不仅是收入来源,更是市场调节工具。用途包括调整Peg值、K值后需要补给盈利交易者的盈利,以及支付资金费率失衡。

费用池主要收入来源:

  1. 吃单手续费,基础费率0.05-0.1%
  2. 清算费用,50%给费用池
  3. 资金费率收入

这种模式高度依赖费用池的健康状况,可能导致协议在手续费方面失去竞争优势。更本质的问题是,收入增长是线性的(交易量 * 手续费 = 收入),但支出可能随着行情走单边变成指数级增长(价格偏离的平方 * 持仓量 * 时间 = 支出)。

从长期角度看,支出可能无法完全被收入覆盖。这也是该协议最终决定放弃虚拟AMM,转而拥抱中心化做市模式的原因。

总结

在虚拟AMM模式下,用户交易永续合约需存入保证金,用于潜在的清算。而X * Y = K公式实际上变成了用于定价的曲线。

基于此,某协议改变了定价方式,引入Peg锚定乘数,同时让K值可调,以此来使合约价格锚定现货价格。在调整过程中,用户仓位的盈利由费用池补充。

因此,费用池的重要性大大提升。但长期来看,在极端行情下,支出可能呈指数级增长,而收入只能线性增长,导致协议对失衡仓位形成净补贴。

目前看来,仅通过数学公式控制链上AMM这条路径似乎难以实现。永续合约的本质仍需要中心化做市商的参与,以实现对手方的平衡。

ETH-1.79%
此页面可能包含第三方内容,仅供参考(非陈述/保证),不应被视为 Gate 认可其观点表述,也不得被视为财务或专业建议。详见声明
  • 赞赏
  • 7
  • 转发
  • 分享
评论
0/400
RugPull Therapistvip
· 1小时前
就知道堆公式解决不了做市难题...
回复0
绿蜡烛收集家vip
· 11小时前
早说谁不都是用cex了解过永续 哪想那么多
回复0
Web3探险家_Linvip
· 08-08 20:05
*调整虚拟单片眼镜* 说实话,去中心化金融如何反映古代市场动态真是令人着迷...
查看原文回复0
MEVSandwichMakervip
· 08-08 14:59
问题不大吧 薄壳永续玩久了就知道了
回复0
LayerHoppervip
· 08-08 14:48
挖过矿爆过仓,发推也要讲干货
回复0
MetaLord420vip
· 08-08 14:33
干嘛要绕这么大弯 中心化多香
回复0
just_another_fishvip
· 08-08 14:30
做市难啊 唉
回复0
交易,随时随地
qrCode
扫码下载 Gate APP
社群列表
简体中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)