今天标志着的正式发布 比特币核心 0.12.0,是七年前中本聪首次发布的第十二代比特币参考客户端。最新版本的比特币核心(Bitcoin Core)在七个月内由近100位贡献者开发,包括20多项改进,特别是在性能,安全性和可用性方面.

这些是第六个最显着的变化.

内存池限制

内存池是由所有完整节点分别存储的未确认事务的集合。当新交易通过比特币网络传输时,内存池在区块之间填满,而当这些交易包含在区块中时,内存池将耗尽。但是,如果由于合法交易或垃圾邮件攻击而导致一系列后续块在很长一段时间内保持满状态,则内存池可能不会完全耗尽,积压的积压可能会增加。没有最大限制,积压甚至可能增长到节点内存不足并崩溃的地步。 (这是“坠毁着陆”前比特币XT首席开发人员Mike Hearn担心的情况。)

顾名思义,内存池限制对内存池的最大大小施加了硬性限制,以防止出现这种情况。如果达到最大值,则节点拒绝或清除其内存存储池,该存储池每字节收费最低.

全节点运营商可以配置其限制,但是Bitcoin Core 0.12.0中的默认最大大小设置为300 MB.

钱包用户的区块链修剪

运行完整节点的负担之一是需要存储完整的区块链。这加起来 55 GB 在撰写本文时,在当前1 MB的块大小限制下,每年还可以增长50 GB.

为了降低此要求,Bitcoin Core 0.12.0允许用户修剪区块链,这意味着一旦节点验证,他们就可以摆脱较旧的数据。保留的数据量是可配置的,尽管Bitcoin Core 0.12.0仍将需要至少2 GB的磁盘空间.

修剪区块链确实意味着这些节点将不再能够与对等节点共享所有区块链数据,例如第一次与网络同步的完整节点.

(应该注意的是,修剪区块链最初是在Bitcoin Core 0.11.0中引入的,但尚不适用于将Bitcoin Core作为钱包运行的用户。)

上传流量限制

完整的节点通过比特币的对等网络不断地传输和中继交易,并互相阻止。这通常需要下载适量的数据,但是同时与多个对等方共享同一数据可能会增加可观的上载成本.

比特币核心0.12.0引入了可配置的数据上限,用于上传流量。如果达到此上限,节点将抢占一个星期以上的上传块,这通常是由首先与网络同步的节点请求的。此外,所有轻客户端将断开连接,不再再提供任何块数据.

选择加入费用代替

随着比特币网络上交易数量的增加,并非所有交易都可能陷入困境。因此,矿工可能会选择由用户支付的费用最高的交易。这意味着某些交易-来自支付过低费用的用户-根本无法确认。而且,由于许多完整的节点和矿工当前拒绝发生冲突的交易(与早期交易使用相同的输入发送),因此低价交易可能会“卡在”网络上.

为了解决这个问题,Bitcoin Core 0.12.0引入了按费用选择加入。如果使用收取费用的选择加入发送交易,则用户可以通过收取更高的费用将自己的交易替换为更新的交易。 (这也意味着,矿工可以选择收入更高的交易来增加收入。)

选择加入费用替代的“选择加入”部分意味着这些类型的交易将不是默认交易,并且将在比特币网络上标记为“替代费用交易”。依赖零确认交易的任何人都应该监视这些以费用代替的交易,因为在确认之前很容易将它们还原。 (当然,零确认交易是 永远不安全.)

选择收费替代收费实际上是否有用取决于比特币矿工;他们最终决定将哪些交易包括在区块中,以及根据什么政策.

默认情况下Tor

虽然通常声称比特币向用户提供匿名性,但事实并非完全如此。例如,可以通过对等网络将比特币用户取消匿名。如果确定交易源自哪个IP地址,则此信息可用于识别比特币用户.

为了保护用户的隐私,Bitcoin Core 0.12.0通过匿名工具Tor(洋葱路由器)自动连接到比特币网络(如果Tor安装在同一台计算机上)。 Tor会在广播数据之前对数据进行加密并将其路由到世界各地的多个节点。这使得很难(也许不可能)追踪比特币交易的起源.

(应注意,仅使用Tor可能不足以保护比特币用户的身份。有关更多信息,请参阅《比特币杂志》的《比特币隐私入门指南》。)

更快的签名验证

签名是一种加密技巧,其中私钥与任何其他数据“组合”以计算唯一的数字字符串。可以使用相应的公用密钥来验证签名是使用私钥创建的。以比特币为例,签名被有效地用来证明比特币的所有权,并以此来验证交易.

但是,有几种方法可以进行这种加密技巧,从而可能导致不同的签名-均以自己的方式有效。而且,如果不同的比特币节点采用不同的验证方法,则某些节点可能认为某些交易有效,而其他节点则认为无效,这可能会使比特币网络分裂.

跟进 软叉 为了解决这个问题,去年,Bitcoin Core 0.12.0现在将所有验证从“ OpenSSL”密码库切换到由Pieter Wuille博士,Gregory Maxwell和其他Bitcoin Core开发人员开发的“ libsecp256k1”.

另外一个好处是,这种新的签名验证方案需要较少的CPU能力,从而降低了运行完整节点的成本,并显着减少了块验证时间。.

有关改进的完整列表,请参阅关于以下内容的Bitcoin Core 0.12.0发行说明: 的GitHub.

感谢Bitcoin Core首席开发人员Wladimir van der Laan,以及 西弗雷克斯 首席执行官兼比特币核心开发人员Eric Lombrozo进行校对并添加了反馈.