Bitcoin Core 0.21.0版本发布,将带来哪些新改变?
1月14日,Bitcoin Core 0.21.0正式发布,这是中本聪(Satoshi Nakamoto)在大约12年前推出的比特币原始软件客户端的第21个主要版本。
在Bitcoin Core首席维护者弗拉基米尔·范德兰(Wladimir van der Laan)的监督下,这一最新的主要发行版由100多位贡献者在大约六个月的时间内开发。Bitcoin Core 0.21.0是近年来最大的Bitcoin Core版本之一,是超过600个合并请求的结果,引入了各种新功能以及隐私和性能改进,同时朝着Schnorr / Taproot协议升级迈出了一大步。
以下是一些较明显的变化。
01
1、描述符钱包
当代币被发送到比特币地址时,实际上发生的情况是,它们被“锁定”在未花费的交易输出(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版本发行之前没有绝对的必要。)
02在点对点网络上提供压缩过滤器
“轻客户端”是不下载并验证整个比特币区块链,而仅下载和验证与它们特别相关的部分区块和交易的比特币钱包和应用程序。这不是最安全的方式,但是资源消耗少得多。
有一种流行的方法是使用Bloom Filters。简而言之,Bloom Filters是一种加密技巧,可以从网络上或多或少的随机对等节点请求相关数据。但是,很明显,近几年来Bloom Filters相当不注重隐私:它们实质上将用户的所有地址透露给(或多或少随机的)对等节点,而这一点当然也可以由侵犯隐私的人来操作。
Bloom Filters的一种更新且更具隐私保护性的替代方法称为“压缩客户端块过滤”(BIP 157/158)。压缩客户端块过滤从本质上改变了Bloom Filters的窍门。与原来轻钱包创建过滤器发送给全节点相反,全节点为每个区块创建过滤器,并根据请求将这些过滤器发送给轻客户端。然后,轻客户端使用这些过滤器来确定与它们相关的交易是否可能已包含在一个区块中。如果是这样,轻钱包将获取整个区块并从中提取任何相关交易数据。(注意:会有一些误报:即使过滤器提示有相关交易,但其中可能并没有相关交易数据的区块。)
现有的Bitcoin Core版本可能已经在本地创建了过滤器,并可以通过远程过程调用(RPC)将其用于运行在节点顶部的应用程序(例如钱包)。Bitcoin Core 0.21.0现在还包含一个选项,可以根据要求通过比特币的点对点网络提供这些过滤器。这使得现在独立轻客户端也可以操作使用Bloom Filters。
03重播次数更少
除了Bloom Filters之外,监听(snoops)还可以通过网络分析破坏比特币用户的隐私。如果他们能够确定特定交易是从哪个节点发起的,则可以将该节点的比特币地址绑定到其IP地址,该IP地址又可以与真实世界的身份相关联。
直到现在,当Bitcoin Core节点向比特币网络广播交易时,他们会尝试每十五分钟重新广播一次交易,直到将交易包含在一个区块中为止。这意味着,如果这些Bitcoin Core节点连接到监听对等方,那么对于监听者来说,很明显,这个每15分钟试图重新广播某个交易的Bitcoin Core节点也是该交易的发起节点。
Bitcoin Core 0.21.0则大大降低了它尝试重新广播交易的频率:每12到36小时仅一次。重新广播的频率降低了,那么这笔交易在第一次广播之后就被确认的可能性变得更大,因此该节点根本不需要重新广播。
在未来的Bitcoin Core版本中,这种隐私泄漏将被完全修复。然后,Bitcoin Core节点将仅根据其自身的内存池和费用计算来重新广播应已确认的交易。此外,它还将重新广播其他交易,而不仅仅是它自己的。
0增加隐私浏览器Tor V3地址格式支持
由于最近对隐私保护的Tor协议进行了升级,新的V3(版本3)Tor地址比之前的V2(版本2)地址长。目前, V2地址仍在使用中,但大约一年后会被废弃。
对于要在隐私网络上使用比特币的Bitcoin Core用户,V2地址的弃用可能会带来问题。Bitcoin Core的节点通过彼此共享已知使用Tor的比特币节点的Tor地址来找到对等节点。他们通过共享其他节点的常规IP地址所用的同一条消息来共享此信息。虽然Tor V2地址可能被“隐藏”在常规IP地址格式(IPV6)中,但Tor V3地址太长了;换句话说,当前消息太有限,无法与Tor升级兼容。
因此,Bitcoin Core 0.21.0引入了一种新格式,可与对等方共享IP / Tor地址。这些消息可能足够大,可以共享Tor V3地址。
05Schnorr / Taproot代码和Signet / Regtest部署
Schnorr / Taproot有望成为自2017年8月隔离见证(SegWit)以来比特币的首次协议升级。经过两年多的开发,Schnorr签名算法被认为是对比特币当前ECDSA签名算法的全面改进。与Taproot(一种在加密散列树中隐藏各种条件来花费交易的巧妙技巧)结合使用时,该升级有望以可扩展且保护隐私的方式提供更智能的合约灵活性。
Schnorr / Taproot代码现在植入在Bitcoin Core 0.21.0中。除非出现意料之外的发展,否则它不再有任何更改,这意味着应用程序开发人员可以开始围绕升级设计软件。此外,现在 Schnorr / Taproot已经可以在Signet(Signet 是一个更新的更可靠的测试网,供开发人员用来测试新的比特币软件)上使用,并且还可能在Regtests(另一个本地测试网的变体)。
但是,Schnorr / Taproot暂时不会在比特币的主网上提供。为此,升级首先需要被激活,而这就需要激活逻辑。目前Bitcoin Core版本中尚未包含该激活逻辑。预计激活逻辑将包含在下一次的Bitcoin Core版本中,可能在未来几个月内发布。
06其他改变
除上述变化外,Bitcoin Core 0.21.0还包括各种bug修复和性能改进,这些对于普通用户来说(感受)并不明显。例如,Bitcoin Cor钱包将从使用Berkeley DB切换到SQLite数据库,后者更适合作为应用程序数据文件,并在兼容性、支持和测试方面提供多种保证。
有趣的是,Bitcoin Core 0.21.0还包括一个事务请求的彻底检查:比特币节点用于了解新事务的新消息协议得到了更好的测试、更好的规定,并且更易于维护和审查。
有关更广泛的升级列表,请参阅Bitcoin Core 0.21.0发行说明,或参阅Bitcoin Core贡献者Andrew Chow的博客文章,以更广泛地解释描述符钱包(以及传统钱包)和SQLite(以及Berkeley DB)。 感谢约翰·纽伯里提供的信息和反馈。
微信扫描关注公众号,及时掌握新动向
2.本文版权归属原作所有,仅代表作者本人观点,不代表比特范的观点或立场
2.本文版权归属原作所有,仅代表作者本人观点,不代表比特范的观点或立场