固定乘积

From GoToken's Wiki!
Jump to navigation Jump to search

模型[edit]

  1. x*y = k:
    • 假设乘积 k 是一个固定不变的常量,可以确定当变量 x 的值越大,那么 y 的值就越小;相反 x 的值越小,y 的值就越大。据此可以得出当 x 被增大 p 时,需要将 y 减少 q 才能保持等式的恒定。在 k 恒定的情况下,推导 q 的计算公式如下:
      • x * y = k
      • (x + p) * (y - q) = k
      • q = y - k/(x + p)
      • 其中,p 是 x 的增量,q 是 y 的减量
    • 因此可知,当p>0, x token的数量增加,由于x*y = k为固定值,因此y的输出要减少

例子[edit]

  1. ETH 兑换 DAI (不考虑手续费)
    • 状态0 : 两个流动池分别由10 个ETH和2000个DAI,此时x*Y = 20000
    • 状态1: Alice要换DAI,向uniswap打入1 ETH,此时流动池变成11个ETH。因为两个流动池乘积不变,因此DAI的流动池需要减少2000-20000/11=181.82。Alice可以换得181.82个DAI。两个流动池分别剩余11个ETH和1818.18DAI
    • 状态2: Bob要换DAI,向uniswap 打入1个ETH,此时流动池变成12个ETH。DAI的流动需要减少1818.18-20000/12= 151.51。Bob可以换得151.51 DAI。
    • 假设此时市场的ETH和DAI的兑换比例为181,则会有套利者向Uniswap打入DAI购买ETH来套利。此行为会将市场上的价差抹平