中本聪推出的原始比特币软件客户端的新版本已于今天发布。
Bitcoin Core 23.0 由 132 位开发人员在大约 7 个月内完成,为 Bitcoin Core 的钱包、点对点通信和网络、费用估算等带来了切实的改进。
本文探讨了一些主要变化。
钱包更新
主根支持
Bitcoin Core 现在允许用户在创建新钱包时选择新的 Taproot 地址类型。 即使这不是默认设置,由于生态系统中的许多钱包还不能发送到 Taproot 地址,用户可以选择在新创建的钱包中创建 Taproot 接收地址。
通过添加对 Taproot 地址的本地支持,Bitcoin Core 朝着鼓励更广泛采用 Taproot 的方向迈出了一步。 随着越来越多的用户选择使用新升级的功能,它的好处能够最好地渗透到用户群中。
描述符钱包现在是默认的
比特币核心钱包现在默认使用 描述符 创建后,这是一项重大更改,承诺为比特币资金提供更好的备份和恢复过程。
自问世以来 分层确定性(HD)钱包,比特币钱包通常会使用恢复种子(通常为 12 或 24 个字)来生成主私钥。 然后钱包使用该主私钥生成主公钥,可以利用该主公钥通过派生路径生成几乎无限数量的接收地址,顾名思义,将钱包引导到它应该遵循的正确派生路径一个地址。
因此,在比特币钱包中收回资金通常取决于该派生路径,因为当今大多数应用程序都默认使用 HD 钱包。 (钱包使用不同的派生路径是经常看到用户试图在第二个钱包中找到余额为零的原因。)
但是,描述符钱包通过在描述符中明确说明派生路径,使用户更容易收回任何资金。 用户因此不必关心他们的钱包使用的派生路径——用户体验(UX)的巨大改进。
现在可以发现 Bech32 地址上的错别字
Bech32 地址,地址以“bc1”开头的格式,有一个有趣的属性,可以发现可能的错别字。 然而,直到比特币核心 23.0,用户才能从中受益。
比特币核心现在将提醒用户 Bech32 地址中最多两个错误。 该工具目前仅在命令行上可用,通过“validateaddress”RPC,尽管未来计划将其集成到图形用户界面 (GUI) 中。 如果用户在输入地址时犯了两个以上的错误,则拼写错误查找工具不能保证成功。
该工具承诺查找的错误限制很重要,因为尝试查找大量拼写错误可能会导致不良行为。 如果用户输入了一个包含多个错误字母的地址,即使该工具可以识别所有这些字母,它最终也可能会建议一个与用户最初打算发送到的地址完全不同的地址——这是一个更糟糕的结果。
冷冻硬币
比特币核心用户可以选择什么硬币,或者 未使用的交易输出(UTXO)在事务中使用 多年 现在。 但是这种硬币控制功能需要手动选择每次使用的 UTXO——这是一个非常容易出错的繁琐而累人的过程。
现在,Bitcoin Core 允许用户无限期地“冻结”一个 UTXO。 冻结过程仍然是手动过程,但用户只需执行一次,然后可以放心,在用户解冻该代币之前,Bitcoin Core 不会自动花费他们冻结的代币。
仔细选择用于为交易提供资金的 UTXO 对于防止不合需要地链接具有冲突目的的地址非常重要。 例如,用户可能不想使用非 KYC 代币加入他们通过了解你的客户 (KYC) 方法获得的 UTXO。 如果他们这样做了,区块链的任何观察者 将能够推断 由于提供的 KYC 信息,他们可以知道该用户也拥有非 KYC 地址及其硬币——这损害了用户隐私。
P2P 通信的变化
端口 8333 首选项已删除
从广义上讲,计算机需要两个重要信息才能在 Internet 上相互通信:IP 地址和端口号。 虽然 IP 地址用作网络中计算机的标识符,有助于确定其位置,但端口号有助于告知 Internet 上正在进行的通信类型,因为每种通信协议通常默认使用特定的端口号。 因此,端口使计算机能够同时运行多种类型的流量,同时轻松区分它们。 例如,Web 的 HTTP 协议默认使用端口 80,而其更安全的对应物 HTTPS 通常在端口 443 上运行,而电子邮件的 SMTP 协议利用端口 25。
使用比特币,它没有什么不同。 从历史上看,在启动 Bitcoin Core 时,计算机默认在端口 8333 上运行并寻找使用同一端口的对等点。
虽然端口促进了互联网上计算机之间的通信,但它也使互联网服务提供商 (ISP) 更容易监控流量,因为很容易假设正在进行哪种类型的通信。 在对抗性设置中,ISP 可以根据目标端口过滤和阻止某些流量。 尽管不是 ISP 可用的最有效的审查机制,但它是最简单的,并且受攻击的协议需要更改其默认通信端口以绕过审查或限制。
通过删除端口 8333 首选项,比特币核心现在减轻了 ISP 过滤或阻止比特币流量的最简单路径。 此外,由于网络不再优先考虑该端口,因此现在不在端口 8333 上运行的节点从其他节点获取入站连接的摩擦会更小。
支持 CJDNS 网络
Bitcoin Core 23.0 还通过添加对 CJDNS 的支持来保护用户免受敌对 ISP 的侵害,CJDNS 是标准互联网协议 (IP) 的安全增强替代方案。
CJDNS 利用公钥加密来实现 IPv6 的加密版本——最新版本的 IP。 通过本地提供端到端加密,CJDNS 改进了 IPv6 和 IPv4(仍然广泛使用的以前的 IP 版本),提高了安全性和隐私性,因为它保护使用它的节点免受流量分析和过滤。
该新增功能为有兴趣保护其流量免遭窥探或提高其比特币设置安全性的用户带来了新的选择。 虽然 Tor 和 I2P 作为 clearnet IP 的替代品存在, CJDNS 作为补充选项 这可以增强比特币网络及其节点的稳健性。
更好的费用估算
比特币核心的内置费用估算工具变得更加完整。
根据一个 博文 约翰·纽伯里 (John Newbery) 就该主题发表了关于比特币核心的费用估算“仅记录和报告有关过去事件的有意义的统计数据,并使用该数据为用户提供一个合理的估算,即他们需要附加多少费用才能将其交易包含在其中 ñ 块,“与 ñ 是用户愿意等待交易确认的块数。
计算此类估计的算法 用于考虑内存池上的所有交易,这是比特币的“等待区”,用于尚未包含在区块中的交易。 然而,由于引入了费用替代(RBF)交易,这使用户能够有效地提高他们的交易承诺给矿工的费用,以试图获得更快的确认,比特币核心没有考虑新的交易类型在估算费用时怀疑该功能是否会被用户和矿工广泛采用。
现在,在 Bitcoin Core 23.0 中,RBF 交易被考虑到 Bitcoin Core 的费用估算中,为利用该软件发送交易的用户提供更准确的估算。
支持跟踪点和用户空间,静态定义的跟踪
比特币核心现在在其针对 Linux 的发布二进制文件中包含实验性跟踪点,具有用户空间、静态定义跟踪 (USDT)。
USDT 允许用户从他们的节点获取详细信息,用于审查、调试和监控。 该功能可以跟踪自定义细粒度统计信息并监控隐藏的内部节点事件,而在未使用时几乎没有性能影响。
这很有用的一个例子是发现并可能阻止攻击。 安全研究人员可以设置多个节点并跟踪从对等方收到的消息,以提前识别攻击。
感谢 Aaron van Wirdum 提供的信息和反馈。
有关更多详细信息和其他更改,请参阅比特币核心 23.0 发行说明. 要下载比特币核心 23.0,请导航 这里. 有关 Bitcoin Core 23.0 的详细信息也在 比特币解释播客第 56 集.