当前位置:首页 > 物联网 > 区块链
[导读] 最近想换换脑子,看了看Uniswap协议。Uniswap协议是一种通过智能合约实现代币间自动交易的协议。本文介绍Uniswap协议,生态,交易价格以及流动性收益的计算。 1. Unisw

最近想换换脑子,看了看Uniswap协议。Uniswap协议是一种通过智能合约实现代币间自动交易的协议。本文介绍Uniswap协议,生态,交易价格以及流动性收益的计算。

1. Uniswap协议基本介绍

Uniswap协议通过智能合约实现了代币之间的自动交易。目前,Uniswap协议已经在以太坊上部署,可以实现ETH和代币以及代币和代币的之间交易。Uniswap协议的整个框架如下图所示:

Uniswap Exchange Factory以及Uniswap Exchange都是由以太坊上的智能合约(vyper语言)实现,相关的代码的github地址如下:

https://github.com/Uniswap/contracts-vyper

通过UniswapExchangeFactory可以创建Uniswap Exchange。每个Uniswap Exchange实现一种代币和ETH之间的交易。

在多种代币都能和ETH交易的前提下,代币和代币之间也能交易,如下图所示:

两个Exchange,一个提供了ABC和ETH的交易,一个提供了XYZ和ETH的交易。通过Uniswap协议,一个用户可以先通过ABC to ETH Exchange将ABC转成ETH,接着再通过XYZ to ETH Exchage将ETH转换成XYZ。整个过程Uniswap自动完成,从用户的角度来看,ABC代币直接转换成了XYZ代币。

2. Uniswap生态

Uniswap交易生态中,除了需要交易的用户外,还有一个特别重要的角色:流动性提供者。对一个Exchange来说,流动性提供者提供了ETH以及相应的Token。只有有足够多的流动性,用户才能顺畅的交易,并能保持价格在合理的范围。

普通交易用户,通过Exchange,实现一个代币和ETH之间的交换。流动性提供者,同时提供代币和ETH。交易的用户每笔交易需要支付一定的交易费用(0.3%)。这些费用被流动性提供者均分。

3. x-y-k做市商模型

Uniswap协议使用的是x-y-k做市商模型,实现x和y之间的自动交易。Uniswap协议在github上有对x-y-k模型的详细介绍:

https://github.com/runtimeverificaTIon/verified-smart-contracts/blob/uniswap/uniswap/x-y-k.pdf

3.1 x-y-k模型

所谓的x-y-k模型,是因为在这个模型下,x*y = k。可以想象成x和y,分别是两种代币的数量。在x和y交易时,在没有交易费用的情况下,x*y永远等于k,不变:

alpha和beta分别是每次交易的变化量。从上面的公式可以看出,变化前(x*y)和变化后(x‘*y‘)是相等的。

Uniswap协议在该模型的基础上,引入了交易费用,新的模型计算公式如下:

引入交易费用,增加了rho变量。很容易可以看出,引入交易费用后,x’*y‘是比x*y的乘积大。

3.2 交易价格计算

交易价格的计算分成两种:一种是给定X的数量,计算能买到的Y的数量(Input);一种是给定Y的数量,计算需要的X数量(Output)。

geTInputPrice的计算公式如下:

简单的说,买入越多X,alpha越大,价格也越高。如果alpha为1的话(用当前流动性中X总额相等的X代币买入),也只能买差不多流动性中的一半的Y代币。如果把x/y视作当前Exchange的价格的话,一次买入后,价格变化为:

getOutputPrice的计算公式如下:

简单的说,买入越多Y,beta越大,价格也越高。如果beta为1/2的话(买入当前流动性中一半的Y代币),大约需要当前流动性中等量的X代币。geTInputPrice和getOutputPrice分别从两种代币角度计算价格,具体的价格是一致的。注意,价格计算公式只区分价格计算的两种方向,并没有制定X,Y具体代表的代币类型。举个例子,如果一个Exchange支持的是ETH和ABC交易,你可以把ETH当作X,ABC当作Y,同样你可以将ABC当作X,ETH当作Y。

3.3 流动性计算

流动性提供者可以随时增加/删除流动性。Uniswap协议文档,用一个三元组(e, t, l)来代表Exchange的状态,其中e代表ETH的数量,t代表Token的数量,l代表当前流动性总量。

增加流动性(addLiquidity)的计算公式如下:

删除流动性,就是依据流动性的占比,等比例的减少e和t。

很容易看出,增加流动性和删除流通性时都是按照x/y的价格计算的。需要指出的是,在智能合约实现时,需要考虑计算的精度。

3.4 流动性收益计算

到目前为止,我们已经知道,增加流动性和删除流通性都是按照当时x/y的价格计算的。Exchange的买卖会导致x/y的波动。先不考虑交易费用的情况下,可以先将模型退化到x*y=k的情况,看看流动性提供者的收益:

假设初始时,Exchange的代币流通性是e和t,经过一些交易后变成e’和t‘,e*t=e’*t‘。

很容易看出,只要x/y有变化,在没有交易费用的情况下,没有盈利可能。最好的情况,e/t不变的话,没有损失。在有交易费用的情况下,只有交易费用足够多,能抵消价格波动的损失的情况下,才有可能盈利。

总结:

Uniswap协议是一种通过智能合约实现代币间自动交易的协议。Uniswap协议采用x-y-k交易商模型。交易的价格随着交易金额的比例成二次函数变化。流动性提供者在没有交易费用的情况下,没有盈利的可能性。只有足够多的交易费用的情况下,才有可能盈利。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭