复制成功

分享至

主页 > 数字货币 >

Salus Insights:坎昆升级前,项目开发者必看的几项安全检查

2024.03.03

长话短说:坎昆升级临近,本次升级主要包含六个 EIP 提出的执行层变更,EIP-1153、EIP-4788、EIP-4844、EIP-5656、EIP-6780 和 EIP-7516 。EIP-4844 是本次升级的主角,旨在提升以太坊的可扩展性,为L2降低交易成本、提升交易速度。坎昆升级已分别于 1 月 17 日、 1 月 30 日、 2 月 7 日在以太坊 Goerli、Sepolia 和 Holesky 测试网完成升级,并计划在 3 月 13 日在以太坊主网上激活。在升级前,Salus 整理了此次升级的重要安全注意事项,供开发者自行检查。

EIP 提案回顾

官方披露的安全考量

智能合约相关风险

扩展阅读

EIP 提案回顾

EIP-1153 

EIP-1153 引入了临时存储操作码,这些操作码用于操作状态,其行为与存储几乎相同,但每笔交易结束后临时存储将被丢弃。这意味着,临时存储不会从存储中反序列化值,也不会序列化值到存储,因此,由于不需要磁盘访问,临时存储成本更低。通过两个新的操作码 TLOAD 和 TSTORE(其中“T”代表“临时”),智能合约可以访问临时存储。这项提议旨在为 Ethereum 的交易执行中的多个嵌套执行框架之间的通信提供一个专用且高效的解决方案。

EIP-4788 

EIP-4788 旨在将信标链区块的哈希树根暴露于 EVM 中,以允许在智能合约内部访问这些根。这样做可以无需信任地访问共识层状态,支持 staking pools、restaking 结构、智能合约桥、MEV 缓解等多种用例。该提案通过一个智能合约存储这些根,并使用环形缓冲区来限制存储消耗,确保每个执行区块只需常量空间即可表示这些信息。

EIP-4844 

EIP-4844 介绍了一种新的事务格式,称为"分片 Blob 事务",旨在以简单、向前兼容的方式扩展以太坊的数据可用性。这项提案通过引入包含大量数据的"blob-carrying transactions",这些数据不能被 EVM 执行访问,但可以访问其承诺。这种格式与将来全分片使用的格式完全兼容,为滚动式扩容提供了临时但显著的缓解。

EIP-5656 

EIP-5656 引入了一种新的 EVM 指令 MCOPY,用于高效复制内存区域。这项提案旨在降低在 EVM 上执行内存复制操作的开销,通过 MCOPY 指令直接实现内存之间的数据复制。MCOPY 允许源地址和目标地址重叠,其设计考虑到了向后兼容性,并旨在提升包括数据结构构建、内存对象的高效访问和复制在内的多种场景的执行效率。

EIP-6780 

EIP-6780 修改了 SELFDESTRUCT 操作码的功能。在这个提案中,SELFDESTRUCT 只会在与合约创建相同的交易中删除账户和传输所有以太币,除此之外,执行 SELFDESTRUCT 时,合约将不会被删除,只是将所有以太币转移到指定目标。这一改变是为了适应未来 Verkle 树的使用,旨在简化 EVM 实现,减少状态变化的复杂性,同时保留 SELFDESTRUCT 的部分常用场景。

EIP-7516 

EIP-7516 引入了一个新的 EVM 指令 BLOBBASEFEE,用于返回当前区块执行中的 blob 基础费用值。这个指令与 EIP-3198 中的 BASEFEE 操作码相似,不同之处在于它返回的是根据 EIP-4844 定义的 blob 基础费用。这个功能使得合约可以编程地考虑 blob 数据的气体价格,例如,允许 rollup 合约无需信任地计算 blob 数据使用成本,或者基于此实现 blob 气体期货,以平滑 blob 数据成本。

官方披露的安全考量

EIP-1153 

智能合约开发人员应在使用前了解瞬态存储变量的生命周期。由于临时存储会在交易结束时自动清除,因此智能合约开发人员可能会试图避免在调用过程中清除插槽以节省 Gas。然而,这可能会阻止在同一事务中与合约进行进一步的交互(例如,在重入锁的情况下)或导致其他错误,因此智能合约开发人员应小心,仅在临时存储槽被保留时保留非零值。旨在供同一事务中的未来调用使用。SSTORE 否则,这些操作码的行为与和完全相同 SLOAD,因此所有常见的安全注意事项都适用,特别是在重入风险方面。

智能合约开发人员也可能会尝试使用瞬态存储作为内存映射的替代方案。他们应该意识到,当调用返回或恢复时,临时存储不会像内存一样被丢弃,并且应该在这些用例中优先选择内存,以免在同一事务中的重入时产生意外的行为。内存上的瞬态存储成本必然很高,这应该已经阻止了这种使用模式。内存中映射的大多数用法可以通过按键排序的条目列表来更好地实现,并且智能合约中很少需要内存中映射(即作者知道生产中没有已知的用例)。

EIP-4844 

免责声明:数字资产交易涉及重大风险,本资料不应作为投资决策依据,亦不应被解释为从事投资交易的建议。请确保充分了解所涉及的风险并谨慎投资。OKEx学院仅提供信息参考,不构成任何投资建议,用户一切投资行为与本站无关。

加⼊OKEx全球社群

和全球数字资产投资者交流讨论

扫码加入OKEx社群

相关推荐

industry-frontier