這是白話區塊鏈的第1358期原創

作者| Celia出品|白話區塊鏈(ID:hellobtc)

AMM是Automated Market Maker的縮寫,中文名字叫自動做市商。往簡單了說,就是由一個算法代替傳統中心化平台的位置,為市場上的兌換提供流動性的平台。

市場上的成交者因為對市場的預期不同,手裡持有資產的不同,每個成交者都有不同的需求。我們都知道要成為傳統的做市商需要具備非常雄厚的資金,才能不斷通過成為市場上成交對的賣方和買方,整合兌換,從而讓散戶不用在兌換時不斷等待對手盤的出現。

01 恆定乘積原理

區塊鏈各種虛擬Token的兌換最初也是靠中心化交平台起家。這一切的平靜被UNISWAP打破,而且UNISWAP運用的方法簡單到令人大跌眼鏡——恆定乘積原理。

x * y = k

恆定乘積聽著挺拗口的,說人話就是兩個變量相乘得到一個固定常數。這樣一個簡單的乘法公式怎麼完成“做市”這種深奧的金融業務?

這一機制正常運轉的背後有三種角色,分別是:

1、成交者:用一種資產交換另一種資產;

2、流動性提供者(LP) :願意將自己的資產組合貢獻出來,幫助他人進行兌換,獲得一定費用;

3、套利者:發現價值凹地,比如從UNISWAP中低價買入到市場上去賣出,以賺取一定利潤。

UNISWAP官網中用一張圖詳細地描述了三者的關係:

當然圖中是沒有套利者的,因為從平台的角度看,兩者產生的都屬於兌換行為。

我們假設UNISWAP一個兌換池中是ETH-DAI,第一個流動性提供者放進去了a個ETH和b個DAI,倆者價值相等。

這時候這個兌換對,對應的初始值是x=a, y=b;那K的初始值=a*b;

此時ETH的價格就是b/a,DAI的價格=a/b;

在K不變的情況下,如果這個兌換池有Trader T進來,想用w個EHT換DAI。他會以什麼樣的價格拿到多少DAI呢?

在恆定乘積原理下,這個運算過程是這樣的:

y'=K/(x+w)。

其中y'等於此次兌換後,兌換池中的DAI的個數。由此可知,T得到的DAI的個數=y-y';這些DAI的價格=w/(y-y')。

所以你發現了嗎?在成交者告訴平台自己要兌換的數量之前,他能拿到什麼價格是不確定的。這就讓UNISWAP的價格獲取跟中心化平台和利用價格預言機的平台完全區分開了。

02 K值改變

還有別忘了,我們假定的前提條件是K不變,那哪些情況下K值是要改變的?答案有二,一是兌換費,二是流動性。

1、兌換費

用戶每一次的兌換,需要交0.3%的手續費。拿上面兌換舉例,我們為了簡化計算忽略了手續費,真實的情況是Uniswap平台在計算出y'後會扣除0.3%y'的手續費,完成兌換後,這0.3%y'會被添加到流動性池裡,此時K值就變成了xy+x0.3%y'=x*(y+0.3%y')。

所以,你發現了嗎? K值變大了。反之亦然,減少流動性,會減少K值。換言之,恆定乘積算法的K值並不恒定,每一筆兌換都會影響K值。

2、流動性

流動性是怎麼改變K值的呢?當第二個人在一個兌換對中按照比例增加了ETH和DAI的數量,X和Y就同時增加了,很顯然,K的值就是增加的;如果第一個人取走自己的兌換對,K值就減少,非常簡單。

總之呢,“恆定”乘積針對的是總體流動性不變的情況下,也假設沒有手續費的時候,K是不變的,就像計算物理題的時候假設某個狀態下不存在摩擦力一樣。通過簡化前提,讓這樣一個簡單的乘法就實現了價格與供應量成反比的經濟學原理,真可謂是天才設計了。

但是習慣了傳統做市商模式的你可能會不習慣,這種對兩種資產進行定價的方式,不僅少見還顯得過於獨斷。讓兩種Token的庫存數相乘所得的積維持固定,為什麼就能確保正確的報價呢?因為設計者相信市場中始終存在聰明的套利者,會反复兌換,直到平台價格與真實價格相符無利可圖。

誠然,恆定乘積做市商模式因為缺乏與外界的聯動顯得略微被動和孤立,總是需要套利者去抹平平台上價格與真實價格之間的差;而且被大家詬病的兌換滑點和LP(流動性提供者)無償損失也阻礙著更加保守的Trader進入這個領域。

但它的優點也是顯而易見的,高效、透明、維護成本低,降低了做市門檻等都讓它的缺點顯得不那麼重要了。

用一句話總結就是——“一切交給市場”。

自從UNISWAP開創了AMM自動做市商模式,彷彿給區塊鏈大佬們開了腦洞一般,越來越多精細化的項目進來做市商的賽道。雖然去中心化金融產生的時間不長,但是有記憶點的,在DEFI浪潮中起水花的項目此起彼伏。

隨著UNISWAPV3的到來,這只獨角獸爆發的創造力又給了後來者們上了精彩的一課:原來靠深耕資金利用率也可以玩出花。

03 UNISWAP V3的利與弊

UNISWAP V3到底有哪些改變?

1、資本利用率

一直以來鎖倉量都是各家競爭的重點,這次V3帶來的是成交量的迅速增長,究其原因就是靠“集中流動性”提高資本利用率。

怎麼集中流動性?通過限製做市區間,增加了可成交價格附近的流動性深度。如果把V2想像成一個無限寬的水槽,那V3就是由一個個極小單位(TICK)水槽並排組成的水槽,你可以把你的流動性(Token),撒進你感興趣的價格區間,如果你的區間覆蓋了成交價,就可以獲得兌換費分成,否則就失去資格。

在利益的驅使下,大部分人都會選擇在成交價附近投入自己的流動性,這樣成交價附近的水也是最深的,這點跟賬單簿中心式交易平台就很像。

如此一來LP集中在更可能成交的範圍,資本利用率大大提升,從最新的V3成交量和鎖倉的比例也可以看出。特別是對穩定之間的兌換,效率大大提升。

2、LP的風險

相比於更加保守被動的V2,V3對於LP的要求更高,要求LP要基於自己對於市場的判斷謹慎選擇策略。因為V2中的LP們投入的流動性不會有風險,去除流動性的時候還是當初自己放進去的1:1的資產,而V3則不同了,不僅放開了1:1的要求,如果價格劇烈波動超過了自己鎖定的區間,投入的LP會被兌換成其中一個資產,取出的時機決定了自己能取出資產的數量。

毫無疑問V3變複雜了,這也使得炒作空氣的人要更加謹慎,舉例來說,在你提供了主流價值Token與某空氣Token的“兌換對”之後,你的價值Token可能被瞬間吸乾,持倉變成100%的垃圾Token還沒有迴旋的餘地。

3、限價單模式

如果我們以DAI/ETH為例,為了好理解把ETH定義為貴資產,把DAI定義為賤資產;按照經驗看,ETH價格可能大幅波動,DAI價格相對穩定。

利用好V3定價區間可以實現幾種不同模式的訂單:

止盈(YES),即你希望在高於現貨的價格售出貴資產,是可行的。

低吸(YES),即你希望以低於現價的價格買入貴資產,是可行的。

(止盈訂單示意圖)

當然也有一些訂單模式是不可行的,比如:

止損(NO),即你希望以低於“現價”的價格賣出貴資產,俗稱割肉。或者是在高於現貨的價格繼續加倉貴資產也是不可行的(設立訂單這一步就通不過)。

4、預言機

UNISWAP作為預言機的功能是被V神點名的,V3版本每一個單獨的池子都將作為預言機提供兌換對的數據。可以追踪區塊中的歷史成交價,只要支付兌換費用就可以增加跟踪觀察的數量(最多65535),將數據可用期延長至9 天或更長時間。這無疑會使預言機攻擊變得更加困難。

5、兌換費用

V3的一個重大改變就是兌換費不再自動加入到流動池子內,而且需要人為發起收集指令去收集。另外因為兌換費的獲取必須在成交區間內,計算過程變複雜很多,根據單位TICK費率乘以總的流動性。

當然根據V3使用者反饋情況看,GAS費用上昇明顯,依然是對資本大戶友好,這一點只能期待layer2上線之後有大的改善。

UNISWAPV3上線後褒貶不一,但總體從數據看,認可度還是很高的。一直被模仿,還未被超越是UNISWAPV3目前的主弦律,UNISWAP也給仿盤們上了一課,代碼可以FORK,但是思維的創造力是無法仿造的。