gas费之争已经上演了很多年了,如今以太坊即将转为pos链,那最大的期待,就是gas费可以降到很低,为什么呢?
因为pos的处理效率远大于pow,并且网络资源成本也足够低,只是验证者需要抵押ETH,赚取出块奖励。网络本身的“硬件”成本,降了很多倍。
那以太坊转了pos之后,gas费究竟能降多少?好奇心驱使我通过多种角度去尝试预测。
gas费的算法是gas price乘以gas用量,gas price的单价在pos和pow链里完全不是一个数量级。而gas用量则和交易大小、合约大小、块大小、优先交易小费等关键词相关了。
首先我们详细拆解一下pow链上的gas费。
在假设以上这个价格的gas price。
我们打开一个区块中打包的数据。
在这个14454322高度的块里面,一共打包了62次转账和饿19次合约调用。正常情况下转账价格低,合约调用价格高。
这些交易最后一共计算约为0.161922个ETH。
在看这个块的大小和gas单价,
这个块最后打包了31965字节数据,gas单价在27gwei左右。
因为块有一个基本大小,基本大小和交易大小加在一起是块大小。我们没时间把所有交易数据字节大小查一遍加起来计算,我试着去找了一下空块,查到空块大小在540字节左右。
也就是可以计算到上面那个块,所有交易大小在31425字节。
通过eth.gas.station的数据可以查到,平均一笔交易转账的花费在1.96美元左右。14454322高度时的ETH价格在3100美元左右,按3100美元计算,块中交易gas费为500美元左右。
这样一来,块中62笔转账,大概需要122美元,则剩下19笔合约调用需要378美元。
为什么19笔合约调用需要378美元呢,通过交易查询,这些调用合约,都是参与opensea的nft交互和uniswap v2的代币买卖,这些交易的平均gas费消耗是20美元一次,19笔交易,就出现了378美元的数字。
从上面数据来看,在以太坊链上,保存3.1兆的数据,价格就达到了500美元,如果gas单价水涨船高,那价格就更贵的离谱了。
从如此昂贵的数据,我们再计算一下如果以太坊合并后,数据如何?
首先要看以太坊合并后的测试网Kiln上的gas价格,目前Kiln上交易量比较低,这一条利用beaconchain机制运行的链,主要是测试合并数据和合并后的运行情况。因为beaconchain现在还没有进行实际的交易打包运行,只是去同步一些数据。所以Kiln上才有效。
首先我们打开了一个只有1笔交易的块。
这个块是119605,块大小627字节,有1笔交易,但这个块没有交易gas费消耗。
这里我们可以看到一个关键信息,gas单价已经降为了0.000000007gwei。而因为这打包的1笔交易是分发给验证者地址的奖励,所以不计入交易。也因此,这样的块可以计算一个没有其他交易的块的大小。为了保证应对多种情况,通过查询空块,发现一个空块大小仍然在540字节。
因为现在交易较少,我们找到了一个打包了10笔交易的块。
但发现这个块里的交易都是没有消耗gas的交易,即都是链上的一些“系统交易”。所以我在交易浏览里找寻一些转账和合约调用交易。
在一笔40ETH的转账里,我们找到了一些数据,显示
Transaction Fee
0.000016800000126 Ether
Gas Price
0.800000006 Gwei
Gas Limit
21,000
Priority Fee / Tip
0.000016799999979 Ether
Transaction Burnt Fee
0.000000000000147 Ether
Gas Used by Transaction
21,000 | 100%
在这笔交易里,使用了21000gas,一共为0.0000168ETH,价格约为0.052美元。
而我们查询了这笔交易打包的块,块中有6笔转账交易,一共花费了0.0001008ETH,约0.312美元。这6笔交易共占730字节,每笔交易约120字节。
为了寻找对比,我们继续寻找一些合约调用记录。通过查询,找到了一个合约上传、一次合约调用和代币铸造的费用。
以上是一笔代币合约生成的交易,交易使用了0.021个ETH,因为该合约大约占据了6000字节的空间,所以使用了1120000gas,在pos网络里,算是巨额花费。
而在这个合约里,6个用户账户调用合约成功后共花费0.006个ETH,每次调用大约0.001个ETH,以ETH3000美金的价格,大约3U,这个价格也是因为合约大小比较大,而引起的gas费较高。
再看代币铸造。在一个dai稳定币铸造合约里,一次dai的铸造如下图,只花费了0.000036ETH。
这笔交易的字节数在200字节左右。
综上,在转为pos后,用户的日常转账费用极低,而项目上传一些较大的合约,gas费会比较高,而用户调用这样的合约,也会花费更高的gas。
但与pow链的成本相比,pos的gas消耗与其差了多个数量级。