原文標題:《HashKey 郝凱:深入解析 Perpetual Protocol 永續合約機制設計》
作者 | 郝凱
做市商廣泛存在于交易市場,他們通過做市制度來維持市場的流動性,滿足交易者的交易需求,隨著 DeFi 項目的興起,自動化做市商(AMM)受到越來越多的關注,AMM 利用數學函數來確定資產的價格,在推動 DeFi 發展和提供流動性方面發揮了巨大作用。
永續合約很好地契合了加密貨幣市場上交易者的特點和需求,已經成為中心化交易所在期貨合約市場的主要產品,作為實現去中心化交易所(DEX)的關鍵技術,AMM 已經被成功應用到現貨交易中,一些 DeFi 項目希望通過 AMM 的方式實現永續合約,Perpetual Protocol 是其中的典型代表。根據下表中數據,Perpetual Protocol 的交易量在衍生品類去中心化交易所是最高的。
表 1:與去中心化交易所相關的主要 DeFi 項目,數據來源:www.oklink.com,2021 年 3 月 15 日
項目設計
AMM 通過完全去中心化的方式實現兩種或多種資產之間的鏈上交易,利用數學函數來確定資產的價格。例如,Uniswap 使用恒定乘積函數 x*y=k,當 x 的供給增加時,y 的供給就會減少,以保持恒定的乘積 k,反之亦然,但是,AMM 還存在很多限制,包括無常損失、資本使用效率低和無法使用杠桿等,
虛擬自動化做市商
針對當前 AMM 存在的問題,Perpetual Protocol 引入了虛擬自動化做市商(vAMM)。所謂虛擬自動化做市商,指的是交易者的真實資產沒有存儲在 vAMM 中,而是存儲在管理所有 vAMM 抵押品的智能合約中,
對于流動性而言,AMM 的流動性來源于流動性提供者在流動性池中提供的資產。vAMM 的流動性不依賴流動性提供者,直接來自于 vAMM 之外的抵押品。在 vAMM 中,交易者本身可以彼此提供流動性,不需要其他流動性提供者,因此,vAMM 始終存在流動性,
對于無償損失而言,由于 vAMM 不需要其他流動性提供者預先放入資產來提供流動性,交易者的真實資產存儲在管理抵押品的智能合約中,因此 vAMM 模式下不存在無償損失,
vAMM 也采用恒定乘積函數 x*y=k,并且 Perpetual Protocol 允許交易者使用 1-10 倍的杠桿進行永續合約交易,與 AMM 不同的是,vAMM 不需要真實的流動性提供者來提供資產,x、y 和 k 值是由創建者設定的,
由于 k 值是虛擬的,可以根據交易量、持倉量和資金費率等市場數據進行調整。未來,k 值可能會以分布式自治組織的形式來決定。通過調整更高的 k 值,vAMM 可以有效解決交易滑點的問題。但 k 值也不能設置的太高,否則會影響套利者的參與動力。
交易流程
創建者創建 vAMM,并設定 vAMM 中虛擬資產的初始數量 x0 和 y0,對于任意時刻,資產 x 和資產 y 都滿足恒定乘積函數 x*y=k,資產 x 相對于資產 y 的初始價格為 y0/x0,
表 2:交易流程示意圖
當交易者進行平倉時,他們需要拿出持有的資產 x,并根據恒定乘積函數計算得到最終實際獲得的資產 y 的數量,
資金費率
為了確保永續合約的價格和現貨價格之間的長期趨同,不會偏離現貨價格太多,Perpetual Protocol 也引入了資金費率機制,Perpetual Protocol 每隔一個小時進行資金費率的結算,資金費率決定了付款方和收款方:如果永續合約的價格明顯高于現貨價格,那么資金費率為正,多頭需要支付資金給空頭;反之,如果永續合約的價格明顯低于現貨價格,那么資金費率為負,空頭支付資金給多頭。并且,價格偏離的程度越高,資金費率就會越高,如果永續合約的價格與現貨價格出現明顯的偏差,會有套利者在兩個市場上進行套利,同時,Perpetual Protocol 也采用標記價格以避免市場操縱的影響,
Perpetual Protocol 的資金費率的計算如下,其中,TWAP 表示時間加權平均價格。
項目代幣 PERP
PERP 是 Perpetual Protocol 的項目代幣,主要作用包括抵押和治理,PERP 持有人可以抵押代幣并按比例獲得交易手續費的分紅獎勵,同時,PERP 持有人還可以參與項目治理,例如參與投票上線新的交易對和修改項目參數等,
案例分析
目前,Perpetual Protocol 支持 ETH/USDC、BTC/USDC 和 DOT/USDC 等交易對,每個交易對都用 USDC 作為保證金。以 ETH/USDC 為例進行分析,假設 ETH 的交易價格為 2000 USDC,創建者設置 ETH 和 USDC 的初始比例為 1:2000。例如,創建者將 vAMM 的初始狀態設置為 100 vETH 和 200000 vUSDC,具體交易流程如下表所示,
表 3:案例分析
交易者 A 希望以 1000 USDC 作為抵押品,然后 10 倍做多 ETH,A 將 1000 USDC 存入抵押品的智能合約中。Perpetual Protocol 將 A 的 10000 vUSDC (1000 USDC 的 10 倍杠桿)計入 vAMM。此時,vAMM 中 USDC 的數量為 210000,根據 x*y=k 計算 A 收到的 vETH 的數量,即 4.7629 個(100-100*200000/210000),相當于 A 持有 4.762 個 ETH 多倉。
此時,交易者 B 也希望以 1000 USDC 作為抵押品,然后 10 倍做多 ETH,B 將 1000 USDC 存入抵押品的智能合約中。Perpetual Protocol 將 B 的 10000 vUSDC (1000 USDC 的 10 倍杠桿)計入 vAMM,此時,vAMM 中 USDC 的數量為 220000,根據 x*y=k 計算 A 收到的 vETH 的數量,即 4.329 個(95.2381-100*200000/220000),相當于 B 持有 4.329 個 vETH 多倉。
然后,交易者 A 拿出持有的 4.762 個 vETH 進行平倉。此時,vAMM 中 vETH 的數量為 95.671,根據 x*y=k 計算得到 vUSDC 的數量為 209049.8,A 的最終獲利為 950.2 個 USDC (220000-209049.8-10000)。
此時,交易者 B 拿出持有的 4.329 個 vETH 進行平倉,此時,vAMM 中 vETH 的數量為 100,計算得到 vUSDC 的數量為 200000,B 的最終獲利為-950.2 個 USDC (209049.8-200000-10000),即交易者 B 虧損了 950.2 個 USDC。
與中心化交易所永續合約的對比
交易對手方
中心化交易所的永續合約屬于場內標準化交易產品,永續合約是一個雙向交易市場,根據中心化交易所的撮合機制,交易者在開倉交易時必須要有對手盤才能成交。也就是說,對于做多的交易者,必須有做空的對手方才能完成交易,反之亦然。
但 Perpetual Protocol 的交易者不需要交易對手方。從上一章的案例中可以看出,在 vAMM 模式中沒有真實的資產在進行交易,交易者在開倉時不需要反方向的交易對手方。在不考慮交易手續費等磨損的條件下,生態中交易者的盈利等于其他交易者的虧損,并且與交易方向無關。即使 Perpetual Protocol 中兩個交易者的交易方向是一致的,還是可能會出現一位交易者盈利而另一位交易者虧損的情況。
考慮一種極端情況,Perpetual Protocol 生態中所有交易者都建立多頭頭寸或都建立空頭頭寸,這在中心化交易所的永續合約市場上是不可能發生的,但對于 Perpetual Protocol 是可能的。此時,Perpetual Protocol 市場的價格將會明顯偏離現貨市場的價格,理性的套利者會進行做空以獲得資金費率金。如果沒有套利者加入,多頭需要向風險準備金支付資金費率金。
盈虧計算
中心化交易所的永續合約可以分為幣本位合約和 USDT 本位合約,幣本位合約也稱為反向合約,交易者使用對應的加密貨幣作為保證金來進行交易,最終也按對應的加密貨幣進行結算,例如,交易者參與 BTC 的幣本位合約,那么交易者要先持有一定數量的 BTC 作為保證金,其最終收益也按 BTC 來計算。USDT 本位合約也成為正向合約,其保證金和結算幣種都使用 USDT。參與 USDT 本位合約的交易者不需要持有不同種類的加密貨幣,只持有 USDT 就可以參與所有交易品種的 USDT 本位合約,同時,USDT 本位合約的保證金的價值不會發生變化,其盈虧曲線是線性的,假設在 10000 美元的價格分別在幣本位永續合約和 USDT 本位永續進行 BTC 開倉 100 張合約,盈虧曲線如下圖所示,
圖 1:幣本位合約和 USDT 本位合約的盈虧曲線
對于幣本位合約,交易者的盈虧需要根據持倉均價、平倉成交均價、合約面值和合約張數來進行計算:多倉盈虧 =(1/ 持倉均價-1/ 平倉成交均價)*平多倉合約張數 *合約面值;空倉盈虧 =(1/ 平倉成交均價-1/ 持倉均價)*平空倉合約張數 *合約面值,
對于 USDT 本位合約,交易者的盈虧需要根據持倉均價、平倉成交均價、合約面值和合約張數來進行計算:多倉盈虧 =(平倉成交均價-持倉均價)*平多倉合約張數 *合約面值;空倉盈虧 =(持倉均價-平倉成交均價)*平空倉合約張數 *合約面值,
對于 Perpetual Protocol 的交易者來講,他們最終的盈虧計算與開倉和平倉時的整個系統的狀態有關。
風險準備金
中心化交易所都為永續合約提供風險準備金。如果交易者的永續合約被強制平倉,交易所就會啟動清算引擎接管交易者賬戶上剩余的倉位,并使用風險準備金來進行反向平倉,風險準備金的存在相當于交易所在強制平倉的價格向交易者提供了無限流動性。如果交易所的風險準備金不夠接管被強平用戶的剩余持倉,交易所將會按照規則對獲利方進行自動平倉,主流的中心化交易所都積累了大量的風險準備金以保護交易者的利益。
Perpetual Protocol 也存在風險準備金。當市場上清算不及時未能清算未抵押頭寸,或市場不平衡需要 vAMM 支付資金費率金時,就會需要使用風險準備金。如果風險準備金用完,系統將鑄造新的代幣 PERP 在市場上出售以償還債務。
與中心化交易所相比,上線時間不久的 Perpetual Protocol 所積累的風險準備金非常有限,而且風險準備金主要是自身代幣 PERP,價值也不穩定。因此,Perpetual Protocol 的風險準備金都用戶的保護力度比較小,
思考和總結
Perpetual Protocol 通過 vAMM 的模式在一定程度上解決了 AMM 的流動性和無償損失問題。Perpetual Protocol 采用 Layer 2 解決方案,交易在 xDai Chain 進行處理,這意味著交易的效率更高且沒有 Gas 費,同時,Perpetual Protocol 實現了去中心化的永續合約,
vAMM 模式中沒有真實的資產在進行交易,交易者在開倉時不需要反方向的交易對手方,這就與 Synthetix 等項目一樣,生態中交易者的盈利等于其他交易者的虧損。在這種情況下,交易者即使判斷對交易方向,還是可能會出現虧損,
Perpetual Protocol 的永續合約交易深度遠小于中心化交易所,風險準備金的規模也無法與中心化交易所相比較,同時,Perpetual Protocol 的交易者的盈虧計算比較復雜。因此,當前 Perpetual Protocol 的用戶體驗還有待改進,中心化交易所的永續合約更適合交易者進行參與。