区块链 | IPFS 工作原理入门

发布于:2024-05-02 ⋅ 阅读:(92) ⋅ 点赞:(0)

🦊原文:What is the InterPlanetary File System (IPFS), and how does it work?
🦊写在前面:本文属于搬运博客,自己留存学习。



1 去中心化互联网

尽管万维网是一个全球性的网络,但在数据存储方面,它仍然主要是集中式的。也就是说,无论是物理的还是虚拟的服务器,都存放在大型的「server farms,服务器农场」或云平台上,通常由一家公司拥有。要访问这些服务器上的信息,用户必须建立一个超文本传输协议(HTTP)或超文本传输协议安全(HTTPS)连接到特定的服务器,该服务器作为数据检索的集中点。

HTTP 作为互联网上传输文件的主要手段,有其局限性。它仅适用于小文件,因为其成本效益高,并且无法充分利用创新的文件分发技术。同时,新的挑战不断出现,包括传输 peta 字节大小的数据集、管理高容量实时媒体流以及确保文件持久性。本质上,每个问题都归结为需要以去中心化的方式提供更高的可用性和容纳更大文件的需求。

几种技术,包括 镜像服务器内容分发网络,通过故意将内容存储在靠近最终用户的地方,有效地将从 “源” 服务器到消费者的内容分发。然而,重要的是要记住,尽管采取了这些措施,文件仍然只能在少数的几个区域被访问。

为了解决这些挑战,已经开发出了星际文件系统(IPFS)。IPFS 是一种创新的 Web3 现象,代表了一种去中心化网络实现,是文件存储和检索的重大突破。IPFS 提供了一个充满希望的替代方案,它赋予用户更大的控制权,并提供了更加坚韧的互联网体验。



2 IPFS 是什么,它是如何工作的?

正如其名称所暗示的,IPFS 协议旨在建立一个完全去中心化的系统,能够在地方之间相互隔绝或相距甚远的地方运行,比如星球之间。IPFS 是在 2015 年由计算机工程师 Juan Benet 提出的,并由 Protocol Labs 团队维护,该团队还创建了一个基于区块链技术的加密货币和协作数字存储及数据检索方法 —— Filecoin,如下图所示:

在这里插入图片描述

基本上,IPFS 是一个点对点(P2P)分布式系统,用于存储、访问和共享文件、网站、应用程序和数据。IPFS 建立在去中心化环境之上,并采用了来自 torrents 的分布式和节省带宽的技术。

种子文件(torrent file)是由 BitTorrent 协议所定义的,用于保存一组文件的元数据的文件,扩展名一般为 “.torrent”。种子文件本质上是文本文件,包含 Tracker 信息和文件信息两部分。Tracker 信息主要是需要用到的 Tracker 服务器的地址和针对 Tracker 服务器的设置;文件信息是通过对目标文件的计算生成的,计算结果根据 BitTorrent 协议内的 Bencode 规则进行编码。它的主要原理是将被下载文件虚拟分成大小相等的块,块大小必须为 2 k 2k 2k 的整数次方(由于是虚拟分块,硬盘上并不产生各个块文件),并把每个块的索引信息和 hash 验证码写入种子文件中。因此,种子文件就是被下载文件的 “索引”。



2.1 去中心化

左图是中心化的「客户端 — 服务器」结构,右图是去中心化的「点 — 点」结构:
在这里插入图片描述

中心化网络与去中心化网络的关键区别在于,数据是如何被标识和检索的。在中心化网络中,人们依赖于可信赖的实体(Server)来托管他们的数据,并使用「基于位置的」统一资源定位符(URL)来访问这些数据。



2.2 基于内容寻址

左图是中心化「基于位置的」寻址,右图是去中心化「基于内容的」寻址:
在这里插入图片描述

相比之下,IPFS 网络使用一个内容寻址系统,其中内容本身在帮助人们找到他们要找的东西方面起着关键作用。在 IPFS 中,每块内容都有一个独特的哈希值,称为 IPFS 内容标识符(CID)。这意味着内容是根据其哈希值而非位置来存储和检索的,这使得篡改或审查变得更加困难。

针对一个大文件,当它保存到 IPFS 网络中时会被分片,即把大的文件分成小的碎片。每个碎片都有自己的哈希值(CID),再根据碎片的哈希值生成对应的链接。



2.3 工作方式

IPFS 的去中心化网络由相互连接的计算机节点组成,这些节点使用分布式哈希表(DHT),这是一种去中心化存储系统,它为键值映射提供查找和存储。在 DHT 中,每个节点对其特定的键和映射值负责,并且能够有效地检索给定键对应的值。

🥕 DHT 中存储三种类型的记录:

  • 内容标识(CID)到节点标识(PeerID)的映射
  • 节点标识(PeerID)到节点地址(IP)的映射
  • IPFS 名称到 IPFS 指针的映射

IPFS 节点存储数据,并将其提供给任何请求它的人。当请求一个文件或网页时,该文件的副本会被缓存到请求者的节点上。随着越来越多的人请求相同的数据,会创建更多的缓存副本。后续对文件的请求可以由任何拥有它的节点或节点的组合来满足。这样,数据的交付和请求的履行就在多个位置之间分担,从而提高了效率和可访问性。

每个节点都会保存其下载过的文件的缓存,用来保证即使某一个持有该资源的节点退出 IPFS 网络,该资源仍然可以被其他节点访问。



3 IPFS 是区块链吗?

IPFS 是一种去中心化技术,与区块链相似,但它们有不同的目的、特征和应用场景。IPFS 致力于创建一个全球性的、去中心化的网络,用于存储和共享文件。它旨在通过在多个位置存储文件来提高传统网络协议的效率和弹性,从而使文件免受审查并确保即使在某些节点离线时也能保持可用。

另一方面,区块链主要作为去中心化的账本,以透明和不可篡改的方式记录交易或数据。区块链依赖于 共识机制加密算法 来确保存储在链上的数据的完整性和安全性。此外,它通常用于去中心化应用程序(DApps),涉及加密货币、智能合约等,例如去中心化金融(DeFi)。

尽管 IPFS 可以与区块链技术结合使用,但它们是为不同目的而设计的。IPFS 提供了一个去中心化的存储和分发系统,而区块链提供了一种去中心化和透明的方式来记录和验证交易或数据。

详细的比较如下:
在这里插入图片描述

IPFS 对内容有编址,而区块链没有;IPFS 允许更改内容,而区块链禁止。



4 IPFS 的应用有哪些?

IPFS 适用于各种目的,从全球内容交付、安全存储文件到促进高效文件共享。IPFS 可以作为公共区块链和其他 P2P 系统的互补文件系统。它有潜力增强像以太坊这样的平台上的 DApps 的可扩展性。通过与以太坊的智能合约的集成,IPFS 可以在加密生态系统内提供安全且成本效益高的存储能力,从而提高以太坊的整体性能。此外,IPFSFilecoin 结合可以创造数据存储的激励。这种组合在非同质化代币(NFTs)的数据开发和存储中可以发挥重要作用。

总的来说,IPFS 的应用范围广泛,从增强 DApps 的可扩展性到通过确保有益的数据记录来革命化 NFTs



5 IPFS 是否具有可追溯性?

每个 IPFS 节点都有一个公共的 PeerID,可以通过在 DHT 中查找来追踪与之关联的 IP 地址随时间的变化。

DHT 中存储了节点标识(PeerID)到节点地址(IP)的映射。

作为一个免费供所有人使用的 P2P 数据传输和存储协议,IPFS 是一个公共网络。参与网络的节点存储链接到全局一致的 CIDs 的数据,并通过公开可访问的 DHT 向其他节点广播其可用性。

因此,尽管节点之间的 IPFS 流量是加密的,但节点向 DHT 披露的基本元数据,包括它们的唯一节点标识符(PeerIDs)和它们提供的数据的 CIDs,是公开可访问的并且可以被追踪。任何人都可以在 IPFS 上访问这类数据。

数据被加密为 CIDs,其中数据是加密的,但 CIDs 是明文的。



6 IPFS 的缺点是什么?

普及率

采用 IPFS 的主要挑战之一在于其推广速度。尽管该技术拥有极具吸引力的功能,但与传统的网络协议相比,其普及程度并不高。为了克服这一难题,我们需要提升公众对 IPFS 的认识,缓解用户的顾虑,并提供高效工具和资源来推动向 IPFS 的平滑过渡。更广泛地采用 IPFS 要求我们根本改变获取和分发信息的方式,这可能需要用户和组织花费一定时间来全面接受。

互操作性

互操作性同样是 IPFS 面临的一个关键挑战。尽管它旨在取代 HTTP,成为互联网访问的主导协议,但 IPFS 需要与现有的网络协议无缝集成。这种集成可能要求对当前的网络基础设施进行重大修改,这可能会影响到 IPFS 的普及速度。

用户激励

激励用户向 IPFS 网络贡献资源也构成了一个重要的挑战。鉴于 IPFS 依赖于点对点(P2P)网络来分发和存储数据,因此设计有效的激励和奖励机制变得尤为关键。激发用户的积极参与和资源共享对于确保 IPFS 生态系统的持续性和增长至关重要。

安全性

安全性是任何技术都无法回避的持续关注点,IPFS 也不例外。愿意分享数据的用户会对使用 IPFS 的安全性感到好奇。虽然 IPFS 利用内容寻址和加密技术来保护存储在网络上的数据,但仍可能存在潜在的漏洞和安全风险,这些都需要被及时解决。不断加强安全措施和降低潜在威胁是确保 IPFS 网络中用户数据完整性和隐私的关键。

更新难

最后,尽管 IPFS 的去中心化和分布式特性在安全和隐私方面带来了优势,但这种架构的不可变性使得更新变得更为复杂。因此,需要定期且系统地推出新版本,以便有效地集成必要的升级和改进。

通过促进普及率、确保互操作性、创建有效的激励措施和增强安全性,IPFS 分布式文件存储协议可以克服这些障碍,实现作为去中心化和弹性文件管理变革性技术的潜力。



7 IPFS 的未来

IPFS 是一个 P2P 文件共享网络,最初于 2014 年推出,由于其独特的特性而逐渐受欢迎,这些特性为传统的「客户端 — 服务器」架构提供了一种替代方案。该协议已经通过增强 DApps 的可扩展性而彻底改变了加密领域,并在包括金融和媒体在内的各种行业中获得了关注。IPFS 的去中心化本质和内容可寻址系统使其成为未来网络技术的关键参与者。

IPFS 改变我们如何在互联网上存储、共享和访问信息的潜力是巨大的,随着技术的不断发展,我们可以期待未来进一步的进步和采用。