|扩展 DeFi 吞吐量:Layer-One 篇(上)( 二 )


本文插图
-(你可以说 , 以太坊是企业用的 , 因为 Gas 使用量在工作日更高)-
如图所示 , 在拜占庭(Byzantium)、君士坦丁堡(Constantinople)和缪尔冰川(Muir Glacier)硬分叉发生前 , Gas 供应量都出现了锯齿状的骤降 。 这些都是以太坊难度炸弹 , 又称冰河世纪(ice age) , 所产生的影响 。 在冰河期 , 出块时间会呈指数型增加 , 导致每天挖出的块数量减少 , 每天的 Gas 供应总量也随之减少 。 当然了 , 这种情况是非常糟糕的 , 因此以太坊网络需要用硬分叉来恢复网络 。 难度炸弹的用意正在于此:引入改进措施 , 以免出现创新停滞的情况 。 由于君士坦丁堡硬分叉忘了重新设置难度炸弹 , 以太坊紧接着又引入了缪尔冰川硬分叉 。 之后的柏林硬分叉正在考虑改变这一机制(EIP 2515) 。
通过图中黑色部分的 Gas 使用量 , 我们可以看出 2017 年 ICO 热潮以来 , 以太坊的 Gas 使用量占 Gas 上限的 60% 以上 。 自此以后 , Gas 上限经过几次跃升 , 增长了四倍 。 每次跃升后 , Gas 使用量也出现相应增长 。 过去几个月来 , 以太坊的 Gas 使用量似乎卡在了 Gas 上限的 95% 上 。
要想知道以太坊的 Gas 使用率为何无法超过 95%, 我们需要先了解空块和叔块 。
空块和叔块
纵观以太坊的发展史 , 即使是在供不应求的情况下 , 以太坊的 Gas 使用量也没有超过 Gas 上限的 95%。 令人惊讶的是 , 剩余 5% 的 gas 都是以空块的形式被浪费了 。 空块是有规律的 , 大约每挖出 20 个区块就会有一个空块 。 在有付费交易等待打包的情况下 , 为什么还会有人挖空块?我们来看一下数据:

|扩展 DeFi 吞吐量:Layer-One 篇(上)
本文插图
空块率随时间的流逝而稳定增长 , 目前在 5% 左右 。 所有矿池都有挖空块 , 因此不是恶意行为 。 真正的问题是 , 出块速度过快 。 如果挖出一个区块的时间少于 6 秒 , 这个块是空块的概率会成倍增加(译者注:作者这个断言应该是根据时间戳统计数据得出的 , 因为没有使用虚拟语气) 。
有一种解释是 , 矿工在收到一个新区块的区块头、但还没处理完整个区块时就开始挖下一个区块 。 这在比特币中叫作 “简单支付验证(SPV)” 挖矿 , 可以让矿工立即开始挖下一个块 , 但是只能挖空块 。 一旦新的区块处理完成 , 矿工就可以开始打包并挖出下一个区块 。 可以证实这一解释的另一个证据是 , 如果同一个矿工连续挖出了两个区块 , 空块率就会降低 25%。
除了挖空块之外 , 还有一种方法是在处理新区块的同时继续接着上一个区块挖矿(而不是挖更新的可挖位点) 。 这就有可能导致多个新区块被挖出 。 如果这种情况发生在以太坊上 , 网络就会选出一个合法区块 , 并将其它区块视为叔块 。 挖出叔块的矿工会获得同样的区块奖励 。 叔块率非常稳定: