Bitcoin Core 0.13.0的三点重大更新

2016-08-24 14:00 来源:巴比特资讯 阅读:6641
自中本聪8年之前发布首个比特币客户端以来,Bitcoin Core 0.13.0已经成为了其中的第13代产品。目前Bitcoin Core 0.13.0已经正式发布了。

自中本聪8年之前发布首个比特币客户端以来,Bitcoin Core 0.13.0已经成为了其中的第13代产品。目前Bitcoin Core 0.13.0已经正式发布了。

近100人参与了Bitcoin Core 0.13.0的研发,共耗时5个多月。本次客户端更新的关注重点自然是隔离验证(SegWit),但其代码并不会在当前版本中激活,很可能在0.13.1 中激活。尽管如此,与0.12.0版本相比,Bitcoin Core 0.13.0还是带来了一些重要的改变。

以下是几点最重要的改变。

Bitcoin Core隔离见证

缓解区块拥堵问题

比特币网络中的交易数量在随着时间稳步上涨。这种情况最终也导致了越来越多的区块拥堵现象,因为矿工会根据手续费的高低来选择交易处理的优先级。如果用户不能提供足够的手续费,那么交易的确认时间会增加,或者根本不会得到确认。交易量的上涨以及大量交易的延迟将网络推向了一个“压力测试”阶段,这是一个大问题。

个人用户可以通过提高交易手续费来鼓励矿工优先处理其交易,这样问题就能得到妥善的解决。就算交易已经发送,用户也可以通过选择性费用替代法 (RBF)更改手续费;不过,大部分钱包都没有这个功能。另外,RBF仅对交易发起方有效。到目前为止,收款方仍无法通过提高手续费来加速确认时间。

在Bitcoin Core 0.13.0中有一个新功能称为“孩子为父母买单”(CPFP)。CPFP是为矿工而设的一项政策,方便矿工选择交易处理的优先级。有了这个CPFP政策 之后,矿工没有必要再选择优先处理大额交易,反之,他们会优先处理对他们对有利的交易。换句话说:如果某笔交易的手续费偏低,但随后的交易在手续费方面为 上笔交易作出了适当的补偿,那么矿工就会优先选择这笔交易,并且同时打包处理这两笔交易。

如果将CPFP带入实际交易中会是这样的:低手续费的交易的收款方可以额外“加上”一笔高手续费交易并发送给自己。这样一来,矿工就能被这笔新的高手续费的交易吸引,开始打包两笔交易。因此,收款方就不用再苦等确认时间,矿工也能提高收入。

致密区块的支持

目前,比特币的P2P协议效率有些偏低。通常交易数据节点会发送两次:第一次是在交易发送到网络中,而第二次是在交易得到确认之后。

这种方式存在一些缺点。首先,发送两次交易数据需要占用更多的带宽,这会增加运行Bitcoin Core的成本。第二点也是最重要的一点,给节点同时传送多个新区块会造成带宽拥堵,这会在每个新区块生成时阻碍网络的正常使用,对用户来说实在太过恼 火。另外,这种模式还会拖慢区块在全网的传播速度。区块传播速度减慢正中了大型矿池的下怀,因为这能给他们带来更多的利益,创建一个中心化的挖矿环境。

致密区块(BIP152)是由Bitcoin Core和Blocksream开发者马特•科拉罗(Matt Corallo)共同开发的,其目的是减少数据的过度传输。当一个新区块生成时,节点仅需接收交易数据的简单哈希值,接收方节点将尝试使用接收到的信息,以及在其内存池(memory pool)当中的交易,来重新构建整个区块。

但这种运作方式并不一定完美。如果节点在接收哈希值之前尚未收到初始交易,那么该节点就无法选择交易。不过以下这种情况很少发生:当错误的交易在正确的哈希值中进行哈希,就会让节点误以为接收了正确的交易,直到重构区块阶段才会发现问题。
从以上两种失败情况中可以看出,节点所需的仅仅是具体的交易数据。只要部分节点接收了完整的数据,致密区块(Compact Blocks)的传播速度就会加快,所需的带宽也更少。

HD密钥生成

Bitcoin Core会为每个全新的比特币地址生成随机的公钥和私钥。虽然这种做法是出于安全和隐私的考虑,但对用户来说还是很有负担的。为了确保密钥的安全,他们必须经常备份。

分层确定性(HD)密钥生成(BIP32)是由Bitcoin Core开发者格雷戈里•麦斯威尔(Gregory Maxwell)、彼得•乌莱(Pieter Wuille)博士和比特币钱包商Armory开发者艾伦•莱纳(Alan Reiner)在2012到2013年间研发的。有了HD密钥生成之后,Bitcoin Core创造了一种全新的密钥组合,这些密钥是由12个单一字符组成。只要用户记住这12个字符,他们就可以重新生成密钥,成功获取资金。

HD密钥生成法并不是比特币世界的新发明。很多钱包商早就用上了这个功能,只不过比特币客户端还没用上而已。

性能和安全

Bitcoin Core 0.13.0还包括一系列性能和安全升级。光在这篇文章中根本说不完,以下仅是其中的一小部分(详细内容可参照0.13.0官方信息)。

数据库缓存速度提高了,可加速节点的交易验证等功能;用户可在指令行进行敏感信息的交互式输入,这些信息不会被储存下来,这在一定程度上提高了安全 性;软件更新后会使用最新版本的编程语言,包括C++11和Python 3,这些语言有助于开发更多更强大的功能;0.13.0还为Linux开发了ARM(特殊的微处理器架构)二进制文件,因此用户不用进行手动编译;内存池 中的交易数据可实现互通(用CPFP实现),同时也能与外部程序连接;网络节点可请求设置手续费来防止DoS攻击;最后,本次更新还涉及到了P2P协议、 远程调用以及信息系统(ZMQ)协议。

注:感谢Bitcoin Core首席维护者Wladimir van der Laan和Bitcoin Core开发者兼Ciphrex首席执行官Eric Lombrozo提供信息和反馈。


声明:此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。本网站所提供的信息,只供参考之用。

点击阅读全文