关于 Filecoin

Filecoin 是一个点对点网络,可存储文件,内置经济激励以达到随时间可靠存储的目的。用户为存储的文件向存储提供者付费。可用的存储和存储价格不受任何一个公司控制,这是一个开发开放的市场。

FIlecoin 的底层技术与IPFS 协议相同,是一个采用了内容寻址的点对点分布式存储网络,该内容寻址可以支持对数据的永久引用,避免寻址的内容对特定设备或云服务器的依赖。与IPFS不同的是,Filecoin 的顶层有一个激励层用于激励可靠存储和访问内容。

典型用例,包括 Web3 原生NFT,元宇宙/游戏资产的存储,激励性的永久存储,以及作为比云存储便宜的候选方案归档Web2 数据集。

NFT.storage 使用FIlecoin提供一个存储NFGT内容和元数据的去中心化存储方案。

Shoah Foundation,  Internet Archive 使用 Filecoin 备份内容。

 Audius 和 Huddle01 使用Filecoin 作为音乐流和视频会议的去中心化存储后端。

加密经济学

Filecoin的原生货币是 FIL,用于激励Filecoin网络上持久化存储。存储提供者通过提供可靠的存储服务和存储容量挖FIL,最大流通量 2X10^9。FIL 兼顾 参与者的激励和网络的长期成长,其发行也考虑到网络的整体可证明性,只有网络获得增长并且有相当规模时,才会铸造大部分Filecoin。Filecoin 块奖励铸造采用  dual minting model 。

Baseline minting 基准铸造。770M FIL 根据网络性能铸造。如果Filecoin网络在20年内达到 Yottabyte ( 2^80)存储容量,大约是今天云存储容量的1000倍,这部分FIL 将全部发放。

Simple minting 简单铸造。共发行330M FIL,以6年一个减半周期发放,即大约30年发放330M FIL 的 96.875%。此外,330M FIL 保留在挖矿储备中,用于激励未来的挖矿类型。

Vesting 兑现。挖矿奖励采用一个兑现计划,这是为了鼓励网络长期的稳定性。例如,矿工获得的75%块奖励在180天内是线性兑现,而25%是立即兑现。剩余的FIL 在6年内兑现给Protocal Labs 团队和 Filecoin 基金会,三年内兑现给 SAFT 投资者。vesting table

为鼓励网络参与者的良好行为,在挖矿块奖励时,存储提供者必须为共识安全性,存储可靠性和合约担保等质押FIL。质押的FIL由矿工预期获得的块奖励决定。如果存储不能通过可靠性检测,存储提供者的抵押品和所有赚到的奖励就会被削减。

虽然FIL的最大流通量是 2B,在实际中,不会达到这个数量,燃烧的GAS费,罚没等数量是非常可观的,并且是永久性消减。

区块链

Filecoin区块链是Tipsets(提示集)的链,而不是块的链。一个tipset 是具有相同高度和父tipset的块组成,因此,多个存储提供者都可为每个epoch(时间周期)提供区块,由此增加了网络吞吐量。每个tipset被赋予一个权重,共识协议将指导节点在权重最大的链上继续生成区块。这提供了一定程度的安全性,防止某个节点恶意干预其它节点生成有效的区块。

Filecoin 区块链的 Actor 等同于以太虚拟机中的智能合约。本质上,就是一个对象,包含了状态和一组可与之交互的方法。有一些重要的内置Actor 保证Filecoin网络是一个去中心化的存储网络。这里罗列一些:

  • System Actor - general system actor.
  • Init actor - initializes new actors and records the network name.
  • Cron Actor - a scheduler actor that runs critical functions at every epoch.
  • Account Actor - responsible for user accounts (non-singleton).
  • Reward Actor - managing block reward and token vesting (singleton).
  • Storage Miner Actor - storage mining operation and validate storage proofs.
  • Storage Power Actor - keeping track of the storage power allocated at each storage provider
  • Storage Market Actor - managing storage deals.
  • Multisig Actor - responsible for operations involving the Filecoin multi-signature wallet.
  • Payment Channel Actor - set up and settle payment channel funds.
  • Datacap Actor - responsible for datacap token management.
  • Verified Registry Actor - responsible for managing verified clients.
  • Ethereum address Manager (EAM) Actor- responsible for assigning all Ethereum compatible addresses on Filecoin Network, including EVM smart contract addresses and Ethereum account addresses.
  • EVM Account Actor - a non-singleton built-in actor representing an external Ethereum identity backed by a secp256k1 key.

随者FVM(Filecoin虚拟机)的成熟,开发者可以编写和部署自己的Actor,即用户可编程的Actor,这类似其他区块链的智能合约。用户可编程Actor 可以是通过导出的API与内置Actor交互。

Filecoin使用分布的和公开的可验证随机信标协议-Drand,用于在生成区块的共识中选举Leader(领导者),随机性保证了领导者选举的秘密性,公正性和可验证性。

Filecoin网络中的Node(节点)可按为Filecoin存储网络提供服务的方式划分为,链验证节点,客户端节点,存储提供者节点,和检索提供者节点。所有节点都至少必须提供链验证服务。Filecoin可以通过多种协议实现以保证Filecoin网络的安全性和弹性。当前有积极维护的实现有:

Filecoin 网络使用地址来区分 Actor。地址体现了相应 Actor 的一些信息,这种格式易于使用且不易出错。Filecoin 有五种类型的地址。主网地址以字母 f 开头,测试网地址以字母 t 开头。

  • f0/t0:以更“人性化”的方式为 Actor 提供 ID 地址。例如,f0123261 是存储提供商的 ID。
  • f1/t1: 带有加密密钥对的 secp256k1 钱包地址。本质上,这是一个由 secp256k1 公钥生成的钱包地址。
  • f2/t2:表示 Actor(智能合约)的地址,在网络分叉期间进行分配。
  • f3/t3:由 BLS 公钥加密生成的 BLS 钱包地址。
  • f4/t4:通过用户定义的地址管理Actor 创建和分配给用户定义的Actor。这类地址可以在 Actor 部署到地址之前接收资金。
  • f410/t410:由内置的以太坊地址管理器 (EAM) Actor 管理的地址空间。原始以太坊地址可以转换为 f410/t410 地址,反之亦然,以便现有的以太坊工具可以无缝地与 Filecoin 网络进行交互。

Filecoin 使用的底层共识算法是预期共识 (EC) 。EC 是一种概率性拜占庭容错共识协议,它在一组存储提供者中选举领导者,并每 epoch 提交一个块。与 proof-of-stake(权益证明)类似,Filecoin 使用 proof-of-storage 选举领导者,这意味着被选举的可能性取决于矿工为网络提供的存储证明的数量。网络的存储证明存储在存储证明表中,由存储证明 Actor 管理。

从更高层次看,共识过程依赖于 DRAND 提供的分布式的和可验证的随机性,以使领导者选举保持秘密性、公正性和可验证性。所有选举参与者及其权力都来自 Power Table,该表由存储证明共识子系统随时间计算和维护。最终,EC 将把本 epoch 生成的所有有效块添加到使用加权函数选择出的权重最高的链上。

每个epoch区块生成过程可包括:

  • 从符合条件的矿工中选出领导者。
  • 矿工们需要检查他们是否当选。
  • 一个被选出的矿工获得随机性值以生成WinningPoSt。
  • 如果以上都成功,矿工们就会构建并传播一个区块。
  • 验证矿工是否赢得区块并验证领导者选举。
  • 最后,选择权重最大的链来添加块。

Filecoin 使用一种称为软最终性的机制来确保区块链的最终性。软最终性意味着,所有矿工在 round N 时都会拒绝所有在 round N - F 之前分叉的块。F 被设置为900。这对于在没有损害链的可用性和功能的情况下强制执行最终性是重要的。软最终性:软最终性是一种区块链共识机制,它允许部分区块被认为是最终的,但仍允许在未来将它们分叉。

Filecoin 构建在proof-of-storage(存储证明)基础上,用于证明数据是否能存储一段指定时间。

存储提供者使用 proof-of-replication ( RoRep ) 证明他们已为网络创建了客户数据的唯一副本并将其存储。为此采用“erasure coding”技术,它允许将数据分割成多个部分并存储在不同的节点上。这确保即使一些节点失败,数据仍然可以恢复。PoRep 是 Filecoin 存储系统的关键部分。它确保数据在网络上可靠地存储并冗余,这使其成为存储数据安全可靠的方式。

存储提供者也需要不断证明他们在所承诺的时间内一直存储了客户的数据。在proof of spacetime (时空证明)过程中有两种类型:

  • Winning PoSt 保证存储提供者在特定时间持有数据的副本。
  • Window PoSt 用于证明数据的副本已随时间一直被维护。

如果存储提供者不能在正常时间内提供可靠的正常运行或对网络有恶意行为,他们将受到 slashing (消减)的惩罚。Filecoin 实现了两种 slashing:

    存储故障 slashing 用于惩罚无法为网络维护健康可靠的存储空间的存储提供者。
    共识故障 slashing 用于惩罚破坏共识过程的活跃性和安全性的存储提供者。

存储模型

有两张提供者:

存储提供者,(通常称为SP)负责为网络上的客户端存储文件和数据,并提供加密证明以验证存储。Filecoin网络上的绝大多数提供者都是SP。

检索提供者:(通常被称为RP),负责为用户提供数据的快速访问。它们侧重于快速访问数据,而不是长期存储。大多数时候,存储提供者还将检索访问作为同一系统的一部分提供给其用户。然而,越来越多的独立RP正在加入网络。

在 Filecoin 网络中,存储提供者(SP)和检索提供者(RP)通过交易为数据客户提供存储或检索服务。这些交易是通过谈判和双方同意的,包括数据大小、价格、交易期限和抵押等。交易的达成是在链下进行的。一旦双方同意交易的条款,该交易就会在链上发布,供网络的其他成员查看和验证。

扇区是可证明存储的基本单位,存储提供商在其中存储客户数据并代表 Filecoin 网络生成 PoSt。扇区有标准大小和存储提供商可以在到达扇区寿命结束之前延长其寿命的寿命。支持 32 GiB 和 64 GiB 扇区大小。

存储市场

存储市场是进入网络的数据入口,存储提供商和客户在网络中协商并发布链上存储交易。

交易达成,存储市场中交易的生命周期包含四个不同阶段:

  • 发现:客户找到潜在的 SP 并询问他们的价格。
  • 谈判:客户选择了 SP 后,双方同意交易条款。
  • 发布:交易在链上发布。
  • 移交:交易数据被添加到扇区中,其中 SP 可以证明数据存储。

Filecoin Plus(Fil+)的目的是 Filecoin 网络上有用存储数量的最大化。通过为合格客户提供廉价或免费的存储,其目标是将更多有意义和有价值的数据引入Filecoin网络。该机制围绕 datacap进行设计和操作,datacap 是分配给经过验证的客户的存储配额,用于存储数据并提高存储提供者的激励。

经过验证的客户可以使用 datacap 将数据上传到 Filecoin,他们可以从社区选定的公证人处申请 datacap。作为回报,存储提供商将获得带有10倍存储能力提升的datacap,作为激励这最终会增加他们的区块奖励。

  • Datacap:将给经过验证的客户分配一个 Datacap 令牌,可用于在存储交易中,该交易带有10倍的交易质量乘数。
  • 公证人:由社区选定的公证人通过验证存储客户并给经过验证的客户分配datacap 令牌来管理该计划。
  • 经过验证的客户:客户是活跃的网络参与者,他们花费datacap 用于数据存储。

为了简化存储数据的过程,有许多存储助手可以更容易地将 Filecoin 存储以及 IPFS 集成到您的应用程序或智能合约中。存储助手们提供开发库,将Filecoin 交易处理过程抽象为简单的 API 调用,并将数据存储在 IPFS 上,以提供更有效和快速的内容检索。下面是一些可用的存储助手:

检索市场

指为提供者协商检索交易,以向客户提供所存储的数据。在本协议中,客户同意就给定的数据向检索提供商支付一定数额的FIL。

目前,Filecoin 节点支持从最初存储数据的存储矿工处直接检索。客户可以通过支付一些 FIL 来直接向存储提供者发送检索请求来检索他们的数据。客户需要向存储提供者提供以下数据检索请求所需的信息:

  • 存储提供者 ID:存储数据的存储提供者的 ID。
  • Payload CID:也称为数据 CID。
  • 地址:最初用于创建存储交易的地址。

Saturn 是 Filecoin 检索市场的 Web3 CDN,它以低延迟和低成本提供在Filecoin 上存储的数据。它由专门致力于该业务的独立检索提供者组成,这使检索成为一个高效、快速和可靠的操作。

网络

Filecoin网络有几个不同的网络用于测试、暂存和生产目的。此页面包含有关可用网络的信息。

Mainnet,是 Filecoin网络上所有节点都连接到的实时生产网络。它从不重置。

Testnets,测试网;

Calibration:校准测试网是对主网最真实的模拟,由于使用了最终证明结构和参数,潜在的存储提供者可以体验到更真实的封装性能和硬件要求,而潜在的存储客户可以在网络上存储和检索真实数据。客户可以参与交易流程和存储/检索功能。它的扇区大小也与主网相同。

Spacenet 是一个 Filecoin 测试网,它已被修改为支持星际共识 (IPC)。它旨在为开发人员提供一个测试平台来部署他们的 FVM 用例并创新新的 Web3 应用程序,这些应用程序利用 IPC 子网和由 Mir 框架和 Trantor BFT 共识协议提供的高性能共识。