目录
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脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
4 周前 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)

gate.io新手注册教程 gate.io新手注册教程 Mar 31, 2025 pm 11:09 PM

本文提供了一份详细的Gate.io新手注册教程,涵盖了从访问官网到完成注册的每一个步骤,包括填写注册信息、进行验证、阅读用户协议等。文章还强调了注册成功后的安全措施,如设置二次验证和完成实名认证,并给出了新手提示,帮助用户安全地开启数字资产交易之旅。

ok官方入口网页版 ok交易所官方网页版登录入口 ok官方入口网页版 ok交易所官方网页版登录入口 Mar 31, 2025 pm 06:24 PM

本文详细介绍了如何使用OK交易所官方网页版进行登录。用户只需在浏览器搜索“OK交易所官方网页版”,进入官网后点击右上角的登录按钮,输入用户名和密码即可登录。 注册用户可轻松管理资产、进行交易及资金存取等操作。官网界面简洁易用,并提供完善的客服支持,确保用户获得流畅的数字资产交易体验。 还在等什么?立即访问OK交易所官方网站,开启您的数字资产之旅!

gate.io网页版最新注册教程 gate.io网页版最新注册教程 Mar 31, 2025 pm 11:15 PM

本文提供了一份详细的Gate.io网页版最新注册教程,帮助用户轻松入门数字资产交易。教程涵盖了从访问官网到完成注册的各个步骤,并强调了注册后的安全设置。文章还简单介绍了币安、欧易和芝麻开门等其他交易平台,建议用户根据自身需求选择合适的平台,并注意投资风险。

虚拟币app软件推荐网站有哪些? 虚拟币app软件推荐网站有哪些? Mar 31, 2025 pm 09:06 PM

本文推荐十个知名的虚拟币相关APP推荐网站,涵盖币安学院(Binance Academy)、OKX Learn、CoinGecko、CryptoSlate、CoinDesk、Investopedia、CoinMarketCap、火币大学(Huobi University)、Coinbase Learn和CryptoCompare。这些网站不仅提供虚拟货币市场数据、价格走势分析等信息,还提供丰富的学习资源,包括区块链基础知识、交易策略、以及各个交易平台APP的使用教程和评测,帮助用户更好地了解和使

正规Web3交易平台APP排名top10(2025权威发布) 正规Web3交易平台APP排名top10(2025权威发布) Mar 31, 2025 pm 08:09 PM

本文基于市场数据和常见评估标准,盘点了2025年十大正规Web3交易平台APP。榜单涵盖币安、OKX、Gate.io、火币(现名HTX)、Crypto.com、Coinbase、Kraken、Gemini、BitMEX和Bybit等知名平台。这些平台在用户规模、交易量、安全性、合规性、产品创新等方面各有优势,例如币安以其庞大的用户基础和丰富的产品服务着称,而Coinbase则专注于安全性和合规性。 选择合适的平台需根据自身需求和风险承受能力进行综合考量。

gate.io新手最新注册教程 gate.io新手最新注册教程 Mar 31, 2025 pm 11:12 PM

这篇文章为新手提供了详细的Gate.io注册教程,指导他们逐步完成注册流程,包括访问官网、填写信息、身份验证等,并强调了注册后的安全设置。此外,文章还提到了币安、欧易和芝麻开门等其他交易所,建议新手根据自身需求选择合适的平台,并提醒读者数字资产投资具有风险,应理性投资。

数字货币如何滚仓?数字货币滚仓平台有哪些? 数字货币如何滚仓?数字货币滚仓平台有哪些? Mar 31, 2025 pm 07:36 PM

数字货币滚仓,即利用借贷放大交易杠杆以提高收益的投资策略。 本文详解数字货币滚仓流程,包括选择支持滚仓的交易平台(如Binance、OKEx、gate.io、Huobi、Bybit等),开通杠杆账户,设置杠杆倍数,借入资金进行交易,以及实时监控市场并调整仓位或追加保证金以避免爆仓等关键步骤。 然而,滚仓交易风险极高,投资者需谨慎操作并制定完善的风险管理策略。 了解更多数字货币滚仓技巧,请继续阅读。

欧易是干嘛的 欧易是什么 欧易是干嘛的 欧易是什么 Apr 01, 2025 pm 03:18 PM

欧易(OKX)是一个全球性的数字资产交易平台,主要功能包括:1. 买卖数字资产(现货交易),2. 进行数字资产之间的交易,3. 提供市场行情和数据,4. 提供多样化的交易产品(如衍生品),5. 提供资产增值相关服务,6. 方便资产管理。