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。
Uniswapv3上第三个池子的TVL高达3.33亿美元,每日交易量为6100万美元。
但我计算出来的是1.76亿美元,和Uniswapv3的官方数据并不一致,于是我决定到ETH的区块浏览器上进一步验证。理论上,每个Uniswapv3池子都是一个智能合约。因此,区块链浏览器可以显示池中拥有的代币余额,也就是这个池子的TVL。
我预计区块浏览器池子中的代币余额会比Uniswap的官方数据大一点,因为池子还包含流动性及还未领取的费用。但这个余额几乎是Uniswap官方数据的一半,最让人惊讶的是,这和我的计算结果相同!
我再逐个检验其他资产的流动性,也出现类似的情况。这个时候,我意识到这个问题和应该不是我计算的问题。
为什么会发生这个情况?经过研究,我发现Uniswap依赖于去中心化的区块链索引服务TheGraph。使用此服务,任何开发人员都可以为特定的区块链数据用例添加个人分析代码,并通过API提供分析。所以UniswapLabs为Uniswap协议分析创建了自己的子图,并通过TheGraph提供给服务来组建相关数据。比较好的一面是TheGraph的代码是公开的,不好的一面是它的TVL计算错误。
我对其中的代码进行了简要的分析,发现它考虑了所有兑换和流动性事件,但没有考虑费用。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亿美元。
此时,我对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.移除美元价值受损的低流动性资金池,因为某些资金池在完全移除流动性后可能显示价值不足。
8.将所有剩余货币对的TVL转换为美元并添加。
计算过程很快,我喝咖啡的过程中就完成了,下面是最终的计算结果。
从上图的计算结果可以看出,这几乎比报告TVL的118亿美元少了近4倍。
免责声明:我的计算可能存在错误,在面向企业客户时我们使用自动测试等其他工具来实现数据的高质量。但对于个人项目,这些工具并不适用。另外,这个研究主要是表现出现存数据的问题,但并非是最终数据。
修复问题
错误的数据会导致投资者做出一些错误的决策,我们认为实际上修复Uniswap的TVL并不难。UniswapLabs可选择在子图代码中修复,或计算器开发人员开始使用其他数据源。但我们对计算器的预测数据的准确性保持怀疑,我做了一些简短的计算来验证我的观点,结果和我的猜测一样,发现没有接近的数据。
这是一个非常大胆的猜测,我知道很多流动性提供者都是依靠现有的计算器来做出数万美元的投资决策。但为了便于您进一步做出自己的判断,我们复原了以下的计算过程:
首先,让我们回顾一下Uniswapv3协议的一些核心概念。
它的主要创新之一是集中流动性。本质上,使用Uniswapv3,您可以选择您希望资金用作流动性提供者的价格范围。这是一个了不起的概念,可以为协议用户带来巨大的价值。流动性提供者限制了他们对无常损失的范围,交易者可以在波动性较低时享受较小的价格滑点。但所有这些潜在的好处都是有代价的,那就是复杂性。
在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
来源:金色财经
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。