对于对区块链技术感兴趣的您,IPFS(星际文件系统)是一个不可或缺的概念。区块链本质上是一个去中心化的分布式数据存储系统,它以去中心化为基石,因此其设计初衷是作为记录数字信息的简易存储系统,无法直接存储文件或图片。然而,为了实现商业化的成功,区块链技术需要更高级的存储系统来支持复杂的程序、文件、图片和视频等内容的存储。IPFS正是填补这一存储性能空白的解决方案。
目前,去中心化应用(DAPP)只有在涉及作为交易筹码的加密货币时才会调用区块链,而其他如网页、文件和代码等依然存储在中心化的服务器上,如AWS、GCP等平台。本质上,这些平台仍然是中心化的产品。
理论上,DAPP不应依赖于中心化的存储空间。如果服务器关闭,所有内容也将随之消失,这并不符合区块链最初的设计理念。为了弥补这一缺陷,"IPFS星际文件系统"(InterPlanetary File System)应运而生。
IPFS提供了一种基于P2P网络的分布式存储服务,每个节点都保存部分分割文件。一旦文件上传成功,它将以"有向无环图(DAG)"的形式记录在Merkle Tree上,且不可修改或删除。每个文件都有一个唯一的HASH值,允许用户通过这个HASH值访问和下载文件。
IPFS不仅仅是一个存储协议,它与BitTorrent协议类似,是一种文件存储与分享系统。熟悉网络的人都知道BitTorrent,简称为bt,这是一种P2P服务。在互联网内容还不丰富的时候,人们可以通过bt找到几乎所有想要的文件,但需要先下载bt种子文件,然后从他人的电脑上下载目标文件。
IPFS更为先进,只要用户持有文件的加密金钥——一串随机数值,该协议就能引导用户在"IPFS节点群"中找到特定的文件。IPFS节点群由多个服务器节点组成,每个节点存储和备份部分文件。
如果在IPFS节点群中存储一个视频,该视频将被分割成多个分割文件,并附上Hash值标签,以有向无环的DAG树状图形式存在于IPFS中。然后,这些分割文件将在两个以上的服务器中进行备份,即使其中一个节点被删除,也有其他节点进行备份,以确保文件的持久存储,非常适合存储一些"敏感且危险"的视频和文件。
由于采用DAG存储文件地址,每个文件都有一个唯一的HASH值,一旦文件上传后便无法修改或删除。后续的文件更新可以通过IPNS的命名功能将原有的文件地址导向更新后的地址,但原始文件仍然存在。
如何找到这些文件呢?IPFS协议使用类似于区块链的分布式哈希表(DHT),用户必须使用对应的加密金钥才能通过IPFS协议找到特定文件。IPFS协议会利用哈希表解密该金钥并生成对应的文件地址(从金钥到值),用户通常无法通过搜索方式在分布式网络中找到文件,只能通过持有对应的金钥才能找到。
简而言之,用户只需输入对应的HASH值,就能快速在IPFS网络中找到对应的文件。然后,文件以多个分割模块的形式储存在IPFS网络中,由于节点分布在全球网络中,因此具有更高的稳定性。
因此,与单纯的NAS存储相比,IPFS更像是一种内容传递服务(CDN)。只要文件存入IPFS节点群中,该文件就会被分割并备份到全球的多个服务器中。
什么是CDN服务?CDN服务指的是在全球各地建立许多数据中心,以便客户可以就近获取数据。
例如,如果企业的网站位于美国,但客户位于日本,那么客户需要通过太平洋电缆连接到美国的服务器,这会产生可观的延迟。但是通过CDN服务,可以预先将网页内容缓存在日本的本地服务器上,这样位于日本的客户就可以直接连接到日本本地的服务器,从而大幅提高网站的访问速度。目前,微软的Azure也提供IPFS的PAAS服务,实际上可以通过Cloudfare的CDN服务来加速文件访问。
解决bt的效率问题:BitTorrent是一种早期的P2P文件分享工具,当有用户作为种子(文件来源)时,他们可以从自己的电脑和带宽开始分享特定文件。种子用户可以将种子分享给其他人,其他人可以利用种子从起点下载文件,并通过这种方式互相分享文件。参与的人越多,下载速度就越快。
bt存在效率问题,同一种文件可以重复存在,种子也无法整合,导致用户必须找到最多人使用的种子文件才能获得较快的下载速度。但IPFS中的文件拥有唯一的HASH值。更棒的是,后续分享文件只需要提供唯一的HASH值,其他人就可以下载。由于任一文件都被记录在IPFS的DAG树状图中,并标记唯一的HASH值,所以可以任意下载文件夹中的任一文件。
假设小明的节点拥有歌曲A,阿华的节点也拥有歌曲A的文件,这个歌曲A有一个唯一的HASH值,用户可以依据这个HASH值找到歌曲A,无需种子文件下载,并且可以同时从小明和阿华的节点下载文件。
bt只能根据种子文件下载整个文件内容,例如,如果只想下载A专辑中的一首歌曲03.mp3,在bt系统中,必须先下载整张专辑,然后再从中提取想要的歌曲03.mp3。然而,在IPFS中,只需要该歌曲的HASH值就能直接下载03.mp3,无需先下载整个专辑,从而节省了时间和下载带宽。如果bt要直接下载03.mp3,则需要重新生成一份种子文件,这样网络就会出现两个种子文件,然后再重新发布到网络上,这个过程既繁琐又缺乏效率,而IPFS则可以直接从原始专辑文件中利用HASH值抓取文件,无需重新生成种子文件。
IPFS与区块链结合,HASH索引可存入交易备注并导引至特定文件:根据上述解释,IPFS看起来只是BitTorrent的改进版,可以提供文件分布式存储和HASH值索引的功能,那么它与区块链有何关联呢?
实际上,IPFS的HASH索引功能可以发挥重要作用。只要将特定文件的HASH值存入区块链的"交易备注"中,就可以直接引导到特定且唯一的文件,并且该文件会被分割到多个节点并备份,提供更持久且安全的保护。这是bt无法实现的精确度和专有性,使得IPFS非常适合与主链结合,可以开发出更完整的去中心化应用。
尽管IPFS具有许多优点,但目前的文件分享仍然以BitTorrent为主流。这是因为BitTorrent具有丰富的社群和资源,几乎可以找到任何想要的文件,而且IPFS客户端的用户界面和普及度还有很大的提升空间。目前,区块链的DAPP也处于发展和实验阶段,用户群体仍然较小,现有的存储需求可以通过中心化存储得到满足。
然而,随着去中心化应用的成熟,对分布式存储的需求将越来越大。区块链将带来直接的现金流,一旦涉及利益问题,参与者对应用文档、图片和视频的保存也会越来越重视,IPFS可以提供更安全、分布式的存储方案。
对了,IPFS和bt一样,可以存储一些被极权政府禁止的文件,一旦上传便无法删除或修改。
问题来了,过去的BitTorrent都是社群中的志愿者分享文件来源,可能是基于个人喜好,但从商业角度来看,谁愿意无偿提供自己的电脑作为存储空间呢?
因此,像Filecoin这样的项目就是希望结合区块链的经济模型和IPFS的存储协议,让提供存储和带宽的节点获得报酬,上传或下载文件的用户都需要付费使用,从而形成一个经济模型,促使更多节点愿意提供空间和带宽,用户也能享受到更快、更稳定的下载速度。
标签: 数字货币