今天(2019年5月2日)正式发布 比特币核心0.18.0, 中本聪(Satoshi Nakomoto)在大约10年前推出了第18代比特币的原始软件客户端,至今仍是网络上占主导地位的比特币实施。在比特币核心首席维护者弗拉基米尔·范德兰(Wladimir van der Laan)的监督下,这一最新的主要发行版由大约100个贡献者在大约六个月的时间内开发完成.

比特币核心0.18.0包括典型的性能改进和错误修复范围,以及一些新功能.

以下是一些最重要的变化的概述.

硬件钱包兼容性

比特币核心0.18.0中最令人期待的更改之一将是使用户能够通过硬件钱包交互(HWI)工具连接其硬件钱包(Ledger,Trezor,Digital BitBox,KeepKey和Coldcard)。这结合了最安全的方式来存储私钥和与区块链进行交互的最安全方式之一.

硬件钱包被认为是安全的,因为用户的私钥永远不会离开设备。密钥永远不会暴露在互联网或它们所连接的计算机上,从而使硬件钱包不受远程黑客的攻击.

虽然已经可以使用Electrum个人服务器将硬件钱包连接到连接到整个节点的Electrum钱包,但HWI将成为Bitcoin Core项目的第一个本地,硬件到节点的选择。目前,HWI脚本仍仅是命令行,并且需要手动过程来连接硬件钱包.

GUI对多钱包功能的支持

最新更新的另一个进步是使用户能够与多个钱包配对。这是在Bitcoin Core 0.17.0中完成的一些工作的基础上建立的,在Bitcoin Core 0.17.0中,用户不再受限于在启动节点时仅创建钱包,而可以在需要时创建和使用新的钱包。在Bitcoin Core 0.18.0中,用户可以将自己创建的多个钱包配对,然后将该功能插入图形用户界面(GUI).

此功能将在以后的更新中继续完善,因为在使用GUI来访问“ multiwallet”命令时仍然存在一些已知问题。最值得注意的是,您不能在装有多个钱包的情况下使用硬币控制功能,否则在尝试切换钱包时可能会保留错误的钱包.

硬币控制功能允许用户控制在发送交易时使用钱包中的哪些硬币。此功能是维护用户隐私的一个重要方面,因为某些未用的交易输出(UTXO)可能会比其他交易更能显示出更多信息,无论是通过其发送的地址还是它们的价值。 (例如,如果您拥有一枚价值1,000 BTC的UTXO,而另一枚价值0.1 BTC的UTXO,则您可能更喜欢使用0.1 UTXO来防止您所支付的人得知您拥有至少1,000 BTC。)

对输出脚本描述符语言的改进

由Blockstream工程师和比特币核心贡献者Pieter Wuille提议,输出脚本描述符语言首次出现在比特币0.17.0中。该语言的主要用途是允许用户命名与他们的钱包关联的不同类型的公钥和私钥,并使将这些密钥从一个钱包转移到另一个钱包变得更加容易。根据他的原始提案文件,Wuille的最终目标是有一天“消除完全导入脚本和密钥的需要,而使钱包只是这些描述符及其相关元数据的列表。”

随着Wuille和其他开发人员继续努力增加该描述符列表,最新更新通过提供新命令来允许用户开始为每个可被Bitcoin Core签名的脚本导入人类可读的描述符,从而完善了一些现有语言。.

比特币采矿促进隔离证人的采用

Getblocktemplate(GBT)是一种去中心化,开源的比特币挖矿池协议的首次尝试,它是由比特币社区在2012年开发的。当时,一些特定于池的挖矿协议只是为矿工发布了区块头,以解决问题,根本不知道块中到底有什么,实际上是盲目地将控制权交给了池操作员。像更新的BetterHash协议一样,GBT通过将块创建(事务选择)移交给矿工,将权力交还给矿工(“哈希”),从而分散了该过程.

如果您是矿工,希望加入受支持的池,则要开始使用协议,该矿工会与池服务器联系并请求初始模板,该模板将包括为参与该池而设置的规则。这些规则是由挖掘池自定义的,范围从硬币库和随机数参数到最小/最大时间散列。但是在最新更新中,未启用SegWit的接收此模板的调用将失败,并且矿工将收到一条错误消息。 ((但是,在任何情况下,未指定SegWit的矿工调用getblocktemplate都可能会导致用户错误,因为这会导致矿工获得较低的报酬。)

SegWit于2017年实施,被认为是有史以来对比特币软件进行的最大协议更新。 SegWit带来的主要变化是修复了可延展性错误,并用块“权重”限制替换了块大小限制,允许多达4兆字节的交易数据,并极大地提高了网络的交易容量.