Mix Network 通过负责转发消息的计算机来传递消息,这些计算机称为节点或 mix。节点逐层去除加密封装并处理流量,让人更难把收到的消息与发出的消息对应起来。David Chaum 于1981年描述了这一思路的基础。它保护的是发送者与接收者之间的联系,而不只是消息内容。效果取决于协议、其他流量以及观察者的能力;中间节点多,并不等于匿名性有保证。
安娜给彼得发送私人消息。沿途无人能读懂正文,却可能看到数据从安娜那里发出,不久后又到达彼得那里。如果这种模式反复出现,就可能据此推测谁在与谁通信。这些线索称为元数据,也就是消息周围的信息,例如时间、大小和网络地址。Chaum 在1981年的论文中讨论的正是电子邮件的这个问题。他考虑的不只是如何把信锁起来,还包括如何让信的行程更难追踪。因此,混合网络提供的保护与单纯加密内容并不相同。 [1] [2] [9]
假设一条简化路线经过 A、B、C。安娜先为彼得加密消息正文,再为最后一个节点 C 包上一层,然后为 B 包装这个数据包,最后为第一个节点 A 包装。她使用这些节点的公钥:公钥能用来创建加密外壳,只有对应私钥才能打开。密钥是加密程序使用的数值数据。公钥可以公开分享,私钥则由对应节点保密。A 去掉自己的那层后,知道该把里面的数据包送往哪里,却不会因此获得其他密钥。封装顺序与行程相反,节点才能沿途依次拆开。这只是帮助理解的模型,并不是说所有混合网络都恰好有三个节点。 [1] [4] [5]
如果 A 只收到安娜的一条消息,随后立刻只发出一条消息,观察者很容易建立联系。因此,经典的批处理 mix 会先收集多条消息,再一起转发。成组处理增加了输入与输出之间的可能对应关系。数据包大小也要尽量统一,否则特别大的包裹仍然容易认出。为达到规定长度而补充数据,称为 padding。人数或消息数量本身不是隐私程度的精确指标;观察者事先知道哪些情况,同样重要。 [1] [3]
mix 去除自己的加密层,按照协议检查消息,不会只是把同一个外部数据包原样复制出去。观察者因此不能仅靠寻找进出时完全相同的数据来追踪。输出顺序也会变化:Chaum 最初的方案按数据对一批输出排序,其他设计使用不同办法。关键是输出顺序不能暴露到达顺序。mix 还会检查重复提交的消息。下一个节点继续类似过程,最后一个节点将包裹送向接收者。彼得要读的正文仍受面向接收者的独立加密保护。 [1] [3] [5]
消息也可以持续流动,每条经历不同的随机等待,而不是统一等到一批凑齐。这样就削弱了数据包到达与离开之间的时间联系;数据包就是一组传输的数据。掩护流量则加入没有用户实际消息的通信,使观察者看来它们像真实消息。仅从数据的流动,就更难判断安娜何时真的写了东西。Loopix 采用这类设计,Nym 也运用了其中的思路。保护有代价:更多数据传输、设备运算以及等待时间。这些开销的配置也会影响实际获得的隐私。 [3] [5]
在经典模型中,路线中至少有一个 mix 遵守协议、不向攻击者泄露输入与输出的对应关系,就可能保住这层内部映射的秘密。这里的“诚实”指这种具体行为,并非对运营者品格的全面评价。这也不是说一台诚实服务器能解决所有情况。如果攻击者认出了组内其他所有消息,安娜的消息可能通过排除法被找出来。网络两端的观察、长期用户活动以及修改流量的能力也都重要。因此研究论文会明确威胁模型:对手到底能看到什么、控制什么。 [1] [3]
攻击者可以重发截获的数据包,再到另一端寻找相应的重复。也可以修改数据,试图给消息做标记,故意延迟流量或丢弃部分消息。所以防护还包括完整性检查和重复包记录。Loopix 与 Nym 等使用的 Sphinx 格式为节点提供这类检查所需的信息。有些设计中的掩护消息也能帮助发现流量丢失。这些都是有具体前提的具体防御,不是网络无法受干扰的承诺。消息即使加密,仍可能无法送达。 [3] [5]
安娜可以给彼得一组加密的返程指令。他按指令回复,就不必亲自知道她通常使用的网络地址。Chaum 已经描述过这类返回地址。一些现代系统使用称为 SURB(Single-Use Reply Block)的一次性回复块;只能使用一次是保护的一部分,而不是任意设置的障碍。化名可以让人认出多条消息来自同一作者,而不公开其真实姓名,但也因此把这些消息联系起来。如果安娜在正文中自报身份或发送个人资料,隐藏路线并不能撤回这些披露。 [1] [10]
Tor 同样通过多个中间节点传递通信,但优先考虑较低延迟,以便正常浏览网页。位置合适、能观察两端的人可能比较流量时间与大小。Tor 也有 padding 机制,因此说它完全没有掩护流量并不准确。经典 mixnet 愿意牺牲更多即时响应能力,例如用于消息投递。Loopix 探索的是延迟为数秒量级的折中。Nym 将 mixnet 模式与更快的 dVPN 模式区分开来。在 dVPN 模式下,数据通过加密隧道传输,而不经过这里描述的消息混合过程。因此,名称或路线长度本身并不足够;要看实际传输方式,以及希望抵御的威胁。 [4] [9] [8] [3] [5] [11]
比特币钱包是帮助用户收款和付款的应用。如果钱包或其他应用支持合适的网络路径,mixnet 可以让人更难把其流量对应到某个具体互联网连接。但这不是 Bitcoin 协议自动具备的功能,也不同于混币服务。Bitcoin 交易之间的公开关联仍保留在区块链这个共同维护的交易记录中,隐藏传输路线不会把它们抹去。BIP 324 处理的同样是节点间连接的加密,而不是通过混合消息隐藏发送者。因此要区分传输过程的隐私与支付历史的隐私。Mix Network 帮助理解前一层,却不会把每次支付都变成匿名现金。 [6] [7]
要获得更完整的理解,请将本词条与以下词条结合阅读: David Chaum, Bitcoin 隐私, 假名性, Bitcoin, Bitcoin Anonymity Networks, BIP324.