当前位置:首页区块链uniswap常数积算法中的K值

uniswap常数积算法中的K值

恒定乘积算法的一些细节。

介绍了Uniswap中常数积算法中K值的设计。

让我们以Uniswap中的一个交易对ETH/USDT为例来说明K值是如何设计的。

常数积算法。

当Uniswap中的第一个人加上x ETH和Y USDT作为流动性时,确定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)-y USDT来购买DX ETH。

交易费用影响K值。

但由于交易费用的原因,用户在使用Uniswap时需要支付0.3%的交易费用。例如,如果用户购买了USDT为Dy的ETH,Uniswap将首先扣除0.3%的Dy手续费,并将0.3%的Dy手续费留在一边。交易完成后,0.3%的dy将加入流动性池,K值变为x*(y+0.3%dy)。

因此,常数积算法的K值不是常数,每个事务都会影响K值。

增加流动性会影响K值。

现在,如果池子里有钱,如果池子里有钱,那就是USDT*YYH。现在有人增加了流动性,增加了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值

当您添加流动性时,您可以直接将DXgt;0,dy=0转移到合同地址,而不是按照DX/dy=x/y的比率添加流动性。这也会更改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值的变化将更加复杂。

温馨提示:

文章标题:uniswap常数积算法中的K值

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

更新时间:2021年01月04日

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

区块链

疯狂的比特币,有多少热眼、红眼和嫉妒?

2021-1-4 15:20:22

区块链

比特币接近3.5万美元,购买价值100元,10年升值13亿

2021-1-4 15:27:08

7 条回复 A文章作者 M管理员
  1. 币异客

    然并软~哈哈哈

  2. 施宏斌

    支持币安

  3. momo

    快跑啦 开始要爆多头了

  4. 6116

    搞起来啊,棒棒棒

  5. Alysa

    应该加分区块链

  6. ZziLing

    牛逼吹起来

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