鏈上永續合約的挑戰:從虛擬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-0.87%
查看原文
此頁面可能包含第三方內容,僅供參考(非陳述或保證),不應被視為 Gate 認可其觀點表述,也不得被視為財務或專業建議。詳見聲明
  • 讚賞
  • 6
  • 轉發
  • 分享
留言
0/400
绿蜡烛收集家vip
· 9小時前
早说谁不都是用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)