比特币及其他加密货币的隐私保护机制
比特币和其他加密货币在区块链层面和网络层都采用了隐私保护机制。公有区块链是数字交易的永久记录,因此区块链隐私实现的重点在于模糊交易数据以及匿名化发送者和接收者的身份。
以隐私为重点的加密货币,如Monero和Zcoin,在区块链层面集成了匿名化功能,例如环机密交易(Ring CTs)和零知识证明(zero-knowledge proofs),以确保交易无法被追踪。然而,P2P/覆盖网络通信在区块链网络中的匿名化交互方面也起着至关重要的作用。Monero和Zcoin都集成了网络层的隐私功能,如Tor和I2P,但这些功能也带来了开发周期延长和其他缺点。
Dandelion协议最初于2017年提出,旨在改善比特币的P2P网络隐私。其最初的提案随后被发现包含各种缺陷,这些缺陷可能会随着时间的推移导致其去匿名化,原因在于对潜在对手的理想化假设。
最终,今年5月提出了Dandelion协议的改进版本,称为Dandelion++。Dandelion++解决了原始协议的担忧,并已由研究团队实现,得到了比特币开发团队的积极回应。Dandelion++似乎有望被纳入即将发布的比特币核心版本中。
什么是Dandelion++?
Dandelion++是一种轻量级且简单的网络层解决方案,具有正式保证的匿名性,可以轻松地用于现有的加密货币。它明确改进了原始Dandelion提案的理想化假设,并在使用目标和分析指标的方法上与大多数广播通信匿名协议不同。
为了更好地理解Dandelion++的工作原理,关键在于聚焦比特币中交易广播的方式以及原始Dandelion协议的工作机制。在比特币中,当用户从一个节点广播交易时,交易会被传播到与该节点连接的节点,即其“对等节点”。随后,交易消息会以链式反应的方式传播,每个节点进一步将消息传播到它们所连接的节点。这被称为比特币的“八卦协议”,也是交易能够迅速到达网络中大多数节点的方式。
比特币现在实现了一种称为“扩散”的广播形式,每个节点以指数和独立的延迟向其邻居传播交易,以减轻用户IP地址的去匿名化风险。虽然有效,但最近的多项研究证明,扩散并不能提供足够的匿名保护。
如果第三方观察者控制足够多的节点或使用连接到大量节点的超级节点,他们可以映射交易消息的起源及其IP地址(比特币交易消息中不包含IP地址)。通过观察哪些节点首先看到交易,他们可以有效地映射出发送地址。Dandelion++的论文明确指出了一个研究,该研究使用一个超级节点记录了所有P2P节点的中继流量,并观察了交易传播的模式,最终推断出源IP地址。通过将IP地址与发送者的假名联系起来,第三方可以使用户去匿名化,并链接更多交易,即使每笔交易都使用了新的公钥。
Dandelion最初提出是为了缓解这些漏洞,但它依赖于在实践中未能成立的理论保证。原始Dandelion提案做出了三个理想化假设:
- 所有节点都遵守协议
- 每个节点只生成一笔交易
- 所有比特币节点都运行Dandelion
这些假设显然在实践中行不通,这也是Dandelion++寻求解决它们的原因。原始Dandelion协议的工作分为两个阶段:
- 茎段(Stem Phase)
- 蓬松段(Fluff Phase)
茎段是匿名阶段,协议设计旨在减少映射回原始节点IP地址的可能性。在茎段,节点不是向所有连接的节点广播交易,而是通过隐私图将交易消息中继到一个随机选择的节点。随后,该节点再将交易消息只传输给另一个随机节点,这种模式一直持续,直到最终(随机)有一个节点以典型的扩散格式向网络的其余部分广播消息。
这就是蓬松段的开始。一旦一个节点使用扩散方法广播消息,交易消息就会迅速传播到网络中的大多数节点。然而,由于交易消息在传播之前通过隐私图传输到许多单独的节点,因此追溯回原始节点变得更加困难。相反,观察者只能将交易的传播映射回茎段中传输消息的几个节点,从而混淆了发送者的实际身份。实际上,这与环签名如何混淆交易的实际签名者有些抽象相似。

Zcoin博客通过典型的高中八卦提供了一个很好的例子,说明Dandelion协议的工作原理:
*STEM PHASE* Kathy: “Pssst, I have a massive crush on Nuwa. Please don’t tell anyone” George: “OMG, did you know what Kathy told me? She has a massive crush on Nuwa. I only told you, please don’t tell anyone” Alice: “Betty, you won’t believe what Kathy’s best friend, George just told me, Kathy is crushing hard on Nuwa! You’re my best friend so I only told you, please don’t tell anyone okay!” *BEGIN FLUFF PHASE* Blabbermouth Betty: “Oh wow hot news…I have it from good sources that Kathy has a huge crush on Nuwa…Please tell everyone this is so exciting!”
原始Dandelion协议的主要问题源于其对特定类型对手的低估,因为假设他们的知识有限。Dandelion++特别注重对Dandelion实现选择的细微改变,如图形拓扑和消息转发机制。
因此,这些对算法的小改动指数级地增加了匿名分析的问题状态空间。Dandelion++依赖于增加对手必须学习的信息量来去匿名化用户。
Dandelion++在茎段与Dandelion显著不同,它在将交易消息扩散到网络之前,通过称为“电缆”的交织路径传递交易。电缆可以分段,但其选择节点传播的直觉仍然局限于其本地邻居。这是与Tor等网络级匿名解决方案进行比较时的重要考虑因素,Tor是一种洋葱路由协议,客户端需要全局、当前的网络信息来确定交易路径。

Dandelion和Dandelion++都以异步周期进行。每个节点在其内部时钟达到某个阈值时推进。对于每个周期,Dandelion++在四个主要组件中运行,并进行了轻微的优化:
- 匿名图
- 交易转发(自有)
- 交易转发(中继)
- 故障安全机制
匿名图使用随机的4-正则图而不是线性图进行匿名阶段。Dandelion++的节点中继选择独立于其出站邻居是否支持Dandelion++。
交易转发(自有)是指每次节点生成自己的交易时,它都会沿着4-正则图中的同一条出站边转发交易。这与Dandelion中的一个有问题的假设不同,该假设假定节点只生成一笔交易。
交易转发(中继)是茎段中的概率时刻,节点接收到茎段交易,并选择是中继交易还是将其扩散到网络。将交易扩散到网络的选择是伪随机的。此外,节点对于所有中继交易要么是扩散者,要么是中继节点。
故障安全机制是指对于每个茎段交易,每个节点跟踪它是否再次作为蓬松段交易被看到。如果没有,节点将扩散该交易。
这些阶段对算法的轻微调整使得通过观察交易消息的传播来映射IP地址变得更加困难。Dandelion++论文继续识别了可用于攻击原始Dandelion协议的特定攻击,包括图学习攻击、交集攻击、图构造攻击和黑洞攻击。对于每种攻击向量,他们通过理论分析和模拟展示了Dandelion++如何缓解这些攻击。
Dandelion++不会显著增加网络延迟,其实际可行性已在比特币主网上得到证明。它提供了一个轻量级且有效的网络层匿名工具,用于减少去匿名化用户的映射攻击的可能性。尽管有其优势,但Dandelion++并未明确防范ISP或AS级对手,他们可以使用路由攻击去匿名化用户。
Dandelion++与Tor的比较
Dandelion++相对于其他网络匿名实现(如Tor)具有一些显著优势。
Tor是最著名的网络覆盖层,专注于隐私,它使用洋葱路由来隐藏用户的地理位置和IP地址。
Tor在加密货币系统的网络堆栈级别的集成非常具有挑战性。Monero是一个很好的例子,因为它已经花费了四年多的时间将其类似Tor的I2P Kovri项目集成到其网络中,而且仍然在进行中。许多加密货币网络没有时间或技术专长来集成这种功能。
对于主流比特币用户来说,通过Tor路由其交易也不特别可行,他们要么不了解网络的隐私缺陷,要么缺乏通过Tor正确路由交易的经验。此外,与Dandelion++相比,Tor由于带宽有限可能会很慢。
同一项研究指出,比特币中扩散广播的一些去匿名化问题也突出了对节点的攻击,这些节点最终会拒绝或黑名单Tor连接。这也可能导致交易去匿名化和用户IP地址的映射。
结论
Dandelion++是对原始Dandelion协议的有用改进。它最终被集成到即将发布的比特币核心版本中似乎是可能的,并且应该会显著改善比特币的P2P网络隐私。加密货币的攻击向量不断演变,解决方案也是如此。Dandelion++代表了在保护比特币用户隐私方面迈出的又一步。