Disclaimer: As an open information sharing platform, your currency blockchain provides all information that only represents the author's personal views, has nothing to do with your currency blockchain's position, and does not constitute any investment and financial advice.

以太坊如何控制区块大小?

2021-06-22 17:26:58

作为市值第二的老大哥的以太坊,经常被拿来和比特币比来比去。不知你是否发现,和比特币扩容事件此起彼伏的热闹场面相比,以太坊似乎没有过类拟的区块扩容困扰,要知道,从2017年开始,以太坊的交易量同样也快速增长,那以太坊又是怎么搞定这个问题的呢?

我们先来看下以太坊的区块大小变化情况(如下图)。3月19日,以太坊区块的平均大小为21345Bytes,约为0.02M(平均出块时间为15秒)。

可见,以太坊的区块大小是不固定的,背后的原因,在于它采用了完全不同于比特币的做法。

比特币的转帐交易是统一格式,可以用固定的区块大小来规范。以太坊则不同,V神(以太坊的创立者)将区块链视为世界计算机,在比特币基础上,以太坊实现了智能合约,这就意味着,除了和比特币有同样的转帐功能外,以太坊网络中更多的是要为大量程序提供运算服务。

以太坊网络中不同的事务,所需要的计算成本各不相同。

举个例子,对于转帐交易类事务,以太坊网络的处理是相对一致的;而对于一个有Bug的程序来说,很可能会消耗掉大量的算力(比如程序中存在无限循环运算时)。以太坊明确了每笔操作会有个最低算力消耗值,而智能合约的算力消耗量则在最低消耗值基础上,还需要加上所有代码执行的算力。实际消耗的算力只有在实际使用时才能确认。

因此,以太坊中每笔交易的大小是不确定的。如果需要用一个相对固定的参数来规范以太坊区块的话,最直观的就是固定每个区块中所包含的算力了。这个值由矿工在每个区块中的GAS LIMIT(单位:gas)参数来表示,每个交易提交时也会有算力需求(单位:gas),乘以算力gas的价格(单位:gwei/gas),就是交易成本了(单位:gwei,gwei和eth类似于比特币里的 聪 和BTC的关系:每 eth = 10^9 gwei)。

目前gas price和每个区块里的GAS LIMIT数值如下图:

▲ 数据来源:https://ethstats.net

提交每笔交易时,需要附加愿意付出的最多成本,矿工在打包时,会遵循以下规则:

利益导向——哪笔交易给的酬劳高,会优先打包谁的,直到区块中包含的算力值(gas limit)消耗殆尽;

多退少不补——按实际算力收取费用,但如果给的不够,打包时则不会将计算结果提交到链上,费用也会全部收取(每笔事务的最低算力消耗值则为21000gas)。

在理解了上述规则后,扩容问题的解决就简单了:为了避免出现比特币类似的区块扩容争议,以太坊协议允许矿工每次可以将上个区块BGL值调整正负0.0976%(=1/1024 ),按平均每15秒出块的频率,以快速满足网络上快速变化的计算需求。

因此,在面对突来的交易激增时,以太坊表现出了较好的灵活性,比如在2017年6月29日,因1C0原因,交易量激增,以太坊在不到2个小时内,就实现了33%的增长。

下图是以太坊网络每个区块中包含算力的变化情况,从最早的3百多万,到目前基本稳定在8百万gas中。在能提供的算力增长时,如有足够的交易能消耗完,自然矿工会得到更多收益,但也需要矿工付出更多成本——更大的宽带、更快的计算能力,所以这个过程虽然不需要多方争议,但也受限于物理性能,客观上不会一蹴而就。

总结:

以太坊通过在每个区块中包括相对稳定的算力而非区块容量的大小,实现了对区块的规范化管理;并用逐块的算力调整机制(调整正负0.0976% ),以应对交易处理量变化情况。

以太坊已经完成了君士坦丁堡升级,你还会继续看好以太坊吗?为什么?欢迎在留言区留言。

下载TokenMi APP

汇聚区块链领域的专家、学者及实战高手,为用户提供行业资讯、行情数据、策略研究等专业服务。

24H热门新闻