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

我的网站

当前位置: 主页 > 竞争币 > 以太坊

铸造、销毁与权益

时间:2021-01-06 12:34来源:未知 作者:admin 点击:
原文标题:《Uniswap 的 LP Token 的铸造销毁和权益》 撰文:黄世亮 本文介绍 Uniswap 中的 LP Token 的铸造,销毁和权益。 Uniswap 的交易对手盘模式 在中心化交易所,用户间挂买单和卖单,交

原文标题:《Uniswap 的 LP Token 的铸造销毁和权益》
撰文:黄世亮

本文介绍 Uniswap 中的 LP Token 的铸造,销毁和权益。

Uniswap 的交易对手盘模式

在中心化交易所,用户间挂买单和卖单,交易所的撮合引擎会按时间和价格进行排序,一旦买单和卖单价格重叠,就可以成交完成交换。

但 Uniswap 里没有挂单这个设计,取而代之的是流动性资金池充当所有交易的对手盘。

流动性资金池是包含了需要交易的两种币,比如 ETH 和 USDT。比如一个流动性池里有 x 个 ETH 和 y 个 USDT。此时 k=x*y (k 是一个常数)

当用户 A 想用 dy 个 USDT 买 ETH,在不考虑滑点的前提下,用户 A 买入的价格是 y/x。而真实成交时,用户能买到的 ETH 数量 dx 为 (不考虑 0.3% 的手续费):k=(x-dx)*(y+dy),dx=x-k/(y+dy)

交易所,流动性池里的资金就成了:(x-dx)个 ETH 和(y+dy)个 USDT,而此时 ETH 的价格变成了 (y+dy)/(x-dx)。

以上就是 Uniswap 交易的基本模式。

下面来讲这个流动性资金池的设计。

LP Token 铸造

在 Uniswap 里对某个交易对(pair) 第一次添加流动性的人,可以任意对交易对的价格进行定价,即 x、y 和 k 都是这个人定的。

创世流动性之后再添加 dx 和 dy,如果按系统默认值去添加,都会受 dx/dy=x/y 的约束。

添加流动性后,Uniswap 会给用户返回一个 erc20 代币,这就是 LP Token。

LP Token 的总量是变化的,添加流动性就会铸造新的 LP Token,即增发,而赎回流动性则会销毁 LP Token。

假设创世流动性里用户注入了 x 个 ETH 和 y 个 USDT,则创世铸造 LP Token 的数量 =sqrt(x*y)。(注:sqrt 是开方;注:代码里的公式是 sqrt(x*y)-1000*10^-18,这个 1000*10^-18 是个啥不管它,我没研究,反正这么小无所谓)

创世流动性之后,有用户添加了 (dx,dy) 个币的流动性,并且 dx/dy=x/y,则系统新铸造出 d(LP Token 数量)=dx/x*铸造前 LP Token 的总量,返回给用户。

但如果 (dx-ddx)/dy=x/y (注:ddx>0),新铸造的 d(LP Token 数量)=dy/y*铸前总量,而这 ddx 个币则相当于捐赠给了所有的 LP Token 持有者。

如果 dx/(dy-ddy)=x/y(注:ddy>0),则新铸造的 d(LP Token 数量)=dx/x*铸前总量。ddy 变成了捐赠。

可以总结为:添加流动性获得的 LP Token 数量 =min(dx/x*铸前总额,dy/y*铸前总额)。(注:min 是取最小值函数)

在极端情况下,有人误打了 dx>0 个币,但 dy=0 个币,则不会铸造新的 LP Token,dx 全部变成了现有 LP Token 里的成分,捐赠给了所有现有 LP Token 的用户。

这种误打币到某个 LP Token 合约地址,是经常会发生的。

LP Token 销毁

当用户想赎回流动性时,需要将 LP Token 销毁掉。按 Uniswap 系统的流程就可以完成销毁。 (责任编辑:admin)

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