恆定乘積公式
想像一台販賣機裡放著兩堆硬幣,比方說蘋果與橘子,並遵守一條死規矩:蘋果數量乘以橘子數量永遠不能改變。你拿走一些蘋果,就必須放回足夠的橘子,讓這個乘積保持不變。你付出的價格,就是這條規矩硬逼出來的價格。這正是恆定乘積自動做市商為一筆兌換定價的方式。資金池持有某代幣的儲備量 x 與另一代幣的儲備量 y,而不變量 x 乘以 y = k 必須在每筆交易前後都成立。這裡沒有訂單簿、沒有對手方在報價;曲線本身就是做市商。
在機制上,存入數量 dx 之 X 代幣的交易者會收到 dy 之 Y 代幣,使得 (x + dx)(y - dy) = k。求解得 dy = y * dx / (x + dx)。Y 以 X 計價的邊際(現貨)價格就是 y/x,即兩儲備的比值,但你在一筆有限額交易上真正成交的價格會比這個比值差,因為買進這個動作本身就把儲備推向對你不利的方向。交易相對資金池越大,價格移動越多,這就是價格影響。關鍵在於,這條曲線永遠無法被完全抽乾:當 x 趨向無限大時,dy 趨近 y 卻永遠到不了 y,所以池中永遠同時保有兩種資產、永遠報得出價格。
實務上,手續費會在輸入觸及儲備之前先被抽走,因此就費率 f(Uniswap v2 的 0.3% 級距即 0.003)而言,實際有效輸入為 dx*(1 - f)。收取的手續費會加回儲備,意味著 k 其實會隨每筆兌換略為增長,而這份增長就是流動性提供者的收益。恆定乘積設計的最大優點是穩健與簡潔:它不需要外部價格預言機、永遠在某個價格上提供流動性,並透過套利者把任何價差交易掉而自動回歸真實市場價。它的代價是流動性被稀薄地攤在從零到無限大的所有價格上,相較於訂單簿或集中流動性設計,資本效率較低。
不變量,以及單筆兌換含費率 f 的輸出量。
恆定乘積池所顯示的「價格」不過是儲備比值 y/x;它無法防止被足夠大的交易推到任意數值,這正是為何天真地把池的現貨價當作價格預言機很危險、並讓操縱有機可乘。