在Filecoin网络中,gas的概念用于衡量在给定链上执行交易所需的计算资源。需要支付这些资源的成本,这导致了许多关于谁应该承担这些成本以及如何对消耗有限资源的事务进行优先级排序的决策。
例如,一种方法可以是进行第一价格拍卖。在这样的系统中,希望在区块链上执行交易的参与者提交出价以阻止矿工。然后,当矿商将相关交易纳入已开采区块时,他们会收取这些投标费用。鉴于区块的规模或区块可以交易的天然气数量上限,矿商们会对交易进行优先排序,以优化他们收取的费用。
虽然概念简单,但已经证明这种方法有很多缺陷。一口价拍卖的操作可能很复杂,可能会导致竞拍者支付更多的钱。它们还会在网络拥塞时导致不良行为。
上述详细的系统还奖励矿工所有的汽油成本,而忽略了网络中的非采矿参与者也必须花费资源来处理每一笔交易的事实。
EIP-1559以太坊改进建议(EIP)1559是为许多这些问题开发的标准。其主要创新是引入了与每个区块相关的基本费用(每单位天然气)。由于网络拥塞,这个费用会增加或减少,从而将网络流量推回到目标水平。
根据EIP-1559,交易创建者规定了费用上限(他们愿意支付的每单位天然气的最大费用,以包括该交易)。如果成本上限小于该模块的基本成本,则不能将其包括在该模块中。交易者还指定了小费(单位也是天然气);这项技术是由矿工收集的。
交易者支付的最低费用是a)费用上限和b)基本费用加小费,乘以交易所的费用,而不是拍卖的单价。基本支出的所有收入都会被消耗掉,产生通货紧缩的压力,这样整个网络就可以补偿实施交换所花费的资源。
另一方面,矿工至少应该获得a)小费,b)最大成本减去基本成本,然后乘以交换中使用的气体。
在这种方案下,事务创建者可以确保他们的高优先级事务仍然可以放入区块链,并且通常支付更少的费用。
EIP-1559在fileconip-1559中有许多引人注目的特点,这些特点与Filecoin的设计考虑非常一致:
效率。EIP-1559概述了建立和计算天然气的更有效的模型。
用户体验。估算和设定成本比参与价格拍卖要容易得多。
关键消息吞吐量。Filecoin中的WindowPost消息是时间关键的,因此必须以一种健壮的方式来处理拥塞。EIP-1559为此类消息提供了更高的可靠性和吞吐量。
交易奖励网。整个网络承担了处理交易的成本,因此应该得到相应的补偿。
出于所有这些原因,Filecoin将EIP-1559纳入了其核心协议,并进行了一些修改。Filecoin技能集;它的事务在执行之前就进入了该链,而在此之前,无法确定实际的用气量。因此,Filecoin要求用户提供估计的交易限额。为了适当调整激励措施,高估到一定程度或者更多都会高估伯恩斯。
目前的结果和总结EIP-1559已经实施,并存在于主Filecoin网络。目前由于网络交易,每天大约消耗100k到150k FIL。在纳入标准方面,至少取得了两项重大胜利:
高价值交易的快速通道。有时,存储在职消息可能会威胁到对时间更敏感的WindowPost消息的价格。然而,正如预期的那样,EIP-1559的集成为Filecoin参与者提供了一个直接的机制来解决这一拥塞问题,而不必总是付出高昂的代价。
网络容量管理。到目前为止,EIP-1559的基本收费机制在将网络容量保持在其目标的100%方面做得很好。
随着时间的推移,交易创造者也变得更善于估计交易所需的天然气量,从而减少了长期以来的高估消耗。
仍有改进的余地:基本成本变化很大,其变化率很快。这是因为随着新存储的引入,出现了大量拥塞。在过去,这也导致了重要的WindowPost消息的定价。
Filecoin社区可以研究多种方法来解决这些定价问题:气控飞机。解决网络拥塞的一个可能的方法是为控制平面事务创建一个专用的气体供应通道,将每个块的一部分留给对区块链功能至关重要的特定消息。
报文类型费用结构。解决这个问题的另一种方法可能是降低WindowPost的成本,或者增加其他消息(尤其是Pre/ProveCommit消息)的成本。
基本成本变化率。基本费用随时间的峰值,说明费率选择不太理想,可能会比较平滑。
可以引入与气体模型无关的其他方法来帮助缓解拥堵:
防结垢。扩展Filecoin的证明机制的思想包括SNARK的批量验证和基于对角线的验证,以减少需要提前完成的验证量。
规模共识。考虑到目前的拥堵率,Filecoin可能需要快速寻求碎片化。
未来工作Filecoin全存储计算产品是星空数据推出的Filecoin计算业务,专注于Filecoin挖掘。韦于戈尚
展望未来,到目前为止,Filecoin网络的成就仍有大量潜在的数据分析工作,并有机会与其他研究人员和区块链社区合作,基于EIP-1559的想法。一些可能的研究领域包括将排队论引入gas模型(目前的模型可能存在低效率),确保一些消息和交易的服务质量,以及探索将加密交易引入区块链的方法,这种方法可以在未来的某个时间点执行。