术语表 /隐私与安全
静默支付
又称 BIP352。
- 静默支付是什么?
- 静默支付让您可以公布一个可重复使用的地址,该地址永远不会出现在区块链上,因为发送方会用它为每笔付款计算出一个全新且无法关联的目标地址。
规定于 BIP-352。
您对外提供的这串固定字符是一对公钥,而不是接收比特币的地点。该方案由 josibake、Ruben Somsen 和 Sebastian Falbesoner 制定为 BIP352,创建于2023年3月,它利用只有发送方和接收方才能计算出的秘密,为每笔付款推导出一个新的 Taproot 输出。您既能享受重复使用地址的便利,又不会产生任何链上关联。
运作方式
在静默支付中,由发送方完成地址推导,这正是整个方案得以运转的关键。
静默支付地址以 bech32m 编码两个公钥,一个用于扫描,一个用于花费,前缀为 sp1。规范要求钱包能够处理至少117个字符的字符串,因此它很长,人们通常以二维码或链接的形式分享,而不是手动输入。有人向您付款时,对方的钱包会在其所花费输入的私钥与您的扫描密钥之间执行 Diffie-Hellman 交换。由此得到一个共享秘密,该秘密对您的花费密钥进行调整,结果是一个普通的 Taproot 输出,与区块中其他所有 Taproot 输出看起来完全一样。链上没有任何信息将它与您公布的地址联系起来,来自两个不同发送方的两笔付款之间也没有任何可见的关系。
成本由接收方承担。由于没有任何输出带有您的地址,您的钱包必须在每个区块中测试候选交易,用您的扫描密钥重复同样的计算。钱包的做法有两种:一是在本地扫描,这会消耗同步时间和电量,但不会向任何服务器泄露信息;二是依赖索引服务,这样更快,但隐私性较差。可选的标签让您可以推导出可区分的地址变体,因此无需公布两个身份,也能分辨一笔捐赠和一笔工资。
在哪里会遇到它
静默支付的支持确实存在,但并不完整,付款的双方都需要支持。
Cake Wallet 是第一款可完整发送和接收的移动钱包,Sparrow 覆盖桌面端,Silentium 则作为参考实现存在。Wasabi 可以向 sp1 地址发送。Bitcoin Core 在任何已发布版本中都没有提供静默支付钱包:相关工作多年来一直停留在拉取请求28122中,不过密码学原语现已包含在其捆绑的 libsecp256k1 库中。
证明这种复杂性合理的使用场景是公开收款。网站上的捐赠地址、视频描述中的打赏地址、海报上的二维码,这些按定义都是会被重复使用的地址,每笔付款都会堆积在同一个公开记录里,向全世界显示您收到的总额。静默支付地址无需交互步骤即可解决这个问题,而这正是早先各种可重复使用地址方案始终没能做到的。
静默支付 vs 唯一地址
普通的 HD 钱包本来就会为每笔付款提供一个新地址,对于两个人之间的付款,这种方式更简单、更便宜,也得到普遍支持:您提出请求,对方付款,无需任何推导。当您无法事先提出请求时,静默支付才有意义,因为地址必须公开放置,由陌生人在不可预知的时间付款。为此您要付出的代价是扫描工作量和较窄的钱包支持范围,所以大多数人在日常付款中应继续使用新地址,仅在联系方式长期不变的场合保留一个静默支付地址。