《IPFS原理与实践》-IPFS的起源

2021-04-14 13:28:33 FIL16888 4573

1.1.2 IPFS的起源

全球化分布式存储网络并不是最近几年的新鲜品,其中最有名的3个就是BitTorrent、Kazaa、和Napster, 至今这些系统在全世界依旧拥有上亿活跃用户。尤其是BitTorrent客户端,现在BitTorrent网络每天依然有超过1000万个节点在上传数据。(不少刚从高校毕业的朋友应该还记得在校内网IPv6上分享电影和游戏资源的情景)但令人遗憾的是,这些应用最初就是根据特定的需求来设计的,在这三者基础上灵活搭建更多的功能显然很难实现。虽然在此之前学术界和工业界做过一些尝试,但自始至终没有出现一个能实现全球范围内低延时并且完全去中心化的通用分布式文件系统。
之所以普及进展十分缓慢,一个原因可能是目前广泛使用的HTTP协议已经足够好用。截至目前,HTTP是已经部署的分布式文件系统中最成功的案例。它和浏览器的组合是互联网数据传输和展示的最佳搭档。然而,互联网技术的进步从未停止,甚至一直在加速。随着互联网的规模越来越庞大,现有技术也越来越暴露出了诸多弊端,庞大的基础设施投资也让新技术的普及异常困难。
但我们说,技术都有其适用的范围,HTTP也是如此。四大问题使得HTTP面临越来越艰巨的困难:
1)极易受到攻击,防范攻击成本高。随着Web服务变得越来越中心化,用户非常依赖于少数服务供应商。HTTP是一个脆弱的、高度中心化的、低效的、过度依赖于骨干网的协议,中心化的服务器极易成为攻击的目标。当前,为了维护服务器正常运转,服务商不得不使用各类昂贵的安防方案,防范攻击成本越来越高。这已经成为HTTP几乎无法克服的问题。
2)数据存储成本高。经过十多年互联网的飞速发展,互联网数据存储量每年呈现指数级增长。2011年全球数据总量已经达到0.7ZB(1ZB等于1万亿GB);2015年,全球的数据总量为8.6ZB;2016年,这个数字是16.1ZB。到2025年,全球数据预计将增长至惊人的163ZB,相当于2016年所产生16.1ZB数据的10倍。如果我们预计存储4000GB(4TB)的数据,AWS简单存储服务(S3)的报价是对于第1个TB每GB收取0.03美金,对于接下来的49TB每GB收取0.0295美金的费用,那么每个月将花费118.5美金用于磁盘空间。数据量高速增长,但存储的价格依旧高昂,这就导致服务器-客户端架构在今后的成本将会面临严峻的挑战。
3)数据的中心化带来泄露风险。服务提供商们在为用户提供各类方便服务的同时,也存储了大量的用户隐私数据。这也意味着一旦数据中心产生大规模数据泄露,这将是一场数字核爆。对于个人而言,用户信息泄露,则用户账号面临被盗风险,个人隐私及财产安全难以保障;对于企业而言,信息泄露事件会导致其在公众中的威望和信任度下降,会直接使客户改变原有的选择倾向,可能会使企业失去一大批已有的或者潜在的客户。这并不是危言耸听,几乎每一年都会发生重大数据库泄露事件。2018年5月,推特被曝出现安全漏洞,泄露3.3亿用户密码;2017年11月,美国五角大楼意外泄露自2009年起收录的18亿条用户信息;2016年,LinkedIn 超1.67亿个账户在黑市被公开销售;2015年,机锋网被曝泄露2300万用户信息。有兴趣的读者可以尝试在公开密码泄露数据库中查询,是否自己的常用信息或常用密码被泄露,但自己却毫不知情。
4)大规模数据存储、传输和维护难。现在逐步进入大数据时代,目前HTTP协议已无法满足新技术的发展要求。如何存储和分发PB级别的大数据、如何处理高清晰度的媒体流数据、如何对大规模数据进行修改和版本迭代、如何避免重要的文件被意外丢失等问题都是阻碍HTTP继续发展的大山。
IPFS就是为解决上述问题而诞生的。它的优势如下:
1)下载速度快。如图1-2所示,HTTP上的网站大多经历了中心化至分布式架构的变迁。与HTTP相比,IPFS将中心化的传输方式变为分布式的多点传输。IPFS使用了BitTorrent协议作为数据传输的方式,使得IPFS系统在数据传输速度上大幅度提高,并且能够节省约60%的网络带宽。
2)优化全球存储。IPFS采用为数据块内容建立哈希去重的方式存储数据,数据的存储成本将会显著下降。
3)更加安全。与现有的中心化的云存储或者个人搭建存储服务相比,IPFSBZZ的分布式特性与加密算法使得数据存储更加安全,甚至可以抵挡黑客攻击。
4)数据的可持续保存。当前的Web页面平均生命周期只有100天,每天会有大量的互联网数据被删除。互联网上的数据是人类文明的记录和展示,IPFS提供了一种使互联网数据可以被可持续保存的存储方式,并且提供数据历史版本(Git)的回溯功能。

image.png

上文我们提到IPFS技术积累已经有很多年了,它至少参考了4种技术的优点,并将它们整合在一起。这4种技术分别是分布式哈希表DHT、Kademlia、Git和自验证文件系统(Self-Certifying File System)。
第一种对IPFS有借鉴意义的技术是DHT,全称为分布式哈希表(Distributed Hash Table),是一种分布式存储方法。DHT的原理是:在不需要服务器的情况下,每一个客户端存储一小部分数据,并负责一定区域的检索,进而实现整个DHT网络的寻址和检索。新版BitComet允许同时连接DHT网络和Tracker,可以在无Tracker的情况下进行下载。
IPFS借鉴的第二种技术是Kademlia。在Kademlia网络中,所有信息均以哈希表条目的形式加以存储,这些信息被分散地存储在各个节点上,从而以全网构成一张巨大的分布式哈希表。可以形象地把这张哈希大表看成一本字典:只要知道了信息索引的key,便可以通过Kademlia协议来查询与其对应的value信息,而不管这个value信息究竟是存储在哪一个节点之上。正是这一特性确保了IPFS成为没有中心调度节点的分布式系统。IPFS还借鉴了BitTorrent网络。首先是消极上传者的惩罚措施,在BitTorrent的客户端上传数据会奖励积分,而长期不上传的消极节点会被扣分,如果分数低于一定限度,那么网络会拒绝再为他们提供服务;其次是文件可用性检查,BitTorrent优先把稀缺的文件分享出去,各个客户端之间相互补充,这样种子不容易失效,传输效率也提高了。针对BitTorrent我们不再详细展开,有感兴趣的读者可以查阅BitTorrent相关文档。
第三种对IPFS有重大影响的项目是Git。我们在进行大文件传输或修改的时候总会遇到存储或传输压力大的问题,而Git在版本迭代方面非常出色。Git存储时会把文件拆成若干个部分,并计算各个部分的哈希值,利用这些构建起与文件对应的有向无环图(DAG),DAG的根节点也就是该文件的哈希值。这样的好处十分明显:如果需要修改文件,那么只需要修改少数图中节点即可;需要分享文件,等价于分享这个图;需要传输全部的文件,按照图中的哈希值下载合并即可。
最后一种是具有自验证功能的分布式文件系统(Self-certifying File System,SFS),它将所有的文件保存在同一个目录下,所有的文件都可以在相对路径中找到,其SFS路径名是其原路径与公钥的哈希。聪明的读者会发现,这样的设计包含身份的隐式验证功能,这就是为什么SFS被称为自验证文件系统了。


首页
产品
新闻
联系