你的一笔付款,暴露了几条隐私
普通比特币转账上了链,分析者常用三条启发式猜你的钱包:共同输入启发式(一笔交易的输入大概率属于同一人)、按脚本类型识别找零、按整数金额识别收款方输出。Payjoin(BIP78,状态为已部署)的目标就是在一次正常付款里同时瓦解这三条猜测:收款方往同一笔交易里掺进自己的输入与输出,让交易看起来不再是标准的付款加找零结构。

协商流程围绕 PSBT 展开
收款方在比特币 URI 里附带一个 Payjoin 端点参数;付款方构造并签好原本的交易,以 original 的身份提交;收款方在不改动付款方输出的前提下加入自己的输入或输出,返回一份 Payjoin 提案;付款方检查、补签并广播。协议对提案有硬约束:不得降低原交易的绝对手续费;新增的输入输出必须插入在随机位置,不能简单重排来暴露结构。对付款方而言,这是给原交易加了一层结构噪声;对收款方而言,这是一次顺带的 UTXO 整合与批量支付,还能省下一笔独立交易的链上费用。值得一提的是正向外部性:这个协议的存在本身就让上述三条启发式对全网变得更不可靠。
参数与错误码
可选参数把控制权留给付款方:可以设定允许的最低费率、愿意为新增输入贡献的最大金额、允许被扣减以补差价的输出下标,也可以禁止收款方替换收款输出。URI 里还有一个标志位用来明确禁止输出替换。失败也不是含糊的超时,而是约定的错误码——例如原 PSBT 被拒、收款方加了输入却抬不动手续费等,付款方据此按默认策略处理,而不是盲目重试到别的地址。
必须认证加密的通道
端点地址必须是带认证加密的连接,例如经过证书校验的 HTTPS,或已在可信渠道交换过公钥标识的洋葱地址;对明文或未认证端点发起协商,等于把原交易全文裸奔给中间人。规范明确不应接受这样的地址。收款方侧还有两条反滥用要求:检查原交易是否可广播,以及所用输入是否从未出现过——后者用来防探针攻击与把 Payjoin 交易当作新一轮原交易的重入式手法。若付款方误把自己的输入混进提案涉及的范围,收款方要么拒绝,要么确保不代签这些输入。
与普通用户的关系
对付款方,Payjoin 通常是一次静默升级:界面只是多了一次确认,链上看不出这笔交易用了 Payjoin。对隐私敏感场景(公开地址收款、频繁同地址互转)它比每单手动混币现实得多。但边界要认清:它隐藏的是结构启发式,不是全部信息——分析者仍能看到一组输入与一组输出的真实花费关系,它抬高的是成本而不是提供绝对匿名。
风险提示
部署前先验证提案不改动付款方输出、插入位置随机、端点加密合格;使用者只接受可核验域名的端点,遇到异常拒绝码保持默认处理。协议细节以 BIP78 当前文本为准。本文只做机制科普,不提供任何规避风控的方法,不构成投资建议。
与 CoinJoin 类工具的边界
Payjoin 常被归入混币话题,但定位不同:交互式 CoinJoin 把多个互不相干的付款凑进一笔大交易,追求的是断掉输入输出的关联假设;Payjoin 只在一次正常付款中掺入收款方的资金,目标是让三条启发式失效,关联并未彻底切断。两者都有隐私社区对资金标注追踪的争议背景。从防御视角看,选择任一工具前应了解:个别司法辖区对与特定地址集合交互过的 UTXO 存在合规处理差异,交易所可能对来源可追溯的币做风控标记。这些是合规与使用体验问题,不是协议缺陷。普通用户最稳妥的做法,是先明确自己面对的威胁模型——防链路分析还是防关联性收款——再选工具,而不是把隐私工具当成免责保险。
发表评论
还没有评论,来说两句吧。
评论区为展示样式,提交不会被处理。