yETH是Yearn Finance推出的加權穩定兌換池(weighted stableswap pool), 其核心思想是在Curve StableSwap的基礎上引入代幣權重(weight)
yETH 是 Yearn Finance 推出的加權穩定兌換池。它在 Curve StableSwap 的經典公式基礎上,引入了代幣權重,使得池中不同資產可以擁有不同的目標配比。本文從 Curve 的公式推導出發,一步步推演 yETH 如何將其泛化為帶權重的版本。
在 AMM 的世界裡,有兩條最基礎的兌換曲線:
恆定和(Constant Sum)
$$ \sum x_i = D $$
代幣之間按固定比例 1:1 兌換,兌換曲線是一條直線。優勢是對於錨定資產(如 USDT/USDC、ETH/stETH)價格極好,在整條曲線上都是零滑點。缺陷也很明顯——當池子嚴重失衡時,完全沒有滑點保護,LP 可能被套利一空。
恆定乘積(Constant Product)
$$ \prod x_i = K = \left(\frac{D}{n}\right)^n $$
這是 Uniswap V2 採用的模型,兌換曲線是 $xy = k$ 的雙曲線。任何交易都會產生滑點,天然保護了池子的流動性。但缺陷是在均衡點附近價格變化也很大,不適合用來兌換錨定資產。

一個直覺:能不能把這兩條曲線「揉」在一起? 在均衡點附近像恆定和一樣低滑點,偏離均衡時像恆定乘積一樣有保護。
Curve 的核心思路就是找到一個動態放大係數 $\chi$,把恆定和與恆定乘積按比例混合:
注意到恆定和中 $D$ 是 1 次方,恆定乘積中 $D$ 是 $n$ 次方,兩者相差 $D^{n-1}$。因此實際的放大比例應為 $\chi D^{n-1}$,這樣才能讓兩部分在量綱上對齊。
先對恆定和等式兩邊乘上 $\chi D^{n-1}$:
$$ \chi D^{n-1} \sum x_i = \chi D^n $$
再把恆定乘積加到左邊、右邊分別補上:
$$ \chi D^{n-1}\sum x_i + \prod x_i = \chi D^n + \left(\frac{D}{n}\right)^n $$
$\chi$ 不能是固定常數——它需要隨池子狀態動態調整:
滿足這兩個條件的自然定義是:
$$ \chi = A \cdot \frac{\prod x_i}{\left(\frac{D}{n}\right)^n} $$
在均衡點,$\prod x_i$ 恰好等於 $\left(\frac{D}{n}\right)^n$,所以 $\chi = A$;偏離均衡時,$\prod x_i$ 相對下降,$\chi$ 自動趨向 0。
代入並化簡,就得到了著名的 Curve StableSwap 不變量:
$$ An^n\sum x_i + D = An^nD + \frac{D^{n+1}}{n^n\prod x_i} $$
Curve 的公式假設池中每一個代幣的權重是一樣的——在均衡點,所有代幣的數量相等。但現實中,很多場景需要不對稱的配比。例如 Balancer 的 Weighted Pool 就允許 80/20 這樣的權重分配。
yETH 的核心問題:能不能把代幣權重引入 Curve 的穩定曲線?
引入權重 $w_i$($\sum w_i = 1$),兩條基礎曲線改寫為:
$$ \sum x_i = D $$
$$ \prod x_i^{w_i \cdot n} = \left(\frac{D}{f}\right)^n $$
其中定義:
$$ \frac{1}{f} = \prod w_i^{w_i}, \quad v_i = w_i \cdot n $$
$D$ 仍然代表「所有代幣按等價折算後的總量」。不同的是,在帶權重的均衡點,每個代幣的數量不再相等,而是按權重分配:
$$ x_i = D \cdot w_i $$
驗證一下這個定義的自洽性:
恆定和:
$$ \sum x_i = \sum D \cdot w_i = D \cdot \sum w_i = D \quad \checkmark $$
加權恆定乘積:
$$ \prod x_i^{w_i \cdot n} = \prod (D \cdot w_i)^{w_i \cdot n} $$
$$ = \left(\prod w_i^{w_i} \cdot D^{w_i}\right)^n = \left(\prod w_i^{w_i} \cdot D^{\sum w_i}\right)^n = \left(D \prod w_i^{w_i}\right)^n = \left(\frac{D}{f}\right)^n \quad \checkmark $$
同樣的思路,定義動態放大係數 $\chi$:
$$ \chi = A \cdot \frac{\prod x_i^{v_i}}{\left(\frac{D}{f}\right)^n} $$
它仍然滿足:均衡點時 $\chi = A$,偏離均衡時 $\chi \to 0$。
乘上 $\chi D^{n-1}$ 並加入加權恆定乘積:
$$ \chi D^{n-1}\sum x_i + \prod x_i^{v_i} = \chi D^n + \left(\frac{D}{f}\right)^n $$
代入 $\chi$ 的定義:
$$ A \cdot \frac{\prod x_i^{v_i}}{\left(\frac{D}{f}\right)^n} \cdot D^{n-1}\sum x_i + \prod x_i^{v_i} = A \cdot \frac{\prod x_i^{v_i}}{\left(\frac{D}{f}\right)^n} \cdot D^n + \left(\frac{D}{f}\right)^n $$
兩邊同除以 $\prod x_i^{v_i}$,再乘以 $D$,化簡得到 yETH 的最終不變量方程:
$$ \boxed{Af^n \sum x_i + D = Af^n D + \frac{D^{n+1}}{f^n \prod x_i^{v_i}}} $$
當所有權重相等時($w_i = 1/n$):
$$ f = \frac{1}{\prod w_i^{w_i}} = \frac{1}{\prod (1/n)^{1/n}} = \frac{1}{(1/n)} = n $$
$$ v_i = w_i \cdot n = 1, \quad \prod x_i^{v_i} = \prod x_i $$
代入 yETH 公式:
$$ An^n \sum x_i + D = An^n D + \frac{D^{n+1}}{n^n \prod x_i} $$
這正是 Curve 的標準 StableSwap 不變量。yETH 是 Curve 的嚴格泛化。
在 yETH 的 Vyper 合約中,有幾個值得注意的實現細節:
1. 存儲的放大係數是 $Af^n$
合約中的 amplification 變量存儲的不是 $A$,而是 $A \cdot f^n$。這樣在計算時可以直接使用,避免每次都要計算 $f^n$。
2. product term($\pi$)的定義
合約中的 vb_prod 存儲的是:
$$ \pi = \prod \left(\frac{w_i \cdot D}{x_i}\right)^{w_i \cdot n} $$
這等價於 $\frac{(D/f)^n}{\prod x_i^{v_i}}$,在均衡點時 $\pi = 1$。
3. 迭代求解 D
將不變量方程改寫為迭代形式:
$$ D_{m+1} = \frac{Af^n \cdot \sigma - D_m \cdot \pi_m}{Af^n - 1} $$
其中 $\sigma = \sum x_i$ 為 sum term,$\pi$ 為 product term。每次迭代同時更新 $\pi$(因為 $\pi$ 中包含 $D$)。
| Curve StableSwap | yETH Weighted StableSwap | |
|---|---|---|
| 代幣權重 | 等權($w_i = 1/n$) | 任意權重($\sum w_i = 1$) |
| 均衡點 | $x_i = D/n$ | $x_i = D \cdot w_i$ |
| 恆定乘積 | $\prod x_i = (D/n)^n$ | $\prod x_i^{v_i} = (D/f)^n$ |
| 不變量 | $An^n\sum x_i + D = An^nD + \frac{D^{n+1}}{n^n\prod x_i}$ | $Af^n\sum x_i + D = Af^nD + \frac{D^{n+1}}{f^n\prod x_i^{v_i}}$ |
| 放大係數 | $A \cdot n^n$ | $A \cdot f^n$ |
yETH 本質上是 Curve StableSwap 的一個自然推廣——把「等權」泛化為「帶權」,數學結構完全一致,只是用 $f$ 替換了 $n$,用 $\prod x_i^{v_i}$ 替換了 $\prod x_i$。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!
