谁来定义 Tor 网络:共识机制、目录权威与网桥的分野
每一条 Tor 连接都始于一次合意。在浏览器构建第一条链路之前,它需要一个看似简单却暗藏玄机的问题的最新答案:哪些中继节点存在?此刻哪些值得信任?Tor 网络中没有任何事情由单台服务器拍板。相反,一小群被称为目录权威的固定机器按日程、公开地共同裁决这个问题。
一份文档,一个网络
它们产出的文档就是共识(consensus):用 Tor Project 术语表的话说,是由目录权威每小时汇编并投票一次的单一文档。每份共识把已知中继列为路由器状态条目,载有昵称、密钥材料与地址,并为每个条目标注旗标和带宽权重。其格式,包括完整的旗标词表,在目录规范中有所记载。 客户端从不从网络整体获知这些事实。各权威的地址与长期身份密钥直接内置在 Tor 源码之中,而规范要求每个权威将身份密钥离线保存,仅用它去认证寿命更短的签名密钥。这个网络的信任之根刻意保持小巧、可审计且不易变动。逐小时的投票,一步步看
机制细节写在规范的投票时间线里。每个权威定期发布自己的投票:它所认定的网络状态。一个限时窗口收集所有权威的投票,随后第二个窗口为由此产生的文件收集签名;规范要求每个窗口至少持续二十秒。成形的共识按固定顺序携带三个时间戳:valid-after、fresh-until 与 valid-until,且总有效期须至少是新鲜期的两倍。任何时刻都应至少有三份共识有效。目录缓存服务器在 valid-after 与 fresh-until 之间下载每份新文档,普通客户端则在其后更长的窗口内取用,而超过失效时间一天以上的共识会被整体弃用。“每小时,这些由志愿者运营的目录权威都会为构成 Tor 网络的中继投票并达成共识。”这句话出自 Tor Project 2017 年 11 月介绍 Bastet 的博文。Bastet 是新加入的一位权威,用以增强项目所称的目录权威体系的多样性与稳定性。这句话也在不动声色之间道破了整个安排:权威由志愿者运营,他们投票,而他们的合意把数千个彼此独立的中继凝聚成一张网络。
旗标、带宽与微描述符
权威投票的对象不止于存在本身。一个中继可以携带 Authority、Exit、Fast、Guard、Running、Stable、V2Dir 之类的旗标,每一项都断言一个经过检验的属性;每份投票还记录该中继实测的带宽,共识再从中提炼出客户端选路时所用的权重。现代客户端获取的多是共识的微描述符版本:它把投票产生的状态行与客户端所需的紧凑描述符片段的哈希配对,而不是完整的服务器描述符。- Guard 表示该中继适合担任链路的入口位置。
- Exit 表示该中继愿意通过常用端口把流量送往更广的互联网。
- Stable 表示该中继适合长期连接。
- HSDir 让中继进入存储洋葱服务介绍信息的环。
- V2Dir 表示该中继有能力提供目录文档。










