教程区块链区块链技术ch099.7 去中心化存储:IPFS、Arweave 与 Filecoin

本页目录

以太坊的存储极其昂贵:存储 1 KB 数据约需 20,000 Gas,即数百美元。NFT 的元数据和 DApp 前端显然不能上链。去中心化存储网络在链下提供"类 HTTP"的数据持久性,但用密码学证明替代了中心化服务器的可信度。


9.7.1 IPFS:内容寻址而非位置寻址

HTTP 的缺陷https://server.com/cat.jpg 通过位置寻址——如果服务器下线,链接失效。

IPFS 的内容寻址:通过内容的哈希寻址:

IPFS 地址=multihash(content)=base58(sha2-256(content))\text{IPFS 地址} = \text{multihash}(\text{content}) = \text{base58}(\text{sha2-256}(\text{content}))

CID(Content Identifier)

QmYjtig7VJQ6XsnUjqqJvj7QaMcCAwzE...\text{QmYjtig7VJQ6XsnUjqqJvj7QaMcCAwzE...}

只要内容不变,CID 不变;内容微小改动,CID 完全不同。这天然支持不可篡改性重复内容去重

Merkle DAG 结构

IPFS 内部用 Merkle DAG(有向无环图)组织数据:

  • 大文件分块(256 KB/块),每个块有 CID;
  • 文件对象是一个指向块 CID 列表的节点;
  • 目录是指向文件 CID 的节点。
graph TD
    A[目录 CID: QmRoot] --> B[子目录: QmDir1]
    A --> C[文件: QmFile1<br>指向块列表]
    B --> D[块1: QmB1
    hash=...]
    B --> E[块2: QmB2
    hash=...]
    C --> F[块1: QmF1]
    C --> G[块2: QmF2]
    C --> H[块3: QmF3]
    style A fill:#ccffcc

9.7.2 问题:IPFS 不保证持久性

IPFS 节点是自愿的——如果最后一个持有某 CID 的节点下线,该内容就"消失"。

解决方案

  • Pinning Service:如 Pinata、Infura——中心化服务承诺长期保存特定 CID;
  • Filecoin:去中心化的 IPFS 激励层,通过经济激励让矿工存储数据。

9.7.3 Filecoin:存储的激励层

核心机制

  • 存储提供者(矿工)质押 FIL,承诺存储客户数据;
  • 网络定期检查——要求矿工提供时空证明(Proof of Spacetime, PoSt)
  • 如果矿工无法提供证明,质押被削减;

复制证明(Proof of Replication, PoRep)

证明者需要证明:

  1. 数据已被物理存储(不是计算生成);
  2. 数据的 N 个独立副本存在
PoRep=fSNARK(数据,随机挑战)证明\text{PoRep} = f_{SNARK}(\text{数据}, \text{随机挑战}) \rightarrow \text{证明}

时空证明(PoSt)

每隔一段时间,网络向存储者发起挑战,要求证明特定时间窗口内数据持续存在。

PoStt=gSNARK(数据,challenget,previous_PoStt1)\text{PoSt}_t = g_{SNARK}(\text{数据}, \text{challenge}_t, \text{previous\_PoSt}_{t-1})

9.7.4 Arweave:永久存储的一次性付费

哲学差异

  • Filecoin:按时间租赁存储(需持续付费);
  • Arweave:一次性付费,永久存储

经济模型:用户支付 AR 代币时,费用的主要部分进入捐赠基金(Endowment)。该基金的预期投资收益覆盖未来数十年的存储成本。假设:存储成本每 2-3 年下降 50%,只需当前费用的很小部分就能"自我维持"未来 200 年的存储。

访问证明(Proof of Access, PoA)

矿工需要证明他们能访问一个随机选择的"回忆区块"(recall block)——一个历史区块。这迫使矿工存储整个区块历史,而非仅存储当前"热门"数据。


9.7.5 三种方案的对比

维度IPFSFilecoinArweave
持久性不保证(依赖节点上线)经济上激励持久化永久保证
付费模式免费持续租赁/拍卖一次性付费
检索延迟低(P2P 近距离)中(矿工竞价)中(按访问激励机制)
内容过滤无(理论上)
区块链集成无(纯 P2P)独立链独立链
最佳场景NFT 元数据、DApp 前端企业级大文件存储档案、证据保存
ts
// storage-compare-sim.ts
// 纯内置:比较三种存储方案的 10 年总成本与持久性概率

interface StoragePolicy {
  name: string;
  upfrontCost: number;
  recurringCost: number;
  storageHalvingYears: number;
  siberRisk: number; // 网络失败概率/年
}

function lifetimeCostAndDurance(policy: StoragePolicy, years: number): { totalCost: number; survivalProb: number } {
  let cost = policy.upfrontCost;
  for (let y = 0; y < years; y++) {
    const halvings = Math.floor(y / policy.storageHalvingYears);
    cost += policy.recurringCost / Math.pow(2, halvings);
  }
  const survival = Math.pow(1 - policy.siberRisk, years);
  return { totalCost: cost, survivalProb: survival };
}

const policies: StoragePolicy[] = [
  { name: 'IPFS Pinning', upfrontCost: 0, recurringCost: 50, storageHalvingYears: 5, siberRisk: 0.05 },
  { name: 'Filecoin 租赁', upfrontCost: 10, recurringCost: 30, storageHalvingYears: 2, siberRisk: 0.02 },
  { name: 'Arweave', upfrontCost: 80, recurringCost: 0, storageHalvingYears: 100, siberRisk: 0.01 },
];

for (const p of policies) {
  const r = lifetimeCostAndDurance(p, 10);
  console.log(`${p.name}: 10年成本 $${r.totalCost.toFixed(0)}, 存留概率 ${(r.survivalProb * 100).toFixed(1)}%`);
}
// 输出: Arweave 虽然前期高,但 10 年总成本可能最低且持久性最佳

关键认知七:去中心化存储的"免费"是错觉——有人必须物理保存数据并支付硬盘+带宽成本。IPFS 假设有人自愿服务;Filecoin 假设经济激励足以覆盖替代服务器;Arweave 假设存储成本将持续下降。这三个假设各有风险,但共同构成了 Web3 的数据层。


← 9.6 DAO 治理 | 前往 → 9.8 预言机

评论

0

评论加载中…

发表评论

0/2000