比特币核心 由中本聪(Satoshi Nakamoto)于八年前首次发布的第十三代比特币参考客户端0.13.0现在已被标记为可发布。这是软件发布过程中的最后一步,并启动了Gitian构建过程.
大约100个贡献者在大约五个月的时间内开发了Bitcoin Core 0.13.0。尽管这段时间的大部分开发工作都集中在“隔离见证”上,只有在未来的次要版本中才能激活“隔离见证”,但与“比特币核心0.12.0”相比,比特币Core 0.13.0包含了十几项显着的改进.
这些是最重要的变化.
孩子为父母买单
随着时间的流逝,比特币网络上的交易数量一直在稳定增长。结果,更多的区块被填满,矿工通常收取更高的费用以将交易包括在区块中。不包含足够费用的交易通常需要更长的时间才能确认,甚至根本无法确认。事实证明,这有些问题,特别是在网络上进行了所谓的“压力测试”的时期,网络上的交易总数激增,并且交易大量延迟.
单个用户可以通过在交易中收取更高的费用来解决此问题,从而激励矿工对这些交易进行优先级排序。即使在发送交易后,也可以使用“加入收费替代”(RBF)来实现;但是,还没有很多钱包包含此选项。此外,RBF仅是事务发送方的选项。到目前为止,收款人还无法提高传入交易的费用以加快确认速度.
这个问题可以通过“孩子为父母付钱”(CPFP)的技巧有效地解决。 CPFP是矿工用来选择要在区块中包含哪些交易的策略。借助CPFP,矿工不必选择收入最高(且有效)的交易,而是选择利润最高的交易 放 交易。换句话说:如果后续交易符合以下条件,他们将选择低价交易 依靠 在低价交易上提供了足够高的费用来弥补。矿工将同时包括这两个矿工.
实际上,这意味着低手续费交易的接收者可以“附加”高手续费交易,将相同的硬币花费在自己身上。受到新的高价交易的激励,矿工将包括交易集。这样,接收方无需等待确认的时间,而矿工可以增加其收入.
紧凑块支持
比特币的点对点协议目前效率低下。节点互相发送两次最多的交易数据:一次是作为最初通过网络发送时的交易,一次是在确认交易时作为块的一部分.
这有一些缺点。首先,两次发送交易数据需要比实际更多的带宽,这增加了运行Bitcoin Core的成本。其次,也许更重要的是,同时将新块转发给多个对等方可能会导致显着的出站带宽峰值。每当发现新的块时,这可能会中断Internet使用,这可能会给用户带来烦恼。也许,更重要的是,它也可能减慢网络上的块传播。缓慢的区块传播反过来会有利于更大的矿池,从而激励更加集中的采矿格局.
紧凑块(BIP 152),由Bitcoin Core和 区块流 开发人员Matt Corallo旨在减少过多的数据传输。当找到一个新的块时,节点最初只传递非常紧凑的事务数据散列。由于节点最初通过网络发送时已经收到了完整的交易数据,因此他们可以使用这些哈希值来确定哪些交易包含在区块中并自行重建区块.
但是,此技巧并不总是能完美解决。如果某个节点在收到哈希之前尚未收到初始交易,则该节点当然无法选择该交易。此外,在极少数情况下 错误的 交易可能会散列为 正确的 散列,愚弄该节点以使其认为它接收了正确的事务,直到它尝试重建该块并发现它没有加起来.
在这两种失败的情况下,节点毕竟只是简单地请求特定的交易数据。即使其中仅包含一些完整的事务,紧凑块也将通过网络更快地传输,并且所需带宽大大减少.
分层确定性密钥生成
到目前为止,Bitcoin Core为每个新的Bitcoin地址生成了一个新的,完全随机的公钥和私钥对。尽管这出于安全性和隐私性原因很重要,但也可能给用户带来一些负担。为了保护所有私钥免于丢失,它们需要进行定期备份.
分层确定性(HD)密钥生成(BIP 32),这是比特币核心开发人员Gregory Maxwell和Dr. Pieter Wuille以及Armory开发人员Alan Reiner在2012年和2013年开发的一种加密技巧,解决了这个问题。通过HD密钥生成,Bitcoin Core为每个新地址创建一个全新的密钥对,但是所有这些密钥均来自一个12字的种子。只要用户记住这12个单词的种子,他们就可以重新生成所有私钥并访问其所有资金.
应当指出,HD密钥生成不是比特币世界中的新功能。许多钱包已经包含该选件已有好几年了。它只是在比特币的参考客户端中从未存在过-直到现在.
表现 & 安全
当然,Bitcoin Core 0.13.0引入了重要的性能和安全升级列表。这些改进的全部范围超出了本文的范围(请参阅Bitcoin Core 0.13.0的 发行说明 对于所有细节),但总之……
数据库高速缓存内存已增加,这使节点可以加快事务验证的速度,并提高速度。比特币命令行工具现在允许用户以交互方式键入密码短语和其他敏感信息,从而通过不以纯文本形式存储此信息来提高安全性。该软件已更新为使用C ++ 11和Python 3(编程语言的较新版本),从而具有更强大的功能。 Linux的ARM(特定的微处理器体系结构)二进制文件现已包含在该发行版中,因此用户不必自己编译。可以将有关内存池中哪些事务相互依赖(与CPFP一起使用)的数据传送到外部程序。网络上的节点可以请求仅接收满足一定费用阈值的交易,以防止DoS攻击。最后,对点,远程过程调用和消息传递系统(ZMQ)协议进行了许多低级改进.
感谢比特币核心首席维护者弗拉基米尔·范德兰(Wladimir van der Laan)和比特币核心开发人员以及 西弗雷克斯 首席执行官Eric Lombrozo提供信息和反馈.
注意:Bitcoin Core 0.13.0于8月23日正式发布。本文的原始标题(宣布于8月22日发布)是错误的。它已被标记为要发布,这通常意味着它将在几天之内发布。比特币核心0.13.0现在可以在以下位置下载 bitcoincore.org 和 bitcoin.org. (但在下载之前,请注意此 安全警告 在bitcoin.org上。)