2020年初新冠疫情暴发,全世界史无前例地转向了远程办公。一些互联网服务提供商则采取了预防措施,暂时缩减了服务规模,不过这对于亚洲、欧洲和北美国家来说可能并非必需的措施,这些地区通常能够应对远程办公(以及疯狂观看网飞节目)带来的需求激增。因为其网络大多过度配置,容量超过了通常所需。但是,在没有同等网络基础设施投资水平的国家,情况就不那么乐观了:例如,南非和委内瑞拉的互联网服务提供商(ISP)就报告了严重的压力。不过,过度配置是确保网络韧性的唯一方法吗?我们不这么认为。然而,要理解我们倡导的另一种方法,首先需要回忆一下互联网的工作原理。互联网的核心协议被贴切地称为“互联网协议”(IP),它定义了一种计算机用来相互通信的寻址方案。该方案将地址分配给具体设备(即人们的计算机和服务器),并根据需要使用这些地址在它们之间发送数据。这种模式很适合将独一无二的信息从一个点发送到另一个点,比如银行对账单或恋人之间的通信。当互联网主要用于向不同的人发送不同内容时,这种方法是有意义的。但这种设计并不适合大量消费静态内容,如电影或电视节目。如今的现实是,互联网更常被用于向许多人发送完全相同的内容,而且现在这种情况非常多,其中大部分是以视频的形式。随着屏幕分辨率不断提高,4K视频已得到广泛使用,8K视频即将面世,需求也越来越高。通过将内容临时存储在许多ISP附近甚至内部,网飞等流媒体服务使用的内容分发网络(CDN)可帮助解决问题。但这个战略依赖的是ISP和CDN能够达成交易并部署所需的基础设施。而且网络边缘依然不得不处理比实际需求更多的流量。真正的问题不在于传递内容的多少,而在于如何将其从一个中心源传递给许多不同的远程用户,即使这些用户彼此相邻。在这种情况下,以点对点的方式直接将数据从邻居的设备发送至你的设备则是一种更有效的分发方案。但你的设备怎么知道该问谁?答案就是星际文件系统(IPFS)。之所以被命名为“星际文件系统”,是因为理论上它甚至可以扩展到在太阳系不同行星上的计算机之间共享数据。不过目前,我们只专注于为地球推出这种系统!IPFS的关键在于“内容寻址”。机器不会要求特定提供商“请将此文件发给我”,而是询问网络“谁可以将此文件发给我?”它首先询问它的对等方:用户附近的其他计算机、同一座房子或办公室的其他计算机、同一社区的其他计算机,以及同一城市的其他计算机,如果需要,会逐渐向外扩展到全球更远的地方,直到系统找到你要找的内容的副本。这些询问使用的是IPFS,它是支持万维网超文本传输协议(HTTP)的替代方案。建立在点对点网络和基于内容的寻址原则的基础上,IPFS可以实现分散和分布式的数据存储和传输网络。IPFS的好处有更快、更高效的内容分发,但远不止于此。IPFS还可以通过内容完整性检查来提高安全性,这样数据就不会被中间参与者篡改。而且,使用IPFS,即使与始发服务器的连接被切断,或者最初提供内容的服务中断,网络也可以继续运行,这在网络只能间歇性工作的地方尤为重要。此外,IPFS还可以抗审查。为了更全面地了解IPFS与当今大多数在线服务的区别,我们可以快速了解一下互联网的架构和一些早期的点对点方式。如上所述,在当今的互联网架构中,我们根据服务器地址请求内容。这源于作为互联网基础的协议,它管理着数据从点到点的流动。温顿•瑟夫(Vint Cerf)和鲍勃•卡恩(Bob Kahn)在1974年的《IEEE通信汇刊》中首次介绍了该方案,现在该方案被称为“互联网协议”。万维网建立在互联网协议之上。Web浏览就是向由IP地址标识的特定机器询问给定数据。这个过程一开始是用户在浏览器地址栏输入一个全球资源定位器(URL),浏览器获取主机名部分并将其发送到域名系统(DNS)服务器。DNS服务器会返回相应的数字IP地址。然后,用户的浏览器会连接到这个IP地址,并请求位于该URL的Web页面。换言之,即使同一栋楼中的计算机有目标数据的副本,它也收不到请求,更无法将请求与它持有的副本相匹配,因为内容没有固有的标识符,它不是内容寻址的。互联网的内容寻址模型会将主导作用赋予数据而非设备。请求方使用唯一标识符(类似于期刊文章的DOI号或书籍的ISBN)来明确地请求内容,互联网则把请求转发给拥有副本的可用对等方。这种做法面临的主要挑战是,它需要改变互联网的核心基础设施,但这种基础设施由全球成千上万家ISP拥有和运营,没有任何一个中央机构能够控制所有ISP的行为。虽然这种分布式架构是互联网的最大优势之一,但也使得对系统进行根本性改变几乎不可能,这会给许多使用它的人带来麻烦。即便实施渐进式改进往往也非常困难。IPv6就是一个很好的例子,它可以扩大可能的IP地址数量。但在IPv6推出近25年后的今天,它的采用率仍然没有达到50%。有一种方法可以绕过这种无力改变的情况,即在现有互联网协议之上的更高的抽象层进行更改,不需要修改底层网络软件堆栈或中间设备。除IPFS之外,BitTorrent和Freenet 等其他点对点系统也试图通过引入可以与万维网并行运行的系统来实现这一点,尽管这些系统通常具有Web界面。例如,我们可以单击Web链接来启动与文件关联的比特流跟踪器,但这个过程通常需要将跟踪器数据从Web浏览器传送给另一个应用程序以进行传输处理。如果找不到追踪器链接,也就找不到数据。自由网还会使用分布式点对点系统来存储内容,这些内容可以通过标识符进行请求,甚至可以使用Web的HTTP协议访问。但自由网和IPFS的目标不同:自由网非常注重匿名性,并以满足这一目标的方式管理着数据的复制,却降低了性能和用户控制。IPFS则提供了灵活、高性能的共享和检索机制,但将数据控制权置于用户手中。我们设计IPFS协议是为了对Web进行升级,而不是为了创建替代版本。它的目的是让Web变得更好、实现离线工作、让链接永久化、使其更快更安全,以及尽可能容易使用。IPFS始于2013年,是一个得到协议实验室(Protocol Labs)支持、由数千个组织和数万名开发人员打造的开源项目,这些组织和人员组成了一个充满活力的社区和生态系统。IPFS建立在先前点对点(P2P)网络和基于内容的寻址工作的坚实基础之上。所有P2P系统的核心原则是用户同时作为客户端(请求和接收他人的文件)和服务器(存储和发送文件给他人)参与。内容寻址和P2P相结合,提供了正确的要素便于从拥有目标内容副本的最近对等方获取数据。更准确地说,这种最近的对等方是网络拓扑结构上最近的对等方,不一定是物理距离上最近的。为了实现这一点,IPFS会给它持有的内容生成指纹,称为“哈希”,其他物品都无法拥有。我们可以把这个哈希想象成该内容的唯一地址。对内容做出一点修改就会产生完全不同的地址。想要获取这段内容的计算机会对拥有该特定哈希的文件发出广播请求。由于标识符是唯一且不会改变的,人们通常将IPFS称为“永久Web”。而且有了永远不会改变的标识符,只要网络上的某台计算机存储了某个特定文件,网络就能找到它。名称持久性和不变性本质上带来了另一个重要特性——可验证性。有了内容及其标识符,用户可以验证接收到的内容是否是所要求的内容,以及有没有被篡改(无论是在传输过程中被篡改还是被提供商篡改)。这不仅能提高安全性,而且有助于保护公共记录,防止历史被改写。你可能想知道,如果有内容需要更新以包含新信息该怎么办,例如Web页面。这是一个值得关注的问题,IPFS确实有一套机制可以将用户指向最新的内容。全世界都曾有机会观察到内容寻址的工作原理。2017年4月,由于维基百科上的一篇文章将土耳其描述为支持恐怖主义的国家,因此该国政府封锁了对该平台的访问。一周内,土耳其版维基百科的完整副本被添加到了IPFS中,由此,在禁令持续的近3年里,土耳其人民仍然可以访问相关信息。半年后也发生了类似的情况,西班牙政府试图镇压加泰罗尼亚的独立公投,下令ISP屏蔽相关网站。相关信息再次通过IPFS保持了可用性。IPFS是一个无需许可的开放网络,任何用户都可以加入、获取或提供内容。尽管有许多成功的开源案例,但当前的互联网在很大程度上是基于封闭平台的,其中许多平台采用了锁定策略,不过也为用户提供了极大的便利。虽然IPFS可以提高效率、私密性和安全性,但要让这个分散的平台具备人们习惯的可用性水平仍然颇具挑战。IPFS的点对点、非结构化特性既是优点也是缺点。虽然CDN构建了庞大的基础设施并采用了先进的技术来提供高质量服务,但IPFS节点由最终用户操作。因此,网络依赖于他们的行为,比如他们的计算机在线时长、连接性,以及他们决定缓存什么数据。而且这些事项往往不是最理想的。协议实验室工作人员面临的一个关键研究问题是,如何保持IPFS网络弹性,尽管构成它的节点存在缺陷,甚至在这些节点出现自私或恶意行为时该如何保持其弹性。要让IPFS的性能可以媲美传统分发渠道,我们就需要克服这些问题。你可能已经注意到,我们还没有提供IPFS地址的示例。这是因为基于哈希的寻址产生的URL不易拼写或打出来。例如,我们可以在合适的浏览器中使用以下地址在IPFS上找到维基百科的徽标:ipfs://QmRW3V9znzFW9M5FYbitSEvd5dQrPWGvPvgQD6LM22Tv8D/。这一长串字符可被视为持有该徽标的文件的数字指纹。还有其他内容寻址方案使用了人类可读的命名或者层级化的URL样式命名,但每种方案都有自己的取舍。找到实用方法让IPFS名称实现人类可读将大大有助于提高其用户友好性。这个目标我们尚未实现。在过去10年的大部分时间里,我们所在的协议实验室一直在解决这些问题以及其他技术、可用性和社会性问题。在这段时间里,IPFS迅速得到了越来越多的应用,其网络规模逐年翻倍。以这样的速度扩大规模也带来了许多挑战。但当你的意图正在改变我们所了解的互联网时,这是正常的。内容寻址和IPFS的广泛采用将有助于整个互联网生态系统。通过赋能用户请求准确的内容并验证其收到的内容是否被更改,IPFS将提高信任度和安全性。通过减少网络上移动的重复数据并从附近来源获取数据,ISP将能够以更低的成本提供更快的服务。即使网络被分隔,也能继续提供服务,这将提高我们的基础设施抵御自然灾害和其他大规模中断的能力。不过,分散化有没有不利的一面呢?我们经常听到关于不良行为者可能利用点对点网络支持非法活动的担忧。这些担忧很重要,但有时被夸大了。IPFS在HTTP基础上做出改进的一点是,允许对存储数据进行全面审计。例如,通过其内容寻址功能,特别是由于使用了唯一和永久的内容标识符,IPFS更易确定网络上是否存在某些内容,以及哪些节点正在存储这些内容。此外,IPFS可以轻松地让用户决定分发哪些内容和停止分发哪些内容(只需将其从机器中删除)。同时,IPFS没有提供允许审查的机制,因为它是一个没有中央机构的分布式P2P文件系统。因此,没有哪个参与者具备相关技术手段能够禁止文件存储和传播,或者从其他对等方的存储中删除文件。因此,无法在技术上强制对不想要的内容进行审查,这是对言论自由受到威胁的用户的保护。合法的内容下架请求仍然是可能实现的,但需要将其发送给实际存储内容的用户,以避免常见的滥用行为(如非法的数字千年版权法下架请求),而大型平台很难对此进行做出抵抗。最后,IPFS是一个受社区规则管理、对所有人开放的网络。今天,你也可以成为它的一部分!Brave浏览器内置IPFS支持,安卓版的欧朋浏览器也是如此。Chrome和火狐浏览器有可用的扩展插件,IPFS Desktop也便利了本地节点的运行。一些组织提供了基于IPFS的托管服务,还有一些组织运营着公共网关,允许我们通过浏览器从IPFS获取数据,而无需任何特殊软件。这些网关充当着P2P网络的入口,对引导程序的采用很重要。通过一些简单的DNS魔法,便可以对域进行配置,让用户的访问请求引起相应内容被网关检索和提供,并且以对用户完全透明的方式实现。到目前为止,IPFS已被用于打造各种应用程序,包括电子商务系统、科学数据集的安全分发、维基百科镜像、创建新的社交网络、癌症数据共享、区块链创建、安全和加密个人文件的存储和共享、开发者工具和数据分析。你可能已经使用过这个网络,如果你曾经访问过协议实验室的网站(Protocol.ai),那么你甚至在没有意识到的情况下就从IPFS中检索了一个网站的页面!作者:Yiannis Psaras、Jorge M. Soares、David Dias
IEEE Spectrum
《科技纵览》
官方微信公众平台
关注公众号:拾黑(shiheibook)了解更多
[广告]赞助链接:
四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/