如何把Uniswap v2作为预言机使用

本文介绍了 使用Uniswap的时间加权价格求平均价,作为价格预言机。

本文探索如何把 Uniswap v2 作为预言机使用,Uniswap v2作为预言机的原理是怎样的,如何整合。

Uniswap是目前最流行的去中心化交易所,估计大家读已经了解它, 但我还是先把基础知识再过一遍。

什么是Uniswap?

如果你还不熟悉Uniswap,它是以太坊上自动提供流动性的完全去中心化协议。 比较容易理解的描述是,这是一个去中心化的交易所(DEX),依靠外部的流动性提供者,将代币添加到智能合约池中,用户使用流动性中的代币直接交易。

由于Uniswap是在以太坊上运行,交易的是以太坊 ERC-20代币。 每个代币都有自己的智能合约和流动池。 Uniswap是完全去中心化的,因为任何代币都可以添加添加进流动池。 如果还没有对一个的代币流动池存在,任何人都可以使用UniswapFactory创建一个,任何人都可以为一个流动池提供流动性。 每笔交易向这些流动性提供者支付0.3%的费用作为激励。

代币的价格由池中的流动性决定。 比如用户用TOKEN2购买TOKEN1,那么池子里TOKEN1的供应量就会减少,而TOKEN2的供应量就会增加,TOKEN1的价格就会上涨。 同样,如果用户在卖TOKEN1TOKEN1的价格也会下降。 因此,代币价格总是反映了供求关系。

当然用户不一定是人,可以是一个智能合约。 这使得我们可以将Uniswap添加到自己的合约中,为我们合约的用户增加额外的支付选项。 Uniswap让这个过程变得非常方便,下文会介绍如何整合Uniswap。

Uniswap用户界面

可以直接将Uniswap整合到你的合约中进行交易。 例如用户可以用ETH支付,在你的合约自动交易为 DAI,而不是一定得接收DAI。

Uniswap 预言机

现在让我们来看看Uniswap如何作为预言机使用。 例如,你可能想获得DAI的喂价,以便知晓给定ERC-20代币的大概的美元价格。 这可以用Uniswap来完成,但你需要注意一些事情。

Uniswap v1的问题

首先,只从Uniswap 流动池中提取最后的交易价格,会有什么问题呢?

虽然这听起来可能是一个可行的策略,实际上确实有项目直接使用这个价格,但它很容易被操纵的,自然而然就会有这样的黑客事件发生。 那么如何操纵最后的交易价格呢?

简单,你只要在Uniswap上交易就可以了。 上面提到过“如果用户在卖TOKEN1,TOKEN1的价格就会下降”。 最重要的是这根本就不需要花多少资金去做。你只需要卖出TOKEN1兑换TOKEN2,此时使用操纵的价格进行操作,之后立刻卖回TOKEN2。 例如像闪电贷中那样,攻击的资金成本几乎0(手续费除外)。

一般来说,如果你想了解更多的信息,可以看看这篇很赞的文章价格预言机不总是可靠,讲述了预言机和价格操纵。

Uniswap v2: 时间加权平均价格

首先Uniswap v2只在一个区块结束时测算价格。 就是说要想操纵价格,就必须购买代币,等待下一个区块,然后才能够再卖回去。 这使得其他交易者有更多的套利机会,从而增加了价格操纵者的风...

剩余50%的内容订阅专栏后可查看

点赞 9
收藏 3
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

1 条评论

请先 登录 后评论
翻译小组
翻译小组
0x9e64...7c84
大家看到好的文章可以在 GitHub 提 Issue: https://github.com/lbc-team/Pioneer/issues 欢迎关注我的 Twitter: https://twitter.com/UpchainDAO