当前位置:首页区块链Uniswap的恒定乘积算法里的K值

Uniswap的恒定乘积算法里的K值

本文介绍Uniswap里的恒定乘积算法中的K值是怎么设计的。

我们拿uniswap里的一个交易对,ETH/USDT来举例说明K值是怎么设计的。

恒定乘积算法。

Uniswap里第一个人添加xETHyUSDT的作为流动性时,决定了K值的初始大小,即K=x*y

这时,ETH和USDT共同构成了一个流动性池。请记住这个概念,很重要。

第一个添加流动性的人,可以任意添加交易对中的两个币的数量,即可以任意决定K值。

添加完流动性后,ETH的价格就等于=y(USDT的数量)/x(ETH的数量)。如果这个价格和其他交易所之间有价差,那肯定会被人搬砖套利。

所谓的恒定乘积算法,指的是在流动性池没有再添加或减少流动性的情况下,只有交易行为发生的情况下,K值是不变的。

即如果用户在ETH/USDT交易对里买入或卖出ETH,都无法改变K值的大小。

而交易行为会修改流动性池里的ETH和USDT的成分。比如用户买了dx个ETH,则流动性池里的ETH的数量就会变成(x-dx),而USDT的数量则变成了K/(x-dx),即用户需要花dy=K/(x-dx)-yUsdt来买dxETH

交易手续费影响K值。

但因为存在交易手续费,用户使用Uniswap交易时,需要交0.3%的手续费。比如用户拿dyUSDTETH,uniswap会首先扣除0.3%dy的手续费,先将这0.3%dy的手续费丢在一边,完成交易后,这0.3%dy会被添加到流动性池里,此时K值就变成了x*(y+0.3%dy)

所以,恒定乘积算法的K值并不恒定,每一笔交易都会影响K值。

添加流动性影响K值。

如果现在资金池里有xETH/yUSDT,K=x*y。现在有人又添加了流动性,增加了dx个ETH和dy个USDT,并且dx/dy=x/y。

如果你使用Uniswap的默认设定,即你添加流动性时,先输入ETH的数量,然后Uniswap会默认计算出需要多少USDT,这个默认计算就是保持dx/dy=x/y

但,添加完流动性后,流动性池里的资金变成了:(x+dx)ETH/(y+dy)USDT。此时,(x+dx)*(y+dy)gt;x*y。所以添加流动性K值变大了。

同样的减少流动性,会减少K值。

捐赠影响K值

如果你在添加流动性时,不是按dx/dy=x/y的比例去添加,而是直接往合约地址里转了dxgt;0,dy=0,也是可以的。这同样会改变K值。

这样的事是经常发生的,有些人错误地将ETH转入一个uniswap流动性池合约地址里,就产生了捐赠行为,白白把币送给了所有原来的流动性所有者。

这种非K值比例添加流动性的行为,被Uniswap称为捐赠。

但这种捐赠行为,在设计上是可以被其他人套利的。比如有人充值了dxgt;0,dy=0;此时另外的人可以充值按K值比例的dy,并且执行一个添加流动性的操作,就可以把那dx的捐赠给薅走。这个挺复杂的,细节我也搞不清楚。

任何不是按K值比例添加的流动性,都会产生捐赠。比如dx/dygt;x/y,则先添加(dx-ddx)/dy=x/y的流动性,并返回给用户对应数量的LPtoken。然后ddx就变成了捐赠。

还有,在同一个区块里,可能即有交易是添加流动性的,也有交易是买卖,那K值就会更复杂的变化。

感谢Plancker Dao成员李世胜对本文的贡献

温馨提示:

文章标题:Uniswap的恒定乘积算法里的K值

文章链接:https://www.btchangqing.cn/172755.html

更新时间:2021年01月04日

本站大部分内容均收集于网络,若内容若侵犯到您的权益,请联系我们,我们将第一时间处理。

区块链

以太坊的经销商购买了价值140美元的nffm,以庆祝以太坊的突破

2021-1-4 10:37:16

区块链

1.4早行情:比特币冲高回落 主流币百花齐放

2021-1-4 11:00:48

15 条回复 A文章作者 M管理员
  1. 山山水水

    我在火币买的比特币

  2. 农场人

    坑……okb等于没什么作用,okt 遥遥无期.

  3. 狂人

    应该还不错

  4. ????

    比特币我呆了比特币

  5. 九门大提督

    现在整个区块链市场有几个靠谱项目?

  6. 孙忠成

    没碰!我来看戏

  7. 小怪物

    主流币玩中长期波段还是可以的~

  8. 夸克哥

    这波稳了,,

  9. ཻOdina༣ྀ࿐*

    不懂的人太多了,请大家不懂久不要乱喷,你不懂不带表不是事事,

  10. RobynYang

    如果等待徐明星那也要说个大概的时间吧!比如2021年1月开放提币!这样也让一百万用户放心!反而okex用户也不会流失!更加用知道币是安全的!这样也不会恐慌!也没人说报警等对吧!如果说出时间时间再长一些都没事!这样法币也不会乱卖!说出大概的时间给用户;人家也有信心充okex,同时也不影响法币

  11. Haugen

    OMG!!

  12. 佳房

    我很喜欢,太精彩了区块链

  13. M

    合规溢价权

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索