前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >uniswap的工作原理(下)

uniswap的工作原理(下)

原创
作者头像
用户7976544
修改2020-11-16 09:54:48
2.5K1
修改2020-11-16 09:54:48
举报
文章被收录于专栏:用户7976544的专栏

四、uniswap的市场价格变化

在这一小节开始之前,得先了解以下几个价格的概念。

市场价格=池子里DAI的数量/池子里ETH的数量(P市场=X/Y)。假设市场数量趋近于无穷大,兑换价格无限趋近于X/Y

兑换价格=支付DAI的数量/获得ETH的数量(P兑换=△x /△y)

由于用户交易会改变池子里的dai和eth的数量,所以交易前和交易后的市场价格是会变化的。换句话说,交易者会改变市场价格。那么市场价格会和什么相关呢?又有怎么样的函数关系?

由最后的公式可知,交易后价格和兑换钱价格以及∂相关。随着交易数量占比的增大,市场价格呈二次函数上升。下图为兑换后价格随着∂的增加而变化的函数图像

上图 横坐标为∂,纵坐标为P兑换后/P兑换前,即市场价格变化的倍数。从图中可看出,当∂=1时,市场兑换后的价格为兑换前的4倍。

(举例:如果池子里有100个DAI,当一个用户再往池子里支付100个DAI进行兑换ETH,∂=100/100=1。该用户兑换以后,当第二个用户再进行兑换的时候,发现价格已经是第一个用户兑换前的4倍了!)

在AMM模式下,如果池子里的币种不多即深度不够的时候,会造成币价相对大的波动,也利于项目方拉高价格。这种借助AMM算法拉盘的情况在权重自定义的balancer交易所更为严重。详情可参考【即将推出,敬请期待hhh】

五、滑点保护机制

由于在uniswap的交易不是指定价格成交的限价单模式,每个用户的交易都会影响市场的价格,并且影响市场的价格和交易数量有关。为了避免该用户的交易在广播到区块链前有交易量很大的用户进行交易进而对市场的价格有较大的影响,该项目设计了滑点保护机制来避免用户损失。

如图所示,下单时确认的价格公式的推导过程在第三小节,兑换后市场价格公式的推导过程在第四小节。

我们一般理解的滑点是实际成交价格和兑换前市场价的差额占比,而滑点保护机制的额外滑点是指下单时确认的预计成交价格和保护价格之间的差额占比。当用DAI购买ETH时,若实际成交价格低于滑点保护价格,则交易成功,否则交易失败。

(举例:参照图中的右侧数据,假设∂=2.5%  滑点设置为1%  兑换前的市场价格为400DAI/ETH。把假设的参数代入各个价格的公式中,如果实际成交价格小于414.1则交易成功,否则交易失败)

六、做市商的收益和风险

做市商的收益来源于两个部分,一个部分是交易者的手续费,另一部分是做市挖矿。做市挖矿也是后来uni上线以后才推出的,把做市的LP token抵押挖uni。而做市商的风险来源于无常损失

收益部分(手续费+uni)

手续费获取的操作步骤:

  • 做市商提供流动性(DAI和ETH),根据数量的权重获得特定数量的LP token
  • 交易者进行兑换,每次兑换都给池子里支付本金的0.3%手续费(如果支付DAI购买ETH,就收DAI的0.3%做手续费,反之亦然)
  • 退出做市,根据LP token占整个池子LP token的比例和池子中2个币种数量的比例赎回DAI和ETH

举例:

  • 第一个做市商往池子里加入400个DAI和1个ETH,获得100个LP token,权重为100%
  • 交易者进行兑换,为池子中贡献了400个DAI和1个ETH的手续费。池子中变成800个DAI和2个ETH。如果第一个做市商退出做市,会获得池子中100%的DAI和ETH
  • 第二个做市商往池子里加入400个DAI和1个ETH,池子中变成1200个DAI和3个ETH。由于第二个市商贡献的比例为 400/1200=33.33%,所以获得的LP token占整个LP token的33.33%。有以下关系  LP token/(100+LP token)=33.33%,得出LP token=50
  • 若2个做市商退出做市,且此时池子中变成 1500个DAI和1.5个ETH。第一个市商获得 1500*66.67%=1000个DAI 和 1.5*66.67%=1个ETH。第二个市商获得 1500*33.33%=500个DAI 和 1.5*33.33%=0.5个ETH

注:虽然两个做市商投资的成本是一样的,但是在第二个做市商做市之前,第一个做市商获得了手续费的收入。

uni的收益

根据debank的数据,目前uni的挖矿年化在13%~25%之间

(uni的价格走势,数据来源:非小号)

风险部分(无常损失)

为了更好的理解无常损失,先来感性地了解一下为什么会出现无常损失。假设一个池子中只有一个市商,添加了400个DAI和1个ETH的流动性。几分钟后,eth的价格上涨到500DAI/ETH,但是池子里还是400,于是就有用户过来用400的价格购买ETH,直到池子中DAI的数量/ETH的数量等于500,套利结束。那么对于做市商来说,价值500DAI的ETH,却在400~500之间的价格出售了,这就导致了做市商的亏损

当做市商赎回token的时候,会根据交易池里两个币种的比例进行赎回。由于赎回的token数量和比例和添加流动性时的不一样,导致参与做市和不做市最后的美金价值的不一致的。(注:这里只考虑无常损失,没有考虑手续费收益)

无常损失=(持币不做市的token价值-做市商以后的token价值)/持币不做市的token价值

以γ为横轴,无常损失为纵轴,可得出曲线如下图所示。无论价格是升高还是降低,都会存在无常损失。只有价格不变不存在无常损失。并且当价格降低的时候我们可以发现,亏损的程度呈指数型上升,本金甚至有归零的风险。对于价格波动越是剧烈的token,越是要谨慎参与做市。

另:无常损失参考案例

七、uniswap成为龙头的原因

笔者认为最主要有这么几点:

1、规则相对简单,容易操作。这一点主要是和balancer进行对比,对于AMM模式的设想还没有验证的情况下,越简单且易操作的产品更容易受到用户的青睐

2、几乎零门槛的发币。区块链行业的繁荣离不开项目种类的繁荣以及项目方或者说创业者对生态和用户教育作出的贡献。在此之前,项目方会给各个中心化交易所支付上币费用进行上币,进而获得中心化交易所的用户流量,而uniswap极大的减少了项目token获取市场价格的成本,会直接获得各个项目方的社群用户带来的交易量。

3、共享共建的区块链思维。对于投机取巧的sushiswap来说,uniswap刚开始并没有发行自己的治理代币。秉承着谁为社区做贡献谁收益的原则,把所有交易手续费收益分给做市商。在发行治理代币的时候,直接给使用过uniswap的用户空投价值约1w人民币的uni,零成本地邀请交易者和做市商参与社区的治理。

附:对计算公式推导过程感兴趣或者想验证的,可以参考【即将推出,敬请期待】

【 区块链爱好者,边学习边输出认知总结

更多精彩,第一讯息可关注微信公众号:区块纪元 】

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
区块链
云链聚未来,协同无边界。腾讯云区块链作为中国领先的区块链服务平台和技术提供商,致力于构建技术、数据、价值、产业互联互通的区块链基础设施,引领区块链底层技术及行业应用创新,助力传统产业转型升级,推动实体经济与数字经济深度融合。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档