硬核:深入分析 TWAMM 做市商的數學原理

撰文:luffy

最近,Paradigm 研究合伙人 Dave White、Dan Robinson 與 Uniswap 創始人 Hayden Adams 一起合作設計了一個全新的做市模型「時間加權做市商 TWAMM」(The Time-Weighted Average Market Maker)。根據其發表文章介紹,TWAMM 可以在以太坊上有效地交易大額訂單,工作原理是將長期大額訂單分解為無限多個無限小的虛擬訂單,在一定時間內使用嵌入式 AMM 平滑地執行這些交易。

關於 TWAMM 的虛擬交易所涉及的數學,Dave White 在文中並沒有多費筆墨,只在最後給出了非常簡單的數學結論,這對於理解 TWAMM數學原理非常不利。本文將重點對 TWAMM 的數學原理進行嚴格的論證和解釋,至於 TWAMM 模型詳細的設計原理,可以前往 Paradiagm 官網查看,本文不再做詳述。

定義

假設 TWAMM 執行大額虛擬交易需要 N 個區塊,出售 X 的池子以每區塊 xrate 的速率出售,而出售 Y 的池子以每個區塊 yrate 的速率出售。因此,在整個期間售出的 X 總量為 xin=Nxrate,售出的 Y 總量為 yin=Nyrate。

同時,我們將此時間段嵌入 AMM 的初始儲備 xreserve 和 yreserve 分別表示為 x0=xammStart 以及 y0=yammStart。

按照 TWAMM 的設計,大額訂單是隨着區塊進行交易的,每個區塊出售 xrate 得到 yout,或者出售 xrate 得到 yout,同時 AMM 會更新 xreserve 和 yreserve 的值,整個過程總共交易 N 次。

值得注意的是,AMM 的每個區塊交易總是遵循恆定乘積做市。

硬核:深入分析 TWAMM 做市商的數學原理

公式

首先,在執行第 n-1 區塊的交易后,我們假設此時 AMM 的 xreserve 和 yreserve 值分別為 xn-1 和 yn-1。

接下來執行第 n 區塊的交易,X-Pool 和 Y-Pool 分別向 AMM 輸入 xrate 和 yrate,命:

硬核:深入分析 TWAMM 做市商的數學原理

因為 xrate 和 yrate 非常微小,且區塊的交易 AMM 遵循恆定乘積做市商,我們可以得到,

硬核:深入分析 TWAMM 做市商的數學原理

化簡,

硬核:深入分析 TWAMM 做市商的數學原理

在得到 xout,n 和 yout,n 的值后,我們進一步可以獲得 n 區塊的交易后 AMM 的 xreserve 和 yreserve 值 xn 和 yn,

硬核:深入分析 TWAMM 做市商的數學原理

通過觀察,我們發現 xn*yn=xn-1*yn-1,這正好符合 AMM 的循恆定乘積做市的前提要求。

令, xn*yn=xn-1*yn-1=…= x1*y1=x0*y0=k,這是一個常數。

分式線性遞歸

先對 xn 求得一般公式,並獲得 xammEnd=xN 的值,yn 同理。

硬核:深入分析 TWAMM 做市商的數學原理

yn 的分式線性遞歸表達式如下:

硬核:深入分析 TWAMM 做市商的數學原理

首先,若 yin 等於 0,xin 不等於 0,則

硬核:深入分析 TWAMM 做市商的數學原理

硬核:深入分析 TWAMM 做市商的數學原理

計算得到,

硬核:深入分析 TWAMM 做市商的數學原理

而,

硬核:深入分析 TWAMM 做市商的數學原理

xin 等於 0,yin 不等於 0 時,討論同上。

若 xin 和 yin 都不等於 0,對於一般的分式線性遞歸,我們可以採用不動點的方法求解。

硬核:深入分析 TWAMM 做市商的數學原理

進一步計算,

硬核:深入分析 TWAMM 做市商的數學原理

極限

TWAMM 的基本假設是將長期大額訂單分解為無限多個無限小的虛擬訂單,也即是 N 可以取無窮大,這時候可以獲得 xN 的極限值。

硬核:深入分析 TWAMM 做市商的數學原理

其中,

硬核:深入分析 TWAMM 做市商的數學原理

相似的,

硬核:深入分析 TWAMM 做市商的數學原理

最後,經過簡單的驗證 xammEnd*yammEnd=xammStart*yammStart=k, 依然滿足 AMM 的恆定乘積。

至此,我們完成了 TWAMM 的數學原理嚴格的論證和解釋,並得到了與 「時間加權做市商 TWAMM」 一文完全相同的結論。

本文鏈接:https://www.8btc.com/article/6668843

轉載請註明文章出處

(0)
上一篇 2021-08-03 07:32
下一篇 2021-08-03 08:14

相关推荐