0

    下一代开放互联网

    2023.06.30 | admin | 197次围观

    三、龙与屠龙者

    互联网并非一直如此。我们所熟知的互联网发源于万维网(World Wide Web),由蒂姆·伯纳斯-李(Timothy Berners-Lee)在欧洲核子研究组织(CERN)工作时设计,最早用于科学家之间传输数据,第一台服务器于1991年上线。

    万维网使用HTTP协议(HyperText Transfer Protocol,超文本传输协议)进行数据传输。这项协议预设了服务器与客户端的分离:服务器负责准备数据(例如网页),客户端浏览器负责接收和处理数据(例如渲染网页代码)。

    这样的分离在早期不是问题。早期参与者都有资深的技术背景,足以建立个人服务器,加入分布式内容网络,形成了互联网早期独特而繁荣的亚文化。这种繁荣使得互联网扩散进入大众的生活,同时运营网站与服务器成为少数公司的职能,数据与权力在不知不觉中聚合了起来。

    不同结构的网络形态,从左到右为中心化、去中心化与分布式。目前Facebook、Google、微信、淘宝等平台提供的服务都是中心化的,平台作为中心节点,连接用户。而分布式网络规避了中心化,这样的优势在于,即便任何节点出现问题,剩下的节点也可以绕开该节点重新组建,网络畅通无阻。图片引自Paul Baran (1964)。

    这种权力的聚合在互联网早期曾被人们预料到,也曾被互联网的先行者们极力抵制。但在2000年之后,Amazon、Google、Oracle及阿里巴巴等公司云服务兴起,权力的集中与聚合开始加速。

    内容的发布方式也是如此。网站从个人网站转型为社交平台,网站内容从个人创作转型为用户生成,网页也从个人发布的静态网页演变为社群共享的动态网页。web1.0时代向web2.0时代迈进,似乎人人都拥有了更大的发声权力,成为一座座信息的灯塔。

    但实际上,筛选和审查内容的权力集中于平台,具备价值的社交数据和内容也并不属于用户。用户习惯于内容的免费获取,互联网经济依赖着广告费与广告点击。当用户数据成为商业价值的核心,博取眼球成为平台赖以生存的能力,内容市场便开始劣币驱逐良币。

    由于互联网的发展与初衷严重悖离,万维网创始人蒂姆·伯纳斯-李于2016年领导MIT去中心化信息工作组(Decentralized Information Group),协助互联网档案馆(Internet Archive)举办了第一届去中心化网络峰会,第二届也将于今年7月在旧金山召开。这只是诸多重塑互联网的努力之一,意在塑造一个更好的web3.0,将信息控制的权力交还给每位网民。

    近几年来,web3.0发展的最大机遇无疑是区块链技术。其中,最引人瞩目的是以太坊项目(Ethereum),它的终极目标是成为新一代互联网基石——“世界计算机”(其JavaScript与python的库直接命名为web3.js与web3.py,足见它重塑互联网的野心)。

    通过智能合约,区块链使得整个网络不需要相互信任,就能够达成并记录共识。一方面它提供了去中心化的电子货币,使得价值的传递不再依靠点击量与广告商。更重要的是,这为整个网络提供了可靠的分布式逻辑处理电驴连接不上服务器解决方法,让完全分布式的应用(Dapp, distributed application)成为可能。

    但是,逻辑处理仅仅是网络应用需要的诸多资源之一。况且,由于需要达成大范围的共识,区块链技术在设计上就需要牺牲处理能力来换取可靠性。分布式应用仍然需要许多其他的分布式技术作为基础设施。

    拿以太坊项目为例,实现“世界计算机”取决于区块链以外的两个子项目:一是用于分布式存储的Swarm,二是用于点对点即时通信的Whisper。但Swarm尚不稳定、开发滞后,Whisper更是尚在萌芽中。

    所幸,分布式系统既是计算机科学的重要研究领域,也是互联网自由主义者们不曾停止探索的疆域。众多想法跟随区块链一起受到关注,不断复兴、演变,成为现实中的技术。这些技术所推动的研究与应用,将会从其他角度重塑互联网。

    互联网的本质,也正在于人与人之间信息的自由交换。也许重塑互联网的第一步,便是实现这种数据存储与传递的新方式——分布式储存。

    四、分布式存储的复兴

    分布式互联网所需的储存技术,实际上与P2P(点对点)文件传输系统相同。无论是被称作“暗网”的Freenet、I2P和ZeroNet,还是用于文件下载的BitTorrent、ed2k(电驴)、kad网络和快播,都是通过用户间的直接数据交换来传递,极少依赖服务器。P2P(点对点)网络曾在2009年,占到互联网流量的43%-70%,抵达巅峰。然而近十年,随着视频网站的兴起和版权意识的提高,这一比例不断走低。

    大部份P2P系统采用DHT数据结构,让节点不依赖中心服务器就能找寻其他节点。当一个节点试图寻找一份文件时,会向临近的节点广播文件指纹(hash),请求协助和找寻更多节点。找到拥有文件的节点后,两个节点可以建立连接、开始下载。图片来源:

    通过分布式哈希表(DHT,distributed hash table)技术,分布式系统里的任何节点仅需知道少数邻近节点的地址,就可通过这些节点不断向外搜索其他相应节点,最终获取相关信息。这样的网络具有更强的可塑性,任何节点出问题都无法影响整体网络运作,同时再多节点加入也不会影响网络的传输及寻址效率。

    基于过往的一场又一场网络实验,许多项目将最优秀的想法整合在一起,形成一整套分布式算法与协议组成的生态系统,Sia、Storj、Maidsafe、IPFS和Dat Protocol都是其中的例子。

    IPFS

    2017年5月,由于维基百科拒绝删除词条中关于土耳其政府与叙利亚圣战主义者的段落,导致土耳其政府下令封锁维基百科。土耳其民众将土耳其语维基百科储存在了分布式网络之中,得以绕开封锁。

    2017年10月,西班牙加泰罗尼亚地区决定针对独立举行全民公投,西班牙政府封锁了所有加泰罗尼亚域名的网站,阻止公投进行。但加泰罗尼亚政府与民众将投票网站建立在了分布式网络之中,最后仍有超过40%的公民成功参与了投票。

    这两次反封锁行动采用的都是IPFS(InterPlanetary File Syste9m,星际文件系统)网络。这个漫画般的名字一方面是对计算机科学家Joseph Licklider的致敬:Joseph Licklider在Licklider担任美国国防高级研究计划局主任时,曾提出“星系间计算网络”(InterGalactic Computer Network),最终成为了世界上第一个运营的封包交换网络,全球互联网始祖ARPANET(由美国国防部开发,1969年11年正式投入运行)。另一方面,这个名称也昭示了IPFS的野心:为人们提供可靠且高效的数据传输方式,即便人类移民火星,仍能在星际间传输数据。

    加泰罗尼亚地区的技术高手们汇聚巴塞罗那,通过IPFS寻找绕开封锁的办法。图片引自

    IPFS的野心远不止于突破封锁,它的最终理想是将分布式存储变为计算机文件系统中的一部分。这个项目想要解决的是目前互联网数据传输的根本问题:数据过分依赖单一节点,传输效率低下;数据未能有效加密,用户隐私无法得到保障;网页与链接常常在数天后失效,内容再也无法提取,人类历史也随之消亡。

    除了通过DHT等算法寻找节点外,分布式储存的另一关键技术是内容寻址。在目前HTTP/HTTPS组成的网络中,用户输入的域名(例如或)被层层解析、对应到服务器地址后,用户再与服务器建立连接。而IPFS采用的内容寻址模式,用户只要直接输入所需文件(比如网站主页html文件)的指纹,程序即可在网络中找寻到拥有该数据的节点建立链接,传输数据。

    这种文件指纹又被称为hash,是哈希函数的计算结果。哈希函数的作用类似于数字摘要,将任意长度的数据转换为固定长度的字符串。同时,只要原数据发生任何改变,计算出的hash都会不同。以hash作为网址意味着,同样的网址一定会得到同一个文件,网页链接永远可靠,所以IPFS也被称作“永久网络”(Permanent Web)。

    一个文件的hash可以和另一个文件加和之后,进行哈希函数计算,形成第二个hash。如此一来,不同的文件可以通过hash相互连接成文件树,大文件也可以分块后再串在一起。这种结构被称作哈希树(或者默克尔树,Merkle Tree),这是一种在分布式系统中逐渐开始流行的数据结构。不管是常用的代码管理工具git,遍布世界的Bittorrent,还是各色各样的区块链,都是某种形式的哈希树,能够直接储存于IPFS网络中,高效地识别和调用。

    IPFS(左上)、Bittorrent(中上)、git(右上)、比特币(左下)、以太坊(右下)都是某种形式的哈希树,天然适合以同样的方式进行存储和传输。图片来源:IPFS主创Juan Benet演讲PPT。

    既然是分布式储存,数据就也需要一定的“冗余度”,保证网络中有多个拷贝。同时,需要有一些节点长期在线,保持数据可读。为了解决这个问题电驴连接不上服务器解决方法,IPFS创造了电子货币Filecoin,让用户可以通过Filecoin来交易各自的存储空间,提供缓存节点。这同时创造了一个基于区块链的云存储市场,有望和亚马逊、Google及阿里巴巴等云服务商竞争。

    Dat Protocal

    IPFS团队在公众面前频繁亮相,从Y Combinator新闻、硅谷的Tedx到斯坦福大学的计算机系统研讨会,通过Filecoin进行ICO,又从Union Square Ventures等风投公司获得了近亿元的投资,成立公司ProtoLab。相比IPFS项目的来势凶猛,另一个项目Dat Protocal,则显得低调而神秘,但却另辟蹊径建立起了高质量的生态系统。

    Dat Protocal团队的发展哲学与IPFS大相径庭,核心项目贡献者不过三四人,生态系统中其他项目也不过一两名开发者。互联网历史上有过太多昙花一现的分布式项目,Dat Protocal团队认为它们失败的原因,是项目在足够强大之前吸引了太多的用户和关注,超出了当下的技术和团队的处理能力。

    Dat Protocal的贡献者和用户大都是科研工作者,致力于科研数据和文献的自由传播。Dat Project建立的机构Code for Science and Society(CSS),致力于通过软件促进科研与社会公益。CSS只接受如Knight Foundation和Alfred Sloan Foundation这些公益基金的捐赠,核心成员通过自己其他的全职工作支持项目开发。就连推崇的前端框架,也避开了React、Angular和Vue这些有大公司背景的项目,而选择了Choo.js这样一个小众但是轻量、高效的框架。

    IPFS采用内容寻址的麻烦之处在于,更新内容也需要更新hash,动态网页需要额外的指针来跟踪不断变化的地址。Dat Protocal的寻址方式则把重心放在发布者上:文件的地址本身是发布者的公钥,而文件内容由发布者的私钥加密与签署,拥有地址的用户可以解密并验证文件来源。

    通过非对称加密,用户可以生成一对字符串:私钥和公钥。私钥和公钥的特性在于:私钥可以用来加密一段数据,而公钥则可以解密这段数据。例如上图中,Alice有一段只有自己知道的私钥,和一段她的联系人都知道的公钥。当Alice想要向Bob发送一段重要信息时,她可以把这段信息加密后传给Bob,Bob收到后可以用公钥解密。这样,既避免了信息被拦截和阅读,也验证了发送者的身份。

    尽管只投入了很少的精力与人力,Dat Protocal生态系统依然贡献了许多高质量的组件,如分布式网盘Hyperdrive,同时Dat网络之中也有了一些高质量的应用,例如Sciencefair(一个使得科研工作者能够绕开版权限制,直接点对点共享文献的桌面应用)。相比IPFS,Dat Project的这种构架更适合实时交互和流媒体传播。比如,通过Dat Project实现的Hyebercast项目,足以让用户之间不依赖服务器即可直接进行视频通话。

    相较普通用户而言,分布式网络的最大门槛在于接入。就像2000年左右互联网第一次兴起时,人们需要学习如何购买互联网运营商的服务、选择浏览器及注册邮箱等。降低这个门槛将会是决定分布式网络存活的关键。值得庆贺的是,现在Dat项目已经有了相当好的浏览器支持:Beaker桌面浏览器可直接支持Dat协议,移动端浏览器Bunsen也正处于开发之中,而发展迅速的Brave浏览器将计划在今年支持Dat协议。

    版权声明

    本文仅代表作者观点。
    本文系作者授权发表,未经许可,不得转载。

    发表评论