Qtum 量子链提速计划:区块时间从2分钟提速至16秒

摘要:
此Qtum改进提案(QIP)描述了区块链参数和逻辑上的改进,以减少目标区块之间的平均间隔时间。
从上线开始,Qtum 量子链的目标区块间隔(配置参数)一直为128秒。目标值和难度会在随着每个区块进行调整,以维持平均128秒的区块间隔。由于去中心化共识所需要的随机性,区块间隔会有一定幅度的变动。
如果在测试/调整后有不错的结果,那么该提议将更改现有的参数和其他逻辑,从而将平均区块间隔减少到16秒,或者32秒。目前,共识算法以16秒的间隔评估每个UTXO,随后在8个间隔(即128秒)之后出块。一个区块可以在第一个间隔之后(16秒内)立即发布,也可以在128秒之后才发布。
新的区块头以及新的区块可以在网络上不间断的产生,但是共识逻辑将以16秒的速度进行验证。根据间隔的时间,这意味着区块将在16秒的时间内进行验证并打上时间戳。
动机
减少区块间隔是为了能更快地确认价值转移和智能合约交易(包括DeFi应用程序)以及有可能实现的更均匀的区块间隔,进一步缩小最长的区块间距。
规范
保留区块链特征
减少区块间距的上层设计目标是:
· 在可能的情况下保持关键的区块链特征,例如通证发行(区块奖励),减半时间等等;
· 调整区块大小以保持TPS(每秒交易数量)和每个区块的最大gas费用;
· 调整区块奖励,即为每个区块生成的作为区块奖励一部分的新QTUM。可能改成当前奖励(4.0 QTUM)除以“间隔改进”(128/16 = 8),即0.5 QTUM(16秒出块)。这样可以使总体通胀率保持不变。
· 如果测试通过,可降低成熟代币的时间,以减少Coinstake(区块奖励)的等待时间,并实现更快的gas退款;
· 随着间隔节奏的加快,处理器、磁盘读/写或内存性能较差的节点可能无法跟上节奏并产生区块,特别是在处理大型UTXO集(> 1,000个UTXO)时。
· TPS和区块大小
Qtum区块链目前的理论TPS为70,此QIP将保留此TPS值。
当前 2,000,000 字节的区块大小将在最新的区块间隔规则下被调整为250,000。DGP(分布式治理协议)将保持相同范围的链上区块大小调整,例如,在进行QIP改进之后,区块大小将保持在4,000,000字节(对于16秒出块的区块而言)。
区块间距分布

区块间距的直方图遵循由目标调整算法控制的曲线,该曲线在第一个间隔中提供最大间隔,在第二个间隔中提供第二大间隔,依此类推。标准直方图如下所示:

我们可能通过改进早期间隔的使用,同时使用各种逻辑修改来保持预期的平均区块间隔,使早期间隔的分布更加平滑和均匀。当然也可能会出现一些“拖延”从而使第一个间隔无法被使用,等等。这是减少区块间距的一个拓展目标。
另一个可能的逻辑修改是减少间隔很长的区块,此处显示为> 580秒的区块。QIP并不需要这样做,但这是另一个拓展目标。
后端节点
对于更快的出块节奏,应该更多注意后端系统的支持,使浏览器、API和轻钱包等拥有更快的吞吐量。
孤立区块
孤立区块(同步共识解决方案),指在网络上以相同的区块高度发布的两个新区块,临时割裂了区块链。对于Qtum主网,孤立区块出现的概率目前为2%至3%。
Qtum使用中本聪共识(难度最大的链为合法链),其中一个区块将变成孤立区块并被丢弃。减少区块间距的解决方案应考虑如何使孤立区块出现率最小。
兼容性
减小区块间隔需要区块参数和逻辑层面的更改,更新后的节点和其他后端系统将不向后兼容,并且将需要通过硬分叉来实现。可以在部署之前运行单独的测试网络,并遵循以前的Qtum硬分叉的模式,即在测试网上以预设的区块高度激活,随后再在主网上激活。
非目标性功能
以下功能是非目标性的改进,因此不会在此次QIP中显示:
· 增加TPS或对“分布式治理协议”进行任何更改,这些更改将继续生效;
· 保留与所有低功率节点的硬件兼容性,尤其是在它们有大量UTXO Stake的情况下。经过测试后,某些具有较慢的CPU,磁盘读/写速度或内存速度的节点可能已难以继续工作。
致谢
作者感谢Qtum 量子链基金会的领导层和核心开发团队为减少区块间距而进行的架构设计。
参考文献
开发人员指南 http://book.qtum.site/en/
Qtum文档 https://docs.qtum.site/en/GitHub 
Qtum核心存储库 https://github.com/qtumproject/qtum
版权
Qtum量子链源代码和此次QIP在GNU通用公共许可证v3下获得许可。