数据分析:Uniswap V3的TVL计算竟然都是错的?_INF:Infinity Cake

2x2=5

很明显,这是错误的数学题。当我看到UniswapV3用户界面上显示的流动性和TVL的数据完全错误时,我的感受和看到2x2=5的感受是一样的。

Uniswap是以太坊和整个区块链行业最大的去中心化金融项目。因为成千上万的流动性提供者每天都在使用Uniswap的数字来建立他们的投资策略,这些数字怎么可能不准确呢?

我试着找出我计算过程中的错误,但数小时都无成果,且实际情况比TVL不准确还更糟糕。

发现问题

首先,了解什么是TVL以及如何使用TVL?

TVL是委托给区块链或协议的所有加密货币资产的总价值,通常以美元计价。这些资产可能是去中心化交易所、跨连桥、借贷协议的总流动性,或者PoS的总质押资产。

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

1、判断协议,热门的协议一般都会展示它们的TVL,因为更大的TVL意味着更大的用户信任、更低的风险以及更稳定的利润。

2、筛选协议,加密交易者一般会选择更高的TVL的DeFi工具,如去中心化交易所或跨链桥。

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

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

以一个流动性分析项目为例,首先将Uniswapv3的官方数据与我使用原始区块链数据的计算进行比较。此步骤对于数据质量标准至关重要,为了提高验证的准确性,我选择了一个热门的流动性池USDC-WETH。

Crypto.com与Line Xenesis合作推动亚太地区加密货币的采用:7月26日消息,Crypto.com宣布与消息应用程序Line的加密和区块链部门Line Xenesis合作,推动亚太地区加密货币的采用。此次合作的最初重点将是增强Line Xenesis在日本的加密产品,例如其获得许可的加密货币交易所Line Bitmax。随着时间的推移,双方将进一步探索更多的加密货币和区块链技术业务解决方案,包括探索NFT集成并增强加密支付能力。[2023/7/26 15:59:43]

Uniswapv3上第三个池子的TVL高达3.33亿美元,每日交易量为6100万美元。

但我计算出来的是1.76亿美元,和Uniswapv3的官方数据并不一致,于是我决定到ETH的区块浏览器上进一步验证。理论上,每个Uniswapv3池子都是一个智能合约。因此,区块链浏览器可以显示池中拥有的代币余额,也就是这个池子的TVL。

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

我再逐个检验其他资产的流动性,也出现类似的情况。这个时候,我意识到这个问题和应该不是我计算的问题。

为什么会发生这个情况?经过研究,我发现Uniswap依赖于去中心化的区块链索引服务TheGraph。使用此服务,任何开发人员都可以为特定的区块链数据用例添加个人分析代码,并通过API提供分析。所以UniswapLabs为Uniswap协议分析创建了自己的子图,并通过TheGraph提供给服务来组建相关数据。比较好的一面是TheGraph的代码是公开的,不好的一面是它的TVL计算错误。

数据:过去24小时XEN Batch Minter合约销毁达150枚ETH:12月12日消息,据OKLink数据显示,过去24小时XEN Batch Minter智能合约的ETH销毁量超150枚ETH,排名第一,XEN Crypto销毁量为42.41 ETH,排名第七。[2022/12/12 21:39:00]

我对其中的代码进行了简要的分析,发现它考虑了所有兑换和流动性事件,但没有考虑费用。Uniswap矿池对每次交换收取0.01%到1%的费用。该费用从交易资产中扣除,并计入流动性提供者。反过来,流动性提供者可以随时收取应计费用。但是,当前的Uniswapv3子图显示的数字好像从未累积和收取任何费用。因此,Uniswapv3TVL数据在每次交换时都偏离了现实。

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

验证问题

不真实的TVL会如何影响我们的投资决策呢?在开始之前,我们来看看这些偏差如何影响Uniswapv3的总TVL。在撰写本文时,Uniswapv3官方显示是120亿美元。

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

东南亚数字支付公司Xendit完成3亿美元D轮融资,融资总额达5.38亿美元:金色财经报道,东南亚数字支付公司Xendit宣布已完成3亿美元D轮融资,联合领投方为加密投资机构Coatue 和 Insight Partners ,参投方包括Accel、Tiger Global、Kleiner Perkins、EV Growth、Amasia、Intudo 和Goat Capital等知名投资商和投资人。Xendit 创始人兼首席执行官Moses Lo表示,到 2025 年,东南亚数字经济价值将超过 3600 亿美元,Xendit 支付产品和服务使该地区更多的企业和个人能够参与数字经济。[2022/5/20 3:31:21]

此时,我对Uniswap的分析数据失去了所有的信任,但怎么才能知道真实的TVL呢?

有以下两个选择:

选项1—分叉并修复Uniswapv3子图。这个选项的不好的地方是子图重新索引需要几天时间,而且我不喜欢TheGraph使用的GraphQL语言。

选项2——使用Datamint的高性能分析数据库,它适用于所有Uniswapv3和以太坊数据,可随时用于复杂的在线查询。

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

1.首先按照以下两个步骤来计算所有现有的Uniswapv3的TVL。

2.将所有ERC-20代币转账添加到矿池合约并匹配Etherscan的代币余额。

3.添加所有流动性事件,传入和导出,然后添加所有兑换交易以计算费用。

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

5.兑换少于50次或0.00000000000001代币数量的废弃池和空池。

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

7.移除美元价值受损的低流动性资金池,因为某些资金池在完全移除流动性后可能显示价值不足。

DeFi信用合作社平台Xend Finance启动主网:金色财经报道,位于尼日利亚的DeFi信用合作社协议已启用其主网,该平台允许用户集中资金以创建自己的信用合作社。[2021/3/22 19:08:12]

8.将所有剩余货币对的TVL转换为美元并添加。

计算过程很快,我喝咖啡的过程中就完成了,下面是最终的计算结果。

从上图的计算结果可以看出,这几乎比报告TVL的118亿美元少了近4倍。

免责声明:我的计算可能存在错误,在面向企业客户时我们使用自动测试等其他工具来实现数据的高质量。但对于个人项目,这些工具并不适用。另外,这个研究主要是表现出现存数据的问题,但并非是最终数据。

修复问题

错误的数据会导致投资者做出一些错误的决策,我们认为实际上修复Uniswap的TVL并不难。UniswapLabs可选择在子图代码中修复,或计算器开发人员开始使用其他数据源。但我们对计算器的预测数据的准确性保持怀疑,我做了一些简短的计算来验证我的观点,结果和我的猜测一样,发现没有接近的数据。

这是一个非常大胆的猜测,我知道很多流动性提供者都是依靠现有的计算器来做出数万美元的投资决策。但为了便于您进一步做出自己的判断,我们复原了以下的计算过程:

首先,让我们回顾一下Uniswapv3协议的一些核心概念。

它的主要创新之一是集中流动性。本质上,使用Uniswapv3,您可以选择您希望资金用作流动性提供者的价格范围。这是一个了不起的概念,可以为协议用户带来巨大的价值。流动性提供者限制了他们对无常损失的范围,交易者可以在波动性较低时享受较小的价格滑点。但所有这些潜在的好处都是有代价的,那就是复杂性。

库币于6月22日15:00开放Xensor (XSR):据库币KuCoin交易所消息,库币已于6月22日15:00正式上线Xensor (XSR) 项目并支持XSR/USDT交易服务。Xensor项目基于ethash加密算法,通过自动化数据管理,提高数据存储和交易的效率,进一步降低了构建物联网通信网络的成本。Xensor还将区块链技术集成到设备网络中,以确保数据的可信度,并计划在未来对其硬件客户实施激励政策。库币是一家全球性数字货币交易所,为来自207个国家的500万用户提供币币、法币、合约、矿池、借贷等一站式服务。[2020/6/22]

在Uniswapv3中,流动性提供者选择提供流动性的价格范围。一旦价格在此范围内,他将获得兑换费用的分成。流动性提供者希望其流动性头寸的价格范围尽可能宽。但是,流动性在此范围内按比例分配。因此,范围越广,每笔交易的兑换费用就越低。

在此示例中,选项A显示流动性提供者选择了较宽的价格范围,而选项B显示了相同金额的较窄价格范围。假设在这两种情况下,价格都在所选价格范围内,流动性提供者在选项B中获得3倍以上的费用。但是,如果价格波动更大,流动性提供者最终可能在选项A中获得更高的利润。

因此,实际上,选择正确的价格范围应在错过价格的风险和每笔交易获得较低回报之间找到最佳平衡。

此外,还有一个被经常忽视的参数也会影响流动性提供者的利润。那就是LP利润计算器,这个参数可以改变一切。如果你想知道LP的具体计算逻辑,可以参考以下示例:

在此示例中,两个流动性提供者拥有头寸。LP1的头寸窄幅为3美元。LP2拥有5美元的宽头寸。在这种情况下,如果价格没有超出LP1的持仓范围,他将获得比LP2多3倍的费用。因为LP2在这个范围内只有1美元,而这1美元正在与LP1的3美元竞争。

如果您查看任何Uniswapv3池子的流动性分布,你会发现它并不统一。

门槛越高,竞争越高,流动性提供者需要在选择有竞争力的范围和价格下跌概率较低的范围之间找到平衡。这就是为什么这种分布在LP利润预测和战略制定中发挥重要作用的原因,但我并不确定这个分布是否计算正确。

流动性资金

流动性提供者就是猜测价格、竞争状态和交易量,如果LP有一个愿望,那就是事先了解交易的未来以调整流动性头寸,这是可以实现的。

在研究过程中,一些不寻常的流动性提供者引起了我的注意。他们每天多次添加和删除大量流动性头寸。更令人惊讶的是,他们总是在同一个区块中添加和移除流动性。

我们可以看下面这个例子:

我们有三笔交易,都在区块15413416,位置3-5,以自下而上的顺序执行。第一个使用Execute方法的交易是一个名为“MEVBot”的合约,为USDC-WETH池增加了2200万美元的流动性。

MEV?Bot?增加流动性

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

标准兑换交易

第三笔交易又是“MEVBot”,从USDC-WETH池中移除了2200万美元的流动性。

MEV?Bot?消除流动性

示例中发生的事情称为“流动性狙击”,让我解释一下这是如何工作的:

1.有人发送了一笔交易,将USDC交换到DogeChain;

2.MEVBot在内存池中检测到此交易,并使用Flashbots技术或类似技术激活了与矿池的私有链接;

3.MEVBot向矿工支付了一笔兑换交易和两笔按特定顺序进行的交易,以允许提取价值;

4.MEVBot在一个非常窄的价格范围内增加了如此多的流动性,因此有效地,从特定的USDC-DogeChain交易中获得的所有费用利润都累计到他的身上;

5.MEVBot移除流动性并赚取费用。

因此,他扣除GAS费后的毛利润约为30美元。也许这个费用不是很多,但他每分钟多次执行此策略,所有这些都加起来,就是不小的数量了。你也可以通过区块浏览器,自己检查这个过程。

作为流动性提供者,这对你意味着什么呢?这意味着流动性狙击手可能会大幅削减你的费用利润。

结论

我相信Uniswap是一个具有巨大潜力的伟大项目,我也尊重Uniswapv3核心集中流动性的想法。然而,我发现Uniswap生态系统的分析部分还远未成熟,我相信这个情况很快就会改变!最后,总结一下我的研究结果:

1.Uniswapv3图表中的TVL数据非常不准确,所有依赖官方Uniswapv3子图的分析工具都存在相同的错误。

2.Uniswapv3TVL总额为31.4b亿美元,而官方网站报告的为118亿美元。

3.Uniswapv3流动性提供者的计算器对现实生活中的策略几乎没有价值,因为它们没有考虑竞争和流动性狙击手。

著名的呆伯特系列,经修改后以反应流动性提供者的现实情况

幸运的是,您现在可以更好地了解Uniswapv3流动性池在现实生活中的运作方式,并可以相应地调整您的研究。

虽然我无法提供投资建议,但我认为只有2个选项可以建立一个突出流动性的策略:

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

进阶版,进行研究并相应地优化LP策略。如上所述,这需要深入了解Uniswapv3协议、数学和博弈以及实时处理大量数据的强大数据分析工具。

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

来源:panewslab

原文作者:IvanVakhmyanin

编译:PANews

来源:金色财经

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金宝趣谈

KuCoinXEN 合约代码深入解读_UNI:Uniswap

这两天XEN特别火,看了看代码,相对比较简单。这篇文章就来结合文档来解读一下合约代码,仅做学习交流用。对于玩法还不熟悉的朋友可以先看看我昨天发的推文.

[0:0ms0-3:506ms