跨星球的「去中心化」文件系统?来看看 IPFS 吧

我相信,大家对于互联网的未来是什么样子,肯定会有兴趣。 最近炒得很热的 Web3,就是在构建一个基于区块链的「去中心化」未来互联网。

如果大家关心区块链应用 或 Web3 的话,多少应该听说过,「区块链」有种机制是:一旦我们的信息被记录在「链」的话,就会被永久保存,且无法篡改。

基于这个「朴素」的理念,我们也许会想到,我们是否可以有一个 基于区块链的「文件系统」?这样,我们就可以让文件信息被 永久保存,无法篡改,甚至无限分发

早在 2014年,就有极客提出了 IPFS(星际文件系统)机制,到如今,这个机制已经变得相对比较成熟,各种关系也比较清楚,今天给大家介绍一下。

IPFS 登场

IPFS 全称是 InterPlanetary File System;设计之初就是考虑到可以用于火星和地球之类慢连接网络中,文件如何保存分发的问题。

如果像火星和地球之间访问一台中心服务器,那么势必效率很低。 去除「单一中心化」就势在必行。IPFS这样设想:

(1)如果,火星用户 A 要访问地球的一个文件X,速度必然很慢。

(2)但可以让A 从其它 已经访问过X 的用户那里拿到 缓存。

(3)假设 B,C,D 三个用户曾经访问过 X,那么它们每人贡献一点 缓存,A就能比较快速的看到X的内容了。

看到这里,也许我们会想这不就是 P2P(Peer2Peer,俗称BT下载)下载原理吗?没错,就是基于这个原理。

去中心化倒是实现了,但这和区块链有什么关系呢?

考虑到区块链的记录成本是很高的,目前来看,IPFS 并不是把整个文件内容存放到「链」上,只是把文件的碎片索引信息放在链上。这些索引信息会指引上面的用户 A 去 B,C,D 那里下载缓存。 所以到此为止,把文件放上去就可以「永久保存」的想法可以歇一歇了。 即使 BT下载 也是一样,全网如果没有种子,也只能下载一个寂寞。

为了激励更多用户保存信息缓存(做种),IPFS 在 区块链上发行 FileCoin 一种 代币,让缓存的用户被应用的越多,就能积攒越多的代币。 我们可以把 它理解成一种积分, 这是个经济学问题,只要有人愿意提供很高的价格(FileCoin计价),就会有人乐意做种,或者分享自己的磁盘空间用来缓存。

这也意味着,IPFS上是一个生态系统,信息能否长期保留这个问题,取决于信息本身的价值和市场活跃度。

一点感想

(1)解决 火星和地球访问效率的方案,除了IPFS也可以设立 CDN节点(内容分发网络),实际上我们地球上跨地区的互联网信息的传递,很多都依赖 CDN。 区别是,CDN节点 还是中心化的,而IPFS的节点(上面例子的用户BCD)是分散的。

(2)IPFS 效率上是远弱于 CDN 的,无论是地球还是火星。 去中心化的一个代价就是降低了效率, 分散的节点,区块链索引检索,目前机制下远远比不过一台主干网络上的中心服务器。

(3)IPFS 好处是信息传递获得了某种意义的「自..由」,包括绕过 regulation,问题只是这个代价有多大,是否大到有必要如此。(有些场合可能很有必要,像 wiki解密这种应该很有动力)

(4)文件信息没有全部永久保存下来,在这个IPFS网络里文件会消失的,会被遗忘的,因此确切的说 IPFS 不像是文件系统,而只是分发系统。

(5)扩大IPFS市场规模,撮合交易,其实可以借鉴「做市商」制度,然而讽刺的是,market maker 本身就是为了解决信息分散效率低下而形成一种「中心化」。如果 IPFS 发展壮大,且有利可图,我相信一定会出现「做市商」。

最后

不管怎么说,加密货币 和 IPFS 都处于一些很「理想主义」的架构,而且都进行了长期的实践,一定在某些领域会有用武之地,不过要成为主流,还需要一些更「现实主义」的场景。

我个人很期待,能有解决上述弊端的全新架构出现。但无论如何,IPFS 其本身的生态环境和市场如能做大,形成规模,都会是人类互联网历史上巨大的跨步。目前,IPFS 已经提供了 API 基于Golang和JS的框架也都有了,不少应用已经号称支持 IPFS。 例如:有些App号称能把你的笔记上传到 IPFS(我是不敢用的,虽然上传内容肯定是加密过的)。

最后,有兴趣的小伙伴可以自行去官网下载 IPFS 客户端,考虑到这个东西对信息流动的意义如此巨大,大家应该知道要提前准备些什么。

IPFS官网

https://ipfs.io/