CIP-132(Fix Static Context Check for Internal Contracts)详细介绍


CIP编号:132
标题:修复内部合约的静态上下文检查
作者:Chenxing Li(@ChenxingLi
状态:最终版
类型:规范改变
创建日期:2024-01-11


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

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

内容

此 CIP 旨在修复与静态上下文检查相关的漏洞。

摘要

Conflux 内部合约当前存在一个关于内部函数执行的技术漏洞。没有view关键字的函数不应该在 EVM 的静态上下文中执行。然而,在当前的实现中,系统只会在直接静态调用(staticall)时拒绝调用,但未考虑到调用的外层使用staticall的场景,无意中创建了静态上下文。这一疏忽可能导致意外行为并影响合约执行的完整性。

此 CIP 提议通过确保这些函数正确识别并拒绝来自任何层次的静态上下文的调用来修复这个漏洞。

动机

此 CIP 旨在是解决 Conflux 协议中的错误行为。

规格说明

在此 CIP 之前,内部合约验证静态上下文的方法仅限于评估调用类型。

在此 CIP 在某个区块激活后,内部合约将通过同时考虑静态标志和调用类型来增强其验证过程,以确定静态上下文。

后向兼容性

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

版权

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