织梦CMS - 轻松建站从此开始!

我的网站

当前位置: 主页 > 比特币 > 挖矿工具

Paradigm研究合伙人:在Uniswap v3之上实现“经典”流动性挖矿(2)

时间:2021-05-19 16:26来源:未知 作者:admin 点击:
这意味着我们需要在质押合同中进行跟踪的是自池子开始时,就跟踪“每流动性秒数”这个指标的accumulator: 在Unipool合约中,这个accumulator 被称为 reward

这意味着我们需要在质押合同中进行跟踪的是自池子开始时,就跟踪“每流动性秒数”这个指标的accumulator:

在Unipool合约中,这个accumulator 被称为 rewardPerTokenStored。当任何人质押或解押流动性(即改变 L 时,质押合约会通过增加accumulator

到先前的值来更新Sl accumulator。(从技术上讲,在Unipool合同及其大部分的分叉中,accumulator跟踪

R/L,而不是在后面乘以奖励率。)

当某人质押流动性时,合约会检查其累计值的初始值Sl(t0)。当他们以后解押时,合约将查看accumulator的新值Sl(t1)并计算该期间的奖励:

Uniswap v1和v2不需要对这些激励措施的有任何内置支持,因为这些数字(accumulator和checkpointed values)仅在涉及质押合约时才会更改。

除了为收益农耕趋势奠定基础(在此过程中它被反复分叉),这种聪明的算法还具有相当多的用途。例如,Uniswap v3使用类似的算法来跟踪单个头寸赚取的费用(还有一些其他技巧来支持集中流动性)。它在链上是最有用的(效率很高),同时对简化链下计算也很有用。UNI追溯分配是基于一个查询,该查询在SQL中重新实现了该算法。

转入正题

Uniswap v3使情况复杂化,但并非无法解决

如白皮书中所述,Uniswap v3支持集中流动性——流动性仅在当前的价格变动(ic)处于特定范围

内时才有效。

这意味着价格变动可以改变已抵押头寸的流动性余额,而不会涉及到抵押合同。对于具有 l 流动性的给定头寸,我们现在需要计算:

这可以分解为:

我们可以将其解释为secondsPerLiquidityInside = secondsPerLiquidity– secondsPerLiquidityBelow(lowerTick) - secondsPerLiquidityAbove(upperTick)。

可以使用上述相同的全局Sl accumulator来计算第一项。在Uniswap v3合约中,该全局accumulator与价格预言机一起被跟踪,如secondsPerLiquidityX128。

为了让我们能够计算其他两个项,每经历一个时刻,Uniswap v3检查点secondsPerLiquidityOutside()就会对该时点进行计算。“外部”是指与当前价格相对的价格变动。这让我们可以随时计算secondsPerLiquidity任何一方的应计总额。例如,如果tickCurrent < i,则secondsPerLiquidityBelow(i) = secondsPerLiquidity - secondsPerLiquidityOutside(i); 如果tickCurrent >= i,则secondsPerLiquidityBelow(i) = secondsPerLiquidityOutside(i)。(这与Uniswap v3跟踪和计算某时刻前后赚取的费用非常相似。) (责任编辑:admin)

织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
推荐内容