去中心化数字世界

在信息爆炸的当代,我们需要的信息已经不再以“数量”为标准,而是“质量”。而面对海量的信息,谁能保证这其中不会有一些高质量的信息被拦在审查关卡之外,而无法通过普通方法得到?

传统下载模式

虽然它很传统,不符合去中心化网络的要求,但是由于互联网上的绝大多数内容至今仍以http(s)、ftp等协议提供,且地址清晰明了,便于下载,这种下载方式便留存至今。
这种下载方式的缺点也很明显,那就是资源只由一个中心提供,而下载者数不胜数。这种一个资源发布者对应多个下载者、且下载者之间互不可见的模式决定了资源发布者的中心地位。只要资源发布者不在线,那么下载就无法进行。这种模式下,资源发布者的带宽必须足够高,否则会导致下载速度缓慢。同时,中心化的资源共享方式为互联网审查提供了捷径——只需封杀中心,就能快速中止资源的继续传播。
如果你正受以上问题困扰,那么你应该感谢美国工程师 Bram Cohen,他于 2001年发布了 BitTorrent 协议,让一些无法通过审查的资源的下载变得简单了一些。我们今天广泛使用的“种子”,使用的就是 BitTorrent 协议。
在阅读下面的内容之前,不妨先了解一下 P2P(用户群对用户群)网络。

对等式网络(peer-to-peer, 简称P2P),又称点对点技术,是无中心服务器、依靠用户群(peers)交换信息的互联网体系,它的作用在于,减低以往网路传输中的节点,以降低资料遗失的风险。与有中心服务器的中央网络系统不同,对等网络的每个用户端既是一个节点,也有服务器的功能,任何一个节点无法直接找到其他节点,必须依靠其户群进行信息交流。

简单的说,在 P2P 网络中,资源不再由一个人提供给所有人,而是由所有人提供给所有人。对此,这里有一个形象的比喻:

传统下载 = 一个地址为“xxx://xxx.xxxx.xxx/filename” 的地方有一堆砖块,你找几个工人来把这些砖块搬回来。
P2P下载 = 有

  • xxx://xxx.xxxx.xxx/filename/block1
  • xxx://xxx.xxxx.xxx/filename/block2
  • xxx://xxx.xxxx.xxx/filename/block3

这么几个地方有数量不同、形状不同的砖块,你找一些工人去这几个地方搬砖回来,你这里也有其它人要的砖块,你就让工人去搬砖的同时顺便把你自己的砖块也搬过去。

BitTorrent 协议

BitTorrent 的精髓是把一个文件分成许多小块,不同的下载者就能互相分享他/她们已经下载好的部分,从而避免了直接下载整个文件,提高效率。

当一个资源发布者使用 BitTorrent 发布一个文件时,软件会自动生成一个后缀名为 torrent 的文件,也就是大家说的 BT 种子文件。这个种子文件里包含了目标资源的文件名文件大小分块后每个文件块的大小哈希值Tracker 服务器地址。通过文件里保存的 Tracker 服务器联系正在下载和已经下载该资源的人,并返回他们的 IP,下载就可以开始了。但如果找不到正在下载或已经下载该资源的人,资源发布者也不在线,那么下载者就只能以 0 KB/s 的速度干等着了。

不难看出,Tracker 服务器是 P2P 网络的弱点,一旦 Tracker 被封禁,下载者就无法联系到其他下载者,也就无法进行下载。鉴于这一缺点,人们又开发出了许多新的协议,比如 ed2k(电驴)、freenet(自由网)等等。但今天最流行的,是磁力链接。

磁力链接

1
magnet:?xt=urn:btih:DA67761C41BD436067A527FCE0D036F381501F45&dn=1.txt&tr=udp%3a%2f%2f89.35.39.197%3a1337%2fannounce&tr=http%3a%2f%2ft.nyaatracker.com%3a80%2fannounce&tr=udp%3a%2f%2f109.248.43.36%3a6969%2fannounce&tr=udp%3a%2f%2ftracker.tiny-vps.com%3a6969%2fannounce&tr=https%3a%2f%2ftracker.gbitt.info%3a443%2fannounce&tr=udp%3a%2f%2fretracker.netbynet.ru%3a2710%2fannounce&tr=udp%3a%2f%2f93.158.213.92%3a1337%2fannounce&tr=udp%3a%2f%2ftracker.filemail.com%3a6969%2fannounce&tr=http%3a%2f%2f78.30.254.12%3a2710%2fannounce&tr=http%3a%2f%2f86.62.124.78%3a80%2fannounce&tr=https%3a%2f%2ftracker.vectahosting.eu%3a2053%2fannounce&tr=http%3a%2f%2fvps02.net.orel.ru%3a80%2fannounce&tr=udp%3a%2f%2fretracker.maxnet.ua%3a80%2fannounce&tr=udp%3a%2f%2fretracker.baikal-telecom.net%3a2710%2fannounce&tr=udp%3a%2f%2f37.235.174.46%3a2710%2fannounce&tr=udp%3a%2f%2f81.200.240.19%3a6969%2fannounce&tr=udp%3a%2f%2f190.146.242.80%3a7070%2fannounce&tr=udp%3a%2f%2fzephir.monocul.us%3a6969%2fannounce&tr=http%3a%2f%2ftracker.files.fm%3a6969%2fannounce&tr=&tr=http%3a%2f%2f193.148.69.107%3a80%2fannounce&tr=http%3a%2f%2f176.113.71.19%3a6961%2fannounce&tr=udp%3a%2f%2f212.1.226.176%3a2710%2fannounce&tr=http%3a%2f%2fgwp2-v19.rinet.ru%3a80%2fannounce&tr=http%3a%2f%2ftracker3.itzmx.com%3a6961%2fannounce&tr=udp%3a%2f%2ftracker.uw0.xyz%3a6969%2fannounce&tr=https%3a%2f%2fopentracker.xyz%3a443%2fannounce&tr=udp%3a%2f%2f188.241.58.209%3a6969%2fannounce&tr=http%3a%2f%2fopen.trackerlist.xyz%3a80%2fannounce&tr=http%3a%2f%2f93.158.213.92%3a1337%2fannounce&tr=udp%3a%2f%2f91.216.110.52%3a451%2fannounce&tr=https%3a%2f%2ftracker.parrotsec.org%3a443%2fannounce&tr=udp%3a%2f%2f212.47.227.58%3a6969%2fannounce&tr=udp%3a%2f%2ftracker.openbittorrent.com%3a80%2fannounce&tr=udp%3a%2f%2f185.83.215.123%3a6969%2fannounce&tr=udp%3a%2f%2f95.211.168.204%3a2710%2fannounce&tr=udp%3a%2f%2f184.105.151.164%3a6969%2fannounce&tr=https%3a%2f%2ft.quic.ws%3a443%2fannounce&tr=udp%3a%2f%2f52.29.11.73%3a6969%2fannounce&tr=https%3a%2f%2ftracker.fastdownload.xyz%3a443%2fannounce&tr=udp%3a%2f%2f5

只要获得像上面这样一大串字符,你就可以轻松的下载到你所需要的文件。每一个磁力链接都以类似magnet:?xt=urn:btih:的字符串开头,并指向一个特定文件。其中,magnet为协议名,xt表示后面是文件哈希值的统一资源名称,urn 为资源名称,btih 为哈希方法名,还可以使用ed2k, AICH, MD5, SHA1 等等,当然Base64也可以。剩下的,就是文件标识符了。

磁力链下载与种子下载最大的区别就是磁力链摆脱了对 Tracker 的依赖,实质上是把每个人都变成一个 Tracker,每个人手里都有一份动态更新的地址和文件信息,使用异或算法来计算节点(下载者)与资源间的逻辑距离。这些节点地址就储存在你手中的 K-bucket 里,这种网络结构被称为分布式哈希表(DHT, Distributed Hash Table),一种去中心化网络,稳定性高、宽容度高。在 DHT 网络中,任何一个节点下线都不会影响整个网络的运行。

DHT 网络

e3xSHO.png

正是这些天才门的设计,让一些内容能够避开审查。因为网站可以被封禁、被拔线、被 404,但 种子/磁力链/电驴/…… 不会。只要它们不死,那些内容就永远活在互联网上,永远不会被毁掉。

就在上个月,美国哲学家 Larry Sanger 在他的博客上发布了一个项目:Declaration of Digital Independence(数字独立宣言)。其致力于坚持并推广以下观点:

我们的隐私、安全和言论自由的权利,并不是由任何公司、组织或政府赋予的,而是由独立个体通过自由认可普遍的标准和协议得以实现的。

该宣言的中文翻译版本在这里

从这份宣言可以看出,建设一个去中心化网络不仅仅是为了让更多的内容避开审查,还可以更好地保护移动互联网时代人们的隐私。当下,大数据分析、人工智能、机器学习大行其道,用户数据如同一大块肥肉,几乎每个服务商都希望从中扯下一小块。自然无可厚非,但以收集用户数据之名来窃取用户的个人信息这种事情也绝不会无人为之。而既要让服务商收集到有用的用户数据,又不至于侵犯到用户的隐私,目前最好的方法就是建设一个去中心化网络,使服务商收集到的信息中不会包含诸如 IP 地址之类的敏感信息(当然,在中国 IP 地址没什么用)。

此外还有星际文件系统(IPFS, InterPlanetary File System)、网状网络(Mesh Network)等基于区块链的去中心化网络概念。这些,都是下一代 Web 的种子选手。

终于,人类即将迎来继万维网之后的又一次信息革命。


参考资料:

【回形针PaperClip】别再问我什么是 BT 种子

【维基百科】BitTorrent (协议)

【知乎】谁能彻底清除地把P2P下载的原理讲清楚?

【百度百科】磁力链接

分享到: