不管一個DeFi 協議、甚至整個DeFi 世界看上去多麼陌生和復雜,它本身都是傳統金融邏輯(比如交易工具邏輯和借貸工具邏輯),加上適用於區塊鍊或由區塊鏈引發的新邏輯,再加上一點新設計以改進性能。當我們以這個框架來看待和分析DeFi/DeFi 協議時,就會發現它們並不復雜,也沒有那麼多新東西。
本系列文章將在傳統邏輯的基礎上,試著梳理出區塊鏈上的新邏輯,然後介紹前兩者基礎之上的那一點新設計。就讓我們從這次DeFi 爆發的導火索,作為交易工具的DEX 開始吧。
01 交易的傳統邏輯
交易包含兩個參與者,買方和賣方,缺一不可;但這兩者不一定能找到彼此,就需要有一個公共的交易場所,比如菜市場或者交易所,大家想要交易時都去到這裡,買方和賣方也就容易遇到。
對於一個交易場所,最重要的功能是當一個人想買時就能買到(以他可以接受的價格);當一個人想賣時也能賣出。這與參與該場所的交易數量有關,更多的買單和賣單,也就更容易達成交易。
買單和賣單除了可以由真實的交易者提供外,還可以由做市商來提供,他們本身並沒有交易需求,但他們會提供很多的買單和賣單,這樣即使缺少真實的買方或賣方,交易者也能通過做市商完成交易。
做市商為什麼要這麼做?為了賺錢。主要有兩個方面的收入,一是他們為交易所提供了最寶貴的流動性,當交易所從真實的買賣雙方那兒收取手續費後,會把一部分的手續費給到做市商;二是交易的價格總是在變化,做市商掛出低價格的買單和高價格的賣單,賺取這兩者中的差價。
以上是交易工具的基本邏輯,它同時適用於CEX 和DEX。
為什麼DEX 一直難以發展起來,因為鏈上的交易者和做市商都不夠,或者說流動性不夠,就像一個菜市場,雖然乾淨漂亮,但沒人在這兒交易,而越是沒人交易,就越難吸引人(包括做市商)過來交易。
02 交易的新邏輯
那為什麼DEX 在今年暴得大名?因為它們找到了一種提供流動性的新方法:AMM(自動化做市商)。
在這種方法為DEX 提供了流動性後,DEX 自然就運轉了起來。這其中的「舊」邏輯是交易所的運轉依賴於流動性,做市商在流動性的提供中扮演著重要角色;疊加的「新」邏輯是AMM,它是且僅是一種新的適合於鏈上的做市商工作方式。
在AMM 中,做市商是如何工作的?我們以一個流動性不好、需要做市商的菜市場為例來討論。
一個基於訂單簿的菜市場(CEX 和部分DEX)是這樣的:一個人來菜市場3塊錢一斤賣大米,但沒有人想買,做市商就買下這斤大米;第二天有個人來菜市場買大米,看到做市商4塊錢一斤的大米,覺得價格合適就買了下來。做市商需要提供兩個訂單來匹配真實交易者的需求,一個用來買,一個用來賣。
一個AMM 菜市場(Uniswap、Curve 等DEX)是這樣的:有一個大台子,台子左邊是一堆大米,右邊是一堆錢,中間是一個機器人;賣大米的人來了,他只需要把手裡的5 斤大米放在左邊,機器人就會告訴他可以從右邊拿走多少錢;買大米的人來了,它只需要把50 塊錢放在右邊,機器人就會告訴他可以從左邊拿走多少大米。
做市商的工作變得簡單,他只需要把自己的大米和錢以約定的比例放在台子上即可。這裡的核心點只是交易價格的計算。系統如何知道每一筆交易的成交價格?其實並不麻煩,通過一個函數算出來。
以Uniswap 為例,它使用的函數是x*y=k,其中k 是約定好的常數,x 是大米的數量,y 是錢的數量,假設規定k =2500,最初的大米數量是50,錢的數量是50;賣大米的人來了,他放下了5 斤大米,那麼就計算y =2500 /(50+5)=45.45,即當台子上有了55 斤大米後,錢的數量應該是45.45,那也意味著賣大米的人可以從台子右邊拿走4.55 數量的錢(50 - 45.45=4.55)。
如果賣大米的人接著賣5斤大米會發生什麼?計算y =2500/(55+5)=41.67,那麼賣大米的人可以從台子右邊拿走3.78 數量的錢(45.45-41.67=3.78)。
為什麼同樣是賣5 斤大米,第一次可以賣出4.55 的錢,第二次只能賣出3.78?這就是用函數來定價的一個缺點:滑點。 x 被賣入的越多,x 越便宜;x 被買走的越多,x 越貴。
滑點的存在為DEX 引入了一個新角色——套利者。賣大米的人第二次是以3.78 的價格賣出了5 斤大米,遵循x *y =k,如果這時候買入5 斤大米,也只需要花費3.78。這個便宜的價格不一定是因為大米真的便宜了,而是在這個交易池裡被一個方向上的賣單變得便宜。
可以認為套利者也是做市商,他們讓交易池重新平衡,讓交易價格趨近合理。試想如果這個市場全是賣大米的,又沒有套利者,那這個交易池是難以繼續下去的,因為大米價格太低。
不難發現,在訂單簿模式下,做市商賺交易費和價格差這兩個部分的錢;在AMM 中,做市商,或者說流動性提供者只賺交易費這一個部分的錢,而套利者則賺價格差這一部分的錢。這是訂單簿和AMM 因為不同的原理導致的一個比較大的不同。
需要注意的是,滑點與交易池的大小有關,比如台子上有500 的大米和500 的錢,那麼賣兩次5 斤大米能拿走的錢分別是4.95 和4.84,滑點相對較小。這是AMM 類DEX 把流動性提供看得無比重要的原因,一個交易池越大,它的滑點就越低,用戶體驗也就越好。
03 不同協議的一點新設計
滑點還與DEX 選擇的定價函數有關,比如我們用x+y =k 來定價,同樣買賣大米,k=100,最初的大米數量是50,錢的數量是50。賣大米的人來了,他放下了5 斤大米,就可以拿走5 份錢,因為這就令到k =100;他又放下5 斤大米,又可以拿走5 份錢,因為這令k =100。
在該函數下,完全沒有滑點;但有一個致命的缺點,假如在這個市場外1 份錢買不到1 斤大米(而這個市場永遠是一份錢對應一份大米),就會有另一種套利者來該市場買走所有的大米,讓交易池裡只剩下100 份錢。
這對於流動性提供者來說是一種較大的風險,因為他本來有50 的大米和50 的錢,如果大米漲到2 份錢一斤,他就有150 份的錢;而現在留給他的只是100 份的錢。所以x+y =k 雖然能避開滑點,但風險太高無法被單獨使用,它只能與其他函數一起使用以減少滑點,且更適合x 和y 的相對價格波動較小的情況。
而這就是為什麼會有Curve。它服務的是穩定幣間的交易,便可以針對這種特定的交易場景(x 和y 價格波動小)設計定價函數,它在x*y=k 的基礎上加入了x+y =k,實現交易體驗的優化。這種不同定價函數的選擇,就是前文中提到的不同協議間的那「一點新設計」。
x+y =k 帶來的這種風險被稱為無常損失,所有AMM 都會有無常損失問題,因為只要交易池內的價格與外部世界的價格不一致,就會有套利者來「搬平價格」,而套利者賺到的,就是流動性提供者損失的。
因此又出現了一批新的DEX,比如Bancor V2,它們通過使用預言機引入外部世界的價格,從而降低交易池與外部世界價格不一致的風險,減少無常損失。而在函數定價的基礎上加入預言機定價,就是那「一點新設計」。
所以,當看到層出不窮的新協議/新應用時,不要被廢話和細節淹沒,直接去看它的新的定價方法即可。而看一個定價方法,就是看它是如何通過設計(通過函數的選擇、通過與預言機的結合等)來減少滑點和減少無常損失的。
有趣的是,滑點和無常損失間存在一些互斥關係,減少滑點追逐的是一種價格的穩定,減少無常損失追逐的是一種價格的變化,優化一邊可能會損失另一邊;最新的潮流是引入預言機來打破滑點和無常損失之間的關係,做到只減少無常損失,但預言機又會帶來預言機自身的問題。
因此當你在看這一個點上的新設計時,要注意它的正反兩面,以及由此決定的它的適用場景。
我們並不需要掌握一個定價函數/定價方法的全部細節,只需要知道上述這些它的基本工作原理,以及它的實際應用效果即可。實際應用效果可以通過曲線圖簡單、快速、全面地知曉。
比如當你想要了解Uniswap 的無常損失情況時,就只需要看下圖,其中的藍色曲線展示了當價格發生什麼樣的變化時,無常損失會有多少。
以三個點為例子:黃線與藍線的交叉點是當外部價格沒有發生變化時,無常損失為零;綠線與藍線的交叉點分別是當價格跌了50% 後,以及價格漲了100% 後,無常損失都為-5.7%,不難發現損失與價格變化的幅度有關,與方向無關。
總而言之,當需要了解不同的或新的交易類協議時,奔著它的定價方法原理和曲線圖去即可,鑑於協議的提出者一定會強調和解釋自己定價方法的特點,我們要做的工作其實就是在聽完他們的話後,看曲線圖在滑點和無常損失上的表現是怎麼樣的。
04 DEX的簡要總結
真正的DeFi 可能是一門學科的體量,但目前的DeFi 並不算複雜,不要被泡沫、被太多的詞語、被他人賦予它的外衣迷惑,以及最重要的:了解DeFi 最好的途徑是使用它。
最後是一個簡要的總結:
1、AMM 是懶人版的做市商,低門檻版的做市商。做市商不需要專業知識,也不需要工作,他們只需要把錢放入交易池即可。這為把閒置資金投入到做市中來打開了方便之門。
2、AMM 類DEX 的設計,其核心是定價方法的設計,雖然有諸多不同的設計,但它們的主要目的都是為了減少滑點以及減少無常損失。
3、如果你有一筆資金,你可以:成為做市商賺錢;通過策略在交易池內部套利賺錢;通過策略在不同交易池間套利賺錢。
4、雖然風頭正勁的是AMM,但也不要忘了訂單簿模式的DEX,它們有突出的優勢,只不過目前還缺流動性。訂單簿模式似乎在可組合性上會遜於AMM,但我並不確定,而兩者是否會有這個區別會比較重要。