やさしいAMM
Uniswap, Curve, Bancor, Balancerに代表されるAutomated Market Maker (AMM)の雰囲気だけお伝えします。
AMMはプールされた複数のアセット間の取引を提供する仕組みです。Automatedと言っているので、ある基本原理のもとに勝手に動きます。それは大別すると主に次の2つです:
- x * y = 一定
- x + y = 一定
ここでx, yはそれぞれプール内のアセットの量です。
x * y = 一定 のAMM
Uniswap, Bancor v1, Balancerが該当します。
この原理は y = 1 / x の形に書き直せるので、プール内のアセット量が辿る軌跡を描いてみると、次の図の青線のようになります。
ある時点での価格はプールに少量(dx)が入ってきたときに出ていく量(dy)から考えることができるので、接線の傾き(dy/dx)です。
上の図の例で言えば、オレンジの点(x, y) = (1, 1)での価格は y/x = 1で、緑の点(x, y) = (2, 0.5)での価格は y/x = 0.25です。
x, yのどちらも0になることはないため、プール内のアセットバランスがどのような場合でも価格を算定し取引を提供することができます。逆に言うと、アセットバランスに応じて価格を導出するプライスファインダー(オラクル)としての役割を持ちます。
発展
Uniswap基本原理の正体は
(x^0.5) * (y^0.5) = 一定
です。ウェイト(0.5)が隠れています。
Balancerではウェイトを自由に設定できます:
(x^w1) * (y^w2) = 一定
さらにアセットの種類も3つ以上にすることができて、
(x1^w1) * (x2^w2) * ... * (xn^wn) = 一定
というのが一般化された姿です。
参考: Balancer whitepaper https://balancer.finance/whitepaper/
x + y = 一定 のAMM
ステーブルコイン同士のプールに適した原理です。(ほぼ)等価なものがプールを構成していると思えば、取引があってもプールの価値(x+y)は変わらないというイメージしやすいものですね。xとyの関係を図示すると以下のようになります。
価格、つまり傾きはつねに一定です。しかし、この原理のまま突き進めば、xかyのどちらかが0になり、取引を提供出来なくなってしまいます。これをそのまま受け入れたのがmStableです(と認識しています。深堀りはしていないので間違っていたらすみません)。執筆時のmUSDのプール状態は次の図のようになっており、DAIが空っぽです。
Curve
ステーブルコイン同士ならなるべく一定価格で提供したいけれど、在庫切れは困る
この問題を解決したのが、Curveの方法で、「x+y=一定」と「x*y=一定」の原理を組み合わせたものです。「x+y=一定」の性質を増幅させるパラメータとしてAmplification coefficient (A)が加わります。
参考: Curve whitepaper https://curve.fi/files/stableswap-paper.pdf
上の図でA=0の場合がUniswapに対応し、Aが大きくなるにつれて「x+y=一定」の直線に近づいていきます。A=5(緑線)の場合では x=1.5くらいになってもまだ赤線と同じくらいの傾き(=価格)を保てていることが分かります。
Bancor v2
Curveが優れていた点とは何でしょう?それは目標価格 y/x = 1が決まっていたことで、そこにへばりつくようにプールの状態を調節できたことです。つまり目標価格さえ随時設定できれば、ステーブルコインペアではなくても同様のことができます。これを実現したのがBancor v2です。
Bancor v2は外部オラクルの価格をインプットにして、その目標価格周辺でスリッページ耐性の高い取引を提供します。次の図のようなイメージです。
ステーブルコインで言えば y/x = 1でしたが、上図の例では y/x = 0.25の価格(傾き)になるべく合わせるようにBancor v2の曲線が分布しています。
先日ローンチしたばかりのBancor v2のLINK-BNTプールは$500kという流動性にもかかわらず、$18k (プール額の3.5%相当)の取引を0.35%のスリッページで提供する能力があります。比較対象に、1inchExchangeで全DEXを合わせて同額の取引を行う見積もりをしてみると、予想スリッページは1.4%でした。
https://twitter.com/kyoronut/status/1289701307624783877?s=20
まとめと考察
2つの基本原理をベースに各種AMMを概説しました。最近ローンチしたBancor v2の効率の良さを見ると、オラクルの使えるメジャーなトークンの取引シェアはBancor v2が獲得していく可能性があると思っています。これは短絡的にUniswap, BalancerよりもBancor v2が優れているということではなく、あくまでオラクルを使うという性質の違いです。最近増えてきた(そしてこれから増えると思われる)DEXがメイン市場のトークンについてはUniswap, Balancer自体が価格を決定しているようなものなので、そういったトークンをBancor v2で提供しても、効率的に処理できる量は胴元の大きさで決まってしまいます。
そういうわけで、これからのDEXはプライスファインダー(オラクル)としてのAMMと、オラクルありきでの高効率AMMという2党体制で発展していくでしょう。
編集後記的なもの: RE:やさしいAMM and more
twitter https://twitter.com/kyoronut