414 / 736GLOZOW

Gloria Zhao

mempool、交易转发与代码审查开发者

Gloria Zhao 研究比特币交易如何在网络中传播、等待确认。她在 mempool、Package Relay 和提高手续费方面的工作,回应了一个实际问题:当原来的手续费已经不够时,怎样让需要支付的交易抵达矿工手中?

Gloria Zhao 是 Bitcoin Core 开发者,也是 BIP 331 和 BIP 431 的作者。她关注 mempool——每个节点在本地保存的未确认交易集合,以及接收、转发这些交易的规则。这些不太显眼的软件部分,决定节点能获知和传播哪些支付。改进它们既需要编写代码,也需要仔细审查并防范滥用。

Gloria Zhao 于 2021 年 1 月 4 日加入 Brink,成为该机构首位获得研究资助的开发者。2022 年,她成为 Bitcoin Core 维护者之一,负责源代码和开发流程。这是在维护一款具体的软件,并不意味着成为比特币的领导者。本次修订查阅的 Brink 往届成员介绍将她列为前维护者。因此,阅读人物经历时要留意日期:过去的任命报道,不能证明一个人如今仍担任同一职务。 [1] [2]

好的代码也需要其他人检查。Zhao 曾参与 Bitcoin Core PR Review Club,新贡献者在那里学习阅读拟议的代码改动,并考虑可能带来的影响。PR,即 pull request,是请求将改动纳入项目。俱乐部帮助参与者理解改动要解决什么问题、应如何审查;主要目的并不是推动某个 PR 合并。讨论服务于学习和准备,不会自动批准代码或整个版本发布。 [2] [3]

Mempool 不是全网共用的一条队列。每个节点自行决定接收、转发哪些未确认交易,例如考虑手续费和防止资源耗尽。这属于本地策略,与检验区块有效性的共识规则不同。Zhao 签署了 2025 年 6 月 6 日的开发者声明,强调用户选择软件的权利。开发者可以提出不同策略,但签名或代码仓库维护权限,都不会替所有其他节点改写软件。 [4]

一笔交易可以花费另一笔尚未确认交易中的资金。前一笔称为父交易,依赖它的后一笔称为子交易。Zhao 的 BIP 331 提出 Package Relay,即将相关交易作为一个包传送。节点将通过 sendpackages 协商支持情况,先获取所需祖先交易的信息,再取得交易数据,避免逐一寻找缺失的环节。该文档状态为 Draft,也就是草案;文档存在不等于协议已经在全网完整部署。 [5]

假设你收到一笔尚未确认、手续费偏低的支付。如果能够花费它的输出,就可以创建手续费更高的后续交易。这就是 CPFP,Child Pays for Parent:矿工要获得子交易的手续费,也必须包含父交易,因此可以将两者一并评估。但缺少父交易的节点通常不能单独接收子交易。BIP 331 针对的正是这类传播障碍。更高的手续费仍不能代替有效的签名和输入,也不保证在某个期限前确认。 [5]

Bitcoin Core 28.0 引入了有限的 1P1C 流程,即一个父交易加一个子交易。它利用已有的 P2P 通信,也就是节点间的直接交换,将合适的交易配对并一起评估。这是具体改进,却不是 BIP 331 的完整部署。发行说明明确指出,这个网络流程不支持拥有多个未确认父交易的子交易,受到攻击时也还不可靠。对于依赖交易传播的钱包,必须区分某个版本的有限功能与更全面的提案。 [5] [6]

攻击者可能利用 mempool 的限制,妨碍替换交易或提高其手续费。这称为 pinning。TRUC 策略限制交易在确认前的依赖关系,使接收和替换更容易判断。Bitcoin Core 28.0 为 nVersion=3 的交易引入了该策略。Zhao 的 BIP 431 以状态为 Draft 的信息类文档描述了这一方法。限制未确认的祖先和后代交易有所帮助,但保护效果也取决于其他节点是否采用该策略。它不能保证防住所有 pinning,也不承诺及时入块。 [6] [7]

应用可以通过 submitpackage 向自己的节点提交交易包。Bitcoin Core 28.0 文档说明,这个通过 RPC 接口与节点通信的命令,会检查共识规则和 mempool 策略。即使交易包的其他部分失败,通过检查的交易也可能被接收。因此,出错不一定会撤销整个处理结果。应同时查看总体消息 package_msg 和每笔交易的 tx-results。即使本地处理成功,也不能证明交易包已传遍网络,或其中的交易已经入块。 [8]

要获得更完整的理解,请将本词条与以下词条结合阅读: Mike Hearn, Mempool, Package Relay. 反向关联还来自: Package Relay, Mike Hearn, Sergio Demian Lerner.

DOC · 001Brink — Gloria Zhao dated contribution history文档 DOC · 002Brink — program alumni文档 DOC · 003Bitcoin Core PR Review Club — purpose文档 DOC · 004Bitcoin Core — relay policy statement文档 DOC · 005BIP 331 — Ancestor Package Relay文档 DOC · 006Bitcoin Core 28.0 — release notes文档 DOC · 007BIP 431 — Topology Restrictions for Pinning文档 DOC · 008Bitcoin Core 28.0 — submitpackage文档
修订日期: 来源优先 · 非投资建议