入門自動做市商 AMM:金融市場交易的正規化革命

買賣虛擬貨幣

原文標題:《歐科雲鏈研究院:金融市場交易的正規化革命——自動做市商制度(amm)》
撰文:
歐科雲鏈研究院


1900 年,英國物理學家湯姆生在皇家學會發表了一場著名的演講。他在回顧物理學所取得的偉大成就時說,「物理大廈已經落成,所剩只是一些修飾工作,只不過出現了兩朵令人不安的烏雲。」湯姆生的演講代表了 19 世紀末物理學界的主流思潮:經典物理學基礎牢固,臻善臻美,往後難有作為。但湯姆生很可能沒有想到的是,兩朵小烏雲隨後帶來了狂風暴雨,經典物理學大廈被瞬間顛覆,物理學由此進入了以相對論和量子力學為基礎的新時代。


百年後的 2020 年,金融市場上正在發生同樣的事情。交易制度一直是金融市場順利執行的重要基礎。經過 200 多年的發展,金融市場從最初的詢價交易制度發展到後來的做市商交易制度,再到 20 世紀 80 年代以來電子資訊科技的快速發展下興起的競價交易制度,金融市場呈現出豐富紛繁的交易制度。


圖 1. 金融市場交易制度的演變,資料來源:歐科雲鏈研究院


很多市場人士認為,目前的金融市場交易制度已經趨近成熟,穩定於「詢價、報價、競價」三種交易制度,難以再生產新型的交易制度。但 2020 年橫空出世的 defi (去中心化金融)專案 uniswap,卻採用一種新的交易正規化:基於區塊鏈智慧合約的 amm (automated market maker,自動做市商)。


金融市場交易的正規化革命——自動做市商(amm)


正規化(paradigm)一詞是由美國著名科學哲學家托馬斯·庫恩提出,庫恩認為只有導致科學革命,使科學獲得一個全新的面貌的一套理論體系才能被稱之為正規化,而自動做市商(amm)很明顯屬於此類。因為自動做市商制度(amm)不僅僅只是實現了交易自動化,無人化,更重要的是它為金融市場引入了一種全新的交易方法和理念,是從「0 到 1」的創新。


想要理解 amm 帶給金融市場的變革,需要先了解現有的金融市場交易制度。經過近兩百年的發展,尤其是自上世紀 70 年代的資訊科技革命以來,金融市場目前有兩種主要的交易制度:競價制度和做市商制度。


圖 2. 金融市場現有交易制度,資料來源:歐科雲鏈研究院


首先是競價制,競價交易是市場買賣雙方直接進行交易(或委託給代理經紀商),在市場的交易中心以買賣雙向價格為基準,按「價格優先」、「時間優先」等規則進行撮合達成交易的一種制度。因為價格由買方訂單和賣方訂單共同驅動,所以又稱指令驅動制度。競價制又分為集合競價和連續競價,其中在集合競價制中,交易的買賣分時段性,是在某一規定的時間,將不同時點收到的訂單集中起來進行匹配成交;而連續競價制度,則是在各個時點連續不斷地進行交易,只要存在兩個相匹配的訂單,交易就會發生。


其次是做市商交易,又稱為雙邊報價交易,是指以報價商為市場的價格維護人,報價商向市場同時報出買價和賣價,市場的買家和賣家根據報價與之成交,而買家和賣家之間不直接成交的交易組織模式。該交易方式依賴做市商的報價來完成買賣,所以又稱報價驅動制度。做市商制度又分為壟斷型做市商制度和競爭型做市商制度,前者的由交易所指定一個券商來負責某一股票的交易,後者則是每一種股票同時由多個做市商負責。


圖 3. 競價制度和做市商制度示意圖,資料來源:歐科雲鏈研究院


無論是競價制度還是做市商制度,兩者依賴訂單薄(order book),即需要將訂單掛至訂單薄上,以價格作為訊號進行交易。在競價制度中的要求撮合是按最有利於交易雙方的價格買賣資產;同樣地,做市商制度中要求做市商必須事先報出買賣價格,而投資人在看到報價後才能下達交易委託。


圖 4. 競價制度下的訂單薄示意圖,資料來源:歐科雲鏈研究院


然而,以 uniswap 為代表的去中心化交易所則採用了一種全新的交易制度---不需要訂單薄,也不需要交易對手方(做市商),即可完成資產的自動交易兌換。這神奇的交易模式背後僅僅是依賴一個簡潔的數學模型:x * y = k,其中 x,y 分別代表需要交易的兩種資產的數量,而 k 是一個固定的常數。因此這類自動做市商又被稱為常數函式做市商(constant function market makers,簡稱 cfmm)。


一般而言,cfmm 中包括三類參與方,如下表所示。在這三類參與方中,最重要的角色是流動性提供者(lp),負責向 uniswap 的智慧合約中注入自己的資產,作為資產儲備池,為交易提供流動性,並以此獲取交易費用收益。其次是套利者,他們負責修正交易價格,保證交易價格與市場價格一致,但也會產生無常損失(impermanent loss),給流動性提供者帶來虧損的風險。


表 1. amm 制度下的三類參與方,資料來源:歐科雲鏈研究院


我們以 uniswap 中資產 a 和資產 b 的交易為例。在交易開始前,我們需要向區塊鏈的智慧合約中注入 x 數量的資產 a 和 y 數量的資產 b 來作為流動性儲備,即在公式 x*y=k 中, x,y 和 k 的初始值由流動性提供者(lp)確定。因為資產 a 和資產 b 之間的初始價格 p = x / y,所以當第一個流動性提供者(lp)把自己認為等價值的資產 a 和資產 b 充值到此智慧合約中,就可以實現初始價格 p 的設定。


假如一個交易者想用 m 個資產 a 購買一定數量的資產 b (忽略交易手續費,在實現中,這部分交易手續費將保留在資產池中併成為流動性提供者的收益),為此他需要向 uniswap 的智慧合約傳送 m 個 資產 a。為了保證 k 值不變,那麼智慧合約需要向投資者支付 n 個資產 b,即


(x+m)*(y-n)=k (1) n=y-k/(x+m) (2)


公式(2)即決定了支付給交易者的資產 b 數量 n。


從影象上看這一交易過程更為簡潔:因為 k 是一個固定的常數,所以兩種資產的數量 x 和 y 只能在下圖中的反比例函式影象上運動。開始時(x,y)在圖中的 a 點,當交易者向智慧合約打入 a 資產時,(x,y)的座標來到 b 點;為了使(x,y)回到反比例函式影象上,必須減少 b 資產的數量,隨後 (x,y) 運動到了新位置 c,並完成交易。


圖 5. amm 交易流程示意圖,資料來源:歐科雲鏈研究院


從影象上看,在交易前合約內兩種資產的數量為(x1,y1),交易後變為(x2,y2),那麼其實際交易價格為:


p= |(y2-y1)/(x2-x1 )|=-?y/?x


當兩種資產的數量都微小變動時,我們可以發現實際交易價格為原函式的導數,即:


p= -dy/dx = k/(x^2)= y/x


從上我們可以看出,自動做市商制度打破了傳統的交易制度模式,不需要訂單薄,也不需要做市商報價或者系統撮合,而是利用儲備池中的流動性來完成資產的交易兌換;最重要的是,amm 的交易價格也不是由做市商的報價或交易者的訂單確定,而是由資產池中兩種資產數量的比值確定,因此它是一種流動性驅動的交易制度。


圖 6. 各交易制度的價格決定方式,資料來源:歐科雲鏈研究院


uniswap 的模型設計是基於兩種資產進行交易,所以反映在二維影象上是一條雙曲線;另一個著名的 defi 專案 balancer 則對此進行了擴充套件,將 cfmm 推廣到超過兩種資產的情況,其恆定函式模型如下:



r 是每種資產的儲備量,w 是每種資產的權重,k 是常數。從影象上看,balancer 將原來的二維雙曲線擴充套件至多維,下圖即在三維下的恆定值曲面影象。



圖 7. balancer 恆定函式模型在三維下的影象,資料來源:balancer 白皮書,歐科雲鏈研究院


在 balancer 的儲備資產池中,儘管有多種資產,但與 uniswap 平臺一樣,任意兩種資產進行兌換時,如果資產數量只發生微小變動,其實際兌換價格實際上就是這兩類資產的偏導數,即:

在金融市場交易制度日益複雜的今天,自動化做市商機制以 x * y = k 這樣一個簡潔的模型橫空出世。自 6 月至今,cfmm 類的去中心化交易所在以太坊上迅速崛起,其月均交易額從年初的不足 5 億美元迅速上升至目前的 40 億美元。特別是 uniswap,其日均交易額突破 1 億美元,超越了許多中小型交易所,達到美國最大加密資產交易平臺 coinbase 日均交易量的三分之一,這印證了中國古代的哲學智慧----大道至簡。

圖 8. 去中心化交易所月均交易額變化,資料來源:dune analytics,歐科雲鏈研究院


amm 是否能取代傳統交易制度?


由於近幾個月來 amm 在以太坊上的大獲成功,很多人都在討論 amm 能否取代傳統的競價和做市商制度。正所謂「汝之蜜糖,彼之砒霜」,amm 憑藉其極富數學簡約之美的交易模型在市場上大放異彩,但也造就了它的缺陷不足。在與傳統交易制度競爭時,amm 主要面臨無法獨立定價、無常損失和交易深度不足等問題,使得它很難取代傳統的交易制度。


amm 的定價問題


首先是資產交易的獨立定價問題。在競價制度中,價格優先原則是競價市場上普遍採用的撮合原則,而且被作為首要的優先原則,即第一優先原則。它要求經紀商在接受委託進行交易時 , 必須按照最有利於委託人的利益買進或賣出資產 , 即買進資產時,較高的買進價格訂單優先滿足於較低的買進價格訂單;賣出資產時,較低的賣出價格訂單優先滿足於較高的賣出價格訂單。除價格優先原則外,還有時間優先,數量優先,按比例分配等原則,但在世界各大金融市場上,儘管第二乃至第三、第四等撮合原則上差別很大,但第一原則一定是價格優先原則,以此保證交易制度的價格發現功能。


表 2. 全球主要證券交易所撮合原則,資料來源:歐科雲鏈研究院


做市商制度同樣具有價格發現的功能。做市商的收益主要來源於買賣差價,在對市場進行做市時,以收益最大化為目標。這要求做市商必須充分利用市場資訊,提出報價,與此同時,投資者根據做市商的報價做出投資決策,並將自己的交易資訊及時反饋給做市商,隨後做市商再根據手上的資產頭寸和價格差異調整報價。因此,在做市商與投資者的共同推動下,市場可以發現真實的交易價格。


然而,自動化做市商制度卻沒有價格發現的功能。比如在某一資產的交易上,使用者 a (做市商 a)掛出的是 5 美元 / 手的買單,使用者 b (做市商 b)掛出的是 10 美元 / 手的買單,在競價制度或做市商制度下,使用者 b (做市商 b)先實現交易,但在 uniswap 平臺上卻無法保證使用者 b 先成交。因為我們前面提到,amm 的價格是靠流動性驅動的,交易價格由儲備池的資產情況決定,而非訂單價格決定,即 amm 只能產生交易價格,卻不能發現市場價格。為此,amm 不得不引入套利者這一重要角色:一旦 amm 平臺上的價格與市場公允價格不同,就會出現套利空間,並將價格拉回正軌。


金融市場交易制度的核心是發現價格功能,無法發現價格的交易制度註定無法成為主流。因此,從未來發展看,自動做市商制度很難取代現有的競價制度和做市商制度,但可以憑藉其簡潔靈活的交易特徵,成為金融市場交易的補充。


無常損失(impermanent loss)


在上文中我們提到,由於模型設計上的缺陷,amm 不得不引入套利機制以完善其價格機制。然而,這也帶來了另一個嚴重後果---無常損失(impermanent loss)


無常損失實際上來源於套利行為。我們前面提前,amm 的交易價格與市場公允價格是脫軌的,為此需要套利者進來購買被低估的資產或賣出高估的資產,直到 amm 提供的價格跟外部市場匹配。因此,套利者的利潤實際上來自於流動性提供者,由於套利給流動性提供者帶來損失的這一部分就被稱為無常損失。


我們以如下表格說明,在 uniswap 的一個智慧合約內有資產 a 1000 份,資產 b 10 份。


  1. 初始時刻,資產 a 的價格為 1 美元,資產 b 的價格為 100 美元,此時資產池總價值為 1*1000+10*100=2000 美元;
    2.t2 時刻,資產 b 的價格上升為 110 美元,此時資產池總價值變為 11000+10110=2100 美元。注意到 uniswao 此時的兌換價格為資產 a 數量與資產 b 數量的比值,即 p = 1000/10 = 100,而在市場公允價格下,兌換價格為 110 美元 /1 美元 = 110,由此出現套利空間。
  2. t3 時刻,套利者向該智慧合約注入 48.81 份資產 a,換取 0.47 份資產 b。套利結束後,資產 a 有 1048.81 份,資產 b 剩餘 9.53 份,此時儲備池內資產總價值為 1048.811+9.53110=2097.62 美元,相較於套利前少了 2.38 美元,這部分損失即無常損失。


表 3. 無常損失產生原理,資料來源:歐科雲鏈研究院


流動性提供者(lp)之所以為 amm 提供流動性,是因為可以獲取交易費用,然而無常損失的存在,提高了流動性提供者的風險。如果無常損失超過了流動性收益,那麼 lp 將不再提供流動性。因此無常損失的大小是決定 amm 類 dex 能否正常運營的關鍵。


交易深度問題


交易深度是衡量市場交易優劣的重要指標之一,反映的是市場在承受大額交易時價格不出現大幅波動的能力。很多行業人士認為,只要向市場提供足夠的流動性,就可以解決交易深度問題。對於以訂單薄為基礎的競價制度和做市商制度確實如此,但對於 amm 而言,其模型本身也會影響交易深度。


以 uniswap 為例,在上文中我們提到,交易前智慧合約內兩種資產的數量為(x0,y0),交易後變為(x,y),那麼其實際交易價格為(這裡我們忽略交易費用):

因為 y = k /x,所以我們帶入上式並求導,即可得

注意到 p' 的分子(-y0 x^2+2kx-kx0)是一個一元二次函式,由於

所以 x = x0 即為一元二次方程的唯一根,並且-y0<0。當 x>x0 時,p'<0 恆成立,即價格 p 是關於 x 的一個減函式,p 將隨著 x 的增大而減小。很顯然,k 值(也就是 lp 的大小)並不會改變該函式性質。

圖 9. uniswap 的定價影象,資料來源:歐科雲鏈研究院


從上述分析可以看出,相較於傳統交易制度,在提供相同流動性的情況下,amm 使用者向交易合約中放入越多數量的資產 a,換回的資產 b 數量越少,即交易價格越高。所以 amm 的交易深度不僅僅取決於 lp 的大小(即 k 值),跟模型本身也有關。因此,儘管 uniswap 簡潔的交易模型給其帶來了巨大優勢,但同時也帶來了高滑點的問題。特別是對於儲備池規模較小的交易對資產,無法支援大額交易,否則將支付更高的價格。隨著 amm 的日益火熱,amm 的交易深度問題也成為使用者和開發者們關注的核心問題。


自動做市商制度的未來發展


相較於傳統交易制度,自動做市商具有自動化、低成本和高效的優勢,但在定價權、無常損失和交易深度等方面存在一定的問題。然而,如果考慮到自動做市商制度從創立至今只不過幾年的時間,那麼以苛責的眼光要求其做到盡善盡美並不妥當。實際上,自動做市商如今已經成為區塊鏈行業中最熱門的賽道之一,出於對未來轉型和戰略發展的需要和市場前景的看好,許多大公司和創業都開始關注這一領域,並推動該制度的完善。


無常損失的改善方案


究其本質,無常損失是由 amm 平臺價格與外部市場價格偏差產生的套利造成的。想要減少無常損失,必須要降低平臺價格與外部市場價格之間的偏差。從理論上講,這很難實現,因為 amm 沒有價格發現功能。然而我們卻可以另闢蹊徑---如果兩種資產之間的兌換價格保持穩定,在 amm 平臺上進行交易時人們自然會以該兌換價格作為心理價格,那麼價格偏差將會很小,無常損失也將很低。在區塊鏈世界中,這類最理想的資產即穩定幣,穩定幣都以美元掛鉤,價錨定在 1 美元,因此在穩定幣之間的兌換上(如 usdt 與 dai 之間的兌換),價格偏移將會很小,無常損失也最小。這也是 curve 這類專注於穩定幣交易的 amm 類去中心化交易所迅速崛起的原因。


此外,行業內還有探索採用預言機提供價格的方案,以 bancer v2 為代表。只要預言機為智慧合約提供真實準確的價格,就可以降低價格偏差,減小無常損失。需要強調的是,預言機只能減小無常損失,但無法解決無常損失問題。因為價格偏差的產生是由於 amm 無價格發現功能引起的。價格預言機捕捉的仍然是歷史價格,而非市場最新價格,這是一種對結果進行事後的修正,甚至不能像訂單薄模式那樣看到盤口價格(市場對未來價格的預期)。


交易深度的改善方案


以 uniswap 為代表的 amm 為例,從模型上看,由於其採用恆定乘積模型(x*y=k),導致其滑點過高,當然好處是理論上可以為交易提供無限的流動性(x,y 永遠不會等於 0)。那麼什麼樣的模型可以實現零滑點問題呢?---恆定總和模型。以 x+y = k 為例,從影象上看,其兌換價格恆定為 1 (即影象的斜率恆為 1 ,然而這樣帶來的缺陷是很容易耗盡儲備池的資產。因此,一種理想的方式是構建一種混合函式,如果兩種資產的價格相對穩定,就可以降低函式中的滑點值;當儲備池中的資產流動性不足時,則迅速提高價格,實現理論上的無線流動性,而 curve 構建的恆定函式模型 stableswap 正是此類中的佼佼者,為此構造了一個複雜的函式:



x 是每種資產的儲備量, n 是資產的種類, d 是一個不變數,代表儲備中的價值,a 是「放大係數」,即一個可調的常數,提供一種類似槓桿的作用,影響資產價格的範圍,並影響流動性提供者的利潤空間 (即資產的波動性越高,a 也越大) 。


當投資組合比較均衡時,這個函式作為一個恆定總和函式而發揮作用,當投資組合變得更不均衡時,它轉換為一個恆定乘積函式,由此實現了滑點與流動性的兼顧。


圖 10. stableswap 不變數與 uniswap (常積)、固定價格不變數的比較,資料來源:stableswap 白皮書,歐科雲鏈研究院


總結


自動做市商制度是一項重大創新。儘管在交易深度、交易定價權等方面存在問題,但它具有去中介、自動化、交易快捷等優勢,可在無訂單薄的條件下完成交易,開創了一種全新的交易正規化。目前自動化做市商仍處於發展的萌芽期,但已經展現出驚人的潛力,期待未來看到更多的進展。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;