主要整理自 NymVPN 白皮书

Nym 基本结构如下:

nym architecture and flows

参与者

Nym Mix Nodes 由三部分构成:validators, gateways, 和 mix nodes。

max node 在网络中被统一叫作mixnet。mixnet 基于 Loopix 匿名系统进行设计。

Loopix 协议具备以下特点:

  • 使用 Sphinx 数据包格式

  • 层次化网络模型

  • continuous-time mixes

  • loops of cover traffic

除了 Loopix 所具备的功能外,mixnet 还拓展了新功能:

  • 可靠传输

  • 可拓展性

  • sybil 工具防护

  • 公平路由

  • 服务质量测量

Validators

Validators 具备以下功能:

  • 维护 Nym 区块链。Nym 区块链被用作分发网络信息的安全通道。分发的信息包括了:活动的节点和它们的公钥、网络配置参数、周期性随机的 beacons、参与者的 stake。nympool 的资金、从 nympool 中分发的资金信息。

  • 分发凭证。分发的凭证有两种:

    • 带宽凭证(Bandwidth credential):分发给用户的带宽凭证出示给网管以证明其流量允许在 mixnet 中流通。

    • 服务凭证(Service credential):用来编码某些信息,这些信息用来表明对某个服务的使用权。

Service Providers。

信息流

[图 1] 表示了 Nym 数据的流动。黑色线条代表数据流,红色线条代表代币流。

  1. 将资金存储到 nympool 中以获取凭证。用户可以以某种方式(例如充值等)获取 NYM 代币。用户首先将代币充值到 nympool 中。比如用户将他们资金的一部分转为带宽凭证,其余部分转为服务凭证。然后 validators 以区中心化的形式为这些凭证添加 partial 签名。用户收集到一定数量的 partial 签名后就可以生成一个有效的凭证。

  2. 使用带宽凭证获取网关的访问权限。用户选择一个网管,然后证明使用带宽凭证证明他们具备对 Nym mixnet 的使用权。网管检查带宽凭证的有效性。

  3. 与网关建立临时 Nym。网关检查用户发送的带宽凭据在 Nym 区块链中是否被标记为已消费。然后,网关向验证者提交一份承诺书,承诺在区块链中公布凭证中编码的序列号。该承诺将带宽凭证标记为已使用,以防止其在未来重复消费。它还允许网关证明其路由的流量份额,从而获得相应的奖励。用户和网关建立一个共享秘密和一个 nym(即一个临时化名),与数据限额和有效期相关联。用户和网关之间交换的数据使用共享密钥加密,网关使用该假名跟踪用户消耗的流量。此外,用户还可将 nym 用作临时 mailbox 地址,在此接收网关缓存的下游数据。

  4. 通过 mixnet 路由流量。在带宽凭证消耗或过期之前,用户可以通过网关将流量发送到 Nym mixnet。mixnet 以匿名的形式路由用户的消息。每一步都使输入与输出不可链接。这就隐藏了哪个用户正在访问哪项服务或进行哪项交易,如 [图 1] 中的白色和阴影背景区域所示。maxnet 最后的一个节点将信息发送到接受者的网关,然后最后的接受者从网关中拉取信息。接受者可能是 service provideer、validator 或其它用户。

  5. 使用服务凭证证明对服务的使用权。

  6. 将收到的凭证标记为已使用。收到服务凭证的 provider 需要向区块链提交一个带有序列号的 commitment。commitment 是公开的以防止重复消费的问题。同事也允许 provider 根据凭证获得奖励。

  7. 通过 nympoll 分发奖励。

mixnet 网络级隐私

Nym 使用 [Sphinx] 包格式来加密和匿名路由数据。发送方以与路由反序的方式对 payload 进行加密。具体而言,消息根据接受者进行加密,其次根据倒数第二条进行加密,依次进行,最后为第一跳加密。最后消息还会通过为网关加密,然后网关将解密的数据包转发到 mixnet 中。

Sphinx packet format

sphinx packet format

和洋葱网络对比

相比洋葱网络而言,mixnet 具备以下特征:

  • 洋葱路由创建的电路可在会话期间传输与电路相关的所有数据包,而混合网则通过不同的路由独立路由每条信息,并且不保证按顺序传输。这就大大增加了追踪端到端数据流的难度,即使是监控网络中所有连接的对手也不例外。

  • 洋葱网络根据先进先出的方式转发数据包。而 mixnet 会延迟和重新排序消息。因此阻止了时间关联性分析。

  • 洋葱网络不会生成掩护数据包。而 mixnet 中会一直流转着掩护流量。客户端对此是无感知的。

mixnet 还具备以下特征:

  • 连续时间混合和指数延迟:mixnet 每个节点收到数据包后都会对其进行延迟,然后再进行转发。延迟的时间是预先写在 Sphinx 数据包中的,因此发送端可以配置延迟的容忍程度。

  • 通过掩护流量实现不可观测性。

  • 基于 SURB(Single Use Reply Blocks) 的可靠传输:

    Nym 利用了连续混合网络提供的可预测的端到端延迟和 Sphinx 的 SURB 功能。SURB 是预先计算好的 Sphinx 包头,包含了以参与者为终点的混合网络路由。发送发可以生成一个或多个 SURB,并将其包含到发送给对方的 Sphinx 消息中。接收方可以根据 SURB 回复 ACK。

    SURB 只能使用一次(为了防止重放攻击)。SURB 报头由发送方进行加密,因此回复方无法推断出中间结点信息。收件人必须知道回复路径的第一个混合节点的身份(通过收件人自己的网关)。SURB 包含了下面的信息:

  • Sphinx 报文的加密报文头。

  • 应该向其发送信息的第一层混合节点的地址。

  • 用于加密回复 payload 的密钥。

Last moify: 2022-12-04 15:11:33
Build time:2025-07-18 09:41:42
Powered By asphinx