今天标志着的正式发布 比特币核心0.21.0, 中本聪(Satoshi Nakamoto)于大约12年前推出的第21个主要版本的比特币原始软件客户端. 

监督者 比特币核心 首席维护者Wladimir van der Laan,这个最新的主要版本是由一百多个贡献者在大约六个月的时间内开发的。超过600个合并的请求请求的结果,Bitcoin Core 0.21.0是近年来最大的Bitcoin Core版本之一,引入了各种新功能以及隐私和性能改进,同时朝着Schnorr / Taproot协议升级迈出了一大步.

以下是一些较明显的更改.

描述符钱包

当硬币被发送到比特币地址时,实际发生的情况是,它们被“锁定”在未花费的交易输出(UTXO)中,如果条件隐藏在后面的交易中,则仅在随后的交易中被“解锁”(花费)。满足了UTXO的要求。典型的条件是包含与特定公共密钥相对应的有效签名。但是条件还可以例如包括密码,时间锁的失效或签名的组合(multisig)。.

直到现在,Bitcoin Core仍被设计为围绕着其对应的私钥管理其钱包中的UTXO,即使私钥只是花费硬币的几种潜在条件之一。相反,Bitcoin Core 0.21.0引入了“描述符钱包”。描述符钱包使用户可以根据使用它们的条件类型对他们的UTXO进行分类。 (例如:一个仅需要有效签名的用于UTXO的钱包,以及一个用于多签名UTXO的钱包。)

描述符钱包对于在Bitcoin Core之上设计软件的应用程序开发人员特别有用。现在可以轻松地将特定的应用程序设计为仅使用特定类型的UTXO,例如multisig UTXO,而忽略任何非multisig UTXO。.

常规用户现在也可能注意到差异,因为实现了描述符钱包。也许最值得注意的是,当启动新的Bitcoin Core节点时,不会创建任何默认钱包。取而代之的是,仅当用户明确选择这样做时才创建新钱包,从而允许他们仅创建特定所需类型的钱包。描述符钱包还更好地支持“仅观看”钱包:即使节点没有使用它们所需的私钥,也可以跟踪某些UTXO的钱包.

升级到Bitcoin Core 0.21.0的Bitcoin Core用户现在仍然可以使用其旧版钱包。 (旧版钱包最终将被弃用,这意味着用户将需要将其旧版钱包迁移到描述符钱包,但这在以后的Bitcoin Core发行版之前绝对没有必要。)

通过对等网络服务紧凑型块过滤器

“轻量级客户”是比特币钱包和应用程序,它们不下载并验证整个比特币区块链,而是仅下载并验证与它们特别相关的部分区块和交易。这不是最佳的安全性,但是资源消耗少得多.

一种流行的方法是使用布隆过滤器。简而言之,布隆过滤器是一种加密技巧,可以从网络上或多或少的随机对等节点中请求相关数据。但是不幸的是,多年来,很明显,布隆过滤器相当不注重隐私:它们实质上将用户的所有地址透露给(或多或少随机的)对等节点,这当然可以由侵犯隐私的人来操作。窥探.

布隆过滤器解决方案的一种更新且保留更多隐私的替代方法称为“紧凑客户端块过滤”(BIP) 157/158)。紧凑的客户端块过滤从本质上改变了Bloom Filter的窍门。完整的节点不是为轻钱包创建发送给完整节点的过滤器,而是为每个块创建过滤器,并根据请求将其发送给轻客户端。然后,轻量客户端使用这些过滤器来确定与它们相关的交易是否可能已包含在一个区块中。如果是这样,轻型钱包将获取整个区块并从中提取任何相关的交易数据。 (会有一些误报;即使过滤器建议可能,这些区块中也没有相关的交易数据。)

现有的Bitcoin Core版本可能已经在本地创建了筛选器,并可以通过远程过程调用(RPC)将其用于运行在节点顶部的应用程序(例如钱包)。比特币核心0.21.0现在还包含一个选项,可以根据要求通过比特币的对等网络使这些过滤器可用。这使得现在可以操作使用布隆过滤器的独立照明客户端.

重播次数更少

除了布隆过滤器,侦听器还可以通过网络分析破坏比特币用户的隐私。如果他们能够确定特定交易源自哪个节点,则可以将该节点的比特币地址绑定到其IP地址,该IP地址又可以与真实世界的身份相关联.

到目前为止,当比特币核心节点向比特币网络广播交易时,他们将尝试每十五分钟重新广播一次交易,直到将交易包含在一个区块中为止。这意味着,如果这些Bitcoin Core节点连接到侦听对等方,则对于侦听将很明显,尝试每15分钟重新广播某个交易的Bitcoin Core节点也是该交易发起的节点.

比特币核心0.21.0大大降低了它尝试重新广播交易的频率:每12到36小时仅一次。自从首次广播以来,不必频繁地重新广播就可以更早地确认交易,因此该节点根本不需要重新广播的可能性.

在未来的Bitcoin Core版本中,此隐私泄漏将被完全修复。然后,比特币核心节点将仅根据其自身的内存池和费用计算来重新广播应已确认的交易。此外,它还将重新广播其他交易,而不仅仅是自己的交易.

Tor V3支持

由于最近对保留隐私的Tor协议进行了升级,新的V3(版本3)Tor地址比之前的V2(版本2)地址长。 V2地址仍在使用中,但大约从现在起将不推荐使用.

对于要在隐私网络上使用比特币的比特币核心用户而言,V2地址的弃用可能会带来问题。比特币核心节点通过彼此共享已知使用Tor的比特币节点的Tor地址来找到对等节点。他们通过共享其他节点的常规IP地址所用的同一条消息来共享此信息。虽然Tor V2地址可能以常规IP地址格式(IPV6)被“隐藏”,但Tor V3地址太长了,无法隐藏。换句话说,当前消息太有限,无法与Tor升级兼容.

因此,Bitcoin Core 0.21.0引入了一种新格式,可与对等方共享IP / Tor地址。这些消息可能足够大以共享Tor V3地址.

Schnorr / Taproot代码和Signet / Regtest部署

自从2017年8月隔离见证(SegWit)以来,Schnorr / Taproot有望成为比特币的第一个协议升级。经过两年多的开发,Schnorr签名算法被认为是对比特币当前ECDSA签名算法的全面改进。与Taproot结合使用-一种巧妙的技巧,可以隐藏各种条件以在加密哈希树中花费硬币-升级有望以可扩展且保护隐私的方式提供更智能的合同灵活性.

Schnorr / Taproot代码现在包含在Bitcoin Core 0.21.0中。除非出现意外的发展,否则这意味着它不会再有任何变化,例如,这意味着应用程序开发人员可以开始围绕升级设计软件。此外,Schnorr / Taproot现在可在Signet(测试网的更新和更可靠的变体,供开发人员用来测试新的比特币软件)上使用,还可以在Regtests(其他本地测试网变体)上使用。.

但是,Schnorr / Taproot暂时还不能在比特币的主网上使用。为此,首先需要激活升级,这需要该比特币核心版本中尚未包含的激活逻辑。预计激活逻辑将包含在次要的比特币核心版本中,可能在未来几个月内发布.

其他…

除了上述更改外,Bitcoin Core 0.21.0还包括各种错误修复和性能改进,对于普通用户而言并不明显。例如,Bitcoin Core钱包将从使用Berkeley DB切换到SQLite数据库,该数据库更适合作为应用程序数据文件,并在兼容性,支持和测试方面提供了一些保证。有趣的是,Bitcoin Core 0.21.0包括交易请求检修:比特币节点用来了解新交易的新消息协议经过了更好的测试,更明确的规定并且更易于维护和审查.

有关升级的更详细列表,另请参阅 Bitcoin Core 0.21.0发行说明, 或看 此博客文章 由比特币核心贡献者安德鲁·周(Andrew Chow)提供了关于描述符钱包(以及旧版钱包)和SQLite(以及Berkeley DB)的更广泛解释。.

感谢John Newbery的信息和反馈.