okx

ICO与比特币:Uniswap的K值探析

时间:2023-08-10|浏览:185

本文介绍了Uniswap中的恒定乘积算法以及K值的设计。

Uniswap是一个去中心化交易平台,它使用了一种称为恒定乘积算法的方法来确定交易对的初始K值。恒定乘积算法中,当第一个用户添加流动性时,其所添加的资产数量决定了K值的初始大小,即K = x * y,其中x为ETH数量,y为USDT数量。

在Uniswap中,ETH和USDT构成了一个流动性池。这一概念非常重要。第一个添加流动性的用户可以任意选择所添加的两种资产数量,从而任意决定K值的大小。

添加完流动性后,ETH的价格等于流动性池中的USDT数量除以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%的手续费。例如,当用户用dy个USDT购买ETH时,Uniswap会首先扣除0.3%dy的手续费,并将其放在一边。交易完成后,这个0.3%dy的手续费会被添加到流动性池中,此时K值变为x*(y+0.3%dy)。

因此,恒定乘积算法中的K值并不是恒定的,每一笔交易都会影响K值。

另外,添加或减少流动性也会影响K值。如果现有资金池中有x ETH和y USDT,那么K=x*y。当有人添加流动性并增加了dx个ETH和dy个USDT时,并且dx/dy=x/y,资金池中的资金量变为(x+dx)ETH/(y+dy)USDT。此时,(x+dx)*(y+dy) > x*y,所以添加流动性会使K值增大。同样地,减少流动性则会减小K值。

还有一种特殊情况是捐赠对K值的影响。如果用户在添加流动性时,不按照dx/dy=x/y的比例添加,而是直接向合约地址转入dx>0,dy=0,这也会改变K值。这种捐赠行为并不符合K值的比例规定,因此被Uniswap称为捐赠。

捐赠行为在设计上其实是可以被其他用户套利的。例如,一个用户充值了dx>0且dy=0,此时另一个用户可以按照K值比例的dy充值,并执行添加流动性操作,从而将捐赠的dx转移到自己账户。这个过程比较复杂,具体细节不清楚。

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

另外,在同一个区块中,可能既有添加流动性的交易,也有买卖交易,这会使K值更加复杂地变化。

感谢PlanckerDao成员李世胜对本文的贡献。

热点:比特币 特币

欧易

欧易(OKX)

用戶喜愛的交易所

币安

币安(Binance)

已有账号登陆后会弹出下载

« 上一条| 下一条 »
区块链交流群
数藏交流群

合作伙伴

非小号交易所排名-专业的交易行情资讯门户网站,提供区块链比特币行情查询、比特币价格、比特币钱包、比特币智能合约、比特币量化交易策略分析,狗狗币以太坊以太币玩客币雷达币波场环保币柚子币莱特币瑞波币公信宝等虚拟加密电子数字货币价格查询汇率换算,币看比特儿火币网币安网欧易虎符抹茶XMEX合约交易所APP,比特币挖矿金色财经巴比特范非小号资讯平台。
非小号行情 yonghaoka.cn 飞鸟用好卡 ©2020-2024版权所有 桂ICP备18005582号-1