快捷搜索:  xxx  as  推理研究所  幼幼  侦探研究所

星辉娱乐app:基于一种通过智能合约实现代币间自动交易的Uniswap协议原理详解



近来想换换脑筋,看了看Uniswap协议。Uniswap协议是一种经由过程智能合约实今世币间自动买卖营业的协议。本文先容Uniswap协议,生态,买卖营业价格以及流动性收益的谋略。

1. Uniswap协议基础先容

Uniswap协议经由过程智能合约实现了代币之间的自动买卖营业。今朝,Uniswap协议已经在以太坊上支配,可以实现ETH和代币以及代币和代币的之间买卖营业。Uniswap协议的全部框架如下图所示:

Uniswap Exchange F星辉娱乐appactory以及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分手是每次买星辉娱乐app卖营业的变更量。从上面的公式可以看出,变更前(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和AB星辉娱乐appC买卖营业,你可以把ETH算作X,ABC算作Y,同样你可以将ABC算作X,ETH算作Y。

3.3 流动性谋略

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

增添流动性(addLiquidity)的谋略公式如下:

删除流动性,便是依据流动性的占比,等比例的削减e和t。星辉娱乐app

很轻易看出,增添流动性和删除流畅性时都是按照x/y的价格谋略的。必要指出的是,在智能合约实现时,必要斟酌谋略的精度。

3.4 流动性收益谋略

到今朝为止,我们已经知道,增添流动性和删除流畅性都是按照当时x/y的价格谋略的。Exchange的生领悟导致x/y的颠簸。先不斟酌买卖营业用度的环境下,可以先将模型退化到x*y=k的环境,看看流动性供给者的收益:

假设初始时,Exchange的代币流畅性是e和t,颠末一些买卖营业后变成e’和t‘,e*t=e’*t‘。

很轻易看出,只要x/y有变更,在没星辉娱乐app有买卖营业用度的环境下,没有盈利可能。最好的环境,e/t不变的话,没有丧掉。在有买卖营业用度的环境下,只有买卖营业用度足够多,能抵消价格颠簸的丧掉的环境下,才有可能盈利。

总结:

Uniswap协议是一种经由过程智能合约实今世币间自动买卖营业的协议。Uniswap协议采纳x-y-k买卖营业商模型。买卖营业的价格跟着买卖营业金额的比例成二次函数变更。流动性供给者在没有买卖营业用度的环境下,没有盈利的可能性。只有足够多的买卖营业用度的环境下,才有可能盈利。

责任编辑;zl

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

您可能还会对下面的文章感兴趣: