2021-07-27 15:00 | 出处: 洁sir
用户在以太坊区块链中发现的主要用例是无需中介即可在加密资产之间进行交换的能力。去中心化交易所或 DEX 是用于此活动的平台。它们可以概括为一个应用程序,允许你使用其池中可用的流动性,将 ETH 或任何代币交换为其他代币。
去中心化交换代表了以太坊上最广泛的GAS消耗。根据 The Block 的统计,与代币交换相关的合约是消耗区块链资源最多的合约之一。
来源: https://www.theblockcrypto.com/data/on-chain-metrics/ethereum
尽管这些系统具有无需许可的性质、惊人的数量和无可争议的成功,但在链上进行操作成本高昂,这对某些用户来说是负担。掉期成本可以分解为几个不同的成本要素:
价格影响
流动性提供商费用
滑点
底层区块链的交易费用
了解这些成本对于资本效率至关重要,并且可以从做出正确选择那里节省数千美元。DEX 行业有几个可供用户选择的替代协议应用程序,它们提供相同的代币交换核心服务。本文旨在根据经验比较最后一项,即使用市场上可用的不同 DEX 时的交易费用成本。
任何链上操作都需要根据它消耗的计算资源量来定价。在以太坊网络中,gas 是用于衡量用于执行每个特定操作的计算工作量的单位,并直接影响交易成本。由于每个协议采取不同的方法,并且需要执行不同的功能来进行交换,因此每个交易/协议的消耗也不同。
一笔交易可以调用任意数量的函数,并与许多不同的智能合约进行交互。下面,我们可以看到使用 Tenderly 提供的工具进行的两个不同交易的 gas 消耗明细。如你所见,第二笔交易最终比第一笔交易多花费了 70% 的 gas。
来源:https://tenderly.co/ Dashboard
Balancer: https://duneanalytics.com/yulesa/Balancer-Gas
Curve: https://duneanalytics.com/yulesa/Curve-Gas-Usage
Uniswap V2: https://duneanalytics.com/yulesa/Uniswap-V2-Gas-Usage
Uniswap V3: https://duneanalytics.com/yulesa/Uniswap-V3-Gas-Usage
仪表板允许通过在选择框中输入池地址来单独检查每个池。它还有一个事务表来过滤异常值以进行更详细的调查。
DEX GAS比较仪表板
在分析一个协议的多个矿池时,只有超过 100 笔交易符合上述标准的矿池才会被绘制出来,以获得更相关的结果。在分析与单个池交互的事务时,事务按交换中涉及的跃点数分组。
涉及多次掉期的交易(在本例中为 2)。来源:https://etherscan.io/
交换执行可以包装在同样执行其他代码的事务中。为了排除这种影响,只分析了直接调用协议保险库/路由器合约的交易。此过滤器用于排除由 DEX 聚合器和合约路由的掉期交易,这些合约捆绑了多个会增加交易成本,但与 DEX 协议本身无关的功能。
平衡器池分布
Balancer 的大部分交易来自 DEX 聚合器应用程序,例如 1inch、Metamask 等。由于这些交易被排除在分析之外,这自然会减少可用的数据量。尽管如此,仍有 14 个矿池符合至少 100 个直接调用交易的标准。正如预期的那样,当单独评估每个池时,可以看到单跳交换和多跳交换之间的显着差异。另一项发现是,池中代币的数量不会改变使用它的交易的 gas 支出。重要的是要记住,Balancer 中的 2 代币池可能会也可能不会充当预言机——如果它们这样做了,当存储价格数据的内存槽被初始化时,gas 成本会更高一些。这可以在这些池的移动平均图表上查看。请注意一旦所有内存插槽都已初始化,平均值是如何突然下降的。
分别为 LINK/WET、USDC/WETH 和 WBTC/WETH 矿池分布。
Curve 池分布。
从本文研究的 DEX 来看,Curve 有一个独特的机制,这使得比较有时会不平衡。每个 Curve 池(元池除外)都是为其资产定制的。
Curve 显示了所分析的 DEX 之间最显著的GAS消耗差异。这得到了部分解释,因为 Curve 允许交换未包装的代币,如 DAI 或 USDC,而池设计为不依赖其他协议 IOU,如 cDAI 或 yUSDC,并且包装和展开过程是交易的一部分。结果,虽然池中的资产积累了这些协议的好处,但它使交换变得更加昂贵。
分别为 3pool、renBTC 和 Tricrypto 池分布
Uniswap V2 池分发
除了是此列表中最古老的协议之外,Uniswap V2 还被广泛应用。协议中已经创建了 2500 多个矿池服务于资产。绘制上图时施加了一些限制,但它们可以描绘协议中的 gas 成本。一些最受欢迎的代币,例如稳定币和 BTC,广泛用于 ABC - ETH - WBTC 等交易中的多跳交换。有时 ABC 转账是 gas 密集型的,会增加涉及这些流行代币的交易中使用的平均 gas。再一次,在调查每个池时,交易 gas 使用之间最显著的差异是可以分配给每笔交易进行的跳数。
分别为 LINK/WET、USDC/WETH 和 WBTC/WETH 矿池分布。
Uniswap V3 池分发。
Uniswap 协议第 3 版的最大担忧之一是交换交易可能会花费更多的 gas。 Uniswap V3 掉期受其造成的价格影响。相对于可用流动性的订单越高,它就越能推动价格跨分时,离散的价格区间代表 0.0001% 的价格上涨或下跌,其中流动性需要调整。由于大多数交易对价格的影响相对较小,因此交易成本中位数与之前的版本一致。但是,在处理适度的流动性池时,用户需要关注订单对价格的影响。
分别为 LINK/WET、USDC/WETH 和 WBTC/WETH 矿池分布。
每个协议的GAS成本。
选择了 Balancer V2 和 Uniswap V2 和 V3 共有的三个等效池来进行详细比较——USDC/WETH、WBTC/WETH 和 LINK/WETH。由于 Curve 的方法不同,因此选择了它的一些池来融入图片,但不会参与比较。
可以观察到,3 个 DEX 之间消耗的GAS没有显着差异。观察到的差异可能与为研究选择的方法不精确有关。对于 2 跳掉期,差异可归因于交易中涉及的其中一个代币合约中的转移函数的二阶效应。
此外,这里有一个表格,计算成本(以美元为单位)、当前 ETH 价格和 DEX 之间观察到的大致差异。从一个角度来看,在 2000 美元的 ETH 场景中,gas 为 50 gWei,为 WBTC/WETH 2 跳交换选择 Uniswap V2, 而不是 V3 的差异将节省 3.12 美元。对于大于 1040 美元的订单,典型的 0.3% LP 费用大于此差异。
不同场景的gas成本。
尽管 Curve 在 gas 支出方面有一些非常有竞争力的矿池,但它的一些矿池是用底层协议 IOU 设计的,包装和解包过程会显著影响它们的掉期。
由于某些协议从一开始就有数以千计的交易,在 Dune/互联网浏览器中处理如此大量的数据会大大降低仪表板的可用性。因此,在这些协议中,对分析的交易数量施加了限制。然而,总数据的减少不会显著改变结果。对于单个池视图,仪表板的上限为 1000 笔交易。 Uniswap V2 仅限于上个月的交易。
最后感谢 Markus Buhatem Koch 的讨论,为这篇文章提供了帮助。
原文作者:Yule Souza Andrade
原文链接:DEX Gas Comparison