比特币软件版本7年变迁最大的变化在哪儿?BitMEX研究数据总结版
BitMEX研究团队进行了35次初始区块下载,将初始区块下载时间作为一个基准测试的指标,以此来测试Bitcoin Core的性能。测试中使用了2012年至2019年的Bitcoin软件版本。
这段测试中,我们使用了2012年至2019年期间的Bitcoin软件版本,结果表明,该软件在性能上有了相当大的进步,但也存在很大的差异。即使使用了最新的电脑硬件,老版本的Bitcoin也难以克服2015年至2016年期间交易量上升的障碍。因此,我们得出结论,如果没有增强软件性能,今天的快速初始同步几乎是不可能的。
图1-比特币初始区块下载时间(天)-3次尝试的平均时间
(来源:BitMEX研究,注:区块高度同步到602,707)
综述
为了测试Bitcoin Core在初始同步过程中的性能,我们尝试了35次初始区块下载,并记录了每次尝试所花费的时间。结果如图1所示,说明在2016年2月推出Bitcoin Core 0.12.0时,由于签名验证从OpenSSL升级到libsecp256k1,比特币的速度有了明显的提升。(头等仓注:Bitcoin Core软件0.12.0版本升级后,签名验证速度提升了7倍左右。)
Libsecp256k1是专门为比特币构建的。此后,速度上的改进步伐慢了许多,由于初始区块下载时间的差异很大,只有多次尝试下载才能看出明显的改进。但发布Bitcoin Core 0.12.0版之后,相继发布0.13.0到0.19.0.1版本,每个Bitcoin Core版本的性能都有一个小的逐步提升。
当然,初始区块下载时间只是一个衡量标准,还可以从其他角度和条件来评估Bitcoin Cor火币网各种币详细解释e的性能。虽然初始区块下载时间(IBD)不是衡量软件性能的最佳指标,但它占用了大量资源,因此是一个成为基准测试的良好指标。
本报告延续了之前的两个实验:
· 2018年11月,Jameson Lopp尝试了一次类似的研究,但分析的重点是旧版本Bitcoin Core的独立实现(或简称“Bitcoin”,因为一些较老的软件在“Bitcoin Core”之前命名为Bitcoin)。
· Sjors Provoost也在2017年7月尝试了这项实验,但Sjors的同步次数较少。
完整的测试结果和原始数据如下
图2-比特币初始区块下载时间(天)
(来源:BitMEX研究)
(注:区块高度同步到602,707)
系统规范和其他说明
完整的结果表格
(来源:BitMEX研究)
结果分析
如图2所示,即使用相同的软件和具有相同规范的计算机尝试初始区块下载,所报告的时间也有相当大的差异。
图3- 初始区块下载时间与客户端发布日期(天)- 3次尝试的平均时间
(来源:BitMEX研究)
(注:针对比特币0.8.6客户端,以上数据来自2次尝试的平均结果)
图3表明,除了Bitcoin Core 0.12.0具备强大的性能没有改变外,其他软件的性能随着发布而逐步提高。然而,虽然图3中呈现明显的性能提升趋势,但每次尝试的初始区块下载时间有巨大差异,可能表明性能提升存在相当大的不确定性。关于自2016年来性能不断提升的结论,需要更多的样本数据来坐实。这种差异可能是由于比特币P2P网络或互联网的连接问题。因此进一步研究的最好方法可能是,重新扫描速度,即一旦下载完,完整地验证区块链所需的时间。
Bitcoin Core 0.12.0在上述分析中表现良好。可能是因为,Bitcoin Core 0.12.0启用了libsecp256k,但没有验证隔离见证人的交易输入签名。因此,Bitcoin Core 0.12.0并没有验证2017年8月后区块链的所有签名,这赋予了它某种“不公平的优势”。
然而,Bitcoin Core 0.13.0也具备这种优势。当然,在0.12.0之前的所有版本都具有同样的“不公平”优势,这与使用OpenSSL的缺点相比就相形见绌了。
同步客户端至它的发布日期
图4说明了同步一个客户端到它发布日期的区块高度所需的时间。
图4-同步初始区块下载到客户端发布日期所需的时间(天)
(来源:BitMEX研究)
(注:在Linux上运行的节点数据。Bitcoin Core 0.19.0.1只同步区块高度到602,707)
从图中可以看出,从Bitcoin Core 0.8.6到Bitcoin Core 0.14.0的变化趋势较为平缓,此时可扩展性没有跟随时间的推移和区块高度的增长速度,但也呈现上升的趋势。近年来软件提升的速度降下来了,可能是那些容易实现的改进都实现了,剩下的是难以实现的改进。交易量增加可能也是原因之一。未来提高可扩展性可能更具挑战性,即使维持400万的区块高度限制,进一步升级软件和提升软件性能,初始区块下载的时间也会持续变长。
初始区块下载失败
我们成功编译并运行了Bitcoin 0.8.6之前的版本,但到了2015年-2016年期间,节点同步速度变慢。0.8.6之前版本的节点,例如0.7.0的节点,通过手动更改锁定限制,成功地在2013年完成硬分叉,但是2015年由于交易量增加,太具挑战性,节点暂停处理区块。我们重启了节点,确实有所帮助,但不久节点又停止了。
后面我们甚至在自己的全新本地计算机(匹配64 GB的RAM和8个Intel i9处理器)上运行0.7.0版的Bitcoin Core,但这个节点依然无法跨过2016年。由于涉及的许多换算因数(scaling parameter)都是非线性参数,不能简单地在这个问题上投入更多的硬件就能解决。
当节点被卡在一个区块上我们会重新启动,4次重启失败后我们放弃同步。对于MacBook Pro上的0.8.6 Bitcoin Core,领头区块在2016年时停止了同步。虽然有点令人失望,但剩下的35次尝试都顺利同步,没有出现重启的情况。
结论
除了在发布MacBook Pros的BitMEX研究报告时应该更加谨慎之外,数据还显示过去7年来的扩容性能大大提升。libsecp256k迁移是最重要的改进。初始区块下载时间的大幅减少和旧节点无法完全同步表明,可扩展性对于比特币的重要性,否则即使用户使用最高配置的硬件,Bitcoin现在也基本宣告死亡了。此外,数据还表明,技术创新不太可能同步于区块链的增长速度,初始区块下载的时间将继续延长。
特别声明