CIP-76(Conflux改进提案)详细介绍

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

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

简介

CIP-76 激活后,将删除同步区块时与虚拟机相关的检查规则,如要求给交易设置足够的 gas limit。这样可确保共识协议不受后续虚拟机相关升级的影响。

摘要

当前,当收到一个邻居节点发来新区块时,我们要检查这个区块是否满足一些约束条件。其中一条约束要求交易的 gas limit 超过一个最低阈值。然而,这个阈值的大小依赖于虚拟机的 gas 收费方案。这个方案可能会在未来的升级中被改变。此 CIP 提议删除同步块时与虚拟机相关的约束条件检查,并避免在将来引入类似检查规则。

动机

将共识组件与执行组件解耦对于后续的升级计划至关重要。共识协议应对执行组件保持透明。

然而,如果在同步和检查新接收区块的合法性时,需要读取虚拟机相关参数,那么任何虚拟机层面的改变都有可能导致共识协议意料之外的硬分叉。

另一方面,当前对于交易 gas limit 的约束检查并不能阻止恶意矿工使用无意义的交易来填满一个区块,因为我们不检查交易发送者是否有足够余额来支付 gas fee。恶意的矿工可以将大量发送者余额为0的交易打包进区块。所以将这一检查去掉不会引入更多的安全问题。

参数规格

经过一个指定的 epoch 高度之后,共识协议将不再检查交易的 gas limit。

安全方面的考虑因素

如动机部分所述,关于 gas limit 的检查无法阻止恶意矿工用无意义交易来填充区块,所以删除此项检查不会造成安全问题。

但是更多有关此次变动的安全性讨论是必要的。