EIP-1559实施者速查表

  • tvanepps
  • 发布于 2022-06-16 10:46
  • 阅读 5

本文档介绍了在支持EIP-1559时可能需要考虑的一些概念,包括参考实现、附加资源、协调、BaseFee burn接口、变量和函数、交易支持、启动过程和Mockup资源等。EIP-1559旨在改进以太坊的交易费用机制。

  • 本文档是对一些概念的介绍,这些概念在你添加对 EIP-1559 的支持时可能对你很重要。 假设你熟悉 EIP 及其机制。
  • 如果你是 EIP-1559 的完全新手,你可以在 1559 资源 指南中找到一个精选的链接列表。
  • 加入 ETHR&D Discord 讨论与此更改相关的所有内容。

参考实现

附加资源

之前的协调会议

  • 8 月 13 日分组会议 #12:伦敦后 1559 评估
  • 7 月 30 日分组会议 #11:通用 1559 协调
  • 6 月 4 日星期五 14:00 UTC:分组会议 #10:1559 Gas API
  • 5 月 26 日:分组会议 #9:1559 钱包
  • 5 月 7 日:分组会议 #8:JSON RPC 和其他主题

BaseFee 燃烧接口

实施信息

注意:交易播种一个 maxPriorityFee & maxFee > 0。矿工可能不会直接按 maxPriorityFee 对 txn 池进行排序,因为在 maxFee - maxPriorityFee < baseFee 的情况下,maxPriorityFee 将会减少,以使交易保持有效。 如果 maxFee < baseFee,则交易无效。

1559 变量及其函数

变量 定义
baseFeePerGas 由协议生成,记录在每个区块头中。 表示 tx 包含在区块中所需的最小 gasUsed 乘数。 这是被燃烧的 tx 费用的一部分:baseFeePerGas * gasUsed
maxPriorityFeePerGas 用户设置此值。 添加到交易,表示转到矿工的 tx 费用的一部分。 见 ⭐ 下文
maxFeePerGas 用户设置此值。 表示用户愿意为其 tx 支付的最大金额(包括 baseFeePerGasmaxPriorityFeePerGas)。 maxFeePerGasbaseFeePerGas + maxPriorityFeePerGas 之间的差额“退还”给用户。

变量机制

  • 每个区块的 baseFeePerGas 可能会增加/减少高达 12.5%,具体取决于该区块相对于前一个区块的完整程度:例如,100% 完整 -> +12.5%,50% 完整 -> 相同,0% 完整 -> -12.5%。
  • 启用 1559 后,区块的 gasLimit 将翻倍(例如,15m 到 30m),因此 1559 后的“50% 完整”区块相当于 1559 之前的 100% 完整区块。
  • 注意:在 1559 分叉区块上,baseFeePerGas 将设置为 1 gwei。 由于整数数学,它不能低于 7 wei(0.000000007 gwei)。

⭐ 深入探讨maxPriorityFeePerGas

maxPriorityFeePerGas 有三个用途:

  1. 🔀 补偿矿工承担的叔块/ommer 风险 + 将交易包含在区块中的固定成本;
  2. 💰 允许机会成本高的用户向矿工支付溢价;
  3. 📈 在需求超过可用区块空间时(即 100% 满,30mm gas),此组件允许头矿费上发生首次价格拍卖(即 1559 前的费用模型)。

以下是如何考虑为 maxPriorityFeePerGas 建议用户默认值。

  1. 🔀 补偿矿工承担的叔块/ommer 风险 + 将交易包含在区块中的固定成本;

这背后的理由是,如果优先级费用为 0,矿工只会挖掘空块。 因此,为了使在区块中添加交易符合他们的经济利益,他们必须得到补偿,而不仅仅是由于在区块中添加交易而产生的边际叔块风险(以及运行交易的固定成本,但与叔块风险相比,这些成本可以忽略不计)。

叔块风险有两个主要组成部分:规范区块与叔块之间的区块奖励差异以及区块中损失的 MEV。

此分析 根据区块中的平均 MEV 量计算要设置的正确 maxPriorityFeePerGas(假设为 15m gas)(注意:p=0,最后一个图,使用最准确的数字)。 Flashbots 有一个仪表板 显示每个区块的平均 MEV。

20-05-21 的示例值

查看今天的仪表板,我们看到:

这意味着过去几天中,每个区块的大概 MEV 为 0.2ETH。

查看 Barnabé 的图表,我们看到:

在 0.2ETH/区块的情况下,补偿叔块风险的正确 maxPriorityFee 为 1 gwei。 鉴于这将补偿中间 MEV 区块,我们可能应该稍微提高它,以便即使 MEV 高于平均水平,包含交易也能获利。

查看 Flashbots 上的 MEV 分布,绝大多数区块的 MEV <1 ETH,这将代表 2.5 gwei 的费用。 2 gwei 可能是非常好的默认值“你将在接下来的几个区块中获得”。 1 gwei 可能是个不错的“慢速”值。

  1. 💰 允许机会成本高的用户向矿工支付溢价;

为此,应该足以提供一个“高级”选项,用户可以在其中手动将其 maxPriorityFee 设置为他们想要的任何值。

  1. 📈 在需求超过可用区块空间时,允许头矿费上发生首次价格拍卖(即 1559 前的费用模型)。

在这种情况下,估计 maxPriorityFee 变得与估计当前 gasPrice 相同。 “智能”实现可以查看过去 N 个区块的完整程度,以确定我们是否处于高度拥塞状态。

遗留交易支持

  • 伦敦之前的遗留交易在 1559 下仍然有效:gas price 将被解释为 maxFeePerGasmaxPriorityFeePerGas,这意味着 baseFeePerGas 被烧毁,任何额外的费用都归矿工所有。 以下是一些示例,假设 baseFeePerGas 为 100 gwei:

1559 风格的 tx:用户发送一个 maxFeePerGas 为 250 gwei 和 maxPriorityFeePerGas 为 5 gwei 的 tx。 用户将支付 100+5=105 gwei,其中 100 将被烧毁,5 将转给矿工。

遗留(1559 前)tx:如果用户有一个 gasPrice 为 250 gwei 的遗留 tx,那么 maxPriorityFeePerGas 也将被设置为 250 gwei,用户将为他们的交易支付 250 gwei/gas,其中 100 将被烧毁,250-100=150 将转给矿工。

  • 但是,支持 EIP-1559 风格的交易对用户来说可以提高 gas 效率。 通过 1559 交易,只有你的 priority fee 转到矿工,并且 maxFeePerGasbaseFeePerGas + maxPriorityFeePerGas 之间的差额将退还给用户。
  • 1559 风格的交易的 Transaction Type 设置为 0x2

伦敦激活过程

当 EIP-1559 在伦敦升级中上线时(计划于 8 月 4 日),baseFeePerGas 将设置为 1 gwei。 这意味着,起初,交易将通过小费上的首次价格拍卖进行竞争,因为 baseFeePerGas 达到以该价格达到约 15m gas /100% 需求的速率。

如果你假设分叉日期的市场价格为 250 gwei,这意味着 baseFeePerGas 需要经过约 50 个区块才能到达那里,或者略低于 15 分钟。

因此,为了使 baseFeePerGas 稳定下来,可能最简单的方法是_不要_至少在分叉后 15-30 分钟内使 1559 风格的交易成为默认交易。

何时在 UI 中默认为 1559 txns

  1. gasUsedgasLimit(分叉后为 30m)更接近 gasTarget(当前为 15m):这意味着我们已经为 baseFeePerGas 找到了接近市场价格的价格;
  2. 父级的 baseFeePerGas 与上一个区块的 baseFeePerGas 的 +/- 5%:这意味着 baseFeePerGas 已停止增加并且有些稳定;
  3. 大概:查看分叉之前的平均 gasPrice,计算 baseFeePerGas 达到该数量所需的完整区块数量(每个完整区块 +12.5%),添加一个小的缓冲区

或许可以使用这 3 种方法的组合,即:12.5m < gasUsed < 17.5m 并且 parentBaseFee +/- 5% 来自 baseFeePerGas 并且 blocksSinceFork > 100

模型资源

我们将随着钱包团队的努力添加 UI 资源:

支持图像

  • 原文链接: hackmd.io/@q8X_WM2nTfu6n...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
tvanepps
tvanepps
江湖只有他的大名,没有他的介绍。