# 从技术角度分析Filecoin算力增速加快的原因

By [3WebDAO](https://paragraph.com/@3webcapital) · 2021-12-27

---

众所周知，Filecoin项目本身是一个存储市场，Filecoin网络算力由全网数据存储量来衡量。算力越大代表存储量越大，也进一步地说明Filecoin生态越强大。就在9月1日，Filecoin算力正式突破10EiB。这是一个历史性里程碑级别的突破，截至撰稿时间，filecoin全网有效算力为10.32 EiB，这一数据已经远远超过了许多大型中心化存储服务商的容量。根据历史数据显示，Filecoin全网算力从1EiB到5EiB，历时近6个月，而从5EiB到10EiB，总历时仅仅不到4个月时间。

![](https://storage.googleapis.com/papyrus_images/601c4b1b50fa66a027a6fa1a9ebec393ada36b448fc90823680eba6ba15b296c.png)

全网算力增速加快的原因有很多，比如市场回暖、Filecoin生态雏形开始展现、Gas费大幅降低使入场成本降低等等。本文主要从技术角度深度分析Gas费大幅降低的原因。

从Filecoin官方Github([https://github.com/filecoin-project/lotus/releases/tag/v1.10.0)可以知道6月24号发布了Lotus](https://github.com/filecoin-project/lotus/releases/tag/v1.10.0\)%E5%8F%AF%E4%BB%A5%E7%9F%A5%E9%81%936%E6%9C%8824%E5%8F%B7%E5%8F%91%E5%B8%83%E4%BA%86Lotus) v1.10.0版本。这是一个强制升级的版本，即所有存储提供者必须在区块高度为892800 (北京时间2021-07-01 06:00:00)之前更新相应的客户端软件版本。此次更新引入了Filecoin network v13，代号为HyperDrive。主要升级内容包含实现以下几点：

FIP-0008：添加存储提供者批量提交 PreCommitSector消息的方法

FIP-0011：从上报共识故障中删除奖励拍卖

FIP-0012：更改Filecoin Plus中客户端地址请求获取DataCap 管理

FIP-0013：添加 ProveCommitSectorAggregated 方法以减少链上拥塞

FIP-0015：恢复 FIP-0009（免除 WindowPoSts 时销毁BaseFee ）

其中FIP-0008的实现是通过 filecoin-project/specs-actors/actors/builtin/miner/miner\_actor.go 中添加

PreCommitSectorBatchParams结构体

![](https://storage.googleapis.com/papyrus_images/fee6c182fce7cb386a022df1e2d8882efee1bc9edb83126a09beb327a172c90e.png)

![](https://storage.googleapis.com/papyrus_images/ed29e98fcab0ae1c25fc69775978069cab637102cdbc13737d7827dc01ff2905.png)

内容为原有的SectorPreCommitInfo结构体数组，SectorPreCommitInfo结构体为存储提供者提交pre-committing消息时提供的信息，包含扇区编号、CID等等信息。此实现逻辑即是将原有单个PreCommitSector方法需要填充的信息进行再一次封装成数组提交，达到可以一次性提交多个扇区pre-commit的目的。注意单个批量提交的pre-commit扇区数限制为 256 。

在此之前存储提供者密封扇区的Gas费=PreCommitSector+ProveCommitSector GAS费。并且PreCommitSector GAS费也是占比较大，故FIP0008有效地降低了pre-commit 消息提交时的GAS费。

同理，FIP-0013添加一个ProveCommitSectorAggregated方法，原理也是允许存储提供者一次性提交多个扇区的ProveCommitSector证明，目的降低了prove-commit消息提交时的GAS费。FIP-0013的实现是通过添加ProveCommitSectorAggregatedParams结构体的方法来实现。

由于时空证明采取乐观的态度相信存储提供者不会作恶，故采用链下验证的方式。故链上先相信所有存储提供者提交的时空证明为合法的，后续由链下验证参与者检查证明的合法性。Filecoin网络为了激励链下验证参与者去验证时空证明合法性，对上报共识错误的账号提供一定的奖励。在此之前奖励采用荷兰式拍卖的方法进行。FIP0011举报的奖励会进行反向拍卖(荷兰式拍卖)。FIP-0011提案指定取消此拍卖机制,奖励从 0.005 ~0.25个等额的预期区块奖励变成固定的0.25个等额的预期区块奖励，并立即提到账。奖励机制的改变和奖励额度的增加，从某种程度上也激励了链下验证参与者的活跃度，这有利于Filecoin网络健康的发展。

进而FIP-0012提出了更改Filecoin Plus中客户端地址请求获取DataCap 管理的方式。具体规格为客户端地址能够接收对指定地址的额外分配的 DataCap 。其具体实现方案是在filecoin-project/specs-actors/blob/master/actors/builtin/verifreg/verified\_registry\_actor.go中如下图所示

取消在AddVerifiedClientParams.Address中对 客户端是否为VerifiedClient 的检查。

![](https://storage.googleapis.com/papyrus_images/f530e7b20c3dc6098f579db6da4cbb684021a6d0f72a6cdd48c7acfa31cc097e.png)

如果链上地址没有 DataCap：为此新地址添加AddVerifiedClientParams.Allowance。如果链上地址当前是已验证客户端：则为此新地址添加AddVerifiedClientParams.Allowance 的DataCap余额。客户端地址应该能够接收对指定地址额外分配的 DataCap 。需要考虑的情况：链上地址，从未收到 DataCap 当前机制没有变化 - 客户端能够请求 DataCap。链上地址，之前收到的 DataCap 的客户端应该能够再次请求 DataCap。DataCap 应该被视为对现有余额的补充 。Existing DataCap Balance = Existing DataCap Balance + New Allocation。

由于之前FIP-0009提案对 SubmitWindowedPoSt 时空证明基本费用不做销毁（即，不销毁baseFee\*gasUsed）并退回给存储提供者。作为短期权宜之计，以减少基础费用上涨对现有存储时空证明的 GAS 成本的影响。但是“免费”的 Window Posts gas 市场带来了扭曲影响，降低了矿工将尽可能多批处理SubmitWindowedPoSt

时空证明的动机，使得链带宽被占用变大。故FIP-0015对FIP-0009进行回退，即不返还时空证明的基础费用，照常进行销毁。虽然正常情况下单次时空证明销毁的GAS费用不多，但是随着Filecoin网络和生态的发展，时空证明消息会越来越多，销毁的FIL也会越来越多，当FIL销毁量>释放量，FIL将正式进入通缩。

最后再回到主题，FIP-0008和FIP-0013相结合，真正地降低存储提供者密封扇区时付出的GAS费成本，入场成本显著降低，可以显着提高 Filecoin 网络上的存储速率。这将有利于更多有用的数据存储在网络上，减少网络拥塞，并降低网络基本费用。FIP-0011激励了越来越多的链下验证参与者加入网络。FIP-0012降低了Filecoin Plus中客户端开发操作门槛。FIP-0015是FIL增加销毁量，减少FIL流通量。以上对于Filecoin生态、存储提供者、用户来讲都是利好信息，越来越多的存储提供者加入为全网提供算力。这也是Filecoin主网进行 v13 HyperDrive 升级后全网算力在近两个月增速加快的重要原因之一。

---

*Originally published on [3WebDAO](https://paragraph.com/@3webcapital/filecoin)*
