什么是白皮书?IPFS 详解
Learn what a whitepaper is in crypto, how IPFS works, and why it matters for Web3. Understand content addressing, CIDs, and decentralized storage.
白皮书是加密货币协议的奠基文档。由 Juan Benet 于 2014 年撰写的星际文件系统 (IPFS) 白皮书,是 Web3 生态系统中最常被引用的技术文档之一。本文将解释白皮书作为一种文档格式的定义,并以 IPFS 白皮书为例,向您展示该协议的具体方案及其重要意义。
如果您在研究 NFT 项目、DeFi 协议的基础设施或 Filecoin 投资论点时遇到了 IPFS,并希望在直接阅读源文档之前获得一份通俗易懂的指南,本文将为您提供帮助。无需计算机科学背景。
主要亮点
- 白皮书是一份技术文档,它定义一个问题,提出一个解决方案,并概述实现该方案所需的系统架构。
- IPFS 白皮书由 Protocol Labs 的 Juan Benet 撰写,并于 2014 年发布。
- 星际文件系统 (IPFS) 是一种点对点 (P2P) 协议,通过内容寻址而非服务器位置来存储和检索文件。
- IPFS 不是一个区块链。它是一个分布式文件系统。
- IPFS 和 Filecoin 是独立的项目:IPFS 是协议;Filecoin 是激励层。
- IPFS 内容并非自动永久保存。它需要主动固定 (pinning) 才能保持可访问性。
- 当今大多数 IPFS 内容通过标准的浏览器,经由 HTTP 网关访问。
目录
- 什么是白皮书?
- IPFS 白皮书:概述与原作者
- 什么是 IPFS?
- IPFS 是如何运作的?
- 内容寻址与内容标识符 (CIDs)
- IPFS 与传统网络 (HTTP) 的对比
- IPFS 是区块链吗?核心区别详解
- IPFS 与 Filecoin:有什么区别?
- IPFS 上的数据持久化、固定 (Pinning) 与存储
- 为什么 IPFS 至关重要:现实世界的应用
- IPFS 的局限性与批评
- 常见问题解答
- 延伸阅读
什么是白皮书?
在加密货币和技术领域,白皮书是一份技术文档,旨在定义问题、提出解决方案,并概述实现该方案所需的系统架构。这种用法与作为政策文件的政府白皮书有所不同。在加密货币领域,白皮书是协议或项目发布的基础技术规范,用于确立其设计意图。
白皮书流派在区块链和 Web3 中有着可追溯的历史。比特币白皮书 (中本聪, 2008) 确立了这种格式,这份长达九页的文件指出了双重支付问题,提出了加密解决方案,并描述了实现该方案的点对点架构。Vitalik Buterin 的 以太坊白皮书 (2013) 扩展了这种格式,提出了在分布式计算平台上实现可编程智能合约。次年,Juan Benet 的 IPFS 白皮书将同样的传统应用到了分布式文件存储中。这些文件中的每一份都遵循相同的结构逻辑:指出一个问题,提出一个架构,并引用其所基于的前人工作。
白皮书与精简版论文(litepaper)不同,后者是一个更简短、更易于理解的摘要,面向非技术受众。精简版论文解释概念;白皮书则详细说明了架构。
白皮书包含的内容
一份结构良好的技术白皮书通常涵盖以下内容:
- 摘要或引言: 问题的简要概述以及提议的解决方案
- 问题陈述: 对协议所要解决的技术或系统性故障的精确描述
- 提议的解决方案: 核心架构理念,包括关键设计选择
- 技术架构: 系统如何工作,包括其数据结构和协议规范
- 用例: 提议系统的具体应用
- 代币经济学 (如适用): 相关的加密货币如何激励网络参与
- 团队资质和过往工作: 作者的背景以及提案所依据的现有研究
为什么加密货币项目会发布白皮书
项目发布白皮书主要有四个原因:
- 建立技术可信度: 一份详细的白皮书表明该项目是基于明确的架构构建的,而非凭空猜测
- 传达设计意图: 评估协议的开发者在之上构建之前,需要了解其功能和实现方式
- 邀请同行评审: 发布技术规范可以让研究人员和工程师在部署前发现漏洞
- 为投资者和公众记录目标: 白皮书为项目声称要做的事情创建了公开记录,从而实现问责制
如何阅读加密货币白皮书
- 首先阅读问题陈述,以了解该协议声称要解决的问题
- 检查所提出的解决方案是否在逻辑上与问题相符
- 核实团队的资历及其引用的先前工作
- 查看技术架构部分,评估其设计是否连贯
- 如果涉及代币,检查其经济激励措施是否与所述目标一致
IPFS 白皮书是优秀技术白皮书应有的所有要素的绝佳范例。下一节将详细介绍其内容。
IPFS 白皮书:概述与作者信息
IPFS 白皮书由 Protocol Labs 的 Juan Benet 于 2014 年撰写,它提出了一种点对点、内容寻址的分布式文件系统,旨在取代或补充基于 HTTP 的网络。
谁撰写了 IPFS 白皮书
IPFS 白皮书由 Juan Benet 撰写,他是一位计算机科学家,Protocol Labs 的创始人,并于 2014 年发布。Benet 拥有斯坦福大学计算机科学背景,同时也是 Filecoin 和 libp2p 网络库的创建者。Protocol Labs,他创立的组织,是一家专注于去中心化互联网基础设施的研究与开发公司。它将 IPFS、Filecoin 和 libp2p 作为开源项目维护,向任何开发者或组织开放。
Protocol Labs 是一家营利性公司,但将其核心协议作为开放标准发布。IPFS 并非由 Protocol Labs 独家拥有;它是一个开源协议,由生态系统中的开发者共同贡献。
IPFS 白皮书提出的内容:通俗易懂的总结
现有网络将文件存储在服务器上,你通过访问指向该特定服务器的特定地址(URL)来检索它们。IPFS 白皮书提出了一种不同的方法:不再通过文件“在哪里”来查找它,而是通过它“是什么”来查找它。每个文件都会获得一个独特的加密指纹,并且网络上持有该文件的任何计算机都可以为你提供。没有单个服务器拥有该内容。
您可以直接阅读原始 IPFS 白皮书)。以下章节将用通俗易懂的语言解释其核心概念。
IPFS 白皮书中的关键概念
- 内容寻址 (Content addressing): 通过文件内容而非其服务器位置来查找文件
- 内容标识符 (CID): 分配给 IPFS 上每个文件的唯一加密指纹
- 默克尔有向无环图 (Merkle DAG): IPFS 用于组织和链接文件块的数据结构
- 分布式哈希表 (DHT): 用于定位哪些节点持有特定内容的路由层
- 点对点 (P2P) 网络: 从任何持有内容的节点(而非中心化服务器)检索文件
- 星际命名系统 (IPNS): 可变指针,允许为更新的内容提供稳定的地址
- 数据去重: 相同的块共享一个 CID,因此相同的数据绝不会在整个网络中被重复存储
什么是 IPFS?
星际文件系统 (IPFS) 是一个开源的、点对点(peer-to-peer)的协议,用于在分布式文件系统中存储和共享数据,由 Juan Benet 开发,并由 Protocol Labs 维护。与传统网络通过服务器位置(URL)查找文件不同,IPFS 通过内容查找文件,使用一种称为内容标识符(CID)的独特加密指纹。
IPFS 融入了去中心化网络 (Web3) 的更广泛架构。这是一种新兴的互联网模型,数据和应用程序分布在许多节点上,而不是由 Google、Amazon 或 Meta 等中心化实体控制。IPFS 提供了去中心化应用程序运行所需的存储和内容路由层,使其无需依赖任何单一公司的服务器。NFT 元数据、去中心化网站和 dApp 资产都依赖 IPFS 作为 Web3 技术栈中的持久存储层。
接下来的章节将解释 IPFS 如何在技术上实现这一点,它与 HTTP 和区块链的比较,以及它在现实世界中的应用情况。
IPFS 解决了什么问题?
IPFS 指出了 基于HTTP的Web 的 四个结构性弱点:
- 链接失效: 当服务器下线或 URL 更改时,该地址的文件将永久消失
- 网络审查: 政府或互联网服务供应商可以封锁对服务器的访问,从而移除整个地区的内容
- 带宽瓶颈: 热门内容会对单个服务器产生集中负载,导致速度变慢
- 静默数据篡改: URL 处的文件可以在没有任何更改记录的情况下被修改,且读者无法察觉
IPFS 通过将服务器从检索方程式中移除,解决了所有这些问题。内容存储在分布式网络中,并通过其内容而非位置来查找。HTTP 与 IPFS 的完整比较出现在下方的专门比较部分。
IPFS 的用途是什么?
IPFS 在 Web3 生态系统的多种应用类别中均有使用:
- NFT 元数据存储: 基于以太坊的 NFT 项目将图片和元数据存储在 IPFS 上,并将 CID 嵌入到智能合约中,以在代币与其内容之间创建防篡改链接。
- 去中心化网站托管: 网站可以发布到 IPFS,并且无需任何中心化托管提供商即可访问。
- Web3 应用数据层: 去中心化应用将链下数据存储在 IPFS 上,以避免链上存储的成本和限制。
- 抗审查内容分发: 记者和档案管理员使用 IPFS 发布内容,这些内容无法通过阻止单个服务器而被下架。
- 学术和档案数据保存: 研究数据和历史记录可以存储在 IPFS 上,并附有加密完整性证明。
IPFS 如何运作?
IPFS 通过一个涉及将内容分割成块、为每个块生成加密指纹,并将这些块分布到一个没有中央服务器的点对点 (P2P) 网络上的过程来存储和检索文件。如果你熟悉点对点加密货币协议(例如 Litecoin 及其他分布式网络))在网络层面的运作方式,那么 IPFS 就遵循类似的分布式节点参与逻辑。
点对点网络:无中央服务器
IPFS 背后最基础的架构选择是点对点(P2P)网络。在传统互联网中,您的浏览器会联系特定的服务器,并向其请求位于特定路径下的文件。在点对点网络中,任何持有该文件的参与计算机(称为节点)都可以为您提供该文件。
这种区分非常重要,因为它消除了单点故障。如果某台服务器下线,它所托管的任何 HTTP 资源都将变得不可用。在 P2P 网络中,同一文件可以从任何持有该文件的节点中检索。IPFS 通过添加内容寻址扩展了这种架构,因此网络可以精确地知道哪些节点持有哪些文件。
IPFS 如何存储和检索文件:分步指南
["一个文件被分割成更小的数据块。","每个数据块都通过一个加密哈希函数处理,生成一个称为内容标识符(CID)的独特指纹。","这些数据块在一个称为 Merkle DAG(有向无环图)的数据结构中被链接在一起,其中根节点的 CID 代表整个文件。","文件的 CID 被发布到一个分布式哈希表(DHT),它记录了网络上的哪些节点正在存储这些数据块。","当另一个用户通过 CID 请求文件时,IPFS 会查询 DHT 以查找当前存储相关数据块的节点。","从这些对等节点检索数据块,重新组合,并与原始 CID 进行验证,以确认数据完整性。"]
此过程不涉及单一服务器。任何持有特定 CID 的节点都可以向任何请求者提供该内容。这意味着,只要还有至少一个其他节点继续托管该文件,存储在 IPFS 上的文件就能在任何单个节点关停后继续存在。
Merkle DAG:IPFS 如何组织数据
想象一下 Merkle DAG 就像一棵由拼图碎片组成的树,其中每个碎片都有一个基于其内容的唯一 ID,并且还记录了它所链接的任何碎片的 ID。根碎片(root piece)的 ID 代表了整个组装好的拼图。改变拼图中的任何东西,根 ID 就会改变,从而使任何篡改都能被立即检测出来。
正式而言,Merkle DAG(有向无环图)是一种数据结构,其中每个节点都通过其加密哈希进行标识,并通哈希链接到其他节点,从而形成一个可验证且具有防篡改特性的结构。由于相同的区块始终会产生相同的 CID,因此 IPFS 会自动对数据进行去重处理。相同的内容绝不会在网络中存储两次。
IPFS 属于分布式文件系统类别:在该系统中,数据通过节点网络进行存储和检索,而不是来自单个服务器,它是建立在包括 NFS、AFS 以及 Git 的对象存储模型在内的传统基础之上的。Git 使用了相同的基本原理,即每个提交都通过其内容的哈希值进行标识,从而形成一个防篡改的历史链。IPFS 将这一原理应用到了所有的内容存储中。
分布式哈希表:IPFS 如何寻找内容
想象一下分布式哈希表(DHT)就像一个分布式的电话簿:它不像一个中央目录列出谁拥有什么内容,而是成千上万的节点各自持有索引的一部分。当您想要某个文件时,您会向网络卖出哪个节点当前拥有它,网络会将您的请求路由到正确的节点。
正式而言,去中心化哈希表 (DHT) 是一种去中心化路由系统,它将内容标识符映射到当前存储该内容的对等节点。IPFS 使用 Kademlia 算法(一种在 2002 年开发的特定 DHT 变体)来实现这种对等节点发现和路由功能。与 BitTorrent 类似,IPFS 同时从多个对等节点检索文件,而不是从单个中央服务器检索。与 BitTorrent 不同的是,IPFS 被设计为开放网络的一个永久、可寻址层,而非用于共享单个种子文件的工具。
内容寻址与内容标识符 (CIDs)
内容寻址是 IPFS 区别于传统网络的核心架构创新,而理解它,则是理解该协议所有其他内容的关键。
什么是内容寻址?
您可以将其想象为根据国际标准书号(ISBN)而非特定商店的书架位置来寻找书籍。ISBN 根据书籍的本质内容进行识别。无论哪家书店销售,书的内容都不会改变。书架位置是根据书籍当前存放的地点进行识别的,如果那家书店倒闭了,该书架位置就毫无用处。而 ISBN 始终有效。
内容寻址是一种文件检索方法,它使用文件内容的加密哈希作为其地址。与基于位置的寻址(URL 指向特定的服务器和路径)不同,内容地址指向内容本身,并且可以由任何存储该内容的节点提供。关键的实际意义在于:如果内容哪怕只更改了一个字节,地址也会随之改变。这意味着内容寻址提供了内置的数据完整性验证,因为地址本身就是证明您收到的内容正是您所请求的内容。
什么是 IPFS 中的 CID?
内容标识符 (CID) 是分配给存储在 IPFS 上的每一份内容的唯一地址,该地址是通过将内容通过加密哈希函数生成的。一个真实的 CID 看起来像这样:
QmR7GSQM93Cx5eAg6a6yRzNde1FQv7uL6X1o4k7zrJa3LX
两个完全相同的文件始终会产生相同的 CID。即使只修改文件中的一个字节,也会产生一个完全不同的 CID。IPFS 网络上的任何节点都可以验证其接收到的内容是否与所请求的 CID 匹配。如果哈希值匹配,则说明该内容是真实且未经篡改的。
加密哈希函数的工作原理类似于指纹识别机:输入任何文件,它都会输出一个代表该文件的唯一固定长度字符串。相同的输入始终会产生相同的输出,并且两个不同的文件产生相同指纹的情况在实际操作中几乎是不可能的。IPFS 会将每个文件和每个数据块通过哈希函数运行以生成其 CID,这就是为什么 CID 能够同时作为地址和完整性检查的原因。
IPFS 还包括星际命名系统 (IPNS),该系统提供可变地址,允许稳定链接更新以指向新内容版本,这类似于网站域名在服务器 IP 地址更改时仍保持不变。这解决了内容寻址对于需要更新的内容而言不切实际的问题。
下表预览了基于位置寻址和内容寻址之间的主要区别。有关 IPFS 与 HTTP 的完整对比请参见下一节。
| HTTP (基于地理位置) | IPFS (基于内容) | |
|---|---|---|
| 地址指向 | 特定服务器 | 内容本身 |
| 服务器宕机时的情况 | 文件无法访问 | 可从任何固定节点获取文件 |
| 数据完整性检查 | 无内置功能 | CID 不匹配可揭示篡改行为 |
| 抗审查能力 | 低:封锁服务器即可 | 较高:没有单一服务器可封锁 |
IPFS 与传统网络 (HTTP) 的对比
HTTP 和 IPFS 解决的是同一个基本问题(通过网络检索数据),但在识别和定位数据的方式上,它们做出了截然相反的架构选择。
| 维度 | HTTP (传统网页) | IPFS |
|---|---|---|
| 定址方法 | 基于位置 (URL指向服务器) | 基于内容 (CID识别内容) |
| 文件检索来源 | 单一指定服务器 | 任何持有内容的节点 |
| 单点故障 | 是:服务器宕机意味着文件不可访问 | 否:内容可从任何持有节点检索 |
| 抗审查性 | 低:阻止服务器或DNS | 较高:没有中心服务器可供定位 |
| 数据完整性 | 默认不验证 | CID验证内容是否与请求相符 |
| 内容持久性 | 取决于服务器正常运行时间 | 取决于主动固定 |
传统网络使用基于位置的寻址。像 `https://example.com/file.jpg`` 这样的网址会指示您的浏览器联系某个特定IP地址上的特定服务器,并检索特定路径下的特定文件。您接收到的内容的可靠性,完全取决于该服务器。如果服务器离线、被审查或修改了文件,用户体验就会下降或完全失败。这些并非HTTP的缺陷,而是基于位置的寻址固有的权衡。
HTTP 针对速度和简单性进行了优化,并拥有数十载成熟开发工具链的支持。IPFS 则优先考虑韧性和可验证性,但以牺牲现有的工具生态系统为代价。这些不同的设计目标导致了不同的权衡,两者并无绝对的优劣之分。正确的选择取决于特定应用程序的需求。
IPFS 会取代 HTTP 吗?
不。IPFS 的设计初衷并非取代 HTTP。如今大部分 IPFS 内容都是通过 HTTP 网关访问的,这意味着用户无需任何特殊软件,即可通过标准浏览器访问 IPFS 内容。这两种协议是协同工作的,而非相互竞争。
IPFS 是区块链吗?核心差异详解
不是的。IPFS 不是区块链,这两种技术在用途上有本质上的不同,尽管它们经常在同一个 Web3 应用架构中配合使用。
区块链是一种分布式、仅限追加的账本,它将交易记录在以加密方式链接的区块中,由必须对账本状态达成共识的节点网络维护。区块链旨在记录已发生的事件,并使该记录具备防篡改特性。对于想要了解分布式共识在区块链层面如何运作的背景知识的读者,Cardano 的区块链架构所展示的内容 在实践中展示了相同的基本设计。
IPFS 是一个使用内容寻址来存储和检索内容的分布式文件系统。它不维护交易记录链。它不需要节点之间就文件检索达成共识。它没有自己的本土加密货币。它以 Merkle DAG(有向无环图)的形式组织数据,而不是以块链的形式。
| 维度 | IPFS | 区块链 |
|---|---|---|
| 数据结构 | Merkle DAG (按哈希链接内容) | 加密链接区块构成的链 |
| 主要目的 | 文件存储和检索 | 交易记录和账本维护 |
| 数据可变性 | 内容寻址;新内容有新的CID | 仅可追加;无法更改过往记录 |
| 代币要求 | 无:IPFS不需要加密货币 | 大多数区块链需要原生代币 |
| 相互关系 | 互补:区块链用于链下存储 | 使用IPFS存储大于链上存储的数据 |
这两项技术是相辅相成的,而非同义词。以以太坊上的 NFT 智能合约为例,通常会在 IPFS 上存储代币的元数据和媒体文件。区块链保存指向该文件的 CID;IPFS 则保存文件本身。这种安排将海量数据保留在链下(因为链下存储成本昂贵),同时保留了代币与其内容之间防篡改的链接。
IPFS 和 Filecoin:有什么区别?
IPFS 和 Filecoin 是由同一机构 Protocol Labs 创建的两个独立项目,但它们的功能各不相同。将两者混淆是 Web3 生态系统中常见的误解之一。
IPFS 是一种点对点协议,用于存储和检索基于内容寻址的数据。Filecoin 则是一个独立的加密货币和激励网络,用于支付节点运营商在 IPFS 上持久地存储数据。记住两者区别最简单的方法是:IPFS 是基础设施;Filecoin 是支付系统。
默认情况下,只有在至少有一个节点主动托管 IPFS 内容时,该内容才可用。对于存储其非创建或非请求内容的节点来说,IPFS 并没有内置的经济激励机制。如果持有特定 CID 的每个节点都停止托管该内容,即使 CID 地址仍然存在,该内容也将无法访问。
Filecoin 解决此问题的方法是向存储提供商支付 FIL 代币,要求他们承诺在约定的期限内存储特定数据,并以加密证明作为支持。存储提供商会质押抵押品,若未能维护其合同约定存储的数据,则抵押品将被没收,从而创造了持久性的经济担保。
| 维度 | IPFS | Filecoin |
|---|---|---|
| 类型 | 开源协议 | 加密货币及存储网络 |
| 目的 | 基于内容寻址的文件存储与检索 | 为 IPFS 存储的持久性提供经济激励 |
| 代币要求 | 无 | 需要 FIL 代币(加密货币) |
| 数据持久性 | 取决于节点的自愿托管 | 通过存储合约和加密证明保障 |
| 依赖关系 | 不需要 Filecoin | 需要 IPFS 才能运行 |
IPFS 在没有 Filecoin 的情况下也能运行。Filecoin 在没有 IPFS 的情况下则无法运行。
免责声明: 本文仅供教育和信息参考之用。本内容中的任何信息均不构成财务、投资或法律建议。Filecoin (FIL) 是一种加密货币。加密货币投资具有风险。在做出任何投资决定之前,请咨询合格的财务顾问。
IPFS 上的数据持久性、固定和存储
IPFS 不会自动永久保存内容。这一点让许多初次接触该协议的读者感到惊讶。
当 IPFS 节点检索到内容时,它会临时缓存该内容。缓存会随着时间推移,通过一个称为垃圾回收(garbage collection)的过程被清除,移除那些节点没有明确要求保留的内容。如果网络上的任何节点没有被主动指示保留某个 CID,那么该内容就会变得无法访问,即使该 CID 地址在技术上仍然有效,并且该内容曾经是可访问的。
您可以将“固定”(Pinning)想象成给文件添加书签,并通知您的 IPFS 节点永久保存该文件,而不是将其视为临时的下载内容。正式而言,固定是向 IPFS 节点发出的一项指令,旨在使其在默认缓存生命周期之后继续保留特定内容,并将其从垃圾回收机制中排除。如果您在发布内容到 IPFS 时未在任何地方进行固定,您就只能寄希望于其他节点自愿无限期地缓存这些内容,而这并无保障。
为确保 IPFS 内容保持可访问,您有三种实用的选择:
- 运行您自己的 IPFS 节点并自行固定内容。 这能让您拥有直接控制权,但需要持续进行基础设施管理。
- 使用专门的固定服务。 Pinata、web3.storage 和 Filebase 会在它们管理的 IPFS 节点上托管您的内容,无需您进行任何技术设置。
- 使用 Filecoin 进行具有经济激励的持久存储。 存储提供商在合同中承诺保留您的数据,并设有加密证明和针对违规行为的经济惩罚。
只要有至少一个节点在积极进行固定(Pinning),IPFS 内容就是永久性的。如果没有固定或 Filecoin 存储,即使 CID 仍在智能合约、文档或其他引用中流传,内容也可能会变得不可用。
IPFS 为何重要:真实世界的应用
IPFS已不再是一个理论性的提议。该协议已在多个 Web3 基础设施类别中投入生产使用,从 NFT 元数据存储到以太坊自身的网络层。
许多基于以太坊的 NFT 标准使用 IPFS CID 在链下存储元数据和媒体文件,并将 CID 嵌入智能合约中,以在代币与其内容之间创建防篡改链接。这种安排意味着 NFT 的内容证明在任何单个存储提供商关闭后仍能留存。Protocol Labs 将为 IPFS 构建的网络层提取为名为 libp2p 的独立库,此后该库已被以太坊共识层采用作为其点对点网络堆栈。这种采用证明了 IPFS 技术对 Web3 基础设施的广泛影响,远不止文件存储。包括 Internet Archive 在内的机构已探索基于 IPFS 的内容分发,以用于存档目的。
IPFS 提供了去中心化应用所依赖的存储和内容路由层,以便在没有中央服务器的情况下实现数据持久化。只要节点继续固定 (pin) 这些内容,存储在 IPFS 上的 NFT 元数据、去中心化网站文件和 dApp 资产就可以无限期地保存,而不受任何单一公司持续运营的影响。如需进一步了解加密货币生态系统如何发展和被追踪的背景信息,加密货币数据排名的工作原理 解释了围绕这些协议的更广泛市场基础设施。
您目前可以通过三种途径访问 IPFS 内容:
- 公共 IPFS 网关: 在任何标准浏览器中导航至
ipfs.io/ipfs/[CID]或cloudflare-ipfs.com/ipfs/[CID];无需安装 - IPFS 桌面应用或 Brave 浏览器: Brave 具有内置的 IPFS 支持,可以原生解析 IPFS 地址,无需网关
- 命令行 IPFS 守护进程: 适用于想要运行自己的节点并直接参与网络的技术用户
网关访问在底层使用 HTTP,这意味着无需特殊软件,即可在任何标准浏览器中访问 IPFS 内容。大多数读者会发现,使用网关选项来浏览 IPFS 托管的内容已足够。
IPFS 的局限性与批评
IPFS 解决了传统互联网中存在的实际问题,但该协议也带来了自身的权衡取舍。任何知情的评估都需要直接正视这些问题。
| 优势 | 劣势 |
|---|---|
| 抗审查性:没有单一服务器可以被封锁 | 无自动持久性:如果未被固定(unpinned),内容会消失 |
| 数据完整性:CID 不匹配将揭示任何篡改 | 对于极少访问或新上传的内容,初始检索速度较慢 |
| 无单点故障:即使个别节点宕机,内容依然存在 | DHT 路由会引入延迟,特别是对于主机较少的内容 |
| 自动去重:相同的内容在整个网络中只存储一次 | 不保证用户匿名性 |
| 热门内容的带宽效率:可从多个附近的对等节点检索 | 非技术用户的用户体验较复杂;需要固定服务(pinning services)或技术设置 |
数据持久性限制是最主要的实际顾虑。IPFS 上的内容持久性,仅取决于愿意托管它的节点。这并非传统意义上的设计缺陷;这是移除了本应承担内容可用性责任的中央服务器所带来的直接后果。持久化的责任从基础设施提供商转移到了内容发布者身上,他们必须主动管理“固定”(pinning)或付费使用 Filecoin 存储。
分布式哈希表 (DHT) 路由会引入 HTTP 不会遇到的检索延迟。对于被许多节点固定的热门内容,IPFS 的表现很好,因为附近的节点可以快速提供内容。对于冷门内容或新上传的文件,IPFS 的速度可能比缓存良好的 HTTP 响应明显慢。这是一个实际的性能权衡,而非理论上的。
IPFS 在结构上是去中心化的。没有单一实体控制该网络,且内容完整性通过 CID 验证得到加密保证。然而,IPFS 不提供匿名性。参与节点的 IP 地址在获取内容时是可见的,这意味着 IPFS 不是隐私工具,不应被如此看待。
以下 FAQ 部分直接探讨了其中的几个权衡。
常见问题
以下问题反映了有关 IPFS 和白皮书最常见的搜索查询,并直接予以解答。
IPFS 解决了什么问题?
IPFS 解决了基于 HTTP 网络四大结构性弱点:链接失效、审查制度、带宽瓶颈以及静默数据篡改。HTTP 将文件存储在中央服务器上。如果服务器离线或 URL 发生变化,文件就会消失。IPFS 将文件存储在分布式点对点网络中,并根据内容而非位置来识别文件,因此只要至少有一个节点正在托管这些文件,它们就仍然可以被访问。
什么是 IPFS 中的内容寻址?
内容寻址是一种基于文件内容而非存储位置来检索文件的方法。IPFS不是向特定服务器请求特定URL的文件,而是向网络请求与一个称为内容标识符(CID)的特定加密指纹匹配的文件。这意味着同一个文件可以从任何持有它的节点检索到,并且CID本身证明文件未被篡改。
IPFS与区块链有何不同?
IPFS 是一个用于存储和检索内容的分布式文件系统;区块链是一个用于记录交易的分布式账本。IPFS 使用 Merkle DAG(有向无环图)来组织文件块;区块链使用密码学链接的区块链来记录交易历史。这两种技术经常一起使用,区块链应用将大文件存储在 IPFS 上,并将文件的 CID 记录在链上,以创建防篡改的引用。
IPFS 中的 CID 是什么?
内容标识符 (CID) 是分配给 IPFS 上存储的每一块内容的唯一地址,该地址是通过将内容通过加密哈希函数生成的。两个相同的文件总是会产生相同的 CID;即使改变一个字节也会产生一个完全不同的 CID。这使得 CID 既是地址也是完整性校验:如果您收到的内容与您请求的 CID 匹配,您就知道该文件是真实且未被篡改的。
IPFS 是谁创建的?何时创建的?
IPFS 白皮书由计算机科学家兼协议实验室 (Protocol Labs) 创始人 Juan Benet 撰写,并于 2014 年发布。由 Benet 创立的协议实验室持续开发并维护 IPFS,使其作为一项开源协议运行,并获得来自整个生态系统开发者的贡献。
IPFS 安全且去中心化吗?
IPFS 在结构上是去中心化的。没有任何单一实体控制该网络,且内容的完整性通过密码散列函数得到保证。任何检索文件的节点都可以验证其是否与请求的 CID 匹配。然而,内容的可用性取决于积极的固定(pinning):如果没有节点托管某个文件,该文件将变得无法访问。IPFS 并不提供匿名性,因为参与节点的 IP 地址在文件检索过程中是可见的。
什么是 Filecoin?它与 IPFS 有什么关系?
Filecoin 是由 Protocol Labs 创建的一种独立的加密货币和存储网络,它向节点运营商支付 FIL 代币,以持久地在 IPFS 上存储数据。IPFS 是底层协议;Filecoin 是构建在其之上的经济激励层。IPFS 在没有 Filecoin 的情况下也能运行,但 Filecoin 需要 IPFS 才能运行。
什么是加密货币领域的白皮书?
加密货币中的白皮书是一份技术文档,描述了协议的设计、其解决的问题以及用于解决该问题的架构。中本聪(Satoshi Nakamoto)于 2008 年发布的比特币白皮书确立了该行业的格式。大多数可靠的区块链和 Web3 项目都会发布一份白皮书作为其基础技术参考。
如何访问 IPFS 上的内容?
访问 IPFS 内容最简单的方法是使用公共网关:在任何标准浏览器中导航至 ipfs.io/ipfs/[CID] 或 cloudflare-ipfs.com/ipfs/[CID],无需进行任何安装。Brave 浏览器内置了 IPFS 支持,可以原生解析 IPFS 地址。对于技术用户而言,运行 IPFS 桌面应用或命令行守护进程即可直接连接到点对点网络。
IPFS 会取代互联网吗?
并非如此。IPFS并非旨在取代互联网或HTTP。它是一个补充性协议,解决了HTTP模型在数据持久性、抗审查性及内容完整性方面的特定局限。目前,大部分IPFS内容仍通过HTTP网关访问,这表示这两种系统是协同运作,而非竞争关系。
延伸阅读
阅读本文后,您已掌握了参与 IPFS 协议、评估白皮书以及了解 IPFS 在更广泛 Web3 生态系统中地位所需的基础知识。您现在可以解释什么是白皮书,总结 IPFS 白皮书所提出的建议,区分 IPFS 与区块链和 HTTP,并理解为什么 Filecoin 和固定 (pinning) 会作为持久性问题的独立解决方案而存在。
您的后续步骤取决于您的需求:
- 阅读 Juan Benet 撰写的 IPFS 白皮书原文),了解完整的技术规范
- 查阅由 Protocol Labs 维护的 IPFS 官方文档,获取最新的实施细节、API 参考和教程
- 通过学习相关协议来探索区块链基础知识,以加深您的 Web3 基础
准确性声明: IPFS 是一项积极开发中的开源协议。技术细节、采用情况和生态系统信息在发布后可能会发生变化。请参阅 docs.ipfs.tech 上的 官方 IPFS 文档 以获取最新规范。
相关阅读
["- Cardano Ada 加密货币 区块链 解释","- Litecoin Ltc 加密货币 解释 如何运作","- Polkadot Crypto Dot 币种 平行链 解释"]