有没有这样的经历:朋友给你分享了一个网盘的文件链接,你因为忙没有及时查看,等你想起来去查看的时候,却发现“你所访问的页面不存在了”?
分享的文件不存在,有可能是分享链接失效了,也有可能是文件被删除了或是网盘服务提供商倒闭了,如果是后者,意味着你可能就失去了这个文件。
不仅仅是网盘上的资料,我们访问一些网站的时候,也会碰到“404 Page Not Found”。网站 404,有可能是服务器上的文件被永久性地删除了,也可能是服务器被关闭了,无论哪种,都意味着你所要寻找的这个网页从互联网上消失了。
内容可以被永久性地删除,这是目前互联网中心化存储的一个明显弊端。那么,有没有可能出现让有价值的内容可以“长期储存、成本低廉、安全性好、隐私保护性强”的存储方式呢?那么这就是 IPFS要做的事情。
01
什么是 IPFS?
IPFS 的全称是 The InterPlanetary File System,中文叫“星际文件系统”。它是一种点到点的分布式文件系统,目标是打造一个更加开放、快速、安全的互联网,对现有的互联网 HTTP 协议进行补充甚至取代。
02
IPFS 的工作流程
如果想要上传一个文件到 IPFS 系统中,第一步需要将文件添加到 IPFS 客户端中。IPFS 客户端会将这个文件进行哈希运算,并给出一个以 Qm 开头的哈希值。IPFS 的一个特点是基于内容的地址(Qm 开头的哈希值)来替代传统互联网基于域名的地址。
然后,IPFS 系统将这个文件拷贝多份,并将每一份进行拆分,拆分后的每一部分会分散存储在去中心化的 IPFS 网络节点上。拷贝多份的原因是进行备份,这样即使某些节点被攻击了或是数据丢失了或是下线了,还可以在其他节点中找到文件,从而保证了安全性。但需要注意的是,IPFS 也不能 100% 避免部分文件丢失。如果要将这个文件分享给其他人,那么,只需要将地址(Qm 开头的哈希值)告诉别人即可。通过地址就可以从 IPFS 系统中下载这份文件。
下载的过程类似于 BT 下载,也就是从 IPFS 系统中的多个节点上同时下载该文件的不同部分,最后“拼接”回原始文件,因为 IPFS 融合了 BT 的传输技术。因此,相比于传统的 HTTP 协议需要客户端从中心化的服务器上加载、传输数据,IPFS 的传输速度更快,也不容易造成拥堵。以上就是 IPFS 的工作流程。
HTTP/FTP下载 vs BT下载
需要注意的是,IPFS 只是一个传输协议,不加密文件,这就产生了隐私保护的问题。别人只要知道了上面的文件哈希值地址,就可以从 IPFS 网络中下载这个文件。那如何解决这个隐私保护的问题呢?另外,存储文件有成本,IPFS 网络中的那些节点为什么要帮你存储文件呢?这时候,就需要发挥区块链的作用了。
03
IPFS + 区块链
IPFS 只是一个底层的传输协议,区块链技术可以放大 IPFS 的作用,而 IPFS 会成为区块链的重要底层基础设施。这也是为什么提出 IPFS 的 Protocol Lab 实验室,需要成立基于 IPFS 的区块链项目 Filecoin。IPFS 和 Filecoin 之间的关系,就像是区块链技术和比特币之间的关系,前者是底层的基础设施协议,后者是一个应用。那么,区块链技术如何让 IPFS 更加强大呢?我们先拿个例子说明吧。
A先将文件添加到 IPFS 客户端,利用B的公钥对文档进行加密。IPFS 对加密后的文件生产哈希值地址,同时拷贝多份,拆解后分布式存储在不同的 IPFS 网络节点中。
A将文档的哈希值地址告诉B,B下载加密的文件后,可以利用自己的私钥对文件进行解锁。网络上的其他人,即便是知道了这个文件的哈希值地址,下载下来也会因为没有私钥而打不开,存储文档的节点也因为没有私钥看不了文档里的内容,从而保护了隐私。
那么,IPFS 网络里的这些节点为什么愿意帮助A存储这个 文件?这就需要区块链Token 经济模型的激励作用了~
以专门为有价值的、重复引用频繁的文件存储而设计的 Filecoin 项目为例,矿工(节点)可以分为两类:存储矿工和检索矿工。其中,存储矿工主要负责存储,比如A的这份文件,就会被分割成很多部分,分散存储在几个存储矿工提供的硬盘中。检索矿工主要负责数据检索,当B向 Filecoin 网络提供了A给的哈希值地址,检索矿工马上根据地址找出这份文件被分割成了几个部分,分别存储在哪些节点中,让B可以快速地下载下来。
A将文件存储到 Filecoin 网络中的时候,需要支付一定数量的 Token 给矿工,同时系统也会给予这些矿工 Token 奖励。除了奖励机制,还有惩罚机制。比如,存储矿工需要进行 Token 质押,如果完成了存储任务,质押的 Token 会被退回;如果没完成,比如中途文件不小心被删除了,或是存储硬盘出了故障,系统就会扣除矿工质押的Token作为惩罚。这就是“IPFS + 区块链技术”的魅力。
04
总结
区块链作为构造整个互联网信任的机器,将会改变整个人类社会价值传递的方式,但是区块链并不是万能的。IPFS的绝妙之处就是它弥补了现有区块链系统在文件存储领域的短板,将区块链的不可篡改、时间戳证明特性和IPFS的永久文件存储相结合,给区块链应用的落地增添了更多可能性。
相信在未来的不久,区块链与IPFS彻底融合,将为全新的网络时代带来一个更好更安全更方便的数据时代