多地址合并花钱时怎么少泄露身份:BIP-126 混合输入交易规范 图 1
多地址合并花钱时怎么少泄露身份:BIP-126 混合输入交易规范 · 图 1

一个钱包用久了,余额天然会碎成一地:收过几笔工资、找零过十几次、朋友转过一次生日红包,每个地址上躺着一点钱。等你需要付一笔比单个地址余额都大的款时,就不得不把多个地址的 UTXO 合并进一笔交易——链上分析者随即拿到一份大礼:这些地址大概率属于同一个人。这不是猜测,而是比特币分析里最常用的共同所有权启发式。BIP-126 讨论的就是这种“混合输入交易”(HIT)怎么构造才少泄密,作者是 Kristov Atlas,2016 年 2 月起草,性质是信息类最佳实践,不是共识规则。

这份 BIP 先给场景分了类。“不可避免的混合输入”指余额碎片化之后你别无选择,不合并就付不出这笔钱;“刻意的混合输入”则是主动为隐私做的合并。它最核心的洞察是:如果刻意合并的交易有一种独特长相,那分析者反而能用这个长相做标记,让本想隐身的人更显眼。所以规则的目标不是“让隐私交易特别”,而是“让隐私交易普通”,让两类交易在图上无法区分,顺带约束 UTXO 集合膨胀。

标准形态有四条规则,逐条都有理由。第一,去重后的输出脚本种类数必须等于去重后的输入脚本种类数——注意比的是“种类”不是“条数”,这是为了迁就地址复用和粉尘攻击留下的重复脚本:只要一个地址的 UTXO 被花,同脚本的其余 UTXO 应当一起花掉,把复用造成的模糊面最大化。第二,所有输出脚本必须互不相同,等于明令禁止往旧地址打款,防止下一轮继续自我关联。第三,至少存在一对金额相同的输出。第四,最大那笔输出必须属于至少两笔等额的输出集合。第三、四条合起来是为了造出“最大输出不唯一”的形状,让外部观察者无法一眼认出哪笔是你的真实支付、哪笔是找零——这是整份规范里最容易被误读的部分,它赌的是分析者“把最大输出当收款方”的习惯。

当钱包余额太少、构不出标准形态,或者你就是想借这笔交易清理 UTXO,可以走替代形态:先挑出总额刚好够付的最小输入组合;把与这些输入同脚本的其余 UTXO 一并带上;再补一笔与某输入脚本相同的小额自付输出,专门用来混淆“哪些地址属于我”。逻辑仍然一致——用结构上的平庸换取图分析上的模糊。

和 BIP-69 的顺序问题 BIP 里写得很明白:钱包如果同时遵循输入输出排序规范 BIP-69,应当先套 BIP-126 再套 BIP-69,否则排序会把为隐私而生的结构细节磨平。

误区值得逐个拆。第一条:以为照做就绝对匿名——不会,它只是降低单次泄露量,大额支付、IP 层泄露、时间戳对齐都还在。第二条:以为规则要求输入条数等于输出条数——管的是脚本种类数,两者差得很远。第三条:以为现代钱包默认都实现了——多数钱包 coin selection 的目标函数是费用和碎片数量,不会专门去凑“最大输出不唯一”。第四条:认为 BIP-126 已被激活——它只是建议文档,节点不会因为交易不合这个形态而拒绝。

快速问答。问:普通用户今天能做什么?答:收款尽量一个新地址一次;付款时如果钱包支持,优先选能合并同地址碎片的方案,避免长期留存小额孤儿 UTXO。问:这套规则会被 CoinJoin 之类取代吗?答:不冲突,联合支付处理的是“多人合笔”,BIP-126 处理的是“单人多地址”,层次不同。问:它算隐私措施还是反分析措施?答:更像后者——不制造新的迷雾,只抹平你自己的脚印。

一笔直觉账帮你把握量级:一个有一百个小额 UTXO、分属一百个地址的钱包,若不加处理地逐对花费,最坏情况会在图上连出一百乘一百量级的边;而按种类数对齐的合并策略,能把暴露压缩到与“这笔交易实际动了几个地址”相称的水平。

风险提示:隐私措施各有代价与失效场景,错误的合并时机或方式反而可能加重关联;本文不构成投资建议或隐私合规建议。