KK在07年的一场TED上,问了观众一个问题:“互联网到现在为止只有五千天的历史,未来五千天会长成什么样? ”
他自问自答,现在的联网设备数量和相互之间通信频率,和我们的大脑中神经元数量和通信频率,非常接近。所以互联网用五千天进化成了一个“大脑”,未来的五千天呢?也许会进化成整个人类的共同体。
KK的话总是神神叨叨,但是经常给我启发。在他的描述中,互联网成了一个不断生长的生命体,在旧有的架构上长出新的皮层,或者凭空长出全新的结构,唯一不变的就是变化本身。互联网世界没有“历史的终结”,至少现在还远不是时候。
因此,当勇者跳出来说,“HTTP已死,IPFS当立” ,并且做出一套基本可行的demo方案之后,很多人愿意赌一把大的。去年,IPFS背后的公司Protocol Labs为旗下的另一个计划Filecoin融资时,A16Z,红杉,USV 这些在加密货币大玩家都来支援,最后一共募集了2.56亿美元,是去年最大的一起ICO。
IPFS讲了一个怎样的神奇故事?这个故事能实现多少?我们分三点来展开:
1. 现在的HTTP协议有什么问题?
2. IPFS自称要怎么解决这些问题?
3. IPFS真的能解决么?
现在的HTTP协议有什么问题?
HTTP协议很伟大,但是它已经是一个有28年历史的协议了,有些根深蒂固的Bug越来越碍眼:
1. HTTP的世界是中心化的。曾经的互联网是相对平等的,但是现在不是了。中心化带来的恶果有很多,最大的两个可能是扼杀创新和利于监管。
2. HTTP的世界是脆弱易碎的。11年的一个统计表明,互联网上一个网页的平均寿命只有100天。你访问的页面已经不存在 这句话不光在中国频繁出现,其他国家也是如此,可能原因略有不同。中心化管理的网络世界就是这样,有一千种原因会让某个网页永久消失。
3. HTTP的世界不够高效。HTTP协议下载文件是单线程的,一次从一台电脑获取信息,而不是像BT协议那样同时从多台电脑同步获取信息,所以视频类大文件传输会造成很大的流量浪费。
4. HTTP的世界太依赖主干网。依然是中心化的问题,一旦主干网出点故障,一大批网站的服务都会受影响。
IPFS夸下海口,上面提到的都不是问题,重新构建一个去中心化的互联网,这些问题都能解决!
IPFS要如何构建一套全新的互联网协议
最核心的一个特点:HTTP世界里你找的是文件的地址,IPFS世界里你找的是文件本身。
传统的HTTP协议中,你访问一个文件,要先知道这个文件所在服务器的IP地址,再根据文件的路径名称在服务器上获取文件。
同样是这个文件,如果存储到IPFS网络里,它会生成一个特有的编号,也就是这个文件的加密哈希,和文件内容是严格的一一对应关系,任意两份不同的文件都有不同的加密哈希。要访问这个文件,只需要知道这个文件的加密哈希,就能很快的在IPFS网络中找到它。
和HTTP世界里文件通常储存在单一服务器不同的是,IPFS对文件的存储是去中心化的,同一份文件会存储在多个节点中。对于大一点的文件,IPFS会自动讲将文件拆成小块,分别存储,用户在获取这份文件时,就能同时访问多个节点来提高访问速度,扮演了分布式CDN的角色。
这种文件存储的方式,完全不需要中心化的服务器,从而解决了HTTP协议的诸多难题:
1. 没有了中心化服务器,互联网中心化的局面会减缓;
2. 分布式存储有足够的冗余备份,不用担心某台服务器坏了就弄垮了一批网站;
3. 分布式DNS的存在还能提升带宽的利用效率;
4. 主干网有问题,也能通过附近的节点获得稳定服务。
分布式存储就意味着需要在全球都有足够多的节点,怎么才能让这些节点愿意贡献自己的硬盘和带宽呢?这就需要Filecoin出场了。按照各节点的贡献大小,它们会获得相应数量的Filecoin作为奖励,其他用户想在IPFS里存储文件时,也需要支付Filecoin作为成本。合理的激励制度,配合分布式组织,这个系统就能有条不紊的发展下去。
IPFS还有一个很有趣的设计。因为IPFS里的文件稍作变化就会生成不同加密哈希,同样的,一个网站如果不断更新的话,也会不断生成新的加密哈希作为网址。用户怎么知道最新的网址是什么呢?IPFS引入了一个新的机制IPNS(InterPlanetary Name Space):简单理解就是,一个网站可以对外公布一个不变的字符串作为永久地址,每次更新网站后都需要把这个字符串指向最新版网站。这样一来,用户只需要记一个固定字符串,就能每次都看到最新版网站了。
虽然有了固定的字符串作为网址,用户如果每次访问都得输入一串无规律字符,这个体验也是没法接受的。目前IPFS的解决办法是,借助现有的DNS生成普通人也能识别的正常网址。将来,IPFS希望通过Namecoin(去中心化的DNS)来解决这个问题,实现彻底的分布式网络。
总结一下,IPFS认为HTTP之所以有这么多Bug,是因为整个系统过于中心化。为了解决中心化的问题,IPFS选择从文件存储这一点进行突破。在IPFS的世界里,文件的存储地址不再重要,知道它的加密哈希就能访问,如此一来,文件就可以分布式的存储在整个网络的各个节点,利用Filecoin提供必要的激励,通过IPNS解决易用性问题,整套分布式网络的基本架构就成型了。
以上就是“HTTP已死,IPFS当立”的完整故事了。但是如小指头所言,人生不比歌谣,有朝一日,你会大失所望。IPFS从15年到现在,已经实现了一些功能,还有很多在开发中,但是要想取代HTTP,成为新一代协议,现在看来机会不大。
IPFS没有杀手锏功能
IPFS能做的,HTTP也有相应的方案能实现,也许IPFS的方法更好一些,但是优势不足以吸引大家整体迁移过去,毕竟重构新的网络世界是一件成本很高的事情。
分布式的文件存储是不是能用于规避政府监管?很不幸,在监管特别狠的国家,政府有很多办法封锁IPFS,不管是技术手段还是行政手段。
分布式CDN来提高带宽利用效率?这个问题可以从两个方面看,第一,目前的带宽没有那么紧张,现有的CDN体系已经可以很好的应对大流量的传输。第二,分布式CDN是否比现在的CDN模式更高效,这一点还存疑。
摆脱对主干网的依赖有同样问题,主干网出小问题时,对大部分用户的影响不大,真正出大问题时,IPFS能起到的作用也有限。
IPFS在独立网站存档这件事上还是有发挥空间的。未来只会有更多的人类信息被上传到网络,大量的小网站如果还有人访问,能够保存在IPFS上,也算人类的共同记忆。另外,不少区块链项目可能会把一部分数据保存在IPFS系统内,如果这些项目能发展起来,可能是个变量。
IPFS面临的问题和其他去中心化项目一样,如果现有的方案已经把问题解决的差不多了,为什么要冒险去采用全新的方法呢?尤其在新方法收益未知或者不显著的时候。
似乎没有什么好答案,BTC和ETH也是这么过来的,最初看起来没什么吸引力,直到某个爆发点出现,即使到现在境况改善之后,依然没有很好的回答这个问题。
Our lives are not our own. We are bound to others, past and present
如果把全人类看做一个系统,它也是分布式的,每个节点存储着一部分记忆,节点之间互相交换信息,不断有节点诞生和死去。有些特别的节点,它们发出的信息被很多节点存储,甚至成了整个网络的默认标准,比如轴心时代的几位先知。这些特别的节点,也是受其他节点的启发才做出惊人的创造,就像中本聪在白皮书最后列出的八篇文献,以及更多无法一一列出的先贤。
IPFS的开放式架构也是受互联网拓荒者的影响。IPFS曾经有另外一个名字叫Galactic File System,以此向Licklider的Intergalactic Computer Network致敬。Licklider不是一个耳熟的名字,但他曾是DARPA旗下信息处理技术办公室的第一任主管,Intergalactic Computer Network就是他构想的一种“向所有人开放的电子共同体”,几年后,这个愿景被ARPANET实现了,互联网进入了萌芽期。
我相信IPFS这套构想中的闪光点也会被其他人吸收,也许若干年后用到另一个计划中,最终能实现它今天的理想:
Distribute the web.
感谢思远,馨苑,霍炬,路遥,戴嘉乐,retric等朋友的帮助
Refernce:
https://muratbuffalo.blogspot.co.id/2018/02/paper-review-ipfs-content-addressed.html?m=1&from=timeline&isappinstalled=0
https://ipfs.io/
https://en.wikipedia.org/wiki/J._C._R._Licklider#Global_computer_network