ALEXGO
  • 😀What is ALEX?
  • 📈Automated Market Making
    • Our Design
  • 🧙‍♀️Bitcoin Oracle
    • What is the Bitcoin Oracle
  • 🩸XLink
    • XLink
  • 🚅Orderbook
    • What is the Orderbook?
    • Understanding the Orderbook
  • 🚀Launchpad
    • What is the Launchpad
  • 📚Whitepaper
    • Automated Market Making of Trading Pool
    • Automated Market Making of Yield Token Pool
    • Automated Market Making of Collateral Rebalancing Pool
    • Dive Into Collateral Rebalancing Pool!
  • 🎮Developers
    • Networks
      • Mainnet
      • Testnet
    • Protocol Contracts
      • amm-pool-v2-01.clar
      • amm-registry-v2-01.clar
      • amm-vault-v2-01.clar
      • farming-campaign-v2-02.clar
      • self-listing-helper-v3a.clar
    • REST API
Powered by GitBook
On this page
  • Abstract
  • Introduction
  • AMM and Invariant Function
  • Properties of AMM
  • ALEX AMM
  • Trading Formulae
  • Out-Given-In
  • In-Given-Out
  • In-Given-Price
  • Appendix 1: Generalised Mean when d=2
  • Appendix 2: Liquidity Mapping to Uniswap v3
  1. Whitepaper

Automated Market Making of Trading Pool

PreviousWhat is the LaunchpadNextAutomated Market Making of Yield Token Pool

Last updated 1 year ago

Abstract

We introduce a new invariant function associated with generalised mean that underpins the ALEX AMM. ALEX builds DeFi primitives targeting developers looking to build ecosystem on Bitcoin, enabled by . With a suitable parameterisation, the invariant function supports both risky pairs (i.e. xy=Lx y=Lxy=L), stable pairs (i.e. x+y=Lx +y=Lx+y=L) and any linear combination in-between (i.e. Curve). We also show that our invariant function maps LLL to the liquidity distribution of .

Introduction

At ALEX, we build DeFi primitives targeting developers looking to build ecosystem on Bitcoin, enabled by . As such, we focus on trading, lending and borrowing of crypto assets with Bitcoin as the settlement layer and Stacks as the smart contract layer. At the core of this focus is the automated market making ("AMM") protocol, which allows users to exchange one crypto asset with another trustlessly. This paper focuses on technical aspects of AMM.

AMM and Invariant Function

ALEX AMM is built on three beliefs: (i) it is mathematically neat and reflect economic demand and supply and (ii) it is a type of mean, like other AMMs.

We will firstly review some desirable features of AMM that ALEX hopes to exhibit.

Properties of AMM

AMM protocol, which provides liquidity algorithmically, is the core engine of DeFi. In the liquidity pool, two or more assets are deposited and subsequently swapped resulting in both reserve and price movement. The protocol follows an invariant function f(X)=Lf(X)=Lf(X)=L, where X=(x1,x2,…,xd)X=\left(x_1,x_2,\dots,x_d\right)X=(x1​,x2​,…,xd​) is ddd dimension representing ddd assets and LLL is constant. When d=2d=2d=2, which is the common practise by a range of protocols, AMM f(x1,x2)=Lf(x_1,x_2)=Lf(x1​,x2​)=L can be expressed as x2=g(x1)x_2=g(x_1)x2​=g(x1​). Although it is not always true, ggg tends to be twice differentiable and satisfies the following

  • monotonically decreasing, i.e. dg(x1)dx1<0\frac{dg(x_1)}{dx_1}<0dx1​dg(x1​)​<0. This is because price is often defined as −dg(x1)dx1-\frac{dg(x_1)}{dx_1}−dx1​dg(x1​)​. A decreasing function ensures price to be positive.

  • convex, i.e. d2g(x1)dx12≥0\frac{d^2g(x_1)}{dx_1^2} \geq 0dx12​d2g(x1​)​≥0. This is equivalent to say that −dg(x1)dx1-\frac{dg(x_1)}{dx_1}−dx1​dg(x1​)​ is a non-increasing function of x1x_1x1​. It is within the expectation of economic theory of demand and supply, as more reserve of x1x_1x1​ means declining price.

Meanwhile, fff can usually be interpreted as a form of mean, for example, relates to arithmetic mean, where x1+x2=Lx_1+x_2=Lx1​+x2​=L (constant sum formula); one of the most popular platforms relates to geometric mean, where x1x2=Lx_1 x_2=Lx1​x2​=L (constant product formula); , which our employs, applies weighted geometric mean. Its AMM is x1w1x2w2=Lx_1^{w_1} x_2^{w_2}=Lx1w1​​x2w2​​=L where w1w_1w1​ and w2w_2w2​ are fixed weights. ALEX AMM extends these to create a generalised mean.

ALEX AMM

After extensive research, we consider it possible for ALEX AMM to be connected to generalised mean defined as

(1d∑i=1dxip)1p\left( \frac{1}{d} \sum _{i=1}^{d} x_i^{p} \right)^{\frac{1}{p}}(d1​i=1∑d​xip​)p1​

where 0≤p≤10 \leq p \leq 10≤p≤1. The expression might remind readers of ppp-norm when xi≥0x_i \geq 0xi​≥0. It is however not true when p<1p<1p<1 as triangle inequality doesn't hold.

When d=2d=2d=2 and p=1−tp=1-tp=1−t (0≤t<1)(0\leq t<1)(0≤t<1) is fixed, the core component of generalised mean is assumed constant as below.

x11−t+x21−t=L−dx2dx1=(x2x1)t\begin{split}x_1^{1-t}+x_2^{1-t}&=L\\ -\frac{dx_2}{dx_1}&=\left(\frac{x_2}{x_1} \right)^{t}\end{split}x11−t​+x21−t​−dx1​dx2​​​=L=(x1​x2​​)t​

Trading Formulae

Market transaction, which involves exchange of one crypto asset and another, satisfies the invariant function. Please note the formulae do not account for the fee re-investment, which results in a slight increase of LLL after each transaction, like Uniswap V2.

Out-Given-In

In order to purchase Δy\Delta yΔy amount of token Y from the pool, the buyer needs to deposit Δx\Delta xΔx amount of token X. Δx\Delta xΔx and Δy\Delta yΔy satisfy the following

(x+Δx)1−t+(y−Δy)1−t=x1−t+y1−t(x+\Delta x)^{1-t}+(y-\Delta y)^{1-t}=x^{1-t}+y^{1-t}(x+Δx)1−t+(y−Δy)1−t=x1−t+y1−t

After each transaction, balance is updated as below: x→x+Δxx\rightarrow x+\Delta xx→x+Δx and y→y−Δyy\rightarrow y-\Delta yy→y−Δy. Rearranging the formula results in

Δy=y−[x1−t+y1−t−(x+Δx)1−t]11−t\Delta y=y-\left[x^{1-t}+y^{1-t}-(x+\Delta x)^{1-t}\right]^{\frac{1}{1-t}}Δy=y−[x1−t+y1−t−(x+Δx)1−t]1−t1​

When transaction cost exists, the actual deposit to the pool is less than Δx\Delta xΔx. Assuming λΔx\lambda\Delta xλΔx is the actual amount and (1−λ)Δx(1-\lambda)\Delta x(1−λ)Δx is the fee, above can now be expressed as

(x+λΔx)1−t+(y−Δy)1−t=x1−t+y1−tΔy=y−[x1−t+y1−t−(x+λΔx)1−t]11−t\begin{split} &(x+\lambda\Delta x)^{1-t}+(y-\Delta y)^{1-t}=x^{1-t}+y^{1-t}\\ &\Delta y=y-\left[x^{1-t}+y^{1-t}-(x+\lambda\Delta x)^{1-t}\right]^{\frac{1}{1-t}} \end{split}​(x+λΔx)1−t+(y−Δy)1−t=x1−t+y1−tΔy=y−[x1−t+y1−t−(x+λΔx)1−t]1−t1​​

To keep LLL constant, the updated balance is: x→x+λΔxx\rightarrow x+\lambda\Delta xx→x+λΔx and y→y−Δyy\rightarrow y-\Delta yy→y−Δy.

In-Given-Out

This is the opposite case to above. We are deriving Δx\Delta xΔx from Δy\Delta yΔy.

Δx=1λ[x1−t+y1−t−(y−Δy)1−t]11−t−x\Delta x=\frac{1}{\lambda}{\left[x^{1-t}+y^{1-t}-(y-\Delta y)^{1-t}\right]^{\frac{1}{1-t}}-x}Δx=λ1​[x1−t+y1−t−(y−Δy)1−t]1−t1​−x

In-Given-Price

Sometimes, trader would like to adjust the price, perhaps due to deviation of AMM price to the market value. Define p′p'p′ the AMM price after rebalancing the token X and token Y in the pool

p′=(y−Δyx+λΔx)tp'=\left(\frac{y-\Delta y}{x+\lambda\Delta x}\right)^{t}p′=(x+λΔxy−Δy​)t

Then, the added amount of Δx\Delta xΔx can be calculated from the formula below

(x+λΔx)1−t+(y−Δy)1−t=x1−t+y1−t1+(yx)1−t=(1+λΔxx)1−t+(y−Δyx)1−t1+p1−tt=(1+λΔxx)1−t+p′1−tt(1+λΔxx)1−tΔx=xλ[(1+p1−tt1+p′1−tt)11−t−1]\begin{split} &(x+\lambda\Delta x)^{1-t}+(y-\Delta y)^{1-t}=x^{1-t}+y^{1-t}\\ &1+\left(\frac{y}{x}\right)^{1-t}=\left(1+\lambda\frac{\Delta x}{x}\right)^{1-t}+(\frac{y-\Delta y}{x})^{1-t}\\ &1+p^{\frac{1-t}{t}}=\left(1+\lambda\frac{\Delta x}{x}\right)^{1-t}+p'^{\frac{1-t}{t}}\left(1+\lambda\frac{\Delta x}{x}\right)^{1-t}\\ &\Delta x=\frac{x}{\lambda}\left[\left(\frac{1+p^{\frac{1-t}{t}}}{1+p'^{\frac{1-t}{t}}}\right)^{\frac{1}{1-t}}-1\right]\\ \end{split}​(x+λΔx)1−t+(y−Δy)1−t=x1−t+y1−t1+(xy​)1−t=(1+λxΔx​)1−t+(xy−Δy​)1−t1+pt1−t​=(1+λxΔx​)1−t+p′t1−t​(1+λxΔx​)1−tΔx=λx​​(1+p′t1−t​1+pt1−t​​)1−t1​−1​​

Appendix 1: Generalised Mean when d=2

ALEX's invariant function is f(x1,x2;p)=x1p+x2p=L.f(x_{1},x_{2};p)=x{_1}^{p}+x_{2}^{p}=L.f(x1​,x2​;p)=x1​p+x2p​=L. It can be rearranged as x2=g(x1)=(L−x1p)1px{2}=g(x_{1})=(L-x_{1}^{p})^{\frac{1}{p}}x2=g(x1​)=(L−x1p​)p1​. x1x_{1}x1​ and x2x_{2}x2​ should both be positive meaning the liquidity pool contains both tokens.

Theorem

When 0<p<10<p<10<p<1, g(x1)g\left(x_{1}\right)g(x1​) is monotonically decreasing and convex.

Proof

This is equivalent to prove dg(x1)dx1<0\frac{dg(x_{1})}{dx_{1}}<0dx1​dg(x1​)​<0 and d2g(x1)dx12≥0\frac{d^{2}g(x_{1})}{dx_{1}^{2}}\geq0dx12​d2g(x1​)​≥0.

dg(x1)dx1=1p(L−x1p)1p−1(−px1p−1)=−(L−x1px1p)1−pp<0d2g(x1)dx12=−1−pp(L−x1px1p)1−2pp[−px1p−1x1p−(L−x1p)pxp−1x12p]=L(1−p)(x2x1)1−2px1−p−1≥0\begin{split} &\frac{dg(x_{1})}{dx_{1}}=\frac{1}{p}(L-x_{1}^{p})^{\frac{1}{p}-1}\left(-px_{1}^{p-1}\right)=-\left(\frac{L-x_{1}^{p}}{x_{1}^{p}}\right)^{\frac{1-p}{p}}<0\\ &\frac{d^{2}g(x_{1})}{dx_{1}^{2}}=-\frac{1-p}{p}\left(\frac{L-x_{1}^{p}}{x_{1}^{p}}\right)^{\frac{1-2p}{p}}\left[\frac{-px_{1}^{p-1}x_{1}^{p}-(L-x_{1}^{p})px^{p-1}}{x_{1}^{2}p}\right]\\ &=L(1-p)\left(\frac{x_{2}}{x_{1}}\right)^{1-2p}x_{1}^{-p-1}\geq0 \end{split}​dx1​dg(x1​)​=p1​(L−x1p​)p1​−1(−px1p−1​)=−(x1p​L−x1p​​)p1−p​<0dx12​d2g(x1​)​=−p1−p​(x1p​L−x1p​​)p1−2p​[x12​p−px1p−1​x1p​−(L−x1p​)pxp−1​]=L(1−p)(x1​x2​​)1−2px1−p−1​≥0​

The last inequality holds because each component is positive.

When ppp= 1, it is straightforward to see that the invariant function is constant sum. To show that the invariant function converges to constant product when ppp= 0, we will show and prove an established result in a generalised ddd dimensional setting.

Theorem

lim⁡p→0(1d∑i=1dxip)1p=(∏i=1dxi)1d\lim_{p\rightarrow0}\left(\frac{1}{d}\sum_{i=1}^{d}x_{i}^{p}\right)^{\frac{1}{p}}=({\prod_{i=1}^{d}x_{i}})^{\frac{1}{d}}p→0lim​(d1​i=1∑d​xip​)p1​=(i=1∏d​xi​)d1​

Proof

(1d∑i=1dxip)1p=exp[log(1d∑i=1dxip)p]\left(\frac{1}{d}\sum{i=1}^{d}x_{i}^{p}\right)^{\frac{1}{p}}=\text{exp}\left[\frac{\text{log}\left(\frac{1}{d}\sum{i=1}^{d}x_{i}^{p}\right)}{p}\right](d1​∑i=1dxip​)p1​=exp[plog(d1​∑i=1dxip​)​]. Applying L'Hospital rule to the exponent, which is 0 in both denominator and nominator when p→0p\rightarrow0p→0, we have

lim⁡p→0log(1d∑i=1dxip)p=lim⁡p→0∑i=1dlog(xi)∑j=1d(xjxi)p=∑i=1dlog(xi)d\lim_{p\rightarrow0}\frac{\text{log}\left(\frac{1}{d}\sum_{i=1}^{d}x_{i}^{p}\right)}{p}=\lim_{p\rightarrow0}\sum_{i=1}^{d}\frac{\text{log}(x_{i})}{\sum_{j=1}^{d}\left(\frac{x_{j}}{x_{i}}\right)^{p}}=\frac{\sum_{i=1}^{d}\text{log}(x_{i})}{d}p→0lim​plog(d1​∑i=1d​xip​)​=p→0lim​i=1∑d​∑j=1d​(xi​xj​​)plog(xi​)​=d∑i=1d​log(xi​)​

Therefore

lim⁡p→0(1d∑i=1dxip)1p=lim⁡p→0exp∑i=1dlog(xi)d=(∏i=1dxi)1d\lim_{p\rightarrow0}\left(\frac{1}{d}\sum_{i=1}^{d}x_{i}^{p}\right)^{\frac{1}{p}}=\lim_{p\rightarrow0}\text{exp}\frac{\sum_{i=1}^{d}\text{log}(x_{i})}{d}=({\prod_{i=1}^{d}x_{i}})^{\frac{1}{d}}p→0lim​(d1​i=1∑d​xip​)p1​=p→0lim​expd∑i=1d​log(xi​)​=(i=1∏d​xi​)d1​

Corollary

When d = 2,

x1x2=lim⁡p→0[12(x1p+x2p)]2px_{1}x_{2}=\lim_{p\rightarrow0}\left[\frac{1}{2}(x_{1}^{p}+x_{2}^{p})\right]^{\frac{2}{p}}x1​x2​=p→0lim​[21​(x1p​+x2p​)]p2​

Proof of the corollary is trivial, as it is a direct application of the theorem. It shows that generalised mean AMM implies constant product AMM when p→0p\rightarrow0p→0.

Appendix 2: Liquidity Mapping to Uniswap v3

As Uniswap v3 is able to simulate liquidity curve of any AMM, we are interested in exploring the connection between ALEX's AMM and that of Uniswap's. Interesting questions include: what is the shape of the liquidity distribution? Which point(s) has the highest liquidity? We acknowledge that the section is more of a theoretical study for now.

Uniswap V3 AMM can be expressed as a function of invariant constant LLL with respect to price ppp, LUniswap=dydpL_{\text{Uniswap}}=\frac{dy}{d\sqrt{p}}LUniswap​=dp​dy​. For us, the difference in the invariant function means we can write price as p=ertp=e^{rt}p=ert (or, equivalently, r=1tln⁡pr=\frac{1}{t}\ln{p}r=t1​lnp ) and we have

LUniswap=dydp=2te−12rtdydrL_{\text{Uniswap}}=\frac{dy}{d\sqrt{p}}=\frac{2}{t}e^{-\frac{1}{2}rt}\frac{dy}{dr}LUniswap​=dp​dy​=t2​e−21​rtdrdy​

Based on the previous sections, we can then express yyy as

y=[L1+e−(1−t)r]11−ty=\left[\frac{L}{1+e^{-(1-t)r}}\right]^{\frac{1}{1-t}}y=[1+e−(1−t)rL​]1−t1​

Therefore

dydr=L11−te−(1−t)r(1+e−(1−t)r)2−t1−tLUniswap=2tL11−t(er(1−t)2+e−r(1−t)2)−2+t1−t=2tL11−t{2cosh⁡[r(1−t)2]}−2+t1−t\begin{split} &\frac{dy}{dr}=L^{\frac{1}{1-t}}\frac{e^{-(1-t)r}}{(1+e^{-(1-t)r})^{\frac{2-t}{1-t}}}\\ &L_{\text{Uniswap}}=\frac{2}{t}L^{\frac{1}{1-t}}\left(e^{\frac{r(1-t)}{2}}+e^{\frac{-r(1-t)}{2}}\right)^{\frac{-2+t}{1-t}}\\ &=\frac{2}{t}L^{\frac{1}{1-t}}\big\{2\cosh\left[\frac{r(1-t)}{2}\right]\big\}^{\frac{-2+t}{1-t}} \end{split}​drdy​=L1−t1​(1+e−(1−t)r)1−t2−t​e−(1−t)r​LUniswap​=t2​L1−t1​(e2r(1−t)​+e2−r(1−t)​)1−t−2+t​=t2​L1−t1​{2cosh[2r(1−t)​]}1−t−2+t​​

Figure 1 plots LUniswapL_{\text{Uniswap}}LUniswap​ against rrr (which is proportional to ppp) regarding various levels of ttt. When 0<t<10<t<10<t<1, LUniswapL_{\text{Uniswap}}LUniswap​ is symmetric around 0% at which the maximum reaches . This is because

  1. cosh⁡[(r(1−t)2)]\cosh\left[(\frac{r(1-t)}{2})\right]cosh[(2r(1−t)​)] is symmetric around rrr= 0% with minimum at 0% and the minimum value 1;

  2. xzx^zxz is a decreasing function of xxx when xxx is positive and power zzz is negative. In our case, we have z=−2+t1−t<−1z=\frac{-2+t}{1-t}<-1z=1−t−2+t​<−1. Therefore, it is the maximum rather than minimum that LUniswapL_{\text{Uniswap}}LUniswap​ achieves at 0.

Furthermore, the higher the ttt, the flatter the liquidity distribution is. When ttt approaches 1, i.e. AMM converges to the constant product formula, the liquidity distribution is close to a flat line. When ttt approaches 0, the distribution concentrates around 0%.

This equation is regarded reasonable as AMM, because (i) function ggg where x2=g(x1)x_2=g(x_1)x2​=g(x1​) is monotonically decreasing and convex; and (ii) The boundary value of t=0t=0t=0 and t=1t=1t=1 corresponds to constant sum and constant product formula respectively. When ttt decreases from 1 to 0, price −dg(x1)x1-\frac{dg(x_1)}{x_1}−x1​dg(x1​)​ gradually converges to 1, i.e. the curve converges from constant product to constant sum (see for the relevant proofs).

Though purely theoretical at this stage, maps LLL to the liquidity distribution of . This is motivated by an independent research from .

📚
Stacks
Uniswap V3
Stacks
mStable
Uniswap
Balancer
collateral rebalancing pool
Appendix 1
Uniswap V3
Paradigm
Appendix 2
Figure 1