协议演进 / BIP/比特币改进提案 / BIP-451

BIP-451 粉尘 UTXO 处置协议

规定钱包如何把粉尘攻击送来的小额 UTXO 安全烧掉:整笔打进 OP_RETURN、金额全作手续费,按地址分开处理且不伤隐私。本 BIP 目前处于草案状态。

一、档案卡

档案卡
编号BIP-451
标题Dust UTXO Disposal Protocol
作者bubb1es <[email protected]>, haris <[email protected]>
指定日期2026-04-28
讨论日期2026-01-25
层级Applications(应用)
类型Specification(规范类)
状态Draft(草案)
阅读版https://bips.dev/451
官方原文https://github.com/bitcoin/bips/blob/master/bip-0451.md

二、放在哪一族

钱包隐私防护与 UTXO 管理族,处理的是“收到不想要的小钱之后怎么办”。

它与 BIP-125(Opt-in RBF,手续费替换)关系最紧:原文的第三方批量合并机制正是靠 RBF 把内存池里多笔未确认的处置交易替换成一笔来完成的。除此之外,它依赖的都是既有机制——OP_RETURN 输出的中继策略、ALL|ANYONECANPAY 签名哈希类型——不引入任何新规则。原文的相关工作还提到 dust-b-gone、dusts 两个既有工具,本提案是把这类实践标准化的一次尝试。

标准化的目的,原文列了四条:统一格式使处置交易无法被用来指纹识别用户用的是哪款钱包;统一签名约定使互不相干的人的处置可以合并成一笔,省区块空间;把隐私最佳实践写成规范,避免各家实现各犯各的错;统一标记也便于链上分析工具识别处置交易、反过来追溯粉尘攻击的来源。

三、它要解决什么

粉尘攻击(又称强制地址复用攻击)是成熟的隐私威胁:攻击者向大量地址各打一笔极小金额。当钱包日后把这些粉尘 UTXO 与正常 UTXO 合并花费时,攻击者用“共同输入所有权启发式”——同一笔交易的全部输入推定为同一人所有——就能把原本互不关联的地址串到一起,并关联到后续花费,削弱用户隐私。

业界通行对策是把粉尘 UTXO“锁定”、永不花费。原文指出锁定本身带来四个问题:

改走 OP_RETURN 销毁则有几重好处:OP_RETURN 输出可证明不可花费、不进 UTXO 集合;没有找零输出,就没有新地址可被关联;粉尘被永久移出钱包;处置费率虽高但金额全来自粉尘本身,受害者不用另掏钱;矿工得到补偿。

四、规则本身

4.1 交易格式(硬性要求)

一笔合规的粉尘处置交易必须同时满足:

整体

输出:恰好一个,且必须是 OP_RETURN

输入

4.2 选哪些粉尘、按什么边界处置

这组“按地址隔离”的规则是全篇的隐私核心:跨地址合并恰好就是粉尘攻击想诱导出的关联,处置不能亲手完成它。

4.3 第三方批量合并(batching)

互不相干的人的处置可以合并,但只能经由公共内存池、绝不能私下直接向其他用户收集输入,以防身份元数据泄露。流程是:先在节点内存池中寻找未确认的处置交易;找到后尝试按 BIP-125 的 RBF 规则构造替换交易——批量者必须自带一枚新的粉尘输入,其金额全数转为手续费,并同时满足:替换交易绝对手续费不低于被替换交易手续费之和、额外手续费不低于增量中继费率乘替换交易虚拟体积、费率高于每一笔被替换交易、不导致内存池驱逐超过 100 笔交易。候选交易须先按费率升序排序再贪心纳入,保证同一内存池状态下所有合规实现得出同一批量结果,避免实现指纹。构造不出合规批量时,退回各自广播一笔。找不到未确认处置交易时,直接广播自己的。

4.4 安全注意事项

五、谁必须动

普通持币人:无需改节点,也不用手动构造交易。需要的是支持本协议的钱包:识别粉尘、给出处置入口,并在处置前让你确认动的只是粉尘;跨地址合并、同时广播等错误操作应由钱包直接拦住。

钱包开发者:工作量主体。需实现可配置粉尘阈值、只认已确认 UTXO、按地址隔离构造、固定的 “ash” OP_RETURN 输出、ALL|ANYONECANPAY 签名(含 Taproot 显式追加哈希字节)、nLockTime 与 nSequence 的固定取值,以及内存池批量合并的确定性排序逻辑。

批量合并者与节点运营者:只能从内存池收集已签名的处置输入,不能向用户索要输入;合并交易仍须满足 4.1 的全部格式要求与 BIP-125 规则。

共识层与矿工:共识规则零改动。合规交易在现有规则下本来就合法可中继,矿工照常打包,只是费率结构特殊(全部金额皆为手续费)。

六、现在算不算数,以及一个常见误读

状态为 Draft(草案),版本 0.1.0。原文明确:本提案不需要改动共识规则或点对点协议,所用机制——ALL|ANYONECANPAY、OP_RETURN 中继策略、BIP-125 RBF、0.1 sat/vB 最低中继费率、私有广播——在相应版本的 Bitcoin Core 中均已存在;原文附有参考实现与测试用例(要求处置交易能被 Bitcoin Core 30.0+ 接受进内存池)。但草案不等于已被钱包普遍采用,原文未给出采用统计,本页不臆测。

常见误读:

“把钱包里所有粉尘凑成一笔交易一次烧掉最省手续费,也最干净。”

这正是本提案明文禁止的做法。不同地址的粉尘同进一笔交易,等于亲手向全网声明这些地址同属一人——粉尘攻击要的就是这个关联,处置反而替攻击者完成了工作。合规做法是按地址分开处置、错开广播时间;省空间靠的是与陌生人的处置经内存池批量合并,而不是合并自己的地址。

七、延伸

本页内容整理自 bitcoin/bips 仓库与 bips.dev,事实已与仓库核对;解读仅供学习参考。