把粉尘烧成一把灰:BIP-451 的 ash 处置交易怎么立规矩 图 1
把粉尘烧成一把灰:BIP-451 的 ash 处置交易怎么立规矩 · 图 1

粉尘攻击的处理答案通常是”锁住别动”:尘埃攻击与地址隐私:零钱级入账该怎么处理 讲过为什么花出去反而中计。但锁住不是没有代价——这些小额输出永远躺在 UTXO 集合里,换钱包、从助记词恢复、迁移设备,任何一个环节都可能把它们不知不觉花出去,替攻击者完成聚类。2026 年 4 月挂出的 BIP-451 尝试给出一个”永久烧掉”的出口:标准化的粉尘处置交易,整笔输入金额全部作为手续费,只留一条 OP_RETURN 输出,数据是三个 ASCII 字符 ash(灰烬)。状态 Draft,版本 0.1.0。

一笔处置交易的固定长相

提案把交易的每个字段都钉死了。恰好一条输出,内容是 OP_RETURN 加三字节的 ash,输出金额为 0;nLockTime 必须为 0;所有输入的 nSequence 必须是 0xFFFFFFFF,也就是不声明 BIP-125 可替换;所有输入签名必须用 ALL|ANYONECANPAY(标志字节 0x81)——对 Taproot 密钥路径花费,提案特别强调要显式追加这个字节,因为默认的 SIGHASH_DEFAULT 不携带 ANYONECANPAY 语义。能烧的只有已至少一笔确认的 UTXO;交易基础体积不得低于 65 字节,这是标准性规则的最低体积门槛(标准性规则是什么?为什么交易会被提示“非标准” 讲过这类规则的边界)。费率下限按提案文档口径是当前比特币核心的最低中继费率 0.1 sat/vB,文档同时点名了这个数字对应 28.3、29.1、30.0 及之后的版本线——地板价本身是有历史的,见 你的节点为什么拒收交易:中继费率地板从 1 聪降到 0.1 聪的变化。

统一格式不是洁癖,是隐私手段

为什么连 nLockTime、nSequence 这种”无意义”字段都要规定死?为了反指纹。处置交易长得越一模一样,外界越难从链上分辨谁在用什么钱包软件。更妙的设计在批量合并:因为每个签名都是 ANYONECANPAY,第三方可把内存池里互不相关的处置交易重新打包成一笔更大的替换交易,用自己的新粉尘输入顶上去,走 BIP-125 的替换规则(比特币 RBF 替换要满足哪些条件?BIP125 规则与收款方判断指南 讲过这套条件)。提案还规定了确定性挑选顺序:把未确认的处置交易按费率升序排,从低到高贪心纳入,直到撞上任一条替换规则为止——同样的内存池状态,所有合规实现应当拼出同一批,进一步抹掉实现差异。

烧粉尘自己的隐私代价

三条纪律直接对着粉尘攻击的动机。同一笔处置交易不得混花发往不同地址的粉尘;不同地址的处置交易不得同时广播; SHOULD 把发往同一地址的粉尘一次烧光。否则”清理”本身就把攻击者想关联的地址聚到了一起。还有一条更长线的提醒:P2PKH、P2WPKH 这类以公钥哈希挂账的地址,一花就暴露完整公钥——提案的量子安全考量里专门写了”定向粉尘”场景:攻击者可能故意送粉尘,诱骗你在未来某个具备密码学相关能力的量子计算机时代之前暴露公钥。广播时点同样公开可查,文档建议用比特币核心 31.0 起的私有广播通道。

现在该拿它怎么办

先摆正状态:BIP-451 是 2026 年 4 月才挂出的 Draft,讨论线程挂在邮件列表和 Delving Bitcoin,参考实现是一个命令行工具,提案文档自己标注依赖比特币核心 31.0 起的 RPC 集成。它不是现网标准,任何钱包界面上你暂时还看不到”一键 ash 处置”按钮的强制义务。普通用户的现实决策仍然是两句话:不确定的粉尘,锁住不动永远是安全下限;真想清掉,先核对自己钱包的实现是否按这套格式构造交易,再考虑动手。

锁住还是烧掉:一张决策表

把两种主流处置方式并排放:锁住的优点是零链上动作、零公钥暴露,缺点是粉尘永久挂在账上,且钱包迁移、恢复演练、继承交接都是”锁会失效”的时刻;烧掉的优点是状态永久消除、事后无隐患,缺点是要花一笔小额手续费、暴露对应地址的公钥,并且处置行为本身在链上公开。多数隐私文档的折中口径值得一并记住:短期不着急就锁,长期要换设备或恢复过助记词的场景,在确认格式合规后再烧。顺序也别颠倒——先烧再备份新钱包,能避免同一批粉尘在两个软件里各被点燃一次。

风险提示:本文是链上隐私机制科普,不构成投资建议;处置粉尘要花费真实手续费并暴露公钥,属于有代价的操作,执行前请确认粉尘来源与自身钱包的选币逻辑。