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_PROP
,BASE_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_price
和tx.max_gas_price
的最小值。确定actual_base_gas_price
后,使用与 EIP-1559 相同的规则计算priority_gas_price
,交易的actual_gas_price
为actual_base_gas_price + priority_gas_price
。矿工的奖励由actual_gas_price-burnt_gas_price
计算。检查和收集交易费用的逻辑,以及合约赞助的逻辑,基于计算出的actual_gas_price
。
异常情况
如果账户余额不足以支付交易费用,所有交易费用将被燃烧,不分配给矿工。
后向兼容性
此改动将改变原有系统规范。
版权
此提案遵守 CC0 协议,所有版权及相关权利不设限。