一、目标愿景
现阶段互联网的数据交互及存储协议都是基于超文本传输协议(HyperText Transfer Protocol,HTTP)在中心化服务器中处理完成的。这种基于客户端和服务器的交互模式,由于数据都在中心化存储系统中,较低的设备、网络、运维成本与高速的集中处理性能。但是随着的互联网的更新迭代,中心化存储方式逐渐被分布式存储取代。
中心化存储数据的交互效率、成本以及安全性能制约新一代互联网的发展。一是现阶段的数据交互,每次需要从中心化的服务器下载完整的文件,大数据的存储与传输带宽使得中心化存储成本高,传输速度慢,效率低。二是Web文件容易丢失,难以永久保存。据统计HTTP的页面平均生存周期大约100天。三是中心化的存储会受到各种管制,对互联网功能完整性构成威胁。各种突发的故障因素都可能造成互联网应用中断服务。
星际文件系统(Inter-Planetary File System,IPFS)协议主要服务于数据存储和文件传输,旨在代替传统的HTTP协议。IPFS网络协议可以实现存储速度更快、成本更低、安全性更高的效果。通过IPFS与区块链技术的结合,能够使数据的强保密、高隐私、低成本和防篡改特性相较于传统中心化存储会更加完善,IPFS将会带来一个新的互联网时代。
二、解决方案
1、IPFS技术架构
IPFS为了实现存储更快、成本更低、安全更高的特性,采用了分块,传输和隐私保护等多种技术。IPFS的技术架构主要分为以下8个技术层次。
图1 IPFS协议的技术架构
身份层:IPFS存储网络中存储节点的身份信息通过身份层功能生成的,给加入DHT网络的用户分配身份信息,通过分配的身份参加IPFS存储网络工作。
网络层:网络层是IPFS信息传输的基础,通过Libp2p协议栈支持任意传输层协议的功能,以此构建了P2P链接的基石。
路由层:通过利用DHTS、MDNS、DNS等协议,完成存储内容的查找以及路由的查找。
交换层:IPFS存储网络中重要的交换协议,实现节点之间数据块的交换。IPFS利用了BitTorrent协议为基础构建符合IPFS分布式存储的交换协议。
对象层:完成IPFS存储网络上的数据结构构建,利用MerkleDag结构,通过路径持续分叉的结构,快速、精准地找到目标数据,为内容寻址和去重提供了便利。
文件层:记录存储对象在不同版本中的各种特定的快照,保留出两个对象文件的区别。
命名层:证明文件的自我验证。即验证所用的公钥是否与节点身份匹配,并加入IPNS使得加密后的DAG对象名可与节点绑定,把可变的内容固定在相对固定的节点身份。
应用层:应用层也是IPFS的核心层,应用层实现网络加速,数据价值化和经济价值,加快分布式存储网络生态的发展。
2、IPFS关键技术
IPFS通过分布式版本控制系统,可以记录之前任何一个文件版本,支持数据恢复。IPFS系统通过Git控制存储文件版本的迭代,Git控制系统不仅存储最新版本的文件,还把历史文件版本都完整地存储下来。系统中任何一处协同存储的服务器发生故障,都可以用任何一个本地存储数据进行恢复。
IPFS采用分布式哈希列表DHT快速查询数据,具有离散性、伸缩性和良好的容错性。DHT是一种分布式哈希表,通过存储的键值对提供查询服务。键值对存储在DHT中,键值对的映射由网络中所有的节点维护。在不需要服务器的情况下,每个节点负责部分路由和数据存储,从而实现整个DHT网络的寻址和存储。
IPNS文件域名系统依据文件名搜索文件时只需查询文件名,而不受文件内容变更的影响。IPFS中文件的哈希值完全取决于文件内容,每次更新文件后都需更新引用的哈希值。为了能够在更改文件内容时保证原链接的有效性,IPFS团队采用星际域名系统IPNS。IPNS是一个去中心化的命名系统,通过指针地址安全地指向可变内容,资源块都可以被命名为易读的名字,通过搜索名字就可以找到文件。
三、项目历程
2014年5月起,IPFS创始人胡安·贝内特发起IPFS项目,成立了协议实验室。
2015年1月, 协议实验室向全球发布IPFS。
2017年,IPFS团队宣布成立Filecion项目,在同年8月得到华尔街风投机构2.57亿美元的募资。
2018年5月,第一届IPFS大会召开,用户能够在自己的移动设备上运行个人IPFS,实现了真正的去中心化存储。
2019年2月份,Filecion生态语言代码正式开放,进一步助力IPFS的发展。
2020年10月15日,Filecion在全球六百多家交易所正式上线。
四、思考评论
1、IPFS的优势
IPFS诞生之初,就是为了解决HTTP协议的中心化问题,不断迭代发展至今,IPFS已经展现了诸多优势。
IPFS利用文件分片机制,改善互联网应用的数据存储成本。用户上传的大型文件在经过IPFS存储时,通过DHT既可以有效降低相同资源冗余程度,也可以将大型文件分块多地存储,降低硬件存储的要求;通过特殊的路由机制就近获取资源,降低数据传输时间,缓解主网的带宽压力,节约海量用户在文件传输时所产生的带宽成本。
IPFS通过链下分布式存储解决区块链链上数据存储空间问题。目前大部分公有链的问题是没法将大量的数据存储在链上。运用IPFS存储网络,将打包好的区块数据通过异构处理,并转换成便于内容寻址的数据结构类型,挂载到IPFS存储网络上,可以让IPFS存储网络承担存储和P2P检索功能,而不消耗区块链系统本身太多的计算资源。
IPFS借助就近检索模式提供快速便捷的分布式缓存方案。IPFS可以将数据通过算法转化成一维字符串,将与之相关联的常用检索数据存入IPFS存储网络并分布在各个邻近节点上。检索时,系统优先通过字符串近似度范围比较,缩小检索范围,加快检索效率,缓解骨干网的通信压力,达到分布式缓存的效果。
2、IPFS的挑战
作为一种新型的分布式存储技术,目前依旧存在一些问题限制了IPFS技术的发展与普及。
IPFS的文件分片对系统的吞吐性能有很高的要求。IPFS需要将文件分片、复制、多节点冗余保存,在调取存储数据时,需要查询大量文件分片,对系统数据吞吐性能要求很高。另外,对于大型数据,大量的文件分片使得内容寻址的哈希表也会很大,寻址时间也会增加。因此,现有的分布式存储系统的吞吐效率是首要考虑的问题。
IPFS缺乏奖惩机制使得存储用户承担较高的服务质量风险。IPFS只负责监控参与节点的工作完成情况并予以激励,但是无法避免恶意节点对存储内容的攻击,因此存储安全的保障需要由应用层通过奖惩措施来解决。存储节点通过预质押保证金以支撑其信用保障,只有当越来越多的用户愿意选择收费更高的网络节点时,去中心化存储系统的整体效率才能提升,服务质量才更有保障。
作者:程彤彤,中国信息通信研究院工业互联网与物联网研究所技术部工程师
主要从事工业互联网、标识解析、区块链存储等领域研究和产业推进工作。
联系方式:chengtongtong@caict.ac.cn
风险提示:本站所提供的资讯不代表任何投资暗示。投资有风险,入市须谨慎。