比特币隐私,是指减少公开付款与具体个人及其其他资金之间的联系。普通交易不要求提供法定姓名,却会显示所用资金、新输出及金额。发票、服务账户或收款人可以补上姓名。因此,比特币并不会自动提供匿名性。
Anna 工作收到 100,000 sat,sat 是比特币的最小单位。后来她用这笔收入向 Pavel 支付 20,000 sat,79,000 sat 返回自己的钱包,1,000 sat 用作手续费。输出记录了一笔金额,以及花费它所需满足的条件。网络可以看到整个转移过程。Pavel 知道自己收到多少,也认识 Anna,因此可以尝试判断另一个输出是否是她的找零。这不会自动揭示她的全部储蓄,却提供了一条线索。与银行账单不同,这份记录并非只有银行和账户持有人可见。任何人都能重新查看,哪怕已经过去多年。 [1]
陌生人看到公开记录,Pavel 还认识 Anna,而交易所可能持有她的身份证件。钱包服务商可能知道应用查询了哪些地址。明确想向谁隐藏什么信息,叫作建立威胁模型。这不意味着把所有人都当成攻击者,而是帮助选择合适的保护措施:不让客户了解收入,与保护网络连接,是两件不同的事。私钥是一份秘密数据,钱包用它生成数字签名,表示对付款的授权。只把私钥保密,并不能隐藏付款历史。 [1] [3]
Anna 可以给每位客户一个新的收款地址。这样别人就无法仅靠汇总同一个重复使用地址的入账,轻易算出她的收入。钱包通常也会为退回发送者的余额创建新地址,这部分余额称为找零,即 change。这是良好基础,不是无法关联的保证。如果 Anna 以后把不同地址的资金合并支付,可能亲手留下新线索。公开捐款地址是一种特殊情况:透明可以是有意选择,但该地址的收款便不再私密。 [1]
钱包管理的不是一笔没有区别的总余额,而是过去交易中尚未花费的输出,称为 UTXO。付款时,它会选择其中一些作为输入。当多个输入一起出现,分析者常推测它们属于同一个人。这叫启发式判断,是推断方法而非证据;多人协作交易会打破这种假设。Coin Control 允许用户影响输入选择。记录资金来源的标签有助于保持区分,但它们只是钱包备注,不会让网络强制执行任何规则。不理解找零就手动选择输入,可能既损害隐私,又增加手续费。 [2] [7]
扩展公钥 XPUB 可以派生其他公钥,再结合钱包的地址规则生成对应分支的地址。拥有这些信息的人能观察该分支的付款,但仅凭 XPUB 无法为付款签名。可见范围取决于分享了哪个密钥:它不一定暴露整个钱包,但依然敏感。服务商也可以把提现与通过 KYC,即客户身份核验,取得的姓名关联。网页交易浏览器可能记录你查询了什么、从哪里访问。查询余额绝不需要提供恢复词或私钥。即使是公开数据,也应仅在必要且理解其范围时分享。 [1] [6]
应用需要识别哪些付款属于自己。如果把地址列表交给他人的服务器,就可能透露这些地址之间的联系。Full Node 是运行验证软件的计算机,会按网络规则独立检查比特币交易和区块。自建 Full Node 有帮助,前提是钱包确实通过它获取数据,必要时配合自己的索引服务。仅仅在钱包旁边安装一个节点并不够。轻钱包可以使用 BIP 157 紧凑过滤器,在本地检查匹配,而不发送地址列表。但其他网络线索仍会存在。Tor 可以减少 IP 地址,也就是互联网连接地址的暴露,却不会改变公开金额或交易之间的关联。 [1] [3]
观察者不必从地址直接读出姓名。一张注明准确金额的公开发票、某次已公开购买的时间,再加上后续付款,就可能足够。交易结构和可能的找零也会提供线索。单个特征不能可靠证明归属,但多个特征结合可增强推断。把资金分到多个钱包,之后又重新合并,也无法保持原本的区分。Bitcoin Core 的高级功能 avoid partial spends 可以把同一地址的输出选在一起花费。这样能减少从该地址分次付款所形成的新关联,但也可能增加输入和手续费。结果还取决于设定的手续费上限,并不是通用的匿名工具。 [1] [5]
CoinJoin 将多人的资金组织进一笔交易,可能让观察者更难判断每个新输出由哪位原持有人控制。PayJoin 的做法不同:收款人向付款人的交易加入自己的输入,因此“所有输入属于一个人”的简单假设不再成立。两者都不会抹去历史,也不保证匿名。效果取决于协议、参与者、他人掌握的信息以及后续付款。使用前还应理解协调过程、费用和中断时会发生什么。仅有一个功能名称,不代表任何保证。 [2] [7]
BIP 352 的 Silent Payments 允许公布固定的收款资料,由发送者据此生成不同的目标输出。收款人不必事先给每个人发送新的普通地址。不过,收款钱包必须支持该协议,并扫描数据以识别到账。规范将查找付款的密钥与花费密钥分开。备份和恢复方式必须适合所用钱包,使用过的标签也可能很重要。Silent Payments 标签不是独立身份:它们的公开收款资料共享同一个扫描公钥。这项技术同样不会隐藏资金此后的所有移动。 [4]
每次普通收款使用新地址,不必公开的付款凭证就不要公开,并了解钱包从哪里获取数据。记录资金来源,将不希望关联的用途分开。在手动选择输入或使用高级技术之前,先理解后果;犯错不是保护隐私必须付出的代价。核对地址、备份和手续费仍然同样重要。目标是少透露不必要的信息,而不是误以为从此无人能将你与任何一笔付款联系起来。 [1] [3] [4]
要获得更完整的理解,请将本词条与以下词条结合阅读: 假名性, CoinJoin, Coin Control, KYC, Bitcoin, 比特币地址. 反向关联还来自: Watch-only Wallet, Coin Control, Change Address, Extended Public Key (xpub).