Uniswap V2/V3资金池流动性计算与跨版本对比方案问询
Uniswap V2与V3流动性计算指南
Uniswap V2的流动性计算
先纠正个小细节:Uniswap V2的流动性是用Math.sqrt(reserve0 * reserve1)计算的,不是逗号分隔的参数——这个值是恒定乘积模型下的「有效深度」,数值越大,池子扛滑点的能力越强。
Uniswap V3的流动性计算
V3采用集中流动性模型,和V2逻辑完全不同:
- 直接调用资金池合约的
liquidity()函数,得到的是当前活跃价格区间内的流动性总量。这个值是动态变化的,一旦价格跑出某个LP设置的区间,那部分流动性就会「休眠」,不会被计入返回值。 - 如果你想获取V3池子的所有流动性总和(包括休眠状态的),合约没有直接提供这个接口——而且这部分流动性对当前交易没有实际影响,只有活跃区间内的流动性才会参与定价。
- 要是你筛选池子是为了找交易滑点低的目标,直接用
liquidity()返回的活跃流动性就足够了,这才是实际影响交易的核心数据。
跨版本对比的注意点
V2和V3的流动性数值不能直接硬对比:
- V2的
sqrt(reserve0*reserve1)是全局流动性,只要资金在池子里就全部生效; - V3的
liquidity()只代表当前价格下的有效流动性,同一个池子在不同价格阶段,这个数值波动会很大。
内容的提问来源于stack exchange,提问作者MrCoinSiX
相关产品推荐
相关产品推荐

