目录
EIP提案回顾
EIP-6780
官方披露的安全考量
智能合约相关风险
扩展阅读
首页 网络3.0 坎昆升级前的重要安全检查

坎昆升级前的重要安全检查

Mar 24, 2024 am 09:06 AM
加密货币 以太坊 安全检查 标准库 坎昆升级 以太币 交易平台

坎昆升级前的重要安全检查

长话短说:坎昆升级临近,本次升级主要包含六个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提案回顾

  1. EIP-1153

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

  1. EIP-4788

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

  1. EIP-4844

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

  1. EIP-5656

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

  1. EIP-6780

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

  1. 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

此 EIP 使每个信标块的带宽要求最多增加约 0.75 MB。这比当今区块的理论最大大小(30M Gas / 每个 calldata 字节 16 Gas = 1.875M 字节)大 40%,因此它不会大幅增加最坏情况下的带宽。合并后,区块时间是静态的,而不是不可预测的泊松分布,为大区块的传播提供了保证的时间段。

即使调用数据有限,此 EIP 的持续负载也比可降低调用数据成本的替代方案低得多,因为不需要将 Blob 存储与执行负载一样长的时间。这使得实现这些 blob 必须保留至少一段时间的策略成为可能。选择的具体值是MIN_EPOCHS_FOR_BLOB_SIDECARS_REQUESTS纪元,约为 18 天,与建议的(但尚未实施)执行有效负载历史的一年轮换时间相比,延迟要短得多。

EIP-5656

客户端应注意其实现不使用中间缓冲区(例如 C stdlibmemmove函数不使用中间缓冲区),因为这是潜在的拒绝服务 (DoS) 向量。大多数用于移动字节的语言内置函数/标准库函数在这里都具有正确的性能特征。

除此之外,对拒绝服务 (DoS) 和内存耗尽攻击的分析与其他接触内存的操作码相同,因为内存扩展遵循相同的定价规则。

EIP-6780

以下应用程序SELFDESTRUCT将被破坏,并且以这种方式使用它的应用程序不再安全:

WhereCREATE2用于在同一位置重新部署合约,以使合约可升级。不再支持此功能,应改用ERC-2535或其他类型的代理合约。

如果合约依赖于通过以SELFDESTRUCT合约作为受益人燃烧以太币,则合约不是在同一交易中创建的。

智能合约相关风险

EIP1153

设想使用操作码TLOAD和TSTORE的两种场景:

  1. 被调用合约使用该操作码
  2. 发起调用合约使用该操作码

风险1:

相比于传统的 SSTORE 和 SLOAD ,新增的瞬态存储主要改变了数据的存储期限,tstore存储的数据通过tload进行读取,在一笔交易执行结束后该数据将会被释放,而不是同sstore一样写入合约被永久性的记录。开发者在使用该操作码时应该认清该操作码的特性,以免错误的使用导致数据不能正确的写入到合约中而造成损失。另外,tstore的数据属于私有变量,仅合约本身可以访问。如果想要外部使用该数据只能通过参数的形式进行传递或暂存到一个public stroage变量中。

风险2:

另一个潜在风险是,如果智能合约开发人员不正确管理瞬态存储变量的生命周期,可能导致数据在不应该的时间被清除或错误地保留。如果合约期望在事务的后续调用中使用存储在瞬态存储中的数据,但未能适当地管理这些数据的生命周期,可能会在不同调用之间错误地共享或丢失数据,从而导致逻辑错误或安全漏洞。考虑到类似于Token项目的balance或者allowance数据未能正确的存储将会导致合约逻辑的错误,造成损失。或在对owner地址进行设置时使用了该操作码将会导致特权地址不能正确的被记录从而丢失对合约重要参数的修改。

考虑一个智能合约,该合约使用瞬态存储来临时记录一个加密货币交易平台上的交易价格。该合约在每笔交易完成时更新价格,并允许用户在短时间内查询最新价格。然而,如果合约设计没有考虑到瞬态存储在交易结束时被自动清除的特性,那么在一笔交易结束后到下一笔交易开始之前的这段时间内,用户可能会得到一个错误或过时的价格。这不仅可能导致用户做出基于错误信息的决策,还可能被恶意利用,影响平台的信誉和用户的资产安全。

EIP-6780

该提案改变了之前selfdestruct操作码的行为,不销毁合约,仅转移token,仅与自毁同一交易中创建的合约才会被销毁。这个EIP的影响相对较大。

用create2在同一地址重新部署合约,以使合合约升级。不再支持此功能,应改用 ERC-2535 或其他类型的代理合约。(这可能会影响到使用create2实现可升级合约的链上合约的安全性)

智能合约中的SELFDESTRUCT操作允许合约销毁,并将合约余额发送给指定的目标地址。在这种情况下,合约使用SELFDESTRUCT销毁以太币,并将销毁的以太币发送给了合约。但是该合约仅能是在同一笔交易中创建的合约(同一笔交易中由本合约或其他合约创建的合约)。否则将仅转账以太而不销毁合约(例如自毁且受益者为自毁合约,这将会不产生任何改变)。这将会影响一切依赖于selfdestruct进行提款或其他操作的合约。

一种类似于 1inch CHI Token的Gas Token的工作原理:保持一个偏移量,始终在此偏移量处执行 CREATE2 或 SELFDESTRUCT。在此更新之后,如果当前偏移量的合约尚未正确自毁,则之后的CREATE2 将不能成功的部署合约。

该提案实施并不能导致直接对合约进行攻击,但会损害原有已部署的依赖selfdestruct操作的合约的正常逻辑(仅依赖自毁进行资金转移的合约不受到影响,如果后续操作必须要求自毁的合约被删除,则受到影响),导致合约非预期工作,仅对合约以及用户而言,可能导致合约的罢工,损失资金等危害(例如原本利用create2在原地址部署新合约,自毁原合约进行升级的合约,不再能够成功部署)。长远来看,修改某项操作码的功能可能会带来中心化的问题。

例如现有一个金库合约vault进行更新:

  • create2临时存储合约用来临时储备vault的资金

  • 自毁vault合约,资金转账到临时合约(仅转移了资金而没有销毁合约)

  • 在原地址create2新的vault合约(失败,因为原有vault合约没有被销毁)

  • 自毁临时合约将资金还给vault(资金损失,vault合约没有被创建)

扩展阅读

坎昆升级将进一步增强以太坊的竞争优势。但此次升级对核心智能合约层的改动带来了风险,这会影响现有的DApps的安全运行。在进行智能合约开发的过程中,这些改变以及可能引发的风险同样需要被高度关注。您可以与Salus联系获得风险检查或审计支持,也可以通过进一步阅读相关内容以了解变化。

以上是坎昆升级前的重要安全检查的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

<🎜>:泡泡胶模拟器无穷大 - 如何获取和使用皇家钥匙
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系统,解释
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆树的耳语 - 如何解锁抓钩
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
<🎜>掩盖:探险33-如何获得完美的色度催化剂
2 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1676
14
CakePHP 教程
1429
52
Laravel 教程
1333
25
PHP教程
1278
29
C# 教程
1257
24
火必HuobiAPI接口怎么申请_火必HuobiAPI接口申请流程详解 火必HuobiAPI接口怎么申请_火必HuobiAPI接口申请流程详解 May 15, 2025 pm 03:54 PM

申请火必API接口需六步:1.注册火必账户并选择“全球站”;2.完成实名认证(L1/L2/L3);3.登录并进入API管理页面;4.创建API密钥,填写基本信息并选择权限;5.生成并保存Access Key和Secret Key;6.集成API至应用,注意安全事项并定期更换密钥。

PWAR币合约地址多少?PWAR币合约地址介绍 PWAR币合约地址多少?PWAR币合约地址介绍 May 15, 2025 pm 12:36 PM

每个投资团队都对该项目备受期待的NFT Gaming多元宇宙表现出极大的兴趣和热情,他们仍然渴望支持PolkaWar在加密货币领域的未来。PolkaWar预计机构和有组织的基金对早期投资的热情会更高,公司感谢大家迄今为止的赞助和支持。筹集的资金将提供快速交付路线图的能力,并在较短的时间内部署项目。PolkaWar具有独特的优势,可以从即将到来的激增和兴奋中受益。投资者们想要知道PWAR币合约地址多少?下面就让小编为大家介绍一下PWAR币的

以太坊的pectra升级触发了第二层解决方案(ARB),Starknet(Starknet(Strk)和Mantle(MNT)的激增 以太坊的pectra升级触发了第二层解决方案(ARB),Starknet(Starknet(Strk)和Mantle(MNT)的激增 May 15, 2025 pm 12:27 PM

几天前发布的以太坊Pectra升级已经引发了加密货币市场的价值激增。除了ETH本身之外,一位加密分析师现在强调了一些基于以太坊的Altcoins,特别是2层解决方案,这些代币将在最新升级后带来重大的提升。以太坊的Pectra升级最近引发了加密货币市场的价值激增。除了ETH本身之外,一位加密分析师现在强调了一些基于以太坊的代币,这些代币将在最新升级后带来重大的提升。在最近的播客中,分析师确定了三个第2层以太坊解决方案,他建议用户关注未来:Arbitrum(ARB)、Starknet(STRK)和M

htx官方登录入口注册 htx交易所火币新手注册教程2025最新版 htx官方登录入口注册 htx交易所火币新手注册教程2025最新版 May 15, 2025 pm 04:36 PM

HTX交易所作为全球领先的数字资产交易平台之一,凭借其安全、便捷和高效的交易服务,吸引了大量的用户。随着2025年的到来,HTX交易所不断优化和更新其注册流程,以确保用户能够更加顺畅地体验数字资产交易。本文将详细介绍HTX官方登录入口的注册流程,并提供最新的新手注册教程,帮助你快速上手。

确保未来的最佳加密货币:前3个选秀权将释放巨大的利润潜力! 确保未来的最佳加密货币:前3个选秀权将释放巨大的利润潜力! May 15, 2025 pm 12:30 PM

在当今拥挤的加密市场中,炒作、猜测和不可预测的波动占据主导地位。在庞大且经常被宣传的加密货币市场中,持久的成功归结为真正的效用、创新和最终的牵引力。随着投资者和交易者寻求具有持久力量的项目,那些具有强大用例、基本稳定性和未来技术的项目越来越成为最前沿的,尤其是面对市场波动。这些特质在2025年脱颖而出的三个令牌是Web3AI(Wai)、Hedera(Hbar)和Polkadot(DOT)。每个人都带来了独特的东西:Web3AI的AI驱动交易平台、Hedera的企业使用可扩展性以及Polkadot

$ 500到$ 70万美元? Web3 AI正轨将百万富翁作为超流动和BGB激增 $ 500到$ 70万美元? Web3 AI正轨将百万富翁作为超流动和BGB激增 May 15, 2025 pm 12:21 PM

超流动性(HYPE)价格更新显示,公牛的目标是在公开利息飙升至创纪录的6.97亿美元之后的25美元。超级流动性(HYPE)公牛的目标是25美元,因为代币交易高于主要支持,为19.24美元。开放兴趣飙升至创纪录的6.97亿美元,这表明了强劲的势头。来自RSI(14)和MACD(12,26)的技术信号显示可能有更多的上升空间。到2030年,随着交易所在全球范围内扩展和燃烧代币,BitGet令牌(BGB)价格预测的目标是25美元。Web3AI的预售开始引起关注,起价仅为0.03美元,并提供1,333倍

[截至2025年5月13日,&#39;Polygon的本地加密货币&#39;Pol&#39;&#39;的交易约为0.258] [截至2025年5月13日,&#39;Polygon的本地加密货币&#39;Pol&#39;&#39;的交易约为0.258] May 15, 2025 pm 12:33 PM

尽管市场波动加剧,Polygon(POL)仍在积极建设中。该网络正在推出重大升级,期望这些升级将重新定义其未来,包括旨在使以太坊(ETH)更快、更便宜的新代币和基础设施。Polygon(POL)的价格一直在横盘整理,并显示出下行压力的迹象。尽管市场波动加剧,但Polygon仍在积极建设中。该网络正在推出重大升级,期望这些升级将重新定义其未来,其中包括旨在使以太坊(ETH)更快、更便宜的新代币和基础设施。Polygon最出名的是作为以太坊的“第2层”网络。这意味着它通过利用其安全性来帮助以太坊扩展

赵长鹏对加密货币乱象开炮详解:99.99%的AI代币没用处 想看到实质用途 赵长鹏对加密货币乱象开炮详解:99.99%的AI代币没用处 想看到实质用途 May 15, 2025 pm 12:39 PM

币安(Binance)创办人赵长鹏(CZ)再度对币圈乱象开炮。他直言,如今市面上打着「AI」名号的加密货币项目多如牛毛,却几乎没有真正的用途。赵长鹏呼吁,AI与区块链、加密货币的结合,应走向「实用主义」,而不是一味只会炒作代币价格。赵长鹏近日在迪拜举行的「Token2049」大会上表示:「现在市场上有太多AI代理(AIAgents),每个都挂着代币,但实际上根本没什么用处。我想看到的是,真正具备实质功能的AIAgent,能够透