推薦:市場牛熊不定又遇上俄烏局勢緊張加劇全球市場動盪,點擊此處加入PANews群組一起抱團取暖
作者:Keegan小鋼
來源: 剖析DeFi產品之ApeX Protocol:概述篇
前言
ApeX Protocol 是一款新的DeFi 產品,其定位為衍生品協議,但與目前流行的dYdX 和Perp 都大不相同。 ApeX Protocol 有幾個關鍵特性是其它衍生品協議所不具備的:
Permissionless:用戶可以無需許可地創建任何交易對
Two-way Futures:既支持正向合約,也支持反向合約
eAMM:Elastic AMM,只需提供一種真實資產作為流動性的AMM
PCV:Protocol Controlled Value,即協議控制價值
編寫此文時,ApeX Protocol 主網還未上線,但測試網已經運行了一段時間了。合約代碼的Github 地址也開放了,審計報告也公開了。
官網:https://apex.exchange
Github:https://github.com/ApeX-Protocol/apex-protocol
審計報告:https://github.com/ApeX-Protocol/apex-protocol/blob/master/docs/audit_report.pdf
eAMM 模式
ApeX 協議的底層交易模式採用了eAMM 模式,稱為彈性自動化做市商模式。
每個交易對的底層實現,是和UniswapV2 類似的恆定乘積做市商模式。不同的地方,首先是流動性提供者(LP) 無需像Uniswap 一樣提供兩種真實資產來注入流動性,而只需注入單種真實資產,該種資產也稱為基礎資產,而另一種資產則是彈性供應的虛擬資產。
比如,交易對WETH/USDC,WETH 為基礎資產,USDC 為虛擬資產。那LP 提供流動性時,只需要注入WETH,而USDC 的數量則是自動計算出來的。當添加的流動性為初始流動性時,會從價格預言機讀取出交易對的價格,根據價格算出USDC 要同步增加到eAMM 池子裡的儲備量。而添加的流動性不是初始流動性的話,則根據池子自身的價格來計算USDC 的增量。
舉個例子,假如LP 注入0.2 個WETH 來添加初始流動性,從價格預言機讀取到的WETH 價格為3000 USDC,那就往池子裡增加0.2 ETH + 0.2 * 3000 USDC 的儲備量,其中,0.2 ETH 是真實資產,而0.2 * 3000 = 600 USDC 則是自動供應的虛擬資產。若非初始流動性,而池子自身的價格為2900 USDC,那就往池子裡增加0.2 個ETH 的真實資產和0.2 * 2900 = 580 USDC 的虛擬資產。
LP 提供流動性之後,和UniswapV2 一樣也會得到代表其份額的LP Token。 LP 要移除流動性時,則將LP Token 返回給eAMM 池子進行銷毀,而池子則根據份額佔比返回對應的基礎資產給到LP。
另外,eAMM 與其他AMM 模式還有一個地方不同,那就是引入了Rebase 機制。當eAMM 池子的價格與外部預言機的價格偏差較大時,就可觸發Rebase,此時就會自動增加或減少eAMM 池子裡虛擬資產的數量,讓eAMM 的價格和外部市場價格保持一致。這種機制將會使得eAMM 的價格與外部市場價格始終保持在一個合理的偏差範圍內,避免出現獨立的插針行情。
永續合約
ApeX 協議目前提供的衍生品為永續合約,既支持正向合約,也支持反向合約。比如,交易對WETH/USDC 和WBTC/USDC,若保證金都為USDC,則是正向合約;若保證金分別為幣本位的WETH 和WBTC,那就是反向合約。
在ApeX 底層智能合約實現中,一個交易對是用baseToken - quoteToken 的方式表示的,baseToken 為保證金資產,而quoteToken 則為虛擬資產。因此,對於WETH/USDC 交易對,其正向合約在底層智能合約的交易對為USDC - WETH,而反向合約則為WETH - USDC,在底層是兩個不同的交易對。
不管是正向合約還是反向合約,任何交易對都可由任何用戶無需許可地自由創建,這也是其它衍生品協議目前還不具備的一個特性。
從交易流程上來說,交易者通過充值保證金資產來進行開多或開空。在底層智能合約層面,每個賬戶在每個交易對都只會維護一個倉位,可以對該倉位進行追加或減少保證金,也可以進行加倉或減倉,支持全部平倉也支持部分平倉,甚至可以反向開倉。
還有,其它衍生品交易協議基本都是設置固定的最大開倉槓桿倍數,因此,指定保證金下的最大開倉量也是固定的。而ApeX 協議的最大開倉量則是動態計算的,其計算公式如下:
該公式主要涉及到幾個參數:開倉保證金率MarginRate(open)、用戶開倉保證金數量Margin(acc)、eAMM 池子的深度vUSD(pool)、價格MarkPrice 和滑點保護的係數beta。
其中,影響最關鍵的是開倉保證金率和池子的深度。當用戶的開倉保證金相比池子的深度來說比較小的話,那最大開倉量主要由開倉保證金率決定,該保證金率也相當於一個固定的最大開倉倍數。而隨著用戶的開倉保證金提高,第二項對最大開倉量的限制就會逐步增大,使用戶實際可開槓桿倍數隨著資金量增大而減小。這種方案,兼顧倉位安全性的同時,也提高了資金利用率。
PCV
在大部分DeFi 應用中,流動性都是其最關鍵的存在,流動性就是價值所在。但在DeFi 1.0 的應用中,其流動性基本都是控制在用戶手裡的,用戶可以自由地添加流動性,也可以隨時撤走流動性。很多應用都會通過各種激勵措施來刺激用戶保留其流動性,但一旦減低了激勵或其它競品提供了更高的激勵,那用戶就很可能會撤走流動性。所以,本質上,是用戶控制了價值,DeFi 協議是很被動的。
為了改善這種情況,DeFi 2.0 就有了PCV 的嘗試,嘗試由協議來控制價值。 PCV 的基本思想就是流動性不再單純地全控制在用戶手裡,而是協議本身也可以擁有流動性。如此,這些由協議控制的流動性就可以長期鎖在協議裡,可以保證穩定的流動性。而且,因為流動性還是可以產生收益的,不斷累積的收益就可以通過不同策略實現再增值,從而讓協議擁有更多價值。
ApeX 協議主要是通過Bonding 機制來實現PCV。其基本原理是通過出售打折的APEX(ApeX 協議的治理代幣),來捕獲用戶的真實資產,並將得到的資產注入到eAMM 中添加流動性。如此一來,這些流動性就是協議所擁有,而不再是用戶所擁有。
而且,協議自身控制的這些流動性,還可以不斷從eAMM 中賺取到交易手續費,累積的手續費就可以通過不同策略复投來產生更多收益。
技術架構
在技術實現上,整個ApeX 協議其實可以劃分為主協議和外圍協議兩大塊,主協議實現了最核心的交易功能,而外圍協議則包含了好幾個模塊,主要包括Bonding、Staking 和Referral 等。
下面我們來看看ApeX 協議的技術架構,這裡主要說的是智能合約層面的架構,這也是整個協議的核心。
主協議
主協議的架構圖如下:
參與主協議的用戶群體中,主要有四種角色:
Trader:交易者,使用協議的主要用戶群體。
LP:Liquidity Provider,流動性提供者,也是Trader 的交易對手方。
Liquidator:清算人,可對達到清算門檻的持倉單執行清算操作,並得到清算激勵。
Arbitrager:套利者,當內部格與外部預言機價格偏離較大時,就可通過rebase 調整市場價格。
主協議主要包括以下合約:
Router:Trader & LP 與主協議交互的主要入口。
Factory:用來創建和查詢交易對的合約,為了避免單Factory 出現合約代碼超size 的問題,所以拆分為了PairFactory、AmmFactory、MarginFactory 三個合約。
Amm:實現eAMM 的底層合約,每個交易對都有一個Amm 合約實例。同時繼承了LiquidityERC20,即LP Token 合約。
Margin:管理用戶倉位的底層合約,每個交易對也有一個Margin 合約實例,和Amm 實例綁定。同時繼承了Vault 接口,管理著真實資產。
Config:管理著主協議用到的所有配置參數。
PriceOracle:價格預言機合約。
外圍協議
外圍協議的架構則如下:
外圍協議主要包含了三個模塊:Bonding、Staking 和Referral。對應三種參與者:Bonder、Staker 和Trader。
Bonder 可通過bond 的方式,支付某種資產給到BondPool 以折扣價格獲得APEX,BondPool 會將收到的資產轉投入Amm 提供流動性,並將獲得的LP Token 交由PCVTreasury 統一管理。這也是前文所說的實現PCV 的方式。
Staker 可將UniswapV2 或SushiSwap 等外部DEX 的APEX-WETH 交易對的LPToken 質押到LPTokenPool 賺取APEX 代幣,賺取到的APEX 還可以再質押投入APEXPool 賺取更多的APEX 代幣。
Trader 則可通過不斷交易,實現交易挖礦,賺取APEX 代幣。另外,Trader 還可以發展下線,邀請其他Trader 來參與交易,賺取邀請獎勵。
總結
本文作為概述篇,只對ApeX Protocol 做了一些簡單的介紹,旨在對這一款新產品有一個初步認識。後續文章將分模塊深入剖析一些設計和實現細節,敬請期待!