研报:比特币软件版本7年变迁,最大的变化在哪儿?
来源:BitMEX
编译 :头等仓(First.vip)
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 Core的性能。虽然初始区块下载时间(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现在也基本宣告死亡了。此外,数据还表明,技术创新不太可能同步于区块链的增长速度,初始区块下载的时间将继续延长。
Bitcoin Price Consolidates Below Resistance, Are Dips Still Supported?
Bitcoin Price Consolidates Below Resistance, Are Dips Still Supported?
XRP, Solana, Cardano, Shiba Inu Making Up for Lost Time as Big Whale Transaction Spikes Pop Up
XRP, Solana, Cardano, Shiba Inu Making Up for Lost Time as Big Whale Transaction Spikes Pop Up
Justin Sun suspected to have purchased $160m in Ethereum
Justin Sun suspected to have purchased $160m in Ethereum