BAS:以太坊正在分析EIP-1559在大型网络上的性能

概要

我们现在已经有了一份详细的EIP-1559的经济学分析了

我们正在搭建主网级容量的测试网,以分析1559在大型网络上的性能

对于解决由不断变化的BASEFEE引起的交易池问题,我们已取得了进展

我们有了新的模拟,来分析遗留交易的行为以及在一个单一网络上的1559式交易

OpenEthereum正在招聘一名专注在1559的全职工程师

经济学分析

在2020年12月,前沿的博弈论与计算机科学研究员TimRoughgarden发表了一份50多页的EIP-1559经济学分析。他在推特和报告的第一部分写了报告的要点,但还是很值得在此完整分享一次:

译注:以上十点总结的翻译可以查看《以太七日谈?2020/12/7》。

过去,对1559的批评经常提到它欠缺一份正式的经济学分析,他们认为1559依赖的只是对以太坊交易费用市场的直觉。这份报告为EIP-1559提供了一个详尽的、总体上正面的分析。它甚至好像说服了一些著名的1559怀疑论者,比如NickJohnson?!

此份报告强调了1559的一些地方是值得进一步思考的,即那些矿工可能合谋的情况,以及对基本费用更新规则进行更好的分析。第7次EIP-1559实现者会议对矿工合谋场景进行了讨论,但没有得出确切的结论。而在基本费用更新规则方面,我在Twitter上对这方面的专家发起了呼吁,有一些人已经联系我,希望能提供帮助?。

Roughgarden还提到,他希望以太坊社区可以最大程度利用这份报告,而且如果任何人有疑问、评论或担忧,他们都可以联系他。他的网站列出了他的各种联系方式。

大型状态测试网

如在之前的更新里讨论到的,对EIP-1559进行测试的下一个里程碑式在与主网相仿的条件下做测试。考虑到的第一个方法是真的在主网分叉出一个网络,降低难度然后在上面启动EIP-1559。尽管这可以给我们一份主网状态,但考虑到安全问题,这个想法还是被否决了。

相反,Besu团队一直在构建一个大型状态测试网生成器。生成器把大量账户和储存slot作为输入,开启一个名为"whale"的智能合约,让它发送少量的ETH,并为每个输入创建一个存储slot。在第7次EIP-1559实现者会议里有一个完整的演示,从1:16:00开始。这是该工具运作时的截屏。

主网现在有大约1亿个账户,因此我们最近一次运行该工具,创建了一个有1亿账户和储存slot的网络。这个过程需要大概4天的时间,所需数据库容量大约240GB。随着网络容量的增长,创建网络的时间几乎成指数型增长,一个100k容量网络所需的时间是一个10k容量网络的2倍,一个1M容量网络所需的时间是一个100k容量网络的10倍,一个10M容量网络所需的时间比一个1M容量网络长15倍,一个100M容量网络所需的时间比一个10M容量网络长40倍!

现在有了这个数据库,我们将尝试把所有客户端实现同步到这个网络,然后用我们之前构建的交易生成工具对网络进行交易轰炸。这样,我们就可以深入了解客户端在必须管理主网级容量的状态时,如何在1559的规则下顺滑地处理200%满的区块。

交易池

在之前的更新里,我们讨论了一些与交易池管理相关的重要问题,它们还有待解决。我在一个文档里对它们进行了解释,但它的要点是由于区块间的BASEFEE不一样,以及交易会指定它们愿意支付的最高费用(FEECAP)和矿工小费(TIP),一个矿工打包交易收到的费用会随BASEFEE的变化而变化,这意味着潜在需要节点来对每个区块的交易池进行重新整理,这是非常低效的。

Quilt团队的Ansgar一直有关注这个问题,在第7次实现者会议他分享了一篇关于这个问题的文章。

简言之,有两个问题需要解决:矿工希望打包到区块的交易可以支付给他们最高的费用;非挖矿节点需要在它们的交易池满的时候有交易逐出的政策。

尽管该文档没有针对这个问题提出解决方案,它强调了对矿工来说交易的一个有趣特点——不断变化的收益。在1559下,你可以想象交易有两个可能的“状态”。第一个状态是”恒定的“,即交易的FEECAP是大于BASEFEE与TIP之和的,而矿工回获得整份TIP。第二个状态时”变化的“,即FEECAP仍然高于BASEFEE,但低于BASEFEE与TIP之和。在这种情况下,矿工获得的是FEECAP与BASEFEE的差值。

当交易不处于这两种状态,你可以在它们之间创建一个相对秩序(通过TIP分出”恒定“类的状态,通过它们的”有效小费“分出“变化”类的状态,例如:FEECAP-BASEFEE)

Ansgar文章的洞见在于“变化”类状态的交易将保存相同的区块间相对秩序,因为BASEFEE的增加/减少将对它们产生同样的影响。这意味着问题的核心在于当BASEFEE变化时能找到一个决定哪些交易从“恒定”转为”变化“的有效方法,以及如何恰当处理这些交易。

希望在Quilt的下一篇文章里我们能得到这些问题的答案?!

模拟更新

Nethermind团队发布了一篇新的关于模拟的notebook,探讨了在网络里遗留交易与1559式交易间的相互影响,且遗留交易能被解释为1559式交易。这些研究都建基于BarnabéMonnot及他的团队之前做的模拟成果。

这个模拟引入了三种类型的用户:天真的1559用户,他们总是把他们的TIP射到最低值;聪明的1559用户,他们会根据网络使用情况策略性地设置他们的TIP;聪明的遗留交易用户,他们会根据网络使用情况策略性地设置他们的gasprice。

对于每种类型的用户,都要发送固定数量的交易到网络里。那份报告分析了哪种类型的交易被打包了,那些用户支付了多少钱,以及用户最后等了多长时间。

该报告的”总结“部分不长,且很值得完整阅读,但我还是给出了概要:

我们在模拟里看到两个清晰”阶段“:当BASEFEE聚集到它的均衡值的时候,以及当它是稳定的时候

在BASEFEE不稳定的阶段,聪明的1559用户会发起被打包的大部分交易

交易池的行为改变取决于我们在哪个”阶段“。当基本费用不稳定时,会有很多被逐出的交易以及需要重新整理交易池;但当它时稳定的时候,交易池只有非常少逐出的交易。

当在实现者会议上讨论模拟的时候,出现了两个有趣的问题。

第一,如果在网络上出现更多的遗留交易,BASEFEE有变得不那么稳定的风险,以及当那些阶段形成了采用1559式交易的激励时,1559式交易倾向于被优先打包。

第二,随着1559式交易的使用不断增长,且BASEFEE变得稳定,遗留交易的预估gas价格会变得更准确,因为他们可以在预估中使用BASEFEE的值。换句话说,1559用户将有助于减少网络中gas价格的波动,缩小gas价格预估器估算值的置信区间。

其他更新

上面已经写了很多更新内容了,最后一点值得一提的是OpenEthereum正在招聘一个全职开发者来从事EIP-1559的工作。

后续工作

这篇更新迟到了很多了!以下是我们接下来要忙的事:

分享最近研发工作成果到社区,包括AllCoreDevs,以收集反馈;

寻找专家为基本费用更新规则提供更好的分析

把所有的客户端是实现同步到大型状态的测试网,并用交易生成器工具来测试在网络上的性能

提出能对矿工和不挖矿节点的交易池进行分类的好算法

尽管在1559下这种情况不太可能,但这样的研究仍是有助益的。

分叉主网以及在客户端上公开主网变量容易引来攻击与欺诈重演

在后台,它是在发送ETH到0x0...1,0x0..2,0x0..3等,并为0x0..1,0x0..2,0x0..3等制造储存条目,直到达到想要的账户与储存slot数量。

该文档有以下免责声明:此文档主要作为接下来的实现者会议的讨论基础。之后会再出一份更详细的文章。因为Quilt团队最近才加入到EIP-1559的事业里,有可能我们有错误的假设或忽略了现有的相关工作。

如果FEECAP低于BASEFEE,那么交易无法被打包到区块里。

原文链接:

https://hackmd.io/@timbeiko/1559-updates/https%3A%2F%2Fhackmd.io%2F%40timbeiko%2F1559-update-004

来源|TheStateof1559

作者|TimBeiko

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

链链资讯

[0:31ms0-3:417ms