摘要:TVL如此重要,但我居然发现最大的DeFi协议Uniswap V3 TVL的数据存在一些过错。官方的Uniswap 图表也存在一些问题。

原文作者:Ivan Vakhmyanin

编译:PANews

数据分析:Uniswap3的TVL计算竟然都是错的?

2 x 2 = 5

很明显,这是过错的数学题。当我看到Uniswap V3 用户界面上显现的流动性和 TVL(确认总价值)的数据彻底过错时,我的感触和看到2 x 2 = 5的感触是相同的。

Uniswap是以太坊和整个区块链职业最大的去中心化金融(DeFi)项目。由于不计其数的流动性供给者每天都在运用Uniswap的数字来树立他们的出资战略,这些数字怎么或许不精确呢?

我试着找出我核算进程中的过错,但数小时都无效果,且实际状况比TVL不精确还更糟糕。

发现问题

首要,了解什么是TVL以及怎么运用TVL?

TVL是委托给区块链或协议的一切加密货币财物的总价值,通常以美元计价。这些财物或许是去中心化买卖所、跨连桥、假贷协议的总流动性,或者PoS的总质押财物。

TVL被加密出资者广泛应用,主要应用于以下场景:

1、判别协议,热门的协议一般都会展现它们的TVL,由于更大的TVL意味着更大的用户信任、更低的风险以及更安稳的赢利。

2、挑选协议,加密买卖者一般会挑选更高的TVL的DeFi东西,如去中心化买卖所或跨链桥。

3、监控协议,TVL数据能快速增长的协议,是开展越来越好的信号。

TVL如此重要,但我居然发现最大的DeFi协议Uniswap v3 TVL的数据存在一些过错。不过关于我来说,最大的发现是官方的Uniswap 图表也存在一些问题,以下是我发现这个问题的全程:

以一个流动性剖析项目为例,首要将 Uniswap v3 的官方数据与我运用原始区块链数据的核算进行比较。此进程关于数据质量规范至关重要,为了提高验证的精确性,我挑选了一个热门的流动性池 USDC-WETH(0.3% 的费用水平)。

数据分析:Uniswap3的TVL计算竟然都是错的?

Uniswap v3 上第三个池子的 TVL 高达 3.33 亿美元(基于撰写本文时的 Uniswap 官方图表),每日买卖量为 6100 万美元。

但我核算出来的是1.76 亿美元,和Uniswap v3 的官方数据并不一致,所以我决定到ETH的区块浏览器进步一步验证。理论上,每个 Uniswap v3 池子都是一个智能合约。因而,区块链浏览器能够显现池中具有的代币余额,也便是这个池子的 TVL。

数据分析:Uniswap3的TVL计算竟然都是错的?

我估计区块浏览器池子中的代币余额会比Uniswap的官方数据大一点,由于池子还包含流动性及还未领取的费用。但这个余额简直是Uniswap官方数据的一半,最让人惊奇的是,这和我的核算结果相同!

我再逐一查验其他财物的流动性,也出现相似的状况。这个时候,我意识到这个问题和应该不是我核算的问题。

数据分析:Uniswap3的TVL计算竟然都是错的?

为什么会产生这个状况?经过研讨,我发现 Uniswap 依赖于去中心化的区块链索引服务The Graph。运用此服务,任何开发人员都能够为特定的区块链数据用例增加个人剖析代码(称为子图),并经过 API 供给剖析。所以Uniswap Labs 为 Uniswap 协议剖析创建了自己的子图,并经过The Graph供给给服务来组建相关数据。比较好的一面是The Graph的代码是揭露的,欠好的一面是它的 TVL核算过错。

我对其中的代码进行了扼要的剖析,发现它考虑了一切兑换和流动性工作,但没有考虑费用。Uniswap 矿池对每次交流收取 0.01% 到 1% 的费用。该费用从买卖财物中扣除,并计入流动性供给者。反过来,流动性供给者能够随时收取应计费用。可是,当前的 Uniswap v3 子图显现的数字好像从未累积和收取任何费用。因而,Uniswap v3 TVL 数据在每次交流时都偏离了实际。

我第一反应是向The Graph提交工单进行反馈。但我在Github上发现,这个问题在2021年11月现已被中心开发人员提出了。我不知道The Graph为什么一直没有解决这个问题,但随着时间的累积,TVL将会和实际数据相差越来越大。如现在的USDC-ETH这样的大池子,目前的TVL现已和实在的数据相差简直一半了。

验证问题

不实在的TVL会怎么影响咱们的出资决策呢?在开始之前,咱们来看看这些误差怎么影响 Uniswap v3 的总TVL。在撰写本文时,Uniswap v3官方显现是120亿美元。

数据分析:Uniswap3的TVL计算竟然都是错的?

从上图官方报导的数据能够看到,TVL在2022年3月6日从5亿美元稳步增长到45亿美元。但产生了一些疯狂的工作,在2022年3月7日,TVL被报导为2540亿美元。这比整个以太坊网络有史以来最高的TVL还要多2.5倍,且在一天之内产生这样的变化。明显,这个数据的过错的。在接下来的几周,官方报导TVL为100-200亿美元。

此刻,我对Uniswap的剖析数据失去了一切的信任,但怎么才能知道实在的TVL呢?

有以下两个挑选:

经过一些试验,我创建了以下算法来进行精确的 TVL 核算,下面是分步进程。

1.首要按照以下两个进程来核算一切现有的Uniswap v3 的TVL。

2.将一切 ERC-20 代币转账增加到矿池合约(包含一切无人认领的费用)并匹配Etherscan的代币余额。

3.增加一切流动性工作,传入和导出,然后增加一切兑换买卖以核算费用。

4.比较两种方法并确保不存在无法解释的差异。

5.兑换少于 50 次或 0.00000000000001 代币数量的抛弃池和空池(检测到 7,863 个池,包含 2,083 对安稳池,我的算法删去了 112 个空池和抛弃池)。

6. 为每个代币找到安稳币的路径,将池中的 TVL 转换为美元。

7. 移除美元价值受损的低流动性资金池,由于某些资金池在彻底移除流动性后或许显现价值缺乏(请查看下图作为示例)。

8. 将一切剩下货币对的 TVL 转换为美元并增加。

数据分析:Uniswap3的TVL计算竟然都是错的?

核算进程很快,我喝咖啡的进程中就完成了,下面是终究的核算结果。

数据分析:Uniswap3的TVL计算竟然都是错的?

从上图的核算结果能够看出,这简直比陈述TVL的118亿美元少了近4倍。

免责声明:我的核算或许存在过错,在面向企业客户时咱们运用自动测试等其他东西来完成数据的高质量。但关于个人项目,这些东西并不适用。另外,这个研讨主要是表现出现存数据的问题,但并非是终究数据。

修正问题

过错的数据会导致出资者做出一些过错的决策,咱们以为实际上修正Uniswap 的TVL并不难。Uniswap Labs可挑选在子图代码中修正,或核算器开发人员开始运用其他数据源。但咱们对核算器的猜想数据的精确性坚持置疑,我做了一些简略的核算来验证我的观点,结果和我的猜想相同,发现没有接近的数据。

这是一个十分大胆的猜想,我知道许多流动性供给者都是依托现有的核算器来做出数万美元的出资决策。但为了便于您进一步做出自己的判别,咱们恢复了以下的核算进程:

首要,让咱们回忆一下 Uniswap v3 协议的一些中心概念。

它的主要立异之一是会集流动性。本质上,运用 Uniswap v3,您能够挑选您希望资金用作流动性供给者的价格规模。这是一个了不起的概念,能够为协议用户带来巨大的价值。流动性供给者限制了他们对无常丢失的规模,买卖者能够在波动性较低时享用较小的价格滑点。但一切这些潜在的优点都是有代价的,那便是复杂性。

数据分析:Uniswap3的TVL计算竟然都是错的?

在 Uniswap v3 中,流动性供给者挑选供给流动性的价格规模。一旦价格在此规模内,他将取得兑换费用的分红。流动性供给者希望其流动性头寸的价格规模尽或许宽。可是,流动性在此规模内按比例分配。因而,规模越广,每笔买卖的兑换费用就越低。

数据分析:Uniswap3的TVL计算竟然都是错的?

在此示例中,选项 A 显现流动性供给者挑选了较宽的价格规模,而选项 B 显现了相同金额的较窄价格规模。假设在这两种状况下,价格都在所选价格规模内,流动性供给者在选项 B 中取得 3 倍以上的费用。可是,假如价格波动更大,流动性供给者终究或许在选项 A 中取得更高的赢利。

因而,实际上,挑选正确的价格规模应在错过价格的风险和每笔买卖取得较低回报之间找到最佳平衡。

此外,还有一个被常常忽视的参数也会影响流动性供给者的赢利。那便是LP赢利核算器,这个参数能够改动一切。假如你想知道LP的详细核算逻辑,能够参阅以下示例:

数据分析:Uniswap3的TVL计算竟然都是错的?

在此示例中,两个流动性供给者(LP1 和 LP2)具有头寸。LP1 的头寸窄幅为 3 美元。LP2 具有 5 美元的宽头寸。在这种状况下,假如价格没有超出 LP1 的持仓规模,他将取得比 LP2 多 3 倍的费用。由于 LP2 在这个规模内只要 1 美元,而这 1 美元正在与 LP1 的 3 美元竞赛。

假如您查看任何 Uniswap v3 池子的流动性散布,你会发现它并不统一。

数据分析:Uniswap3的TVL计算竟然都是错的?

门槛越高,竞赛越高,流动性供给者需求在挑选有竞赛力的规模和价格下跌概率较低的规模之间找到平衡。这便是为什么这种散布在 LP 赢利猜想和战略制定中发挥重要作用的原因,但我并不确认这个散布是否核算正确。

流动性资金

流动性供给者便是猜想价格、竞赛状态和买卖量,假如 LP 有一个希望,那便是事先了解买卖的未来以调整流动性头寸,这是能够完成的。

在研讨进程中,一些不寻常的流动性供给者引起了我的留意。他们每天多次增加和删去许多流动性头寸(超越 1000 万美元)。更令人惊奇的是,他们总是在同一个区块中增加和移除流动性。

咱们能够看下面这个例子:

数据分析:Uniswap3的TVL计算竟然都是错的?

咱们有三笔买卖,都在区块15413416,方位 3-5,以自下而上的次序执行。第一个运用 Execute 方法的买卖是一个名为“MEV Bot”的合约,为 USDC-WETH 池增加了 2200 万美元的流动性。

数据分析:Uniswap3的TVL计算竟然都是错的?

MEV Bot 增加流动性

第二笔买卖是经过 WETH 从 USDC 到 DogeChain 的交流,这是一笔价值约 16,500 美元的普通兑换买卖。

数据分析:Uniswap3的TVL计算竟然都是错的?

规范兑换买卖

第三笔买卖又是“MEV Bot”,从 USDC-WETH 池中移除了 2200 万美元的流动性。

数据分析:Uniswap3的TVL计算竟然都是错的?

MEV Bot 消除流动性

示例中产生的工作称为“流动性狙击”,让我解释一下这是怎么工作的:

1.有人发送了一笔买卖,将 USDC 交流到 DogeChain;

2.MEV Bot 在内存池中检测到此买卖,并运用 Flashbots 技术或相似技术激活了与矿池的私有链接;

3.MEV Bot 向矿工支付了一笔兑换买卖和两笔按特定次序进行的买卖,以允许提取价值;

4.MEV Bot 在一个十分窄的价格规模内增加了如此多的流动性(2200 万美元),因而有用地,从特定的 USDC-DogeChain 买卖中取得的一切费用赢利都累计到他的身上;

5.MEV Bot 移除流动性并赚取费用(约 35 美元)。

因而,他扣除GAS费后的毛赢利约为 30 美元。也许这个费用不是许多,但他每分钟多次执行此战略,一切这些都加起来,便是不小的数量了。你也能够经过区块浏览器,自己查看这个进程。

作为流动性供给者,这对你意味着什么呢?这意味着流动性狙击手或许会大幅削减你的费用赢利。

定论

我信任 Uniswap 是一个具有巨大潜力的巨大项目,我也尊重 Uniswap v3 中心会集流动性的想法。但是,我发现 Uniswap 生态系统的剖析部分还远未成熟,我信任这个状况很快就会改动!最后,总结一下我的研讨结果:

数据分析:Uniswap3的TVL计算竟然都是错的?

闻名的呆伯特系列,经修改后以反应流动性供给者的实际状况

走运的是,您现在能够更好地了解 Uniswap v3 流动性池在实际生活中的运作方式,并能够相应地调整您的研讨。

尽管我无法供给出资主张,但我以为只要 2 个选项能够树立一个杰出流动性的战略:

  • 简易版,运用历史功能数据。尝试一些小额流动性头寸,看看哪些选项更有用,但这只要在市场安稳的假设下才有用。

  • 进阶版,进行研讨并相应地优化 LP 战略。如上所述,这需求深化了解 Uniswap v3 协议、数学和博弈以及实时处理许多数据的强大数据剖析东西。

这两种挑选有一个共同点,那便是你的决定是基于数据的而不是直觉或随机东西,有时处理数据很困难,但它有回报。

此时快讯

【2022-09-23 09:07】【The Sandbox NFT近24小时交易额增长超900%】金色财经报道,OpenSea最新数据显示,The Sandbox NFT过去24小时的交易额为302ETH,增长率为943%。近24小时交易额排名位列OpenSea第10。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注