uniswap v2概念学习(第四天)

565 阅读2分钟

uniswap v2在v1的基础上提供了几个新特性

支持ERC Token与ERC Token的置换

v1中两个ERC Token的置换需要通过ETH作为媒介,也即意味着支付两次gas与手续费以及两次滑点。v2中无需中间商。

价格预言机(price orcle)

v1有个漏洞,对于某个ERC Token-ETH的交易对:

  1. 如果用大量的ERC Token去购买ETH,会让ETH的价格瞬间到达一个非常高的值
  2. 此时如果用ETH购买ERC Token可以换取大量的ERC Token
  3. 随后再使用第一步获取的ETH置换ERC Token,就可以让ETH价格恢复到之前

第二步就可以进行套现。

image.png

那么在v2中如何避免呢?

就是引入线上价格预言机,在v1版本中,如果价格从t1时刻的p1价格,瞬间上涨到t2时刻的p2价格,此时就会让人乘虚而入进而套利。v2的解决方案就是t2时刻的价格=(t1到t2时刻价格的累加)/t2-t1的时间,就是让t2的价格平均下来,套利者就没有趁虚而入的机会。

image.png

flush swap

v2中新增了flush swap(闪电贷)的功能,就是能够让你在一个比较短的时间内使用流动性池子里的资金。 下面讲解套利的例子:

image.png A交易所ETH=3200U,B交易所ETH=3000U。如果你只有1ETH本金,那么你一次只能赚取100U,而通过闪电贷,你可以增加你的本金,让套利的利润更大。

闪电贷可以提高uniswap流动性池中的资金利用率。

语言更换

v2使用solidity替换Vyper语言作为合约编程语言

价格存储类型变更

价格使用UQ112.112类型存储

支持meta transaction

此时有个场景,你转给了你的好朋友A 50个uni代币,你的好朋友A想用出这50个uni,但是由于他的账户没有ETH导致无法支付gas费用,无法进行使用。

所以uniswap v2中提供了meta transaction功能可以直接使用uni,无需使用ETH直接支付gas,具体原理是由第三方支付gas,并且收取手续费,比如好友A用uni购买susi,最后meta transaction的平台会授权一定数量的susi作为手续费。

协议费结构改变

v1中收取当前币的千3作为手续费,v2中变为千2.5的手续费+千0.5的协议费