地址复用的两难
每次收款换一个地址能显著改善隐私,见 收款地址能否重复使用;但对个人和小商户,“朋友每次都要来要新地址”是不可维护的流程。于是出现了两难:公开固定地址会被聚类分析,公开一堆地址又管不住传播。BIP47 的答案是把“收款身份”与“链上地址”彻底解耦:你公开的是一个可复用付款码(Reusable Payment Code),对方钱包据此为每次支付独立推导一个一次性地址,链上看不到这些地址同属于你。

付款码与派生
付款码基于分层确定性钱包的派生结构构建:由一个公开的扫描密钥与一个通知密钥加上随机数生成,编码为 Base58 串,可印成二维码、挂在主页上,甚至关联真实姓名而不引入地址复用的聚类损失。收款方持有对应的私钥,能扫描全链找出所有付款;付款方的钱包在离线状态下也能持续为同一付款码派生互不关联的新地址,不需要联网请求。它要求双方钱包支持 BIP32 派生体系,路径组织方式可参考 派生路径 m/84 的含义。
通知交易:第一次付费多一笔链上开销
机制的关键一步在链上:付款方第一次向某付款码支付前,要广播一笔“通知交易”,内含用接收方公开数据与发送方私钥做椭圆曲线运算得到的盲化公钥。接收方扫描区块链时识别出这笔交易,即可还原出发送方的付款码,双方从此各自推导出共享秘密,后续每一笔支付直接发往派生的一次性地址,不再需要通知。第一笔的通知 + 支付也可能合并构造。代价因此很直白:建立关系要多花一笔手续费,且通知交易本身暴露“有人开始用静默地址了”这一事实——这是它常被拿来批评的点。
与静默支付的关系
BIP352 静默支付继承了同一目标但取消了通知交易,用双方标量运算在交易内嵌共享秘密,见 Silent Payments 静默支付。BIP47 的生态集中在少数钱包实现,规范标注为 Deployed,版本 3 的草案在 Open Bitcoin Privacy Project 的仓库继续演进;两者不通用,同一付款码与静默标签不能混用,恢复资金前先确认钱包实现的类型。
使用提示
对普通用户,付款码适合长期收款关系的隐私管理,不适合匿名接收(建立阶段仍上链、有交互记录)。收付款码时核对编码全串而非部分字符;若你的钱包提示“检测到未请求的通知交易”,不必惊慌也勿随意花费那笔 UTXO,先理解来源再处理。
风险提示:比特币价格与网络状态波动较大,本文仅作技术与安全科普,不构成任何投资建议;涉及资金操作前请小额试转并逐项核对,所有协议参数以官方规范与源码为准。
什么场景值得开、什么场景不值得
值得:长期合作的供应商、定期给你付稿费的平台、家人之间不想反复换地址的关系——建立成本一笔通知交易,之后每一笔都是干净的一次性地址。不值得:一次性收款、面向不特定公众的捐赠地址(公开付款码意味着任何读过规范的人都能替你算出后续地址,虽然他们不能花,但能盯着你看)、以及双方软件版本残缺的跨实现组合(通知格式的微小差异可能造成资金暂时”看不见”)。还有一类中间态:你公开付款码但对方不支持,多数钱包会回退成普通地址收款,此时隐私收益归零,这个降级过程通常无提示,需要主动确认。总的判断标准是:付款码解决的是”关系长期、收款频繁”场景下的流程与隐私矛盾,为一次性转账引入它,是在为不存在的敌人付手续费。
发表评论
还没有评论,来说两句吧。
评论区为展示样式,提交不会被处理。