什么是IPFS - BlockChain Storage 区块链存储 (1)
  mcY8w4sKMujI 2023年11月02日 120 0

经《IPFS原理与实践》主要作者董天一、戴嘉乐,以及华章出版社孙海亮老师的授权早在2017、2018年,董天一、戴嘉乐,和另外一位作者黄禹铭,就是国内IPFS的布道师,他们的文章是IPFS中文社区的权威阐述。本篇是书籍第1章的第1节,原标题为 认识IPFS


第1章       认识IPFS


欢迎大家来到第一章,在这一章里,我们首先来从宏观上了解IPFS。在了解技术细节之前,我们先来回答如下问题:什么是IPFS?为什么我们需要IPFS?它与常规的区块链系统相比,有什么异同?IPFS和Filecoin会给现在的区块链带来什么样的改变?相信读完这一章节,你会对上述几个问题有自己的理解。


1.1 IPFS概述


其实早在在2017年下半年,国内大部分投资人或开发者就已经接触到了IPFSFilecoin项目,那么IPFSFilecoin究竟是什么?IPFS与区块链到底是什么关系?其有什么优势,竟然会得到如此广泛的关注?其未来的应用前景到底如何?本节我们就来解答这几个问题。


1.1.1 IPFS的概念和定义


IPFS(InterPlanetary File System)一个基于内容寻址的分布式的新型超媒体传输协议IPFS支持创建完全分布式的应用。它旨在使网络更快,更安全,更开放。


IPFS是一个分布式文件系统,它的目标是将所有计算设备连接到同一个文件系统,从而成为一个全球统一的存储系统。某种意义上讲,这和Web最初的目标非常相似,但是它是利用BitTorrent协议进行Git数据对象的交换来达到这一个目标的。 IPFS正在成为现在互联网的一个子系统。


IPFS有一个更加宏伟而疯狂的目标:补充和完善现有的互联网,甚至最终取代它,成为新一代的互联网。这听起来不可思议甚至是一个疯狂的目标,但是的确是IPFS正在做的事情。图1-1IPFS的项目官网。


什么是IPFS - BlockChain Storage 区块链存储 (1)_数据


1-1 IPFS官网介绍

 

IPFS项目通过整合已有的技术(BitTorrentDHTGitSFS),创建一种点对点超媒体协议,试图打造一个更加快速、更加安全、更加开放的下一代互联网。实现互联网中永久可用,数据可以永久保存的全球文件存储系统,同时该协议拥有内容寻址、版本化特性,尝试补充甚至最终取代伴随我们了20多年的超文本传输协议(即:HTTP协议)。


IPFS是一个协议,也是一个P2P网络,它类似于现在的BT网络,只是拥有更强大的功能,使得IPFS拥有了可以取代HTTP的能力,为我们打造更好的Web


Filecoin是运行在IPFS上的一个激励层,是一个基于区块链的分布式存储网络,它把云存储变为一个算法市场,代币(FIL)在这里起到了很重要的作用。代币是沟通资源(存储和检索)使用者(IPFS用户)和资源的提供者(Filecoin矿工)的中介桥梁,Filecoin协议拥有两个交易市场,数据检索和数据存储,双方在市场里面提交自己的需求,达成交易,IPFSFilecoin相互促进,共同成长。解决了互联网的数据存储和数据分发,特别是对于无数的区块链项目,IPFS/Filecoin将作为一个基础设施存在。这就是为什么我们看到越来越多的区块链项目采取了IPFS作为存储解决方案,因为它提供了更加便宜、安全、稳定的存储解决方案。


1.1.2 IPFS的起源


 搭建全球化分布式存储网络并不是最近几年的新鲜品,其中最有名的三个就是BitTorrentKazaa、和Napster,至今这些系统在全世界依旧拥有上亿活跃用户。尤其是BitTorrent客户端,现在BitTorrent网络每天依然有超过1千万节点在上传数据。(不少刚从高校毕业不久的朋友应该还记得在内网IPV6上分享电影和游戏资源)但令人遗憾的是,这些应用最初就是根据特定的需求来设计,在这三者基础上灵活搭建更多的功能显然很难实现。虽然在此之前学术界和工业界做出了一些尝试,但自始至终没有出现一个能实现全球范围内,低延时,并且完全去中心化的通用分布式文件系统。


之所以普及进展十分缓慢,一个原因可能是目前广泛使用的HTTP协议已经足够的好用。截止目前,HTTP是已经部署的分布式文件系统中最成功的案例。它和浏览器的组合是互联网数据传输和展示最佳的搭档。然而,也正是如此成功的HTTP协议,正在让互联网新技术部署变得越来越困难。一方面新技术难以兼容目前的软硬件架构,另一方面大公司们又依旧不断在增加现有架构的投入,改进网络的基础设变得更加困难。这就逐步形成了闭环,少有人愿意去打破它。


但我们说,好用的HTTP协议也不是如此完美,四大问题使得HTTP面临越发艰巨的困难:


1极易受到攻击,防范攻击成本高。随着Web服务变得越来越中心化,用户非常依赖于少数服务供应商。HTTP是一个脆弱的、高度中心化的、低效的、过度依赖于骨干网的协议。中心化的服务器极易成为攻击的目标。当前,为了维护服务器正常运转,服务商不得不使用各类昂贵的安防方案,防范攻击成本越来越高。这已经成为HTTP几乎无法克服的问题。


(2)数据存储成本高。经过十多年互联网的飞速发展,互联网数据存储量每年呈现指数级数增长。2011年全球数据总量已经达到0.7ZB1ZB等于1万亿GB),2015年全球的数据总量为8.6ZB2016年这个数字是16.1ZB。到2025年,全球数据预计将增长至惊人的163ZB,相当于2016年所产生16.1ZB数据的十倍。如果我们预计存储4000GB(4TB)的数据,AWS简单存储服务(S3)的报价是对于第一个TBGB收取0.03美金,对于接下来的49TB收取每GB 0.0295美金的费用。这将花费每个月118.5美金的开销用于磁盘空间。数据量高速增长,但存储的价格依旧高昂,这就导致在服务器-客户端架构在今后的成本会成为严峻的挑战。


3数据的中心化带来泄露风险。服务提供商们在为用户提供各类方便的服务的同时,他们存储了大量的用户隐私数据。这也意味着一旦数据中心产生大规模数据泄漏,这将是一场数字核爆。对于个人,用户信息泄露,则用户账号面临被盗风险,个人隐私及财产安全难以保障。对于企业,信息泄露事件会导致其在公众中的威望和信任度下降,会直接使客户改变原有选择倾向,可能会使企业失去一大批已有的或者潜在的客户。这并不是危言耸听,几乎每一年里,重大数据库泄漏事件都会发生。20185月,推特被爆安全漏洞,恐泄漏3.3亿用户密码;201711月,五角大楼意外泄漏美国自2009年起收录的18亿条用户信息;2016LinkedIn 1.67亿个账户在黑市被公开销售;2015年,机锋网被曝泄2300万用户信息。有兴趣的同学,可以尝试在公开密码泄漏数据库中查询,是否自己的常用信息或常用密码被暴露,但毫不知情。


4大规模数据存储,传输和维护难。现在逐步进入大数据时代,目前HTTP协议将会承受远超当前的压力。如何存储和分发PB级别的大数据;如何处理高清晰度的媒体流数据;如何对大规模数据做修改和版本迭代;如何避免重要的文件被意外丢失,等等。这些问题都是阻碍HTTP在后续发展的几座大山。


什么是IPFS - BlockChain Storage 区块链存储 (1)_数据_02


1-2 中心化-去中心化-分布式示意


IPFS则是为解决这些问题而诞生的,它的优势在于:


1)下载速度快。HTTP相比,IPFS将中心化的传输方式变为点对点的传输。IPFS使用了BitTorrent协议作数据传输的方式,使得IPFS系统在数据传输速度上大幅提高,并且能够节省大量的网络带宽。


2)优化全球存储。 IPFS采用的是内容哈希方式存储数据,由于IPFSFilecoin技术的使用,数据的存储成本将会逐步下降。


3)更加安全。与现有的中心化的云存储或者个人搭建存储服务相比。IPFSFilecoin的加密技术、区块链技术的使用使得数据存储更加安全,并且可以抵挡黑客攻击。


4数据的永久保存 当前的web的页面平均生命周期只有100天。每天大量的互联网数据被删除。互联网上的数据,是人类文明的记录和展示,IPFS提供了一种使得互联网数据可以被永久保存可能性方式,并且提供数据的历史版本(Git)回溯功能。


刚才我们提到IPFS这样一个分布式存储网络的技术积累已经有很多年了。它至少参考了四种技术的优点,并将他们整合在一起。这四种技术分别是分布式哈希表DHTKademlia, Git, BitTorrent 和自验证文件系统Self-CertifyingFile System


第一个对IPFS有借鉴意义的技术是DHT,全称叫分布式哈希表(Distributed Hash Table),是一种分布式存储方法。DHT的原理是,在不需要服务器的情况下,每一个客户端存储一小部分数据,并负责一定区域的检索,进而实现整个DHT网络的寻址和检索。新版BitComet允许同时连接DHT网络和Tracker,也就是说在完全不连上Tracker服务器的情况下,也可以很好的下载,因为它可以在DHT网络中寻找下载同一文件的其他用户。


IPFS借鉴了Kademlia的特性,在Kademlia网络中,所有信息均以哈希表条目形式加以存储,这些信息被分散地存储在各个节点上,从而以全网构成一张巨大的分布式哈希表。我们可以形象地把这张哈希大表看成是一本字典:只要知道了信息索引的key,我们便可以通过Kademlia协议来查询其所对应的value信息,而不管这个value信息究竟是存储在哪一个节点之上。正是这一特性确保了IPFS是没有中心调度节点的分布式系统


其次是著名的BitTorrent网络,IPFS主要借鉴了它的三大特性。首先是消极上传者的惩罚措施;在BitTorrent,客户端上传数据会奖励积分,而长期不上传的消极节点会扣分。如果分数低于一定限度,那么网络会拒绝再为他们提供服务。其次,是文件可用性检查,BitTorrent优先把稀缺的文件分享出去,各个客户端之间相互补充,这样种子不容易失效,传输效率也提高了。针对它我们不再详细展开,有感兴趣的朋友可以查阅BitTorrent文档。


第三个对IPFS有重大影响的项目是Git。我们在进行大文件传输或修改的时候总会遇到存储或是传输压力大的问题,而Git在版本迭代方面则非常出色。Git存储时会把文件拆成若干个部分,并计算各个部分的哈希值,利用这些构建起与文件对应的有向无环图,DAG的根结点也就是该文件的哈希了。这样的好处十分明显,如果需要修改文件,那么只需要修改少数图中节点;需要分享文件,等价于分享这个图;需要传输全部的文件,按照图中的哈希值下载合并即可。


最后是自验证程序(Self-certifying File System), SFS系统同样是一个分布式文件系统,它将所有的文件在同一个目录下保存,所有的文件都可以在相对路径中找到,其SFS路径名是其原路径与公钥的哈希。聪明的读者会发现,这样的设计会包含身份的隐式验证功能,这就是为什么SFS被称为自验证文件系统了。


未完待续,欢迎持续关注微信公众号 乐生活与爱IT

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
mcY8w4sKMujI