Filecoin生态环境日益繁荣 究竟怎样才能降低 Gas成本?

Filecoin生态环境日益繁荣 究竟怎样才能降低 Gas成本?

微信截图_20201221154817.png

燃料(Gas)成本居高不下,老矿工无计可施,纷纷停工,趁此机会调整一下矿池,却挡不住新矿工的涌入,继续推高 Gas成本。此时,大家都想问一句,到底 Gas的费用能否降下来?何时可以?怎么做?

每次升级的时候,很多人都满怀期待,但事实并非如此。目前的升级并不能直接减少 Gas消耗或 Gas费用。只会使 Gas的收费更加合理。但是同时,我们更希望能够减少Gas费用。

那Gas费用能降下来吗?如何下降为了把事情讲清楚,我们一步步来。

微信截图_20201221153926.png

什么是燃料(Gas)?

在 Filecoin网络中, Gas是消息(transactions)在网络中执行时消耗的资源的度量。此处讨论的资源包括计算资源和存储资源,即进行某项交易的成本。例如,一个特定的 PreCommitSector消息消耗了25,346,170 Gas,也就是说,对于该消息, Filecoin通过处理该消息,改变了网络状态,它将花费2千5百多万 Gas。每个消息将需要网络执行,这将消耗网络资源,因此,将消耗相应的 Gas。比如时空证明 WindowedPoSt 消耗了 Gas 2-5亿;复制证明 ProveCommitSector消耗了4-6千万。普通转账信息由于处理较简单,消耗的 Gas相对较少,大约在一百万以内。

每个消息消耗的 Gas数量与消息类型有密切关系,例如,由于它的计算量很大,而且还需要调用大量的状态信息,如 Sector commits来进行计算,所以消息消耗很大。而且转移无论是存储还是计算消耗都要少得多。与此同时,在不同的情况下,相同类型的消息的 Gas消耗是不一样的。因为当时的网络状态不同,所需的资源消耗也不同。

举例来说,如同时发送两次转账,与向旧地址转账相比,向新地址转账消耗更多的 Gas,这是因为向新地址转账时,网络需要先创建该地址,这会增加计算和存储资源的开销,因此消耗更多。这样的话,对于消息的发送者来说,在发送消息时,他们需要支付的 Gas值就更难判断了。此时,需要做出一个合理的估算。

每个消息内部发送的消息,消息的发送者可以为该消息所消耗的 Gas设置一个上限,如果执行时所需的 Gas大于此上限,则该消息不会执行。该上限是消息发送方对该消息成本的估计和愿意支付的最大成本。这种评估非常重要,特别是在支持智能合约之后,对一些消息进行成本评估非常困难,或者因为设计原因而存在错误,没有上限可能导致消息发送方的重大损失,或者导致网络安全问题。

一般而言,大家要对发送的信息进行估算,并根据估算值加上保险(比如10~25%),以设定这个上限: GasLimit。

微信截图_20201221153935.png

燃料(Gas)费用的计算?

上面提到的每个消息都需要计算资源,这是通过 Gas来衡量的。所有资源都有成本,计算资源也是如此。Gas数量乘上价格,就是执行此消息的成本。燃料(Gas)是 Gas的单位价格,例如,在 Filecoin中,定义 Gas的最低费用是100 attoFil,即 0.0000000000000001 FIL。在这种情况下,一条 WdPoSt消息需要花费4亿(e8) Gas所需的成本为:

100 attoFil * 4e8 = 40nanoFil = 0.00000004 Fil

很低,基本可以忽略。

但如果 Gas的单位成本上升到4 nanoFil,即 0.000000004 Fil,这是目前网络 Gas的平均单位成本,与100 attoFil的最低水平相比,增加了4千万倍。此时同样的一条耗资4亿(e8) Gas的 WdPoSt消息所需的成本也就是1.6 Fil,这太可怕了。

为解决 Gas的费用问题, Filecoin采用了EIP-1559调节机制, Gas的费用分为两部分:

1、基本费用(baseFee):基本费用由网络自动计算,反映了网络的拥挤程度或资源消耗,这部分费用将被消耗掉

2、小费(Premium):而小费是信息发送者向矿工支付的费用,通过支付,希望他们将自己的信息打包起来

自然,就像 GasLimit用来设置 Gas消费的总量一样; Gas的价格也可以设定一个上限,即 feeCap。指发送者愿意为 Gas支付的最高单价。

综合以上两部分,我们得出以下结论:一条信息发送者愿意为该信息支付的费用最高为:

GasLimit * feeCap 

 (也就是愿意支付的 Gas的最大数量和最大价格乘积)

微信截图_20201221154137.png

为何要支付 Gas?

总之,为了网络的安全起见。不管哪种系统,都有处理能力。在非中心化区块链系统中,由于有大量的矿工共同维护网络,因此需要考虑的是网络的一般处理能力。若需要处理的消息(交易)超过了网络的处理能力,则网络安全将成为一个问题,至少对于 Filecoin来说是如此,如果大量的消息阻塞,导致处理能力稍差的矿工迅速被淘汰,网络将被处理能力最强的矿工所占据。—— cjxy066

通过对 Gas成本的调整,并辅以一定的惩罚措施,形成了一个反馈系统,在网络拥挤时可以提高 Gas单价,在网络空闲时可以降低单价,从而保证网络的畅通。还能防止垃圾信息泛滥和网络攻击等问题。设置一个网络处理能力值,在消息消耗Gas的总量(具体就是计算GasLimit的和)超过这个值的时候,提高baseFee,低于这个值的时候,降低baseFee。快速调整,采用指数调整方式。那就是为什么每个人都看到了 Gas费用的快速变化。

1 (55).png

Gas的最新两次升级是否对调整有所帮助?

在 Gas的费用很高的时候,许多人希望 Filecoin团队采取措施来降低 Gas的费用。这是一个非常简单的方法,即人为地提高系统的处理能力。但这件事是不能随便去做的。若设定的处理能力超过网络中节点的一般处理能力,一方面网络进入的门槛提高,另一方面网络的安全性降低。

所以,为什么团队不直接将 Gas的成本降低一些呢?究竟还有什么方法可以降低 Gas的成本?

之前说过一个理由,为了网络安全,不能想怎么设就怎么设。应该考虑到网络环境以及真实反映信息的实际成本。但这两个最新的升级难道不会影响 Gas消耗吗?怎么回事。

下面来看看这两个升级:

V1.2 升级对某些消息处理模块的 Gas消耗值进行了调整,这种调整的主要原因是,以前的版本设置比较随意,这次将其合理化。

PoSt的验证成本大大降低,因此这对 WdpoSt的消耗有正面的影响,而且更省钱。尽管如此,与存储相关的运营成本增加了。因为网络数据越多,存储成本就越高,这是因为在此之前对存储的消耗估计不够,所以要进行调整。这次调整之后,大家看到的是 PreCommitSector和 ProveCommitSector消息成本并没有下降,反而上升了。特别是对于大型采矿者来说,提高算力时,存储访问量会增加,而消息消耗的燃料也会增加。

因此,此次升级并非调整燃油费,或降低燃油费,而是使之更为合理。—— cjxy066

升级主要是为了解决 WindowedPoSt耗油量过大这一问题。小矿工特别受不了。与此同时,该消息是控制类的消息,必须发送。怎么了,想想办法,这个部位可以少烧或不烧。这一观点是在前期的讨论中提出的。有许多其他的想法,但是这个想法在目前的情况下是相对简单的。最终形成了FIP009文件(在前期相关工作的一个章节中提到了Steven004提出的类似想法)。这次更新只是调整了 WdPoSt的燃烧部分, Gas消耗的计算并未改变。

所以,任何认为通过此次升级可以降低 Gas成本的想法都是不现实的。

1 (31).png

究竟怎样才能降低 Gas的成本?

总而言之,我们知道 Gas费用与系统的安全性有关,与系统处理能力有关,不能随意调整。所以才能做到两点:

1、提高系统处理能力

2、大家根据 Gas收费自己掌握发消息的节奏,对于现在来说就是增长算力的节奏。

当前最现实,也是不断比较现实, Filecoin的参与者所要考虑的就是,不管算法如何优化,网络性能如何提高,网络还是会出现拥挤,所以,这些情况都需要大家共同面对和处理,这部分是开发人员无法解决的。这种燃油费本身就是要调整的,所以涨跌是正常现象,要平常心。它和真实的经济生活一样,需要市场来调节。

此外,当 Filecoin的生态环境日益繁荣时, Filecoin网络的处理能力还需要进一步提高,否则,处理能力低下就会阻碍网络的发展和生态环境。这项工作也是目前最重要的工作之一。现在有几个提议正在考虑中,它们都与提高 Filecoin网络性能有关,比如:

FIP007:提高 HAMT和 AMT的性能和安全性: HAMT和 AMT是 Lotus中最主要的数据结构,它们的性能得到了提高,从而提高了整个网络的性能

FIP008: 批量Pre-commitments:当前每个 Sector的 precommit是一条单独消息。若支持批量发送,可节省大量消息,对存储的访问和更新也可一次性处理,因此可提高性能

按照FIP008的思路,Prove-Commitments还可以进行批量处理。这一点现在已经被批量处理了。但是信息仍然单独地发送。

有些更激进的方法是这样的:考虑到当前消息处理对资源的最大消耗,即 PoRep和 PoSt验证消息。于是,有一种想法,干脆不去验证。这样可以大大节省时间。能大大减少资源的消耗。那么不验证不是可以造假吗?其实不然,类似于共识错误的惩罚。当大多数人都不会造假时,考虑一种防止造假的检举机制。然后,只要有一些节点愿意在链表下进行验证和检举就可以了。—— cjxy066

1 (107).png

以上思想在什么时候可以实现?

根据当前核心开发团队的讨论,FIP007将在新年假期后进入下一个版本,可能在1月底发布;FIP008将在相同版本中实现或放置下一个版本。

关于未经证实的激进计划,仍有许多问题有待探讨。比如安全问题,如果有大量的舞弊,是否会带来较大的问题,对于检举者的奖励,检举的期限等,都是需要探讨的。那要花很多时间。关注:永不止步IPFS 公众。

Filecoin挖矿技术服务(排名服务、挖矿技术方案定制)

热门文章