gas到底是什么?为什么现在以太坊网络上的交易费用这么高?有哪些方法可以降低交易费用?您将在本文中找到这些问题的答案。
让我们先从gas到底是什么开始讲起吧。
什么是gas?
gas是用于测量在以太坊区块链上执行特定操作所需的计算工作量的单位。
这个名字本身并不是偶然选定的。gas其实类似于汽油,后者作为汽车的能量保证汽车可以正常行驶,以太坊网络上的gas为交易行为进行“加油”,并允许用户执行不同的操作。
在以太坊区块链上的每一个操作,或者准确地说在以太坊虚拟机(EVM)上的每一个操作都有一个相对应的gas成本。例如:将两个数字相加要花费3个gas;获取账户余额会花费400个gas;发送一笔交易花费21000个gas。
智能合约通常包括多个操作,这些操作加起来甚至可以花费数十万gas。
有趣的是,gas价格本身并不能告诉我们在某笔交易中需要支付多少钱。要计算交易费用,我们必须将gas的乘以gas价格。
gas的价格单位为gwei,,gwei的单位比ether要小,1 gwei等于0.000000001 ETH。我们可以把它们之间的关系看成是美分和美元。
例如,假设我们想发送一笔简单的以太坊交易,如果ETH的价格为1800美元。大多数流行的以太坊钱包(如Metamask)会估算必要的gas价格,并允许我们在快速、中等和慢速交易确认速度之间进行选择。让我们假设如果我们想在一分钟内确认我们的交易,钱包估计gas价格将设置为100gwei。
我们现在可以快速计算出,这样一笔交易我们需要支付3.78美元。我们将发送一笔交易的gas成本(2.1万gas)和gas价格(100gwei)相乘,就等于2100000 gwei,也就是0.0021 ETH。在ETH价格为1800美元时,这笔交易的手续费是3.78美元。
ETH的价格和gas之间有什么联系
值得一提的是,gas只是一个抽象单位,它仅存在于以太坊虚拟机中,用户实际上总是在以太坊网络中支付交易。
使用单独的单位来度量计算工作的主要原因是这样可以将其与ETH的价格进行分离。
这意味着ETH价格的增加不会改变交易成本。如果网络活动保持不变,而随着ETH的价格上升,我们应该会看到gas价格的下降,因此以ETH衡量的最终交易成本应该保持不变(美元价值)。
但是ETH的价格上涨通常与以太坊网络上活动的增加相关,这杨就会增加交易成本。
现在,让我们看看网络活动的增加究竟是如何导致交易成本上升的。
首先,所有的交易都被发送到以太坊的内存池(mempool)中。所有没有处理的交易都在等待矿工们将它们取走,并将它们打包到下一个以太坊网络的区块中。
矿工由于受到激励,会首先选择gas价格最高的交易,因为他们通常会在固定的工作时间中选择价格更高的交易。
以太坊的协议也限制了矿工们挖出一个区块中可以包含多少笔交易。这是由每个区块的最大gas限制决定的。在撰写本文时,这个限制被设置为12.5M gas。
举个简单的例子,我们假设内存池中只有简单的ETH交易,每个交易花费21000 gas。一个矿工可以打包595个这样的交易。假设内存池中有1000个待处理的交易,矿工将通过按gas价格对所有待处理的交易进行排序并选择595个付费更高的交易进行打包。
目前的收费模式基于的是一种简单的拍卖机制,希望自己的交易被矿工处理的用户首先必须以高于其他人的加以费用获得区块中的位置。这样反过来又推高了gas的费用,尤其是当很多用户有紧急交易需要确认的时候。
我们为什么需要gas
为了更好的解释gas,我们需要首先理解为什么gas会存在。以太坊虚拟机作为一个图灵完备的机器,它允许执行任意代码。虽然这是使以太坊如此强大的主要原因之一,但它也更容易受到halting problem的影响。halting problem是指从一个任意计算机程序的代码和输入来确定该程序是会结束运行,还是会永远继续运行。
如果没有gas,用户就可以执行一个永远不会停止的程序,其中的原因可能是代码有问题,也可能是有人作恶。为了防止这种情况发生,以太坊引入了与每个操作相关的gas成本,这将防止程序处于永远运行的状态,最终使整个网络陷入停滞状态。
除了gas价格,每笔交易也有一个gas限制,它必须等于或高于成功执行特定交易所需的预期gas数量。
以太坊虚拟机在执行事务中的每个操作之前,会检查是否有足够的剩余空间用于该操作。如果剩余的gas不够,则使用“out of gas”来还原整个交易,并回滚所有状态。即使交易失败,用户仍将为矿工已完成的工作量支付交易费用。这也是为了避免人们发起对网络的恶意攻击。
如果交易消耗的gas比最初预期的少,那么剩余的gas被转换为ETH并退还给发送者。
同样重要的是,以太坊上的所有操作都要有正确的gas成本;否则,它可能成为另一个攻击目标。其中一起攻击发生在2016年,这导致以太坊网络的硬分叉,最终系统重新对某些简单的操作进行了定价。
现在,由于我们对gas有了更多的了解,让我们来看看最近一段时间交易费用上涨的情况,以及一些可以降低现在和未来交易成本的解决方案。
以太坊的高额费用
随着去中心化交易所(DEX)创纪录的交易量,DeFi借贷平台锁定总价值越走越高,很多Yield Farming的项目创造出了很多机会,并且网络上制造出来的NFT(非同质化代币)越来越多,以太坊网络异常繁忙。
这导致了人们对区块空间的极高需求,也反过来推高了交易成本。
支付超过10美元的ERC20转账或支付50-100美元的Uniswap交易已经司同见惯了。当然,收费过高并不是好事儿,因为它让小玩家很难参与以太坊的生态系统。
幸运的是,已经有多种解决方案可用,或者正在积极地研究。让我们来看看其中一些最重要的解决方案吧。
第2层扩展方案和Eth2
第2层扩展方案是一种解决方案的术语,它通过处理链下交易来帮助提高主要以太坊链(第1层)的能力。除了提高交易速度和交易吞吐量外,第二层解决方案还可以大大降低交易费用。
Loopring就是一个很好的例子,它是建立在第二层网络上的去中心化交易所。该平台最近锁定的总价值达到了2亿美元,日交易量超过1000了万美元。
另一个项目Matic近期刚改名为Polygon,它在Plasma+PoS链上的锁仓量也超过了2000万美元。
一种更通用的解决方案——基于optimistic rollups的Optimism也正在推出当中。它的推出非常重要,因为它将允许DeFi智能合约以类似于它们在主网上的交互方式在第二层网络上进行交互。
可以进一步增加第2层解决方案采用的方式是直接参与现有的第2层网络项目。这可以进一步降低交易成本,因为用户可以直接将他们的ETH从交易所转移到第二层解决方案,如Loopring。
如果您想了解更多关于第2层扩展的信息,请查看这篇文章。
除了第二层扩展方案,从长远来看,另一个可以降低交易成本的解决方案是Eth2,它引入了分片(sharding)技术和权益证明(PoS)机制。您可以在这里了解更多有关这些概念的信息。
EIP– 1559
EIP-1559是优化交易成本的另一个解决方案。
尽管该提议不会对降低交易成本产生直接影响,但它将通过调整费用峰值和限制超额支付交易的数量来优化收费模式。这将使交易费用更容易预测。
EIP-1559有望在2021年初实现。
下面是一篇单独的文章,它深入解释了EIP-1559。
优化gas的使用
除了使用第2层的扩展解决方案和等待其他改进之外,还有一些其他的技巧可以帮助我们降低主网的交易成本。
首先,如果我们没有任何紧急交易,我们可以尝试找到一天中gas价格最低的时间。
除此之外,我们应该经常通过另一个可靠的来源(如https://ethgasstation.info/)来检查我们钱包里预估的gas费用。
交易所1Inch使用的另一个技巧是降低CHI代币的交易费用。这些代币必须在主要操作的同时燃烧,这允许减少交易中花费的gas总量。
这可以通过利用以太坊虚拟机的机制实现,该机制在释放存储空间时退还gas。当CHI代币生成时,以太坊网络上的虚拟智能合约就会被创建。燃烧gas会破坏这些合约,并产生gas的退款。
其他链的情况怎么样?
那么以太坊之外的其他区块链链的情况怎么样呢?
毫无疑问,最近一段时间以太坊的高交易费用导致其他一些区块链捕获了大量的用户和交易量。
当然,很难说有多少是昙花一现,多少可以捕获长期用户。
说到这里,我们必须要记住,有些链并不是完全去中心化和无许可的。它们实际上是创建了一个假的DeFi生态系统,可能玩起来很有趣,但实际上与使用中心化交易所没有太大不同。
那么你怎么看待以太坊的gas和高额的交易费用呢?你最喜欢用什么方法降低手续费?