这是我们系列中的最新一期,重点介绍 Filecoin 网络的独特功能。这篇文章深入探讨了 gas–收费的运作方式以及为什么它们对 Filecoin 网络很重要。
Filecoin 是一种基于区块链的经济,参与者在分布式网络上进行交易。通过挖掘器记录和处理它们挖掘的块中的消息来更新网络状态。有各种各样的消息,包括存储加载、存储处理、正在进行的证据、令牌交易等。
但是,由于链性能、可伸缩性和验证时间的限制,一个块中可以处理的消息数量是有限的。因此,在任何给定的时间,网络上只有一个子集的消息可以成为一个块。
此外,执行消息会消耗网络上的计算和存储资源。这就是“gas”开始发挥作用的地方,它可以用来衡量消息所消耗的资源。消息消耗的“gas”直接影响发送方为将消息提交给区块链所支付的成本。并且块中所有消息的气体使用总量是有限制的。
gas 可以被认为是 Filecoin 区块链的燃料,就像汽车的燃料一样。在你开始自驾游之前,你必须支付 gas 的费用,这些 gas 将会在你行驶的距离和驱动引擎上山下山时消耗掉。类似地,Filecoin 上的消息发送者需要为 Filecoin 区块链上的消息执行提供“能量”或“燃料”。
Gas 最初是在以太坊区块链上实现的,用于衡量消息消耗的计算和存储资源。这是短语“ GasUnit”的起源。从历史上看,在其他区块链中,矿工以本机货币指定 GasFee,然后根据消息消耗的 gas 量向生产矿工的区块支付优先费用。
但是,由于网络上的每个节点都必须花费存储和计算资源来验证每条消息,并保持网络的一致状态,因此燃气消耗是一个应该由整个网络承担的成本。因此,根据特定消息的 gas 使用量,需要燃烧一定数量的 gas 来补偿网络。如果不分散这些成本,就会造成激励错位,因为区块开采的矿工可能会以牺牲其他矿工的利益为代价,免费包含一个计算成本高昂的信息。
BaseFee 是由 Ethereum 的 EIP1559 引入的一个概念。基本费用乘以 gas 使用量的消息是“燃烧”。燃烧意味着它被发送到一个不可花费的地址,并从流通网络上删除。它根据给定时刻对网络带宽的需求进行动态调整。当网络拥挤时,它就会上升,这样估值低于网络基价的消息发送者就会一直等待,直到拥塞消除。
基费的变化速度设计得很快,以快速增加潜在的 DOS 攻击,并在网络变得不那么繁忙时迅速减少。导致网络更加拥挤的消息发送者也将通过支付更高的费用来内部化成本。燃烧还会产生缓慢的通货紧缩压力,这对所有网络参与者都有利。
回到我们的公路类比,把 gas 想象成你的车里的汽油,而网络就像平常的交通。如果道路拥挤,例如在高峰时间,交通是走走停停的,你的汽车将消耗更多的汽油。在这种情况下,在开始旅行之前等待一段时间是有意义的。同样的理论也适用于 Filecoin 网络,当网络流量拥堵时,燃气费用将会很高,所以等待并稍后再尝试是有意义的。
除了要烧掉一些费用来补偿网络之外,消息发送方还为区块开采商支付了一笔优先费用,这笔费用与消息消耗的 gas 量无关。这被称为 GasPremium,它也可以在协议之外安排。
为了帮助读者更好地理解 gas 收费机制,下面描述了消息及其交互的相关 gas 概念列表。这些字段可以由消息发送者设置,但目前在 lotus 中是自动设置的,还可以开发更多工具。
GasLimit:消息发送者可以消耗,估计和指定的消息执行量的限制。块中包含的所有消息的 GasLimit 之和不得超过 BlockGasLimit。这以 GasUnit 为单位。
GasUsage:一条消息的执行实际消耗的气体量。当前协议不知道消息在执行之前将确切消耗多少气体。这以 GasUnit 为单位。
GasFeeCap:发送者愿意为每一个 GasUnit 支付的最大令牌金额。消息发送者在发送消息时必须有最小的 GasFeeCap 余额乘以 GasLimit,即使不是所有的余额都会被消耗。这是 attoFIL/GasUnit。
GasPremium:优先权费用,它按每单位 GasLimit 的价格支付给块状生产矿工。这受 GasFeeCap 的限制,BaseFee 具有更高的优先级。这以 attoFIL / GasUnit 为单位,并且可以低至 1 attoFIL / GasUnit。
BaseFee:一个网络范围的变量,可以根据上一个技巧集中的所有消息的 GasLimit 的总和进行动态调整。当总 GasLimit 超出某个块的 GasLimit 目标(信号网络拥塞)时,它将增加,而当低于此值时,它将减少。以 attoFIL / GasUnit 为单位。
消息发送者只需为每个消息指定一个 GasFeeCap 和 GasLimit。随着链上资源的消耗,GasUsage 乘以 BaseFee 将被燃烧。从 GasFeeCap 减去 BaseFee 将产生 GasPremium。GasPremium 乘以 GasLimit 将作为优先费用进入生产矿工的区块。GasLimit 和 GasUsage 之间的部分差异将作为高估损失而被消耗掉。其余的将返回给邮件发件人。
当前,默认实现是矿工基于 GasFeeCap / GasLimit 选择消息,以在给定 GasLimit 的情况下最大化其预期收益。当网络拥堵且 BaseFee 很高时,矿工可以选择对包装进行装箱,从而减少 GasLimit 总量,以降低 BaseFee,但可能以牺牲 GasPremium 为代价。
未来的工作
研究和工程团队正在努力减少不同链上消息的资源消耗,以减少 gas 的使用,并提高网络性能以增加容量。但是,目前 Filecoin 上的一些消息(如SubmitWindowedPoSt)必须包含在一个相对较短的窗口内的链中,否则就会产生惩罚。进一步优化经济结构,提高信息服务质量。
Filecoin 网络作为客户端、矿工、开发人员、合作伙伴和令牌持有者的集合,将继续协作并将网络发展到更好的方向。遵循 Filecoin Lotus 文档和 Filecoin 改进协议,以获得未来的改进。