4 月 22 日,比特币软件客户端(最早由中本聪于 2009 年推出)在GitHub 上发布了新版本,在隐私、安全和用户体验方面都带来了改进。
比特币核心客户端 23.0 版(Bitcoin Core 23.0)由 132 名开发者在大约 7 个月内完成,为比特币核心客户端的钱包、点对点通信和网络、费用估计等带来了切实的改进。
钱包方面的更新
支持软分叉升级 Taproot
比特币核心客户端现在允许用户在创建新钱包时选择新的 Taproot 地址类型。尽管这不是默认设置,但由于生态系统中的许多钱包还不能发送到 Taproot 地址,所以用户可以选择在新创建的钱包中创建 Taproot 接收地址。
由比特币核心客户端钱包创建的用于接收比特币的 Taproot 地址是一个简单的、单一签名的地址。因此,与常规的 Bech32 单签名地址相比,用户不会自动节省 BTC 的费用,因为将更复杂的支出条件和地址设置移植到 Taproot 方案中会节省更多费用。
通过增加对 Taproot 地址的本地支持,比特币核心客户端朝着鼓励广泛采用 Taproot 的方向迈出了一步。随着越来越多的用户选择新升级的功能,其优势能够最佳地渗透到用户基础中。
默认描述符钱包(descriptor wallets)
比特币核心钱包(Bitcoin Core wallets)现在在创建时默认使用描述符,这是一个重大变化,有望为比特币基金提供更好的备份和恢复过程。
由于分级确定钱包(HD wallets)钱包的出现,比特币钱包通常会使用恢复种子数据(通常 12 或 24 个单词)来生成主私钥。然后,钱包使用主私钥生成主公钥,该主公钥可用于通过衍生路径生成几乎无限个接收地址,顾名思义,该路径指导钱包遵循什么路径来正确衍生地址。
因此,在比特币钱包中回收资金通常取决于这个衍生路径,因为目前大多数应用程序默认使用分级确定钱包。(由于钱包使用了不同的衍生路径,所以经常会看到用户试图在第二个钱包中回收资金,结果发现余额为零。)
然而,描述符钱包通过在描述符中明确说明派生路径,让用户更容易收回任何资金。因此,用户不必再关心钱包使用的衍生路径,这是用户体验(UX)方面的一大改进。
BECH32 地址上的拼写错误能够自动识别
Bech32 地址(地址以 “bc1” 开头的格式)有一个有趣的属性,可以发现可能的拼写错误。然而,直到比特币核心 23.0 版本,用户才可以从中受益。
比特币核心客户端现在将在 Bech32 地址中提醒用户最多两个错误。该工具目前只能通过 “validateaddress”RPC 在命令行上使用,不过有计划在将来将其集成到图形用户界面(GUI)中。如果用户在输入地址时犯了两个以上的错误,那么拼写工具就不能保证成功。
由于该工具用于查找的错误的限制很关键,试图查找大量的输入错误可能会导致“物极必反”。如果用户输入的地址有几个错误的字母,即使该工具可以发现所有的字母,它也可能最终显示一个与用户最初想要发送的地址完全不同的地址,这是更糟糕的结果。
冻结代币更方便
多年来,比特币核心客户端用户可以选择在交易中使用什么代币或未使用的交易输出(UTXO)。但这种代币控制功能需要手动选择每次使用的 UTXO(未使用的交易输出),这是一个繁琐和累人的过程,很容易出错。
现在,比特币核心客户端允许用户无限期地“冻结” UTXO。冻结过程仍然是手动的,但用户只需要做一次,在用户解冻之前,他们冻结的代币不会被比特币核心客户端自动使用。
仔细选择用于资金交易的 UTXO,对于防止链接到容易起争论的地址非常重要。例如,用户可能不想使用非 KYC 代币加入他们通过了解客户(KYC)方法获得的 UTXO 。如果他们这样做了,任何仔细观察链上数据的人都可以推断地址属于谁。他们可以通过所提供的 KYC 信息,而知道该用户也拥有非 KYC 地址及其代币,这会损害用户隐私。
P2P 通信的变化
端口 8333 首选项已移除
一般来说,计算机在互联网上相互通信需要两个关键信息:IP 地址和端口号。IP地址作为网络中计算机的标识符,帮助确定其位置,而端口号则帮助告知互联网上正在进行的通信类型,因为每个通信协议通常默认使用特定的端口号。因此,端口使计算机能够同时运行多种类型的通信,同时很容易区分它们。例如,web 的 HTTP 协议默认端口 80,而更安全的 HTTPS 通常运行在端口 443,而电子邮件的 SMTP 协议利用端口 25。
比特币也不例外。从历史上看,在启动比特币核心客户端时,计算机默认在 8333 端口上运行,并寻找使用同一端口的对等体。
虽然端口促进了互联网上计算机之间的通信,但它也使互联网服务提供商(ISP)更容易监控通信,因为它很容易假设正在进行哪种类型的通信。在对抗性设置中,ISP 可以基于目的端口过滤和阻塞某些流量。尽管它不是 ISP 可用的最有效的审查机制,但它是最容易的,而且被攻击的协议需要改变其默认的通信端口来绕过审查或限制。
通过删除端口 8333 首选项,比特币核心客户端现在减轻了 ISP 过滤或阻塞比特币流量的最简单路径。此外,现在不在端口 8333 上运行的节点在从其它节点获取入站连接时的摩擦较小,因为网络不再优先考虑该端口。
支持 CJDNS 网络
比特币核心客户端 23.0 还通过增加对 CJDNS 的支持保护用户免受敌对 ISP 的攻击,CJDNS 是标准互联网协议(IP)的安全增强替代方案。
CJDNS 利用公钥加密技术实现了 IPv6 的加密版本——IP 的最新版本。通过提供点到点加密,CJDNS 改进了 IPv6 和 IPv4 (目前仍广泛使用的前 IP 版本),增强了安全性和隐私性,因为它保护使用它的节点免受流量分析和过滤。
对于想要保护他们的流量不被窥视或增加他们比特币设置的安全性的用户来说,这一添加为他们带来了新的选择。虽然 Tor 和 I2P 是clearnet IP 的替代品,但 CJDNS 是一个补充选项,可以增强比特币网络及其节点的健壮性。
费用估算更准
比特币核心客户端内置的费用估算工具变得更加完善。
一篇文章中指出,比特币核心客户端的费用估算“只是记录和报告有关过去事件的有意义的统计数据,并使用这些数据向用户提供合理的估计,即他们需要支付多少费用才能将交易包含在 N 个区块内”,N 是用户愿意等待其交易确认的区块数。
计算这种估值的算法通常会考虑内存池(mempool)上的所有交易,内存池是比特币的“等待区”,用于处理尚未被纳入区块的交易。然而,由于引入了按费用替代(RBF)交易,使用户能够有效地提高交易承诺给矿工的费用,以更快地获得确认,由于怀疑这项功能是否会被用户和矿工广泛采用,在估算费用时,比特币核心客户端没有考虑这种新的交易类型。
现在,随着比特币核心客户端 23.0 版本发布,费用替代交易被考虑到比特币核心客户端的费用估计,为使用该软件发送交易的用户提供了更准确的费用估算。
支持跟踪点和用户空间,静态定义跟踪
比特币核心客户端现在在其 Linux 版本二进制文件中包含了实验性跟踪点,包括用户空间、静态定义跟踪 USDT。
USDT 允许用户从他们的节点获取详细信息,这些信息可以用于检查、调试和监视。该特性可以跟踪定制的细粒度统计信息并监视隐藏的内部节点事件,而在不使用时几乎没有性能影响。
其中一个有用的例子是发现并可能防止攻击。安全研究人员可以设置多个节点,跟踪从对等节点接收到的消息,从而可能提前识别攻击。
本文来自 Bitcoin magazine,由 Odaily 星球日报译者 Katie 辜编译。