2018 年 11 月,Uniswap 的创始人 Hayden Adams 根据 Vitalik 提出的自动做市商概念,推出了 其初始版本 v1,该版本仅支持用户创建 ERC20-ETH 资金池。
2020 年 5 月,Uniswap 推出了 v2,在 ERC20-ETH 流动池的基础上,还支持用户创建 ERC20-ERC20 资金池。自推出以来不到一年的时间,v2 已经促成了超过 1350 亿美元的交易量。
一年后,引领了第一个 AMM 时代的 Uniswap 在今年 5 月又推出了 v3 版本。与 v2 相比,v3 主要有两点创新:集中流动性和多层级费率。
集中流动性
在 Uniswap v2 中,流动性沿着 x*y=k 的价格曲线均匀分布,为从 0 到无穷大的报价提供支撑。但对于大多数资金池来说,分布于曲线两端(即报价接近 0 或无穷大)的流动性其实从未被使用过,导致了 v2 资金池中资金使用率低下的问题。
Uniswap v3 通过「集中流动性」功能,允许 LP(流动性提供者) 为特定的价格区间提供流动性,并将不同用户对同一交易对提供的流动性汇总到一个池子里(形成一条综合曲线)供用户交易,从而提高资金利用率。
另外值得注意的是,由于用户在提供流动性时对价格区间设置的偏好不同,表示 LP 流动性凭证的代币格式从 ERC-20 变成了 NFT。
多层级费率
Uniswap v3 为 LP 提供了三级费率,其官方推荐的稳定币、常规资产和小众资产的费率分别为 0.05%、0.3% 和 1%。通过费率分级,使 LP 所承受的风险和收益相匹配,也使资金池更加多样和平衡。
具体而言,为稳定币交易对提供流动性的 LP 承担的风险较小(即潜在的无常损失小),因此对应的交易对费率较低;而小众资产的价格波动往往较大,为其提供流动性的 LP 承担的风险更大,因此对应的交易对费率较高。
鉴于 Uniswap v3 的操作界面和设置发生了变化,imToken 准备了一份针对 v3 的手把手教程,之前的 v2 版请查看《DeFi 代币的最佳兑换工具 - 手把手教你使用 Uniswap》
如何兑换
1.在 imToken「浏览」页找到并打开 Uniswap。
2.在兑换页面点击「ETH」和「选择通证」即可选择需要交易的币种。
3.如果你是第一次进行某币种的交易,则需要先对该币种进行授权。图中以 USDT 兑换 ETH 为例,点击「Allow the Uniswap Protocol to use your USDT」进行授权,然后点击「下一步」进行确认。
授权交易发出后,页面左下角会显示「Pending」表示授权正在等待处理。
4.授权成功后,Uniswap 会对应显示「You can now trade USDT」(代表已成功授权),输入交易数量后,接着点击页面中「Swap」-「Confirm Swap」并确认交易。
5.交易发出后需要等待处理。成功后,Uniswap 会有对应提示,回到 imToken 资产页面即可看到资产更新。
如何添加流动性
1.点击「资金池」-「+ New Position」,选择要添加的代币并设置手续费费率。0.05% 适合稳定币交易对,0.3% 适合常规资产交易对,1% 适合小众资产交易对。
2.设置价格区间。Min Price 是最低价,Max Price 是最高价,Current Price 是当前该资金池中的成交价(即当前汇率)。根据自己想要提供流动性的价格区间设置对应的 Min Price 和 Max Price 即可。
当市场价格在你设置的价格区间内时,一种资产将沿着综合曲线被部分兑换成另一种资产;当市场价格在价格区间外时,一种资产将会被完全兑换成另一种资产,直到市场价格重新进入你指定的价格区间或者你也可以选择重新调整价格区间。
注意,你只能获得在你所设置的价格区间内成交交易的手续费奖励;如果成交价格超出你指定的价格区间,那么你将无法获得对应交易的手续费奖励。因此建议将价格区间设置得较宽一些。
3.设置要投入的代币数量。如果你是第一次提供某币种的流动性,则需要先对该币种进行授权。图中以 USDT 为例,点击「Approve USDT」进行授权,授权成功后再点击「Add」进入下一步。
4.再次点击「Add」确认提供流动性,当交易发出后需要等待处理。成功后,即可在 Uniswap 的资金池页面看到存入的流动性。
5.点击「In range」即可查看在 Uniswap v3 存入流动性获取的 NFT(即流动性凭证),该 NFT 是一张动态的图片,展示了交易对、手续费率、ID 和价格区间等信息。
6.回到 imToken 资产界面选择「收藏」可看到在 Uniswap v3 存入流动性获取的 NFT:UNI-V3-POS。
请注意,不要随意将这个 NFT 出售,因为这个 NFT 并不是赠品,而是你之后用于退出 Uniswap 资金池的凭证。
说明:右图中「等待上架」字样不影响 Uniswap v3 NFT 的使用和功能。
如何退出流动性
1.同上面兑换教程先在 DApp 浏览页面找到并打开 Uniswap,切换至资金池页面。接着点击「Remove Liquidity」,输入要退出流动性的资金数额,如果要全部退出,点击「Max」即可,然后点击「Remove」。
2.在弹出的流动性移除详情页中再次点击「Remove」-「确认」,交易发出后需要等待处理。成功后,即可在 Uniswap 的资金池页面看到提示。回到 imToken 资产页面也会看到同步更新的资产数额。
流动性移除后,LP 仍能在 Uniswap 和 imToken 看到代表仓位的 NFT,但此时该仓位会在 Uniswap 上显示为 Inactive(非活跃)的状态。
v2->v3 流动性的迁移
LP 在 Uniswap v2 和 SushiSwap 上的流动性可通过 Uniswap 官方提供的工具迁移至 v3。
1.在资金池页面点击「More」-「Migrate」。
2.选择要迁移的仓位,接着按照流动性添加的步骤设置价格区间和费率后,确认添加即可。
参考资料
- Introducing Uniswap V3
原文链接:https://uniswap.org/blog/uniswap-v3/
Liquidity Provider & Migration User Guide
原文链接:https://docs.uniswap.org/concepts/introduction/liquidity-user-guide