区块链由于数据天然需要共识机制同步数据,因此,主链不适合存储大型数据从而限制了去中心化应用的落地。IPFS通过将文件切分后存储在网络的部分节点中,解决了传统互联网信息存储与传播过程中的规模、成本、安全及信用问题,为大规模数据在区块链系统上的存储提出真正落地的解决方案。区块链+IPFS是未来去中心化应用的发展方向。
区块链就被定义为“不可篡改”的去中心化数据库技术,当所有节点通过区块链来建立信任的时候,需要同步完整的区块信息。如果区块链允许用户上传大型数据,那么将会造成大量的存储和网络资源浪费。例如,比特币网络共识时间达到10分钟之久;以太坊网络需要高昂的GAS费用来限制用户过度的存储。最终,用户只把更有价值的简短信息记录在区块链中,区块链网络也被成为“价值互联网”。
IPFS 是什么?
IPFS (Inter Planetary File System,星际文件系统)是一个面向全球的、点对点的分布式版本文件系统。它尝试为所有计算设备连接同一个文件系统。该文件系统可以通过包含HTTP方式在内的多种方式访问,将本地文件添加到IPFS文件系统后,可使其面向全世界可用。用通俗的话来讲,IPFS就是一个技术标准,它可以把连接到互联网上所有的计算机的硬盘连接到一起,为需要云端存储的用户提供服务。
目标 target
为了补充(甚至是取代)目前统治互联网的超文本传输协议(HTTP),将所有具有相同文件系统的计算设备连接在一起。IPFS想打造一个点对点的网络拓扑,相当于颠覆HTTP所代表的分布关系,它具有内容可寻址的特点,通过文件内容生成唯一的哈希标识,一定程度上节约了空间开销的成本。我们每个人都既是终端也是用户,一个永远不会被shut down的网络。
原理 principle
每一个上传到IPFS的大型文件将会被分成若干个大小为256KB的块,每个块在IPFS中都会做一次哈希计算,得到的运算结果作为块的地址。系统最终会给整个文件生成一个哈希值作为该文件的地址,IPFS网络中的任何节点都能通过该地址来下载整个文件。
IPFS的网络上运行着一条查询用途的链,即用来存储互联网文件的哈希值表,每次有网络访问,即要在链上查询该内容(文件)的地址。
IPFS 通过使用固定的激励作用,让矿工可以为存储数据提供物理条件。矿工通过为网络提供开放的硬盘空间获得通证激励,而用户则用通证激励来支付在去中心化网络中储存加密文件的费用。
特性features
去中心化网络发行机制
IPFS的网络发行机制是分布式哈希表(DHT),综合了S/Kademlia、Coral和Mainline技术。去中心化网络发行机制可以和区块链等互相配套发挥价值。例如,区块链底层数据可以用此机制进行分发。
存储文件的安全完整性
IPFS的数据结构是默克尔树。默克尔树是现在绝大多数区块链所采取的数据架构,每个叶节点均以数据块的哈希作为标签,而叶节点的上层节点则以其子节点标签的哈希值作为标签,当一个文件在IPFS节点上保存时,先把它进行切片,切完以后片与片之间会形成一个个新的哈希标签,一层层往上递进,最终得到root根节点哈希。root哈希值如果发生变化,说明它下面的文件片里面数据被篡改了,从而能够高效、安全地验证大型数据结构的内容,有效地确保数据的完整性。
内容寻址
文件(内容)具有存在的唯一性,一个文件加入了IPFS的网络,将基于计算对内容赋予一个唯一加密的哈希值。每个文件及其中的所有块都被赋予一个称为加密散列的唯一指纹。查找文件时,你通过文件的哈希值就可以在网络查找到储存改文件的节点,找到想要的文件。基于内容寻址,而非基于域名寻址。这将改变了用户的传统的域名访问网络的习惯。
冗余重复数据自动删除
提供文件的历史版本控制器(如git),并且让多节点使用保存不同版本的文件。IPFS通过网络删除重复具有相同哈希值的文件,通过计算是可以判断哪些文件是冗余重复的,并跟踪每个文件的版本历史记录。当多个用户发布同一个文件时,它在网络上只创建一次。这有助于提高网络的效率。
IPFS究竟能解决哪些痛点?
为企业提供了集约化的存储方案
传统互联网模式中,数据规模已经遭遇到了瓶颈。例如,市面上大部分的云存储服务都是由包括亚马逊、BAT、谷歌、微软在内的中心化服务商提供的。对于服务商,数据中心的运作十分依赖主干网络,而且系统无法承受宕机,企业必须雇一批运维专家或专业人士去保障系统的稳定性。由于成本高高在上,中心化机构建设中心网络边际成本越来越高,增加的成本需要人买单,要么由中心化服务商买单,要么由客户企业买单。由于成本的限制,导致资源分配不均衡,特别是众多的中小企业得到的资源越来越少。
IPFS为企业提供了可以适应性的方案,让众多的企业特别是中小企业有了多样的选择,也可以互联网经济里有了一些用武之地。例如,企业不用专门建立网站去上传资料,而且无需关心文件格式,直接批量上传和下载数据。省却专业人员的雇佣和培训成本,也省却了企业建站配套物理硬件等方面的成本。
防止“服务器宕机,我们都宕机了”
当你想从互联网上下载图片时,你要告诉你的电脑在哪里可以找到你想要的图片。该位置通常以URL的形式出现,其中包含存储照片的公司的域名,然后是指定文件的扩展名。这种访问资源的方法称为“基于位置的寻址”。如果出现如果无法访问位置(可能服务器离线),那么用户的计算机就无法检索他们需要的信息。
为了帮助解决这个问题,IPFS引入了“基于内容的寻址”的概念。在请求特定资源时,使用基于内容的寻址,您不需要指定位置,只需指定您想要的。当您想要访问一个特定的文件时,您只需询问网络中谁拥有具有指定哈希的文件副本。一旦发出请求,IPFS网络上的某人将提供您所请求的资源。您将下载该资源,并将副本保存到您的IPFS缓存中。
现在,当另一个人来请求相同的文件时,您将能够向他们提供该文件。这就创建了一个系统,当它被更多地使用时,速度就会加快,因为共享的文件越多,它们就越容易在大量节点中可用。
防篡改保护用户隐私
因为使用哈希函数检索文件,所以可以验证接收到的内容。更改文件的哈希值与更改区块链中的事物一样困难。对具有特定哈希值的文件发出请求,因此当接收到文件时,要确保哈希值与请求匹配。企业的原始数据所有权还是属于企业的。在IPFS里面,企业拥有一把数据的私钥,需要给哪个应用开启,不想给哪个应用使用,掌控权都属于企业自己。企业既能保障公司机密隐私的安全,又能降低存储和流量成本,还能运用通证经济模式把外部的资源对接起来,进而增强了企业自身实力。对于业务复杂的大型企业和自身没有搭链能力的众多中小企业来说都可以有效地提供帮助。
未来工作:IPFS+区块链
经过分析和论证,我们可以清晰地发现:区块链的安全性、可靠性、不可篡改性和IPFS的高效分布式存储可以集合为一种新生态:IPFS作为文件系统来存储图片、视频等大型文件,可以极大地弥补区块链存储空间昂贵、扩容难的问题,而区块链作为数据库来存储结构化数据专注于价值互联网的作用,区块链也可以将共识机制、激励机制以及“数字和物理权属”等特性赋予IPFS。
例如,通过“智能合约或物关机制”可以完美运行类ERC721标准,因此可以将NFT(Non-Fungible Token,非同质化通证)与IPFS结合,给予IPFS存储的内容独一无二的token属性和公开清晰的所有权归属与转换功能,构建“基于资产确权和通证化能够便利安全传输”的区块链环境,同时支持以太坊的ERC20/721标准。