UR 是一个为网络基础设施提供动力、由社区维护的开源协议。如需 URnetwork 产品(例如 VPN),请访问 ur.io

研究

开放算法,开放数据。

两个节点经由穿过屏障的路由相连:Apex 模拟延迟竞赛
由 Apex (SN1) 提供支持即将启动

模拟延迟算法竞赛

优化 UR 协议。提交的方案将与代码的一个分支进行对比评估,胜出者将成为新的基线并赢得 SN1α。共六轮,每轮一周,即将启动。一起来吧!

参加竞赛

协议是一个去中心化原生、多 IP、多传输的系统,旨在扩展到每个网络运营商数百万矿工的规模。下面的每个算法领域都发布了其源代码,以及(如适用)用于独立分析的匿名数据集。

URTRANSPORT1

性能

通过 TCP 传输实现的多跳路由,专注于全球可达性。支持 UDP 和点对点流升级,并计划集成 WebRTC、XRay 和 WireGuard。

当前方案

传输层首先为可达性而设计,让世界上每个人都能连接。多跳路由通过 TCP 传输经由一个中央跳完成。H3 和 DNS 等 UDP 传输已实现但被禁用:在实际使用中,这种配置下它们的表现不如 TCP 路径。带点对点流升级的多矿工跳同样已实现,目前也处于禁用状态。传输选择与流升级路径位于 transport.go 和 transfer_stream_manager.go。

实现

研究方向

把 WebRTC、XRay 和 WireGuard 等成熟协议作为流升级集成到多矿工跳上,并在测量显示有益的地方重新启用 UDP 传输。匹配算法也可以开始区分拥有公网 IP 和端口的跳与没有的跳,以在速度与连接质量之间取得平衡。这些改动都可以先在实验性网络运营商上试行,再成为默认方案。

UREXTENDER1

可达性

N 层 TLS 加密(N≥2),每个外层使用自签名证书并将 SNI 伪装到一个中间 IP,转发到另一跳或一个端到端 TLS 连接。任何人都可以在任何域上托管扩展器。

当前方案

核心网络栈支持 N 层 TLS 加密,N 至少为二。每个外层都可以使用针对所选主机名的自签名证书来到达一个中间 IP,该 IP 再把流量转发到另一跳,或转发到与网络运营商域的端到端 TLS 连接,因此这条连接看起来就像发往该主机名的普通流量。任何人都可以在自己控制的域上托管扩展器。同一个扩展器的用户共享一个公共速率限制,可逐例调整。

实现

研究方向

扩展器可以加入协议的资助名单,该名单在参与的扩展器之间分配一部分激励;加入细节将在名单开放时公布。每个矿工已经在出口角色之外同时承担扩展器角色。悬而未决的问题是:如何在最需要的地方测量扩展器的覆盖范围而不暴露其用户,以及随着封锁手段的调整,外层应如何轮换主机名和证书。

UR-FP2

客户端–矿工匹配

采样算法,加载潜在矿工的 10× 随机样本,并按可靠性 × 客户端评分成比例地进行洗牌。Sybil 抵抗由每个 IP 子网的可靠性总和至多为 1 这一约束来保证。

当前方案

匹配系统从内存中加载候选矿工的随机样本,约为所需数量的十倍,并按可靠性 × 客户端评分成比例地洗牌,得出最终候选者。它对矿工别名化(Sybil 攻击)的防护是按 IP 子网设定的上限:同一子网内所有矿工的可靠性评分之和至多为 1,因此把一条连接拆成许多身份并不会提高其匹配份额。入口点是 FindProviders2。

实现

研究方向

在匹配时区分拥有公网 IP 和端口的跳与没有的跳,从而显式地权衡速度与连接质量,而不只是通过可靠性。可靠性与客户端评分的权重以及样本大小,是实验性运营商可以基于下文描述的匿名区块导出数据加以调整的自然输入,同时保持每子网上限不变,作为 Sybil 边界。

UR-MULTI

多客户端

启发式扫描算法,管理一个矿工窗口。基于传输阈值而非协议分析,将流量锁定到最优的可用层级。

当前方案

启发式扫描管理一个矿工窗口,并把流量锁定到最高可用层级的矿工上。决策依据的是传输阈值——矿工实际传输了多少——而不是检查隧道内的协议,因此路由器永远不需要查看应用流量。正是这个窗口让一个客户端能同时保持多个矿工在用,并随着它们实测传输量的变化在它们之间转移流量。

实现

研究方向

阈值与层级边界目前是手工设定的。留给实验性运营商的开放问题:是否应改为从实测的传输分布中推导;窗口是否还应纳入验证者现在产出的每矿工存活性与延迟统计(见“路由验证”),让客户端在用自己的流量付出代价之前就避开薄弱环节。

UR-TRANSFER

传输

为高延迟环境调优的可靠交付窗口。由于该窗口已提供可靠交付,协议重传被禁用。它按性能排名在各传输通道之间分配流量。

当前方案

可靠传输窗口针对高延迟环境调优。由于窗口本身提供可靠交付,协议向传输层的重传被禁用:经隧道承载的 TCP 流不会在其之上再次重传。流量按各传输通道的性能排名与可用性在它们之间分配,因此缓慢或失败的传输通道会失去份额,而不会让流停滞。

实现

研究方向

开放问题:窗口应如何针对真实世界延迟的整个分布而非单一固定画像自行定尺寸;当传输通道的性能在流中途变化时应如何重新排名;以及当一跳是点对点而下一跳不是时,传输层应如何与为传输规划的流升级(见“性能”)协作。

UR-IP

IP 出口

最小内存占用的 IP 协议栈实现。它假设通过传输层实现可靠的对等通信,因此相应地优化了重传。

当前方案

IP 协议栈为最小内存占用而设计,使矿工可以在手机或小型设备上充当出口。它假设通过传输层与对端的通信是可靠的,这样它自身的重传处理可以被优化掉而非重复实现。安全层(见“安全”)位于同一路径上,因此每个数据包在离开矿工之前都会被检查。

实现

研究方向

开放问题:在最小的设备上内存占用还能降低多少;当传输层的可靠性假设为传输规划中的点对点流升级而放宽时,出口协议栈如何保持其保证。与传输一样,改动会先在实验性运营商上试行,再成为默认方案。

UR-PSUB2

奖励分配

独立验证者按需求与实测质量为每个运营商池评分;Bittensor 的 Yuma Consensus 将这些评分转化为发行。在一个池内,运营商按已服务的合约数与可靠性对其矿工排名,每个周期提交一个 Merkle 支付根,每个矿工直接从结算合约领取其份额。

当前方案

奖励来自 UR 子网在 SN25 上的发行。每个运营商的矿工组成一个池,对应一个矿工 UID。每个 tempo 周期,独立验证者在提交-揭示机制下按隐含用量 × 实测质量为每个池评分(运营商的本周期存款除以其信念层级的公布费率,再乘以该池矿工按验证者自身遍历得出的质量),Yuma Consensus 把中位数转化为发行。在池内,运营商按已服务合约 × 可靠性对矿工排名,每个周期提交一个 Merkle 支付根,每个矿工直接从结算合约领取其份额。按可路由 IP 广度排名靠前的集群拥有自己的 UID,并被原生地支付。当公布价格为 0 时,不收取存款,每个池承载相同的隐含需求,因此只有实测质量在引导池通道。

实现

研究方向

θ 是公布的治理参数:先偏向池端起步(θ ≈ 0.3),度量各层级的实际收益,随着顶级矿工集合与独立验证者的质量共识逐渐成熟再逐步扩大——约束是收入最低的顶级矿工仍至少不低于收入最高的池内矿工。质量对池权重的摆动幅度在启动阶段受限,并逐步放开。验证者努力奖励已有设计但被搁置,只有当运行中的网络表明独立覆盖需要它时才会构建。把验证者集合去中心化到所有者多数之外,是有意安排的后续治理步骤。

UR-CONTRACT

权限

双方之间的传输需要一份带有托管余额和权限集的加密合约。双方都必须以确认的字节计数关闭合约;出现分歧时会触发强制解决流程。

当前方案

发起方与伴随方之间的传输需要一份用目标客户端密钥加密的合约。合约在托管中持有固定的传输余额,并定义双方之间的权限。伴随方可以为返回流量创建配对合约,多跳路径则向中间节点发送流打开与流关闭事件。使用完毕后,双方以确认的字节计数关闭合约。若任一方未关闭,或双方总数不一致,则由合约裁决决定结果;若任一方举报滥用,双方之间未来的传输将被阻止。

实现

研究方向

已服务合约 × 可靠性同时也是运营商池支付列表的默认依据,因此关闭时字节计数的准确性会影响奖励。开放问题:在没有可信第三方总数的情况下如何解决两个关闭计数之间的分歧;配对的返回合约应如何针对非对称流量定尺寸;以及当双方计数此前已有分歧时,应如何权衡滥用举报。

UR-SEC1

安全

保护矿工网络的端口阻止列表和 IP 阻止列表。它不执行协议检查——矿工仅路由加密流量。

当前方案

安全层使用端口和 IP 阻止列表。它不检查应用协议:矿工仅路由加密流量,因此无从检查;正是阻止列表让矿工能够拒绝与 CFAA、DMCA 等常见监管方向相冲突的流量,并丢弃已知的恶意目的地。列表在矿工上生效,因此用户的流量在每个出口都遇到同样的规则。

实现

研究方向

开放问题:如何在没有能看到流量的中心节点的情况下,在整个集群中分发和更新阻止列表;安全层是否应从匿名出口数据中学习按目的地的信誉,而不是依赖静态列表;以及矿工可以往自己的列表中添加什么,而不至于让网络在各出口之间行为分裂。

UR-VERIFY1

路由验证

验证者遍历由服务器指定的矿工链,用四个 Ed25519 签名证明从每一跳的实时出口。逐步的完成率与延迟统计找出最薄弱的环节,并成为引导池发行的质量信号。

当前方案

验证者经由自选的矿工播种一条遍历路径并调用 /verify;服务器根据请求的源 IP 推导当前跳,绝不依据声明。每个下一跳都是均匀随机、不放回地抽取,且只在当前跳确认之后才揭示,因此路径无法被预先计算。四个 Ed25519 签名把整条路径绑定在一起:验证者签署 SEED 与 EXTEND,服务器签署 ASSIGN 与 FINAL,并为每一跳盖上时间戳。失败归因于那个从未被到达的唯一一跳;延迟在确认时逐步记录;验证者自选的种子跳被排除;每个矿工在曝光量足够后,以完成率的 Wilson 评分区间和延迟百分位数来报告。

实现

研究方向

一条完成的路径证明的是到一个已知目的地的实时顺序中转,而不是对用户流量的诚实转发;逐跳的自我交易只能在统计意义上受到限制——依靠独立的验证者群体。通往可用于支付的测量的路线图:通过邻居见证实现路由证明;目的地多样性,使矿工无法只优化那条被测路径;通过质押实现验证者的 Sybil 抵抗;以及用于归因的分层风险模型。在此之前,这些统计是存活性与延迟监控以及临时评分。

匿名化

网络的支付区块为 7 天,每个算法输入与输出的导出数据按区块匿名化。每个客户端 id 和每个 IP 子网哈希都被替换为简单的整数计数器,因此一个身份在同一区块内保持一致,但不会跨区块延续,也无法追溯到生产环境的 id。不包含城市元数据。区块导出数据已准备好发布,但尚未发布;发布后本页面会给出链接。

致研究者与开发者

UR 希望用户能够通过联邦化的网络运营商选择加入实验性算法。新的运营商加入的是今天为矿工付费的同一套激励体系,而一个矿工可以为任意多个运营商服务。应用将为每位用户提供输入备用运营商域的选项。实验性运营商的接入细节将在计划开放时公布,本页面持续跟踪当前的默认算法与实验方向。安全研究请遵循漏洞披露政策。

审计

对协议及其实现的同行审计。

  • 已排期2026 年加密审计Cure53计划于 2026 年 11 月至 12 月进行范围:加密设计与实现正确性。结果将由 UR 和 Cure53 共同发布。
  • 同行审计MASA L2 2025Leviathan Security Group已于 2025 年 5 月完成