最近想要换换脑子,看了看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.pdf3.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代表当前流动性总量。
本文关键词:bo体育app登陆入口
本文来源:bo体育app登陆入口-www.esfpphotography.com