作为去中心化金融领域绝对龙头,Uniswap 在 5 月 6 日发布的最新版本,备受关注。
人们非常想看到,作为有潜力吸引传统金融的 DeFi 头部应用,作为 AMM 自动做市算法鼻祖,一家平均日交易量 20 亿美金的纯去中心化交易平台,Uniswap 能把去中心化交易提升到哪个高度。
律动 BlockBeats 将在本文中带用户逐步体验,为用户献上第一时间的上手教程。
如何在 V3 中交易
打开官网链接地址,首先跳出的依然是熟悉兑换界面:
可以看出,对于仅仅想要执行交易的用户来说,新版用户界面在前端方面,相对以前几乎没有任何变化。但是通过左下角箭头处的提示可以知道,此时用户再进行交易,背后使用的资金池已经被默认切换为了新的 V3 版本。
当然,由于许多 V3 版本的资金池刚刚建立,部分交易对提供的交易价格及滑点,尚不如 V2 版本有优势。所以在这种情况发生时,界面会在左下方自动提供切换按钮,用户可一键切换到 V2 版本的资金池,以获取最优的交易价格。
如何在 V3 中提供流动性
(1)如何选择不同的交易费率资金池
我们先从用户界面开始介绍,点击界面上方的 Pool 按钮,切换到资金池界面。
左上方为官方介绍文档的链接,这里不做过多介绍。
右侧为目前排名前 200 位的资金池详细信息,可以浏览主流交易对的及时数据信息。
点开后进入如下界面:
界面最左侧显示的是资金池的具体交易对。在交易对名称的后边,显示的是这个交易对资金池对应的交易手续费率。这里要注意,由于 V3 版本中提供了 0.05%、0.3%、1% 三挡不同的费率,导致同一个交易对,可以在 V3 中分别建立三个不同费率的资金池。
那么,用户应该如何选择不同的资金池,来提供流动性呢?
举个例子,从下图中可以看出,USDC/USDT 交易对至少已经在 V3 中被创建了两个资金池,一个的手续费率为 0.05%,另一个为 1%。可以看出,由于 USDC/USDT 是稳定币交易对,LP 基本不需要承担太多的无常损失风险,导致交易用户会更倾向于选择手续费率低的资金池进行交易,而 LP 为了赚取更多的手续费,则会更倾向于在交易者更集中的资金池中提供流动性。
因此我们看到,费率为 0.05% 的资金池,无论是 TVL 还是 24 小时交易量,都远远好于费率为 1% 的资金池。在这里提醒广大用户,在提供流动性的时候,务必选择 TVL 与交易量更大的资金池,以免自己提供的流动性在不活跃的资金池被闲置,错失取得收益的机会。
那么,对于不同的交易对,应该如何选择费率,才能有效避免资金被闲置呢?
我们再看一下这个按照 TVL 提供的及时排行榜。
可以看出,凡是两边都是稳定币的交易对,排行靠前的无疑都是 0.05% 最低费率的资金池。而只要交易对中涉及一个价格波动较大的币种,则排行靠前的都是 0.3% 手续费的中间费率档。由此可见,对于非稳定币交易对,LP 需要取得较高的手续费收入用于弥补自己在做市中遭受的无常损失。而稳定币交易对由于价格相对稳定,LP 遭受的无常损失较小,导致费率更低的资金池更有竞争优势。而 1% 的最高费率等级主要应用于某些新币或山寨币等,由于价格波动极大,需要给做市的 LP 更高的手续费率,才能弥补其做市带来的无常损失。
(2)如何添加流动性
回到刚才的 Pool 界面,点击右上方 New Position 按钮,进入添加流动性的页面。
第一步:在最上方选择你要添加流动性的交易对。
我们这里选择 USDC 与 ETH 交易对。
第二步:选择资金池的费率
在这里,我们按照下方的提示,对于非稳定币交易对,一般选择中间档,费率为 0.3% 的资金池添加流动性就可以了。
第三步:选择做市的价格区间
这里我们要注意,V3 版的系统并不支持 LP 在选择价格区间时输入任意价格。
V3 版本由于提供了流动性聚合功能,导致计算量较 V2 版本大为增加。所以为了尽量减少交易中的计算过程,降低交易者需要支付的 gas 费用,V3 版本将原本可选的完整的价格范围,人为的切分成了不同的价格点。
以 0.3% 费率的资金池为例,价格的最小变动单位以 0.6% 作为最小变动区间。如在 3401.6USDC 的价格点后,就是 3422.1USDC(3401.6*(1+0.6%))。不同费率的资金池会对应不同的最小变动比例。比如 0.05% 费率的资金池,价格的最小变动比例是 0.1%,而 1% 费率的资金池,价格的最小变动比例是 2%。
但是这里用户不需要担心,我们只要在其中输入自己想要的价格,系统就会自动帮你将你输入的价格调整为最近的一个可选价格点。如果认为不满意,只需要点按下方的粉色按钮进行微调即可。我们在这里选择输入 3165.3USDC 与 3590.3USDC,作为我们的做市范围。
第四步:选择做市币种的存入金额
注意,这里是最容易让人产生困惑的地方,因为在 Uniswap V3 版本中,LP 做市需要提供的两个代币的市值比例,已经不再是简单的 50/50 比例了。那么,LP 做市需要提供多少 USDC,以及多少 ETH,将由什么来决定的?
这里,我们要关注以下三个重要的参数:
1. 做市区间的下限(Min Price)
2. 做市区间的上限(Max Price)
3. 交易对当前的市场价格(Current Price)
最终 LP 需要提供的 ETH 与 USDC 占比各是多少,完全由以上三个参数决定。用专业一点的话说,LP 最终提供的 ETH 与 USDC 的比值,是做市区间的下限、做市区间的上限、现货价格这三个变量的函数。其中,由于现货价格完全由市场决定,用户无法调整。所以对于 LP 来说,只能通过调整价格区间的范围,来影响最终提供币种的比例。
为了更直观的展示,我们通过实验说明这个问题。
当前 ETH 市场价格为 3490USDC,价格区间的下限我们选定为 3165.3USDC,上限为 3590.3USDC。这时,如果我们手中有 1 个 ETH 准备做市,那么应该同时提供多少的 USDC?
我们只需要在下方的 ETH 存入数量中输入 1,系统便会自动帮我们计算出对应需要提供的 USDC 的数量(见下图)。可以看出,两个币种的市值,一个是 3,491 美元,一个是 11,252 美元,已经不是原来 V2 版本中 1:1 的比例了。
当然,我们也可以输入 USDC 的数量,让系统自动算出 ETH 的数量。可以看出,虽然两个币种的数量都放生了变化,但是相对比例并没有改变。所以,一旦我们确定了之前提到的做市区间的下限、做市区间的上限、现货价格三个关键参数。那么 ETH 与 USDC 的相对比例便已经固定下来。如果用户想要调整这个比例,只能通过调整做市价格范围区间实现。
(3)特殊情况:在现货价格以外的价格区间做市
在上文所举的例子中,我们选择的价格区间正好位于现货价格的两侧。但如果 LP 选择的做市价格范围完全高于当前现货价格,会发生什么情况?
我们将做市价格区间的下限设为 4023.8USDC,上限设为 5024USDC,而现货价格依然是 3490USDC。
这时我们看到,上图中现货价格的下方出现了一行黄色的小字,提示用户在这个区间内做市,可能无法赚取手续费收入。但是不要紧,LP 依然可以在这个价格区间提供流动性,没准明天 ETH 就能涨到 4000 多美元呢。
这里需要注意的是,在这种情况下,我们提供的做市资金不再由两个币种组成。
先看下方截图,我们还是输入要提供的 1 个 ETH。这时可以看到,在原来会自动返回 USDC 数量的地方,已经变成了一把小锁。这时用户千万不要认为是自己做错了什么,也并不是因为你没有对交易对授权。这里仅仅是因为做市价格区间完全高于现货价格,导致用户只需要提供单一币种就可以完成做市。
是的,当做市价格区间的下限已经完全高于现货市场价格的时候,LP 只需要提供单一币种 ETH 就可以做市。而当做市的价格价格区间完全低于现货市场价格的时候,LP 同样只需要提供单一的 USDC 就可以完成做市。
具体见下图。这时,只要你的钱包中有足够多的 USDC 代币,就可以输入任意数量的 USDC 做市,而不必再关心 ETH 数量。
如何构建范围订单
范围订单(Range Order)是在 V3 版本中引入的一项新功能。新的范围订单可以一定程度上模拟传统订单簿交易所中的限价单功能。假设用户手中有 10 个 ETH,计划在价格上涨到 4000 美元时售出为 USDC 止盈,那么他应该这样操作:
1. 选择在 ETH/USDC 资金池提供流动性,费率就选择资金规模最大的 0.3% 即可。
2. 将做市价格范围的上限与下限都尽量保持在 4000USDC 附近。
(由于在 3999.8 之上最近的一个可选价格点就是 4023.8(3999.8*1.006=4023.8),这里便选择 3999.8-4023.8 作为做市价格区间)
3. 在下方 Deposit Amounts 处输入存入的金额为:10ETH。
4. 点击最下方的按钮,执行交易即可
(由于律动 BlockBeats 的账户中并没有这么多 ETH,这里就没法给大家亲自演示截图了。。。)
如果用户成功完成了以上的步骤,那么当 ETH 的价格上涨到 3999.8 美元时,他存入的 10 个 ETH 头寸便会开始被兑换为 USDC,当价格上涨超过 4023.8 美元时,这时用户的头寸将全部转换为 USDC,这时如果用户即时的撤回流动性,那么便相当于通过 Uniswap V3 自动执行了一个价格大概等于 4011.78 美元的止盈卖单。
LP Token NFT
不同于在 V2 版本中使用同质化代币来表示用户提供的流动性。Uniswap V3 版本由于每个 LP 都可根据自己的需求选择不同的做市价格区间,导致每一个 LP 头寸几乎都是独一无二的。于是,V3 版本的协议采用了 NFT 的代币标准来表示 LP 提供的流动性头寸。
NFT 的全称为 Non-Fungible Token,中文全称非同质化代币,而与其对应的概念则是同质化代币 Fungible Token。我们熟悉的比特币便是同质化代币,每个比特币之间完全同质,且可以随意拆分成更小份额。
由于 NFT 之前往往被用于表示艺术画作等收藏品,并在近期引起了投资与收藏 NFT 艺术品的热潮,导致许多用户已经不自觉的将 NFT 与收藏和艺术品画上了等号。但其实,NFT 在金融行业依然有着更广泛的应用空间,Uniswap V3 的采用便是很好的证明。
为了帮助用户更好的理解新的 NFT Token 形式。律动尝试向 ETH/USDC 资金池提供一些流动性,Gas 近 100 刀。由于账户中已经没有 USDC 的代币了,所以我们便选择了高于现货市场价格的做市范围区间,下限为 4000USDC,上限为 4994USDC。这时,我们可以以 ETH 单一币种进行做市。
NFT 的展示界面也非常酷炫,界面最上方显示了交易对的名称:ETH/USDC,下面是资金池对应的费率:0.3%。NFT 卡片左下角显示的 ID 编号为 3045,是按照用户提供流动性的时间顺序进行的排名,据说在 Uniswap V3 中最先提供流动性的前 100 位用户,有更高的概率能在卡片的右下角获得一个小太阳的稀有标志,这里律动还没有在操作中体验到。
界面右侧上方显示的是这部分做市头寸中包含的代币数量,可以看出 USDC 的数量为 0,目前头寸全部由 ETH 组成。界面正上方用橙色字体提示了,当前的 ETH 现货价格并不在律动选择的做市价格区间之内。由此右下方显示的未申领手续费金额也同样是 0。
但是不必担心,只要 ETH 的价格继续上涨并超过 4000 美元,律动的这个 NFT 头寸就可以开始赚取手续费了。
如何浏览 V3 中的资金池数据
还是以 USDC/ETH(0.3% 手续费)交易对为例。可以看出,界面详细的展示了这个资金池的最新交易量、锁仓数据以及最近的交易记录,这些都与 V2 版本中差异不大,这里不再做详细解释。用户需要注意的是界面右上角中箭头指出的 Liquidity 部分。
我们点开链接,可以见到下方的流动性分布情况展示页面。
这个页面展示了资金池的流动性,在不同价格区间的分布情况。我们将鼠标移到箭头处的曲线最高点位置。可以看出,目前在 3463.3623USDC/ETH 的价格点内,流动性最为集中。这与当天的 ETH 价格也高度相关,可以看出,LP 在当天的现货价格附近提供了最多的流动性,也意味着交易者在这个价格点附近交易,可以享受到更低的滑点。
在 Uniswap V3 版本发布后,有观点表示,新版本的交互逻辑过于复杂,已经不再适合普通用户使用。且由于在做市过程中,用户需要主动选择价格范围与代币比例,导致在新的版本中,LP 的角色更类似于主动管理者。如果 LP 没能选择合理的价格范围,有可能导致交易价格超出做市价格区间,使自己提供的流动性发生闲置,不能正常赚取收益。
此外,新版本的做市逻辑还大大增加了 LP 需要承担的无常损失。由于做市的价格区间变小,一旦价格移动到做市价格区间的边缘,有可能使 LP 的头寸完全变成单一币种。同时,由于计算逻辑更加复杂,经过体验,很多操作的 gas 成本也较 V2 版本更高。