自选
我的自选
查看全部
市值 价格 24h%
  • 全部
  • 产业
  • Web 3.0
  • DAO
  • DeFi
  • 符文
  • 空投再质押
  • 以太坊
  • Meme
  • 比特币L2
  • 以太坊L2
  • 研报
  • 头条
  • 投资

免责声明:内容不构成买卖依据,投资有风险,入市需谨慎!

Bitcoin Core 32 带来更快的验证和费用调整

2026-09-16 22:24:50
收藏

比特币核心 32.0 进入最终候选版本测试:费用估算与安全性更新

9月14日,开发者标记了 v32.0rc1,标志着 Bitcoin Core 32.0 正式进入最终候选版本的测试周期。此次更新将费用估算、区块验证性能提升以及安全修复措施推向了计划中的 10 月 10 日发布目标。

发布概览

Bitcoin Core 32.0 于 9 月 14 日进入候选版本测试阶段,最终标签定于 10 月 10 日。新版本引入了新的费用估算机制,结合区块历史与当前内存池(mempool)状况,可能推荐更低的交易手续费。在性能方面,区块验证默认通过八个工作线程预取之前的输出数据,从而减少磁盘等待时间。此外,项目还修复了一项可能导致已认证用户在非 Windows 节点系统上执行命令的钱包通知漏洞,并解决了十六个未认证 REST 连接可迅速导致内存使用量达到约 3 GB 的安全隐患。

详细技术解析

1. 版本状态与共识规则

根据 Bitcoin Core 官方 GitHub 发布的 v32.0rc1(提交哈希 d0231bb),该版本于 UTC 时间 9 月 14 日 12:58 由经过验证的维护者签名。尽管项目仍瞄准 10 月 10 日作为最终 v32.0 标签的发布日期,但具体日期仍需视测试结果和进一步修复情况而定。

版本 32 的重点在于节点软件行为、钱包界面、费用计算、网络及性能优化。草案发布说明中未列出对比特币共识规则的变更,这意味着此次更新不会重新定义网络视为有效的交易或区块标准。

2. 新的费用估算器:融合内存池与区块历史

v32 中最显著的用户端变化涉及 estimatesmartfee RPC,这是钱包和应用程序用于计算交易费用的接口。

  • 传统方法:主要依赖过去区块中包含的交易确认行为观察。
  • 新增方法:基于当前节点内存池中等待交易的独立估算器。

新的内存池估算器会根据当前的待处理交易状况生成“经济型”和“保守型”两种估算值。Bitcoin Core 会在使用前检查最近的区块活动,并在内存池显得过于稀疏或不健康时拒绝该估算。当两种系统均产生有效结果时,estimatesmartfee 将返回较低的费用估算。这种设计旨在降低现有区块政策推荐的费用,而非提高它,从而在昂贵区块空间时期结束后能更快地做出反应。

为保持兼容性,应用程序仍可通过新增的 fee_rate_estimator 选项选择使用旧方法(block_policy)、新内存池方法(mempool_policy)或默认的合并模式。新的内存池估算器统计数据存储在单独的数据文件中,以便重启后重新加载。

3. 区块验证性能提升:并行磁盘预取

Bitcoin Core 32 改变了节点在连接区块时检索交易数据的方式,特别是在需要从存储设备读取信息的情况下。

  • 功能描述:软件现在可以在区块验证继续的同时,跨多个工作线程从链状态数据库预取先前的交易输出(prevouts)。
  • 配置参数:默认启用 8 个预取线程,操作员可将其提升至 16 个,或通过设置为 0 来禁用并行预取。
  • 技术原理:Prevouts 标识交易输入正在花费的资金。节点需要这些信息来检查输入是否存在、是否已被花费以及是否符合验证规则。

这一改进旨在减少节点在处理包含尚未在高速内存缓存中的输入的区块时,因等待磁盘读取而消耗的时间。效果因存储硬件、缓存行为和节点配置而异。该功能通过 -prevoutfetchthreads= 参数暴露给操作员。

4. 安全修复:钱包与 HTTP 内存漏洞

钱包通知漏洞修复: 在非 Windows 系统下,若节点配置了 -walletnotify,已认证的 RPC 用户曾可能通过包含特殊替换字符的钱包名称构造任意命令执行漏洞。v32 通过将钱包名称视为纯文本来修复此问题,并拒绝了包含 ... 路径元素的相对路径命名,收紧了钱包命名规则。

HTTP 服务器内存耗尽漏洞修复: 随着 v32 用重写后的 HTTP 服务器取代 libevent,开发人员 Matthew Zipkin 提交了 PR #36123。此前,审计工具 Moonshot AI 的 Kimi K3 模型发现了一个内存耗尽路径:在处理单个请求时,服务器可能会无限制地继续读取和排队同一连接发送的数据。

  • 影响范围:初步分析认为这需要认证客户端,但进一步测试发现,REST 流量在未认证情况下也能引发类似问题。
  • 修复效果:一名审查员报告称,16 个未认证的 REST 连接可在约一分钟内将测试进程的内存使用量从 46 MB 推高至约 3 GB。补丁合并后,相同测试在 90 秒内仅增加约 3 MB 内存使用量,远低于修补前的 3.2 GB。

由于重写后的 HTTP 服务器是 v32 的新特性,该特定漏洞在稳定版发布前已被捕获。这也体现了 AI 辅助安全审查在比特币软件中的应用趋势。

5. PSBT 版本 2 成为默认格式

Bitcoin Core 32 将四个 Partially Signed Bitcoin Transactions (PSBT) 相关命令的默认格式更改为 PSBT 版本 2:

  • createpsbt
  • walletcreatepsbt
  • converttopsbt
  • psbtbumpfee

开发者添加了可选的 psbt_version 参数,以便在必要时应用程序可以显式请求其他支持的版本。PSBT 允许多个钱包、应用程序或硬件签名设备在广播完成的比特币交易之前交换交易信息。虽然默认值更改可能需要假设使用旧格式的软件测试,但并未移除请求旧版本的能力。

6. 其他钱包工具与维护更新
  • 导出只读钱包:新增 exportwatchonlywallet RPC,可创建包含公共描述符、交易历史和地址簿数据的描述符钱包文件,且不包含私钥。离线签名教程现使用该命令创建在线只读钱包。
  • HDA 密钥管理:新增 derivehdkey 命令,允许通过至少包含一个硬化步骤的路径派生扩展公钥或私钥;addhdkey 命令允许添加 BIP32 扩展密钥而不立即用于生成输出脚本。
  • PrivateBroadcast 维护:继 v31.1rc1 修复可能暴露源 IP 的网络条件后,v32 包含进一步的 PrivateBroadcast RPC 和交易中继更改。

后续步骤

目前 Bitcoin Core 的日程安排仍将 10 月 10 日列为标记 v32.0 的目标日期。自 9 月 15 日开放的 RC 测试反馈线程仍处于活跃状态,开发者建议测试人员在最终发布前,针对发现的实际缺陷提交单独的问题报告。由于 Bitcoin Core 不自动更新,操作员可选择何时安装新版本,这意味着在新软件可用后,旧版本仍可继续运行。

展开阅读全文
更多新闻