主页 > imtoken冷钱包官方 > 比特币最新客户端0.19.0即将发布!以下是本次更新的重大变化

比特币最新客户端0.19.0即将发布!以下是本次更新的重大变化

imtoken冷钱包官方 2023-04-13 06:27:14

巴比特资讯独家文章,未经许可,严禁转载。

11月24日,Bitcoin Core 0.19.0即将发布,这是中本聪近11年前发布的第19版比特币软件客户端,至今仍在比特币网络上. 主流应用。在 Bitcoin Core 首席维护者 Wladimir van der Laan 的监督下,这个最新的主要版本是由一百多名贡献者在大约六个月的时间内开发的。

(Bitcoin Core发布过程后期出现问题0.19.0,严格来说是0.19.0.1。)

整合 550 个拉取请求的结果,Bitcoin Core 0.19.0 包括许多性能改进和错误修复以及其他更改。

以下是其中一些更改的概述。

GUI 默认 Bech32 地址

“bech32”地址格式(BIP 173) 已在 2018 年初发布的 Bitcoin Core 0.16.0 中引入,但现在首次设置为 Bitcoin Core 钱包GUI(用户界面))默认选项。

Bech32 地址是以“bc1”开头的地址(不是以 1 或 3 开头的地址)。这种类型的地址更长,但使用的字符比当前地址格式少,因为不再区分小写字母和大写字母。(这减少了人为错误的可能性,例如比特币钱包更新磁盘满了,在读出地址时。)Bech32 地址可用于减少由输入错误引起的问题。

此外,bech32 的应用在 SegWit(隔离见证)的背景下提供了优势。到目前为止,一些提供 SegWit 功能的钱包(包括默认的比特币核心钱包)是通过将其“包装”为 P2SH 输出(地址以 3 开头)来实现的。要从这样的地址花费比特币,用户必须在“赎回脚本”中发布一段代码,以表明比特币确实被锁定在 SegWit 输出中。使用新的 bech32 地址,可以跳过此步骤,这意味着 SegWit 的输出将需要更少的数据通过比特币网络并包含在区块链中。这使得 bech32 导出的交易比 P2SH 导出的 SegWit 交易更实惠。

并非所有比特币钱包都支持发送到 bech32 地址,因此,Bitcoin Core 0.19.0 用户仍然可以选择生成 PS2H 接收地址并在 GUI 中进行切换。

降低带宽需求并防止分区电源攻击

比特币节点相互连接,共同生成一个点对点网络。在这个网络上比特币钱包更新磁盘满了,节点共享区块、交易和一些额外的交易数据。

但是这些点对点网络可能会受到攻击,例如分区攻击。如果攻击者控制了足够多的比特币节点,它可能会通过拦截流量来关闭比特币网络的各个部分(甚至特定节点)。网络的分段部分可能会被误导,接受最少的链而不是最长的链,这反过来又可以打开双花的大门。

如果网络分区部分的节点与主网上的城市节点只有一个连接,则有可能反击分区权力。然后它将接收并转发所有交易和区块,拒绝少数链而支持多数链。

实现此目的的一种方法是在节点之间建立更多连接,从而使分区更难以实现。但是,更多的连接需要更多的内存和带宽;这是一个权衡。

Bitcoin Core 0.19.0 默认情况下会降低两个传出连接,但聪明之处在于这两个额外连接仅用于传递块,它们不传递交易或额外交易数据。这将增加额外的带宽要求,同时仍然允许分区电源攻击无法成功完成。

弃用布隆过滤器

比特币核心是全节点软件,这意味着所有比特币块都被下载和验证。虽然这是最安全的,但它不太适合手机等低资源估计设备。出于这个原因,移动钱包(和一些桌面钱包)经常使用“轻客户端”:只下载与它们相关的交易和(部分)区块。

一种方法是使用布隆过滤器,现在一些钱包正在使用布隆过滤器。简单地说,布隆过滤器是轻客户端用来从网络上的随机完整节点请求相关数据的加密技术。然而不幸的是,随着时间的推移,布隆过滤器似乎对隐私特别不友好:它们实际上将所有地址暴露给完整节点。最重要的是,支持Bloom Filters请求的代价是占用全节点的CPU和c盘空间,对全节点本身没有直接的使用。

尤其是后一个原因,Bitcoin Core 0.19.0 默认不再支持 Bloom Filter 请求。如果用户愿意,他们仍然可以选择支持Bloom Filter。

还值得注意的是,比特币网络肯定会在未来几年继续支持布隆过滤器,因为旧的比特币核心节点可能在新版本发布多年后仍在使用。

支持新过滤器

布隆过滤器的替代品是一种称为“紧凑客户端块过滤”(BIP 158:紧凑客户端块过滤)的新解决方案。它彻底颠覆了布隆过滤器模型。它不是由轻钱包创建并发送到全节点,而是由全节点为每个块创建一个过滤器。然后,轻客户端可以使用此过滤器来确定与它们相关的交易是否发生在一个块内。如果是这样,轻钱包将获取整个区块并从中挑选出任何相关的交易数据。

比特币核心节点长期以来一直能够在本地创建过滤器。Bitcoin Core 0.19.0 用户还可以通过远程过程调用(RPC)访问在该节点上运行的应用程序(例如钱包)。

但是,这些过滤器在对等网络上尚不可用。这意味着比特币核心 0.19.0 节点不会手动将过滤器发送到其他比特币用户的钱包。此功能可能会添加到未来的比特币核心版本中 - 或者,用户可以选择通过在其比特币核心节点上运行的自定义应用程序来提供此功能。

GUI 禁用支付合同(BIP 70) 支持

支付合约(BIP 70) 是几年前设计的,旨在改善比特币的支付体验。除了定期向比特币网络广播支付外,用户和商家都可以就支付的其他细节进行沟通,例如作为可读的目的地地址(商家名称)和退款地址,以防在订购过程中出现问题。

虽然比特币核心在其 GUI 中集成了支付合约,但该标准并未被广泛采用。相反,大多数钱包一直在使用更基本的 URI 模式(BIP 21))来接收付款:例如,可点击的链接或可扫描的二维码格式来传递付款地址和金额。(目前唯一值得注意的例外是支付处理器 BitPay,它不支持 URI 模式,但使用了 BIP 70 的改进版本。)

或许比低使用率更重要的是,BIP 70 支付合约多年来仍然受到许多安全和隐私漏洞的影响。因此,一些钱包已经自愿拒绝执行合约。Bitcoin Core 也曾计划不支持 BIP 70,因为人们认为它不值得维护,但 BitPay 采用它使进程停滞不前。

在 Bitcoin Core 0.19.0 中,BIP 70 早已默认从 GUI 中移除。Bitcoin Core 0.19.0 的用户必须使用特殊配置编译他们的节点,以确保该功能始终可用。

其他……

除了以上的变化,Bitcoin Core 0.19.0 也带来了一些小的改进和变化。

例如,现在可以从设置过程中直接启动“修剪”节点,使 C 盘空间有限的用户可以轻松启动新的比特币节点。Bitcoin Core 0.19.0 还包括部分签名比特币交易 (PSBT) 协议的新功能,这对于多重签名和 CoinJoin 交易特别有用。此外,钱包描述符方面也有一些改进,这对于处理比特币应用程序的程序员非常有用。Bitcoin Core 0.19.0 节点也将接受和中继交易,使用未来的 SegWit 版本,以确保正式到来的升级顺利进行。

编译:温蒂