從尋找下一個幣安,到尋找下一個Uniswap

買賣虛擬貨幣

作者:王也

來源:星球日報


從銷燬平臺幣到跟風 ieo,過去幾年,“長尾”交易所們一直在復刻頭部交易所的展業路線。

這兩個月,風向變了。defi 火熱,dex 吸金,資本熱錢紛紛押注去中心化交易所賽道,“三大”在內的 cex 也紛紛投身 defi,成立專項基金,尋找下一個爆火良機。

從前“做下一個幣安”的願景已不太可能實現,“做超越 uniswap 的 dex”則看上去更加可行。畢竟 uniswap 自身也有許多備受詬病的問題,如果 defi 熱潮持續,新的 dex 崛起可期。

7 月 27 日,中心化衍生品交易平臺 ftx 宣佈推出基於 solana 公鏈的 dex——serum。

8 月 4 日,hakka finance 釋出去中心化穩定幣閃兌工具 blackholeswap 白皮書,blackholeswap 對標目前大火的去中心化穩定幣兌換平臺 curve。

8 月 8 日,defi labs 創始人代世超在 2020 以太坊技術及應用大會上宣佈去中心化交易所 dodo 將上線 eth/usdc 交易對。

8 月 11 日,鏈上聚合交易平臺 1inch 推出自動做市商(amm)mooniswap,支援使用者以去中心化和非託管的方式在代幣之間切換。 

頭部跨鏈協議 cosmos 也入局了,8 月 14 日,irisnet 研究總監 jeffrey hu 在推特上表示,cosmos 即將推出類似 uniswap 的平臺 coinswap。 

其它在過去始終未能俘獲大眾的老牌 dex 也紛紛發力。8 月 1 日,bancor v2 上線,新增了多項亮眼功能,其提供單個代幣流動性的做法,顯然也是在解決 uniswap 的痛點。8 月 7 日,去中心化交易所 idex 宣佈完成 250 萬美元的種子輪融資,由 g1 ventures 和 borderless capital 領投,計劃下個月釋出 2.0 版本。

上述例子都是積極的探索,也為幣圈從業者開闢了新的業務方向。

流動性挖礦的東風打破了 dex 多年的流量困局,amm(自動做市商)透過存入代幣在去中心化資金池的方式提高流動性。據 the block,dex 在 7 月的交易量超過 40 億美元,創歷史新高;同時,dex 與中心化交易所交易量的佔比增加至近 3.95%,而年初這個數字還是 0.1%。

從模式進化到資料表現,dex 前景逐漸明朗。

但 dex 仍處於混戰時期,競爭格局不確定,各具特色的新玩家層出不窮,每家都有可能突圍而出。

本文中,odaily星球日報將先普及一些關於 dex的入門知識(有基礎的讀者可以跳過),呈現 dex 在撮合方式上的演變路徑,最終討論 dex 未來的進化方向。


從訂單簿到amm的正規化革命


dex 按撮合方式可以分為訂單簿(order book)、自動做市商(amm,automated market maker)和聚合器(aggregator)三種。本文我們主要介紹最常見的訂單簿和 amm。

在正式介紹之前,我們首先要了解什麼是做市商 (market maker)。

據 makerdao 中國區負責人潘超介紹,做市商不同於普通交易者,他們是風險中性的,一手持有股票,一手持有現金。在訂單簿模式下,會同時布上買單和賣單,中間為價差。類似的,櫃檯模式的做市商會在客戶詢價時給出有利可圖的報價。

做市商是流動性的來源,高流動性市場需要做市商,同時也吸引規模化的做市商參與。

下面我們分別看看訂單簿下和 amm 模式下做市商是如何工作的。


訂單簿

幣安、火幣、okex 等中心化交易所的撮合都基於訂單薄模型。在訂單簿中包含了買單(出價)和賣單(要價)列表,並列出了在每個價格點出價或要價的數量。 

在訂單簿式交易所中,需要做市商透過掛單來提供流動性。如果訂單簿交易所沒有流動性,會出現想買買不到、想賣賣不出的情況,因此流動性是衡量一個交易所的重要指標,流動性越好,成交越便捷。

在 dex 中,訂單簿又可分為鏈上訂單簿和鏈下訂單簿。 


  • 鏈上訂單簿 

鏈上訂單簿模式,指所有的買賣掛單都儲存在區塊鏈上,訂單簿中的訂單會根據設定的買賣盤條件進行訂單撮合和交易結算。 

早期的基於以太坊的去中心化交易所 etherdelta 採用的這種模式,使用者的充值、掛單、交易結算、提現等全部由智慧合約來完成。由於沒有訂單自動撮合的機制,其上的每筆交易均需要在鏈上確認。其訂單模式如下圖所示:

maker 填寫訂單請求,並用私鑰簽名後提交到區塊鏈上鎖定,taker 從鏈上訂單簿中選擇希望交易的訂單,併發起一筆交易,然後由智慧合約對 maker 和 taker 的交易需求進行匹配,交易成功後在鏈上進行結算。

鏈上訂單模式的優點是直接透過錢包交易,透明度和安全性較高,但其交易流程都在鏈上,交易速度較慢,確認時間較長,影響使用者體驗。同時訂單交易深度較差,並且交易費用較高,也可能因為鏈上的一些擁堵、gas 等原因導致交易失敗等情形的發生。 


  • 鏈下訂單簿

與鏈上訂單簿相比,鏈下訂單簿模式最大的特點是:鏈下訂單撮合 + 鏈上結算。0x、idex1.0 等屬於此種模式。

0x 是一個可以在以太坊區塊鏈上進行 erc20 代幣對等交易的開放式協議。該協議在技術上引入了 relayer(訂單中繼)的概念。relayer 負責在鏈下收集使用者(maker/taker)訂單、初步撮合後提交到鏈上進行結算。0x 的訂單流程如下圖:

由 relayer 對外提供訂單簿服務,主持和維護一個鏈下訂單。maker 和 relayer 以無需信任的方式談判交易費用、訂單,然後由 relayer 將訂單提交給訂單簿,taker 對選中的訂單進行填充,並廣播至以太坊區塊鏈上,由智慧合約完成最後的清算流程。

以 0x 為代表的“鏈下訂單 relayer 匹配+ 鏈上結算”的混合設計模式,將狀態通道的效率與即時結算的鏈上訂單相結合,大大降低了市場交易雙方的摩擦成本,結算速度加快,消耗費用降低。 

今年 7 月正式上線的 augur 2.0 版本的預測市場也採用了由 0x 協議支援的鏈下訂單簿,然而使用者對 augur 新版本的反響似乎並不熱烈。 

基於 relayer 的訂單薄技術可以是中心化的也可以是非中心化的,在一定程度上犧牲了部分去中心化特性,但與中心化的交易所相比,使用者體驗、交易速度上仍偏弱。

總得來說,訂單簿模式下的 dex 寄生於 cex 的流動性:無法共享流動性,並且重運營,獲取流量成本較高。


amm模式下:套利商賺差價,做市商分紅

今年 6 月,去中心化借貸平臺 compound 創新的流動性挖礦模式(也被稱為 yield farming)讓 amm 得以大火,目前市面上比較火熱的 dex(uniswap,bancor,kyber)幾乎都是用的 amm。

amm 交易所不需要提供訂單簿來展示買賣雙方想要成交的價格,而是將流動性彙集到一起,並根據某種特定數學演算法實現做市。

以 uniswap 為例,其定價曲線數為經典的 x*y=k,恆定常數乘積。x 是新幣的數量,y 是 eth 數量,k 是常數。新幣的髮型方以一定的比例建立交易池,同時也確定了新幣的上幣價格,即 x 與 y 的比例。由於 x 與 y 是構成恆定乘積的關係,x 和 y 是此消彼長的關係,有人在該合約中購買新幣 x,那 y 的數量就會增加。

下面我們來舉個例子讓大家理解 x 和 y 此消彼長的關係。 

投資者小明想為 uniswap 中的 eth/dai 交易對提供流動性,假設 1eth=400dai,uniswap 的公式就是 1(eth)*400(dai)=400(固定的常數)。如果小明想要購買價值 50dai 的 eth,在 eth/dai 池子裡面注入 50dai 的流入量,同時減少 eth,那麼為了保證乘積還是常數 400,池子裡面還留下的 eth 的數量=400/(400+50)=0.89,最後小明能拿到的 eth 數量=1-0.89=0.11。

透過小明為 uniswap 中 eth/dai 交易對提供流動性的例子,我們可以看到為了維持 x*y 的乘積固定,隨著注入的 dai 的不斷增多,池子中剩餘的 eth 減少。

dodo cmo 代世超向 odaily星球日報表示, x*y=k 定價機制決定了買入哪一邊的數量多,與之相應的幣種價格就會上升。所以,在這個池子中,只要有人買入新幣x,就會推動它的價格一直上漲。

如果小明想要再買 50dai 的 eth,他又需要繼續向池子中注入 50dai 的流入量。注意,此時 eth/dai 池子裡剩下 0.89eth 和 450dai,小明再次向池子中注入 50dai 之後,為了保證 k 值維持在 400,這時候池子裡還留下的 eth 數量=400/(450+50)=0.8,這次小明能拿到的 eth 數量=0.89-0.8=0.09。

我們可以清晰地看到,同樣是購買 50dai 的 eth,小明第二次拿到的 eth 明顯變少了,也就是說 dai 的單價變貴了,這就是用函式來定價的一個特點:x 被買走的越多,x 越貴;x 被賣的越多,x 越便宜。

這樣的滑點也會引來套利者的注意。小明第二次以 0.09eth 的價格賣出了 50dai,按照 x*y =k 的關係,如果這時候套利者買入 50dai,就只需要花費 0.09eth,這就與第一次買入 50dai 的價格(0.11eth)形成了價差。 

潘超將 uniswap 比作一個特殊的自動售賣機,只要有人買走商品,該商品的價格就會提高,且取的越多,價格飆升越快,直到做市商和套利商補貨。 

在訂單簿模式下,做市商賺交易費和價格差這兩個部分的錢;在 amm 中,做市商,或者說流動性提供者只賺交易費這一個部分的錢,而套利者則賺價格差這一部分的錢,即 amm 模式下套利商賺差價,做市商分紅。

因此,dex 採用 amm 模式,是 defi 從 0 到 1 的創新,降低了普通使用者成為做市商的門檻,開闢了“人人皆可做市”的時代。


amm模式的缺陷在哪裡?

相較於傳統訂單簿模式,amm 具有自動化、低成本和高效的優勢,但在定價權、無常損失、滑點等方面存在一定的問題。 


  • 無法獨立定價

根據歐科雲鏈研究院的分析,amm 因缺少價格發現功能而無法對新幣進行獨立定價。 

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

然而,amm 模式下並沒有價格發現的功能。

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

歐科雲鏈研究院認為金融市場交易制度的核心是發現價格功能,amm 這種無法發現價格的交易制度註定無法成為主流。

代世超也認為,amm 模式下,新幣的發行價格過度受制於專案方自己。

“在新發行的場景下,不同於已有的加密資產交易,其分散度是很低的,新幣的籌碼都集中在專案發行方的手中。這就導致 dex 的流動性池子幾乎只能由專案方自身注入,缺乏普遍參與的流動性提供者。同時,多市場套利的機制可能就失效了,專案方向流動性池子中注入代幣的數量和時機都會直接影響價格。”代世超告訴 odaily星球日報。

首先來說注入的數量問題,由於 dex 定價曲線的特徵,注入代幣的數量越多,其交易滑點越低,也就是說買入單位新幣的價格變化就越小,所以,代幣池的總量和比例直接決定了價格。

所以,當注入池子中的幣很少的時候,往往要注意。

同時,由於 uniswap 的定價曲線理論上希望提供無限的流動性,那麼當某個幣在池子中被買的只剩很少的時候,其邊際價格會變動非常的大。 

其次是注入時機的問題。如果要多次注入,那麼每一次注入代幣對整體價格影響都是非常大的。


  • 無常損失:挖款收益沒有跑贏持幣收益

無常損失是 amm 池當前對於流動性提供商最不利的地方,也是 dex 發展的最大阻力之一。

首先我們要明白什麼是無常損失:相較於只是簡單地持有代幣,向 amm 提供流動性的使用者可能會看到其質押的代幣在損失價值,這種風險被稱為“無常損失”。 

簡單來說,假設你為 eth/dai 代幣池提供流動性,但如果 eth 漲得很快,為了維持 k 乘積的固定值,那麼你持有的 dai 就會變多,eth 的數量變少,你手中原本低價買入的 eth 被套利者用 dai 悄悄換走了,那麼你為代幣池提供流動性獲得的收益,可能還不如直接持有 eth 帶來的收益。

我們曾在一次流動性挖礦中切身體會到無常損失,因為質押的代幣價格在流動性挖礦期間翻了三倍,導致挖礦收益沒有跑贏持幣收益,最後我們索性退出質押挖礦,直接持有代幣。 

從本質上來說,無常損失實際上來源於套利行為。amm 的交易價格與市場公允價格是脫軌的,為此需要套利者進來購買被低估的資產或賣出高估的資產,直到 amm 提供的價格跟外部市場匹配。因此,套利者的利潤實際上來自於流動性提供者。

如果無常損失超過了流動性收益,那麼流動性提供者將不再提供流動性。因此無常損失的大小是決定 amm 類 dex 能否正常運營的關鍵。

下圖展示了代幣價格變化和無常損失之間的關係:


圖片來源於:機械鐘


以三個點為例子:黃線與藍線的交叉點是當外部價格沒有發生變化時,無常損失為零;綠線與藍線的交叉點分別是當價格跌了 50% 後,以及價格漲了 100% 後,無常損失都為 -5.7%,不難發現無常損失與價格變化的幅度有關,與代幣漲跌方向無關。 


  • 滑點太高,amm 類 dex 只適用於日常小額兌換

經常有使用者抱怨在 uniswap 中的交易滑點太高,不划算。確實如此,除了少數流動性池的流動性比較可觀之外,多數代幣的流動性池並不適合較大額度的交易。

滑點過高的問題也是阻礙機構投資者和新使用者進入 amm 類 dex 的一大原因。 

在文章第一部分我們已經舉例解釋了滑點出現的背後邏輯,滑點是 dex 用函式來定價的一大缺點,也引來了套利者的進場,而套利行為又帶來了無常損失的出現。 

有趣的是,滑點和無常損失間存在一些互斥關係,減少滑點追逐的是一種價格的穩定,減少無常損失追逐的是一種價格的變化,最佳化一邊可能會損失另一邊。

所以從某種程度上來說,對於 amm 類 dex 來說,無常損失和滑點也可以看作自動做市商身體的一部分,只能調整和改善節奏,而不可強行驅逐。“無滑點”和“消除無常損失”的說法至少在目前看來都是不可信的,因為滑點的降低和無常損失的減少必然都是以對方的增加為代價的。


誰會成為下一個uniswap?


雖然滑點和無常損失是不可消除的,但是可以在可控範圍內提前調控。

前文我們提到了滑點與 dex 選擇的定價函式有關,以 uniswap 為代表的 amm 為例,從模型上看,由於其採用恆定乘積模型(x*y=k),導致其滑點過高。

那麼什麼樣的模型可以降低滑點呢?——恆定總和模型(x+y = k)。

還是以小明為 eth/dai 池子中注入流動性為例,假設池子裡最初有 50eth 和 50dai,那麼 k 就恆定在 100,小第一次拿 5eth 可以換得 5dai,第二次依舊可以用 5eth 換得 5dai,k 始終維持在 100。

但是該函式有一個致命的缺點,就是很容易耗盡儲備池的資產。假如在這個市場外 1eth 買不到 1dai,(而 eth/dai 的池子永遠是 1eth=1dai),就會有另一種套利者來該市場買走所有的 dai,讓交易池裡只剩下 100eth。

因此,一種理想的方式是構建一種混合函式,如果兩種資產的價格相對穩定,就可以降低函式中的滑點值;當儲備池中的資產流動性不足時,則迅速提高價格,實現理論上的無線流動性。curve 就為此構建了一個複雜的函式,恆定函式模型 stableswap:

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

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

bancor v2 透過使用預言機引入外部世界的價格,從而降低交易池與外部世界價格不一致的風險,減少無常損失。

bancor v2 採用預言機喂價,來調整代幣兩邊的權重,也就是x代幣數量*x價格不必等於 y代幣數量*y價格,把套利機會用預言機給磨平了。 

而對於如何降低滑點,bancorv2 則是透過放大流動性來降低滑點,此舉 bancor v2 借鑑了 curve,引入 stable curve 機制。bancorv2 的曲線介於 curve 和 uniswap 之間,代數公式上介於 x*y=k和x+y=k 之間。利用更平滑的曲線,去減少滑點。簡單理解就是比 uniswap 同樣流動性下放大了 20 倍。

擁有 100,000 美元儲備的 amm 將在 10,000 美元交易中產生 10% 的滑點。但是,如果引入 bancorv,流動性就被放大 20 倍,則同一筆交易的滑點將減少到1%。 

除了這些老牌 dex 在降低滑點和減少無常風險上不斷摸索,新興的 dex 也提出了一些解決方案。

比如對標 curve 的穩定幣兌換平臺 blackholeswap。雖然 curve 的混合函式模型在?部分情況下提供很好的穩定幣交易深度,但是?旦單邊的儲備接近耗盡時,仍會出現巨大的滑點。

對此,blackholeswap 設計了一個新系統,允許系統擁有負數的存貨,透過整合借貸協議的方式,抵押量多的幣,借出不足的幣,可以處理遠超過儲備的成交量。

blackholeswap 將儲備貨幣存入借貸平臺,當交易對中其中種貨幣的存貨耗盡,而市場仍有需求時,blackholeswap 會以另?種貨幣做為抵押,從借貸平臺中借出需求貨幣以完成交易。因此,blackholeswap 不會受限於的存貨量,可以在保持低滑價的同時無須擔心存貨耗盡 。

1inch.exchange 推出的 mooniswap 是具有虛擬餘額的自動做市商,流動性提供商能夠獲取套利者原本可以獲取的利潤。藉助 mooniswap,1inch 計劃透過引入 5 分鐘延遲來降低套利者的利潤率,從而降低流動性提供商的短期損失。透過延遲價格更新,做市商將為套利者創造一個高度競爭的環境,迫使他們以利潤較低的價格進行交易,這反過來將增加流動性提供者的價值。1inch 預計 mooniswap 為流動性提供商帶來的收入將比 uniswap v2 高出 50-200%。

還有文章開篇我們提到的基於主動做市商演算法的去中心化交易所 dodo。dodo 借鑑了 bancorv2,透過 oracle 引入市場中間價,將大部分資金聚集在市場中間價附近。dodo 可以在資金池規模與uniswap類似的情況下,流動性超過uniswap十倍(滑點為 uniswap 1/10), 或者在資金池為 uniswap 1/10 情況下,達到和 uniswap 類似的流動性。

現在的 dex 市場有點像 2018 年的公鏈市場,正呈現出百花齊放、百家爭鳴的競爭狀態,甚至可以說 2020年是 dex 元年,至於最後誰能跑出來,成為下一個 uniswap,這還需要市場和時間的驗證,以及 defi 熱潮的助推。


參考資料:

tokenclub研究院:《深度 | 去中心化交易所綜述》

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

李畫:《以邏輯為工具輕鬆看懂defi:dex 篇》

藍狐筆記:《為什麼自動做市商可能會虧錢?》

林明:《bancor v2技術深度講解—林明firstpool》

免責聲明:

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

推荐阅读

;