DEX 中崛起的獨角獸—Uniswap

買賣虛擬貨幣

Uniswap的誕生充滿了偶然與趣味性,據說Uniswap 的創始人Hayden Adams 的靈感來自於V神在reddit上發的一個帖子。靈感有了,Hayden Adams老兄便開始著手學習Solidity程式設計。他一開始只是抱著學習Solidity程式設計試試看的想法,然而這個用來練手的專案很快就得到了認可,獲得了一筆來自以太坊的資助獎金,這下啟動資金的問題也解決了。

2018年11月,Uniswap正式上線,其定位是一個基於以太坊的去中心化交易所(DEX)。DEX雖然在使用者資產安全性方面有所提升,但是受限於其資金規模,大多數DEX的資產流動性並不好,交易速度也就成了一個硬傷。

為了解決這個問題,Uniswap並未採用主流的訂單薄交易系統,而是選擇了自動化做市商機制。在傳統的訂單薄交易中,做市商或者交易者會按照不同的價位分別下單,根據價位來提供不同的流動性。而Uniswap的AMM機制則是將所有人的資產彙集到流動池中,並根據一種名為“恆定乘積做市商模型”的演算法進行做市商。所謂的“恆定乘積”其實可以看成一個反比例函式“XY=Z”,無論X和Y怎麼改變,Z始終是一個定值。放到Uniswap的交易中是指某次交易前後流動池裡的兩種代幣數量的乘積是恆定的,即買前乘積=買後乘積。

舉個例子:在Uniswap中新建一個ETH與X代幣的流動池(免費建立,無需費用),建立時ETH和X的數量分別為10和100,這個時候X的價格為0.1ETH,兩者數量的乘積為1000。建立完成之後,使用者就可以在Uniswap上進行ETH與X的兌換了。假設有人用1個ETH來買X,這個時候1Eth進入流動池,ETH的數量變為11,那麼要保持兩者乘積不變,X的數量就要減少,這個減少的X的數量即為1個ETH能買到的X數量。根據恆定乘積可得,10*100=(10+1)*(100-X’),計算的X’=9.09,即1個ETH可以買到9.09個X,相對於原來1ETH=10X的價格來說,滑點(價格誤差)為(10-9.09)/10*100%=9.09%。將1個ETH改成5個,同樣可以算出5個ETH可以買到33.33個X,1個ETH只能夠買到6.67個X,滑點為33.33%。從上述例子可以看出,“恆定乘積”演算法其實原理一點都不復雜,並且有如下特點:

1、根據交易情況反映價格。當有人用A代幣兌換B代幣(即買入B)時,B的價格就會上漲,反過來(賣出B)則B價格下跌,符合一般交易價格規律。

2、流動性保持。無論流動池的資金規模如何,該演算法均能提供流動性。

3、不適合大額的交易兌換。我們發現在進行大額交易兌換的時候,價格變化很大,且不是線性的。當然,這個大額是相對於流動池的規模來判別的。

所謂的“恆定乘積”是指在某次交易前後,乘積不變,也即是說流通池中的兩種代幣乘積並非是永遠一成不變的。那什麼時候乘積會改變?對價格有沒有影響呢?在Uniswap的AMM機制中,使用者也可以往流動池中新增資金來幫助降低交易的滑點。但是如果隨意新增代幣到流動池中,代幣的數量比例會改變,價格會產生較大的波動。為了保持當前的兩種代幣價格兌換比例不會被改變,使用者需要按當前比例數量的兩種代幣同時注入流動池中。這樣一來,乘積會被擴大,但是兩種代幣的兌換價格並未改變。值得一提的是,Uniswap並沒有發行自己的平臺代幣,為了激勵使用者往流動池中注入資金,資金池中的使用者會按照資金比例平分該交易對的交易總額的0.3%的代幣獎勵。

Uniswap在交易機制上的創新也在DEX領域掀起一股熱潮,一大批AMM專案湧現出來,以Curve和Balancer為例,它們都有自己的定價函式,遠比Uniswap的“恆定乘積”複雜,作為投資者和交易者,我們樂於看到這些創新和改變,也期待更多有趣有意義的專案。

免責聲明:

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

推荐阅读

;