CIP-137(Base Fee Sharing in CIP-1559)详细介绍


CIP编号:137
标题:CIP-1559 中的基础费分配
作者:Chenxing Li(@ChenxingLi
状态:最终版
类型:规范改变
创建日期:2024-05-09


本文是整理好的CIP-137中文介绍,供大家交流讨论。

CIP-137详情链接:https://github.com/Conflux-Chain/CIPs/blob/master/CIPs/cip-137.md

内容

此 CIP 提议调整 Conflux CIP-1559 更新中的交易费用分配方式部分,旨在与矿工分享部分的基础费用。

摘要

EIP-1559 中,交易费被分为被销毁的基础费、支付给矿工的小费或优先费。对于即将到来的 Conflux CIP-1559,此 CIP 提议根据 CIP-94 中描述的 DAO 投票,将基础费的一部分分配给矿工。基础费分配比例的调整机制将模仿 CIP-107 中的存储抵押燃烧比例。

在新系统下,Conflux 的交易费将包括三部分:被燃烧的基础费部分、分配给矿工的基础费部分和优先费部分。每个纪元的交易处理将考虑枢轴区块的 base_gas_price,确保整个纪元的一致性。无法支付 base_gas_price 的非枢轴区块中的交易将首先分配资金给基础费的燃烧部分。如果无法支付这部分费用,交易将被拒绝。

动机

本次变更的核心动机源于希望更好地支持矿工,他们在 Conflux 生态系统中扮演着关键角色。EIP-1559 后,在 Otherside 导致的 “Gas War”中,99% 的交易费归于基础费,矿工只能从中获得 1% 的费用。此 CIP 通过与矿工分享基础费的一部分,可以为矿工提供更可预测的收入。此外,通过部分分配基础费用引入缓冲,本 CIP 解决了枢轴区块和非枢轴区块在基础燃气价格之间的差异,促进网络中更一致的交易处理。这一调整预计将通过为矿工提供更稳定和公平的收入流,增强网络的安全性和去中心化。

规格说明

参数

CIP137_HARDFORK_NUMBER : 在指定的区块高度激活 CIP137。

比例投票

我们引入一个整数参数 BASE_FEE_PROP,初始值为 10^18(表示带 18 个小数的 1)。比例 p 由 BASE_FEE_PROP / (BASE_FEE_PROP + 10^18) 定义。例如,如果在第一次投票期间,所有投票都同意增加 BASE_FEE_PROPBASE_FEE_PROP 将变为 2 * 10^18 ,p 等于 67%(与 CIP-94 中的计算方式相同)。

账本状态维护

在执行区块号为 CIP137_HARDFORK_NUMBER 的区块之前,BASE_FEE_PROP 参数存储在特定槽位的状态中:地址 0x0888000000000000000000000000000000000002 ,存储键 base_fee_prop。当 DAO 投票生效时,更新 BASE_FEE_PROP

交易处理

每次更新 BASE_FEE_PROP 都在下一个时代开始时生效。

如果 CIP-1559 尚未激活,CIP-137 不改变任何行为;如果 CIP-1559 已经激活,则纪元的参数定义如下:

  • base_gas_price : pivot_block.base_gas_price
  • burnt_gas_price : pivot_block.base_gas_price - pivot_block.base_gas_price * BASE_FEE_PROP / (BASE_FEE_PROP + 10^18)
    在执行交易时,如果交易的 max_gas_price 小于 burnt_gas_price ,交易执行失败且不增加nonce。否则,交易的 actual_base_gas_price 定义为 base_gas_pricetx.max_gas_price 的最小值。确定 actual_base_gas_price 后,使用与 EIP-1559 相同的规则计算 priority_gas_price,交易的 actual_gas_priceactual_base_gas_price + priority_gas_price。矿工的奖励由 actual_gas_price-burnt_gas_price 计算。检查和收集交易费用的逻辑,以及合约赞助的逻辑,基于计算出的 actual_gas_price

异常情况

如果账户余额不足以支付交易费用,所有交易费用将被燃烧,不分配给矿工。

后向兼容性

此改动将改变原有系统规范。

版权

此提案遵守 CC0 协议,所有版权及相关权利不设限。