查看原文
其他

【官方】EIP-1559已在Filecoin主网实施并上线;解决Gas费问题!还有这些热议提案

EIP-1559已在Filecoin主网实施并上线1月5日消息,Filecoin创始人胡安发布《EIP-1559 in Filecoin》文章,胡安表示,FEIP-1559具有许多令人信服的特性,如高效率、好的用户体验、提供了更高的可靠性和吞吐量、奖励交易的网络等。基于这些原因,Filecoin已经将EIP-1559纳入其核心协议,并进行了小范围的调整。目前,EIP-1559已在Filecoin主网实施并上线,每天因网络交易而消耗的FIL约为10万到15万。到目前为止,EIP-1559的基础收费机制在将网络容量保持在百分之百的目标上做得很好。


————————————————

原文:

EIP-1559在Filecoin

本文为 Filecoin 创始人 Juan Benet,在有关 Filecoin 与 EIP-1559 主题演讲的总结。


在 Filecoin 网络中,gas 的概念用于度量执行给定链上交易所需的计算资源。这些资源的成本需要支付,这导致了许多必须做出的决定,这些决定围绕着谁应该承担这些成本,以及如何对消耗有限资源的交易进行优先级排序。


例如,一种方法可能是进行首价拍卖。在这样的系统中,希望在区块链上执行交易的参与者提交出价阻止矿工。然后,当矿工将相关交易包含在已开采区块中时,他们将这些出价作为费用收取。给定区块的大小或区块交易可以花费的 gas 的上限,矿工对交易进行优先排序,以优化他们收取的费用。


尽管在概念上很简单,但已表明此类方法存在许多缺陷。如在操作可能很复杂,并且可能导致投标人多付很多钱。它们还会在网络拥塞期间导致不良行为。


上面详述的系统也奖励矿工全部的 gas,而忽略了网络中非矿工也必须花费资源来处理每一笔交易的事实。


  EIP-1559


以太坊改进提案(EIP)1559 是针对这些问题而制定的标准。它的主要创新是引入了与每个区块相关的基本费用(BaseFee)。这一费用会随着网络拥塞而涨跌,将网络流量推回到目标水平。


在 EIP-1559 下,交易的创造者指定了一个费用上限(他们愿意为每单位gas花费支付的最高费用,以使这笔交易包括在内)。当费用上限低于区块的基本费用时,它不能包含在区块中。交易创建者还会指定小费(tip),给到打包消息的矿工作为激励。


与单一价格起拍不同,交易发起者只需支付最低的费用:


a)费用上限;

b)基本费用加上小费,再乘以交易所用的 gas。


所有来自基本费用的收入都被消耗掉了,从而产生了通货紧缩的压力,从而使整个网络补偿执行交易所花费的资源。


相应地,矿工们将获得:


a)小费;

b)费用上限减去基本费用,再乘以交易所使用的 gas。


在这个方案下,交易创建者可以确保他们的高优先级交易仍然可以进入区块链,而通常支付的费用要少得多。


   ◆Filecoin 中的 EIP-1559◆


EIP-1559有许多引人注目的特性,与Filecoin的设计注意事项非常吻合:


  • 效率。EIP-1559 概述了用于设置和计算gas的更有效模型。

  • 用户体验。估价和费用设定比参与首价拍卖的方式要容易得多。

  • 关键的消息吞吐量。Filecoin 中的 WindowPost 消息是时间关键的,因此必须以一种抗拥塞的方式处理。EIP-1559 为此类消息提供了更高的可靠性和吞吐量。

  • 交易奖励网络。整个网络承担处理交易的成本,因此应该得到相应的补偿。


由于所有这些原因,Filecoin 已经将 EIP-1559 合并到其核心协议中,并进行了一个小的调整。Filecoin 使用 tipsets;它的交易在执行之前会进入链中,在这之前无法确定 gas 的实际使用量。


因此 Filecoin 要求用户提供交易的估计 gas 限额。为了适当地调整激励措施,超过一定限额则会受到超额惩罚。


当前的结果和要点


EIP-1559 在 Filecoin 主网上实现并运行。目前,由于网络交易,每天大约消耗 10 万至 15 万 FIL。采用这一标准至少取得了两个关键胜利:


  • 高价值交易的快速通道。有时,存储的 onboard 消息可能会威胁到对时间更敏感的 WindowPost 消息的价格。然而,正如预期的那样,集成 EIP-1559 为 Filecoin 参与者提供了一种直接的机制来解决这种拥塞问题,而无需始终付出高昂的代价。

  • 网络容量管理。到目前为止,EIP-1559 的基本费用机制在将网络容量保持在其目标的 100%方面做得很好。


随着时间的推移,交易创建者在估算交易所需 gas 量方面也做得越来越好,从而长期减少了过高估计的消耗。


还有一些改进的空间:基本费用差异很大,变化率也很高。这是由于随着新存储的加入,大量的拥塞造成的。在过去,这也导致了关键的 WindowPost 消息被定价。


Filecoin 社区可以研究许多不同的方法来解决这些定价问题:


  • gas 控制平面。解决网络拥塞的一种可能的方法是为控制平面交易创建一个专用的 gas 通道,留出每个区块的一小部分来处理对区块链功能至关重要的特定消息。

  • 消息类型费用结构。解决此问题的另一种方法可能是减少 WindowPost 的成本,或者增加其他消息(尤其是Pre/ProveCommit消息)的成本。

  • 基本费用变动率。随着时间的推移,费率变化曲线过于陡峭,意味着费率的选择并不完美,可以更加平滑。


可能会引入与 gas 模型无关的其他方法,以帮助纾缓拥堵:


  • 扩展证明。扩展 Filecoin 证明机制的想法包括对 snark 的批量验证,以及减少需要预先完成的验证数量的基于斜线的验证。

  • 扩展共识。鉴于目前的拥塞率,Filecoin 可能需要加速分片机制。


未来的工作


展望未来,到目前为止,对于 Filecoin 网络所取得的成果,还有许多潜在的数据分析工作,并且有机会与其他研究人员和区块链社区合作,以 EIP-1559 的思想为基础。


调查的一些可能的领域包括排队论引入 gas 模型(有可能效率低下在当前模型),为特定类型的信息和交易保障服务质量,和探索加密交易引入区块链的方法,可以在未来的时间点执行。



——————————————————

解决Gas费问题!还有这些热议提案


Gas费成本太高是Filecoin矿工增长算力的一大阻碍,为了解决此问题,Filecoin生态参与者一直在尝试各种方法,比如名为Alex 和Nicola的代码贡献者相继提出了针对PreCommitSector和ProveCommitSector 的优化方法,业内人士分析这些提案可能是解决gas费的最优解。


ProveCommitSector 和PreCommitSector消耗Gas最多



根据胡安在线上分享中提供的图可知,ProveCommitSector (确认证明扇区),PreCommitSector (预确认扇区)是gas费用消耗最多的两个板块。


ProveCommitSector (确认证明扇区),PreCommitSector (预确认扇区)是增加有效算力的。算力增加越多,Gas Fee越高。


具体可以通过以下浏览器数据来感受一下ProveCommitSector和PreCommitSector 的Gas消耗量。



截至2021年1月5日12:09分,24小时内,全网手续费合计143,697.923770 FIL,ProveCommitSector消耗105,691.596835 FIL 、占比73.55%,PreCommitSector消耗36,373.412699 FIL 、占比25.31%。


所以,对症下药,降低ProveCommitSector和PreCommitSector 的Gas消耗量是降低Gas Fee的关键点。


针对ProveCommitSector和PreCommitSector 的系列优化提案



11月,一位名叫Alex anorth的代码贡献者提出一个批量处理多个PreCommitSector的新提案(FIP-25),她认为这种方法,可能分摊多个扇区中的某些成本。


该提案引发了社区的广泛讨论,赞同的人认为该FIP可以确保矿工聚合多个PreCommitSector,从而可以摊销其Gas Fee。例如,如果您提交的是32个扇区而不是1个扇区,则最终可能少付约32倍的Gas Fee。扩展此FIP以支持多个矿工的PreCommitSector只会使矿工受益。


也有反对者认为,批量处理PreCommitSector可能使具有高密封吞吐量的矿工比规模较小的矿工更有优势。




随后,来自麻省理工大学的Nicola在FIP-25基础上,提出了FIP-49和FIP-50两种通过批处理ProveCommitSector 减少拥堵更为详细的方案。


FIP-49提出,“ ProveCommitBatched”可以分两部分进行摊销:


      1)状态操作:可以批处理多个状态读取和写入,每个ProveCommitBatched完成一次,而不是每个扇区一次。


      2)批量验证:在一个ProveCommitSector 中批量验证10个SNARK,在此提案中,建议对ProveCommitBatched消息中的所有证明进行批量验证。


通过这种机制,矿工将更喜欢将多个证明一起批量处理,因为这样可以大大降低成本。



与FIP-49不同, FIP-50提出ProveCommitAggregated方法,将ProveCommitSector 消息和使用的GAS随网络的增长呈线性增长。


矿工可以为多个ProveCommitSector 提交一个简短的证明,并且用于验证的GAS在ProveCommitSector 汇总中是线性的。换句话说,矿工每天可能会进行一次ProveCommitAggregated交易,而不是每个扇区一次或每批扇区一次。


此方案可以分两部分进行摊销:


      1)状态操作:可以批处理多个状态读取和写入,每个ProveCommitBatched执行一次,而不是每个扇区一次。


      2)聚合:目前在单个ProveCommitSector 中批量验证10个SNARK,在此建议中,建议矿工在单个ProveCommitAggregation消息中聚合大量ProveCommitSector 


与FIP-49比较,汇总证明的大小随着要汇总的证明的数量呈对数增长,而批处理则成线性地按比例缩放,批量处理则有所不同。


换句话说,提案FIP-49(ProveCommitBatched)对要汇总的证明数量有限制,而FIP-50(ProveCommitAggregatedIPP)没有。这为矿工提供了每天提交一份新存储添加证明的可能性。


虽然,目前这些提案都还处在不断讨论当中,我们无法判断这是不是就是解决GAS问题的最优解,但可以看出Filecoin社区还在保持极强的活跃性,不断为解决问题找方法。


我们期待这些层出不穷的方案能够早日通过,真正落地,彻底解决Gas Fee问题,让Filecoin网络更具适用性。


参考原文链接:


https://github.com/filecoin-project/FIPs/issues/25


https://github.com/filecoin-project/FIPs/issues/49


https://github.com/filecoin-project/FIPs/issues/50


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存