Uniswap v2如何解决价格操控问题

一、问题背景

在前面的学习当中,已经了解到Uniswap v1版本提出了AMM的基础模型,能够在此基础上完成去中心化的自动交易,同时也了解到v1版本中还存在着"价格操控"的问题juejin.cn/post/727082...

显然,Uniswap v1版本存在一些问题,v2版本的出现就是为了解决v1版本中存在的这些问题。

二、Uniswap v2新特性

  1. Uniswap v1的不足

    • 不能直接创建两种ERC20代币的流动性池
    • 容易被操控价格
  2. Uniswap v2的新特性

    • 允许任意两个ERC20之间进行兑换
    • 价格信息传输功能,每个区块都能基于按时间加权平均的定价方式为交易对刷新价格
    • 闪电互换,或者说你可以从 Uniswap 流动性池中 "借出" 代币、用于与任意的外部服务交互、然后 还清 你的初始贷款,所有操作都要放在一笔交易内
    • 支持不标准的 ERC20 代币

目前Uniswap也推出了v3,v4版本,未来应该也会有更多的规划,新的功能和优化很多,本文聚焦的是Uniswap v2版本如何解决AMM的价格操控问题。

三、Uniswap V2中抗价格操控的措施

1. 查询市场价格

  • 在每个区块的第一笔交易开始确认前,先对每个pair进行价格查询。这么做的好处是让操控价格的成本变得昂贵了,这个价格是由上一个区块的最后一笔交易决定的,如果要操控它,操纵者有两个选择:

    • 一个是赶在上一个区块的最后做一笔背离市场价的交易(通常要拔高价格才能方便后面套利),这会让操纵者额外付出更大的代价。
    • 另一个是办法就是在做完上面说的操控外,立刻做一笔回血操作以弥补前面拔高交易所支付的成本。这就需要掌握连续两次的出块权利,以便在第二个区块中收回前一个区块中付出的资金成本。

思考:通过增加每次查询市场价格的步骤,可以增加操纵者操控价格套利的成本,但如果可套利的空间比操控价格的成本要高的情况下,还是比较容易操控,因此从防操控手段上,还需要加强。

2.引入TWAP概念

  • TWAP (Time-weighted average prices), 时间加权平均价格。
  • 通过官方文档中的示意图,能很清晰地了解到TWAP的概念。
  • 为了介绍TWAP,首先引入一个"累计价格"变量。以区块为单位来看,第一个区块的累计价格值为0,第一个区块末尾的价格为10.2,那么第二个区块开始的价格等于上一个区块结束时的价格,即也是10.2,那么第二个区块的累积价格就等于:上一个区块的累计价格+第二个区块开始时的价格*两个区块间隔时间, 在下面的示意图中,第二个区块的累计价格变量计算如下:
js 复制代码
priceCumulative_1=priceCumulative_0+Price_1*timestamp_1 = 0+(10.2*7)=71.4

在清楚了"累计价格"概念后,TWAP的概念就容易理解了。TWAP的值就是观测时间范围内的累计价格的平均值。

js 复制代码
TWAP= (priceCumulative_end - priceCumulative_start)/(timestamp_end - timestamp_start)

3.关于TWAP的几点说明

  • 采样时间单位可以是几分钟,比如10分钟的TWAP就是每隔10分钟的采样值,也可以是一周的采样值
  • 引入TWAP后,操纵价格的成本会随着资金池的LP流动性的变大而变大,同时也会随着TWAP的采样时间间隔增大而变大。
  • 攻击的成本相对容易估计。以采用1小时的TWAP的参数为例,使得兑换价格上涨5%的成本大致等于每个区块交易价格上涨5%,持续一小时所带来资金和手续费的损失。

四、参考资料

  1. Uniswap官方文档:docs.uniswap.org/contracts/v...
  2. 《Uniswap V1/V2/V3 AMM做市全面解析》www.163.com/dy/article/...
相关推荐
秋说13 小时前
【区块链安全 | 第八篇】多签机制及恶意多签
安全·区块链
CryptoPP16 小时前
基于WebSocket的金融数据实时推送系统架构设计对接多国金融数据API
websocket·网络协议·金融·系统架构·区块链
浪子小院17 小时前
区块链技术之分布式数字身份:构建数字世界的信任基石
区块链
秋说20 小时前
【区块链安全 | 第十七篇】类型之引用类型(一)
安全·区块链
网络研究院21 小时前
身份验证:区块链如何让用户掌控一切
去中心化·区块链·身份·隐私·技术·验证·数字
尽-欢1 天前
以太坊DApp开发脚手架:Scaffold-ETH 2 详细介绍与搭建教程
react.js·typescript·web3·区块链
区块链蓝海1 天前
Cooker.club:AI虚拟偶像与Web3的奇妙碰撞
人工智能·区块链
YSGZJJ1 天前
股指期货的行情在哪看?怎么看行情表?
区块链
gdjwr654651 天前
Macro 巨汇黄金外汇投资全解析:策略与操作步骤?
金融·区块链
倒霉男孩1 天前
去中心化稳定币机制解析与产品策略建议
去中心化·区块链