Solidity 复杂类型状态变量在 EVM 中存储布局 in 代理模式与 Delegatecall 规范手册 全面理解复杂类型的存储布局 EVM 存储布局 RareSkills 发布于 2024-10-15 7110 3 1
Ethernaut 题库闯关 #12 — Privacy in Ethernaut 题库闯关 - 精进 Solidity Ethernaut题库闯关连载第12篇题解 Ethernaut 存储布局 EVM Ethernaut CTF 发布于 2022-09-03 4937 1 0
delegatecall委托调用 delegatecall 是一种特殊的底层调用函数,它与 call 的核心区别在于不切换执行上下文,`msg.sender` 保持为原始调用者,修改的是调用者合约的状态(使用被调用合约的代码)。delegatecall 最典型的应用场景是代理合约,通过代理模式,可以实现合约的升级而不改变合约地址。使用 delegatecall 时,调用者和被调用合约必须有相同的存储布局,否则会导致数据混乱。 delegatecall 委托调用 代理合约 上下文切换 存储布局 EVM Solidity DeCert.me 发布于 2025-12-13 3068 1 0
Solidity存储布局的冲突 本篇文章是关于可升级智能合约的系列文章中的第二篇,深入探讨了Solidity的数据存储方法及使用代理合约的潜在问题。文章重点讲解了以太坊虚拟机(EVM)的存储模型,以及如何避免不同版本智能合约之间存储布局的碰撞,提供了一些最佳实践和解决方案,具有较高的技术深度和实用价值。 智能合约 Solidity 存储布局 代理合约 以太坊 mixbytes 发布于 2020-02-25 2024 1 0
使用ERC-8211进行基于跨链和谓词的模拟 ERC-8211引入的predicate原语允许用户在交易尚未有效时签名跨链操作,但现有模拟工具(如eth_call)无法处理这种未来状态。文章提出通过state override和存储槽检测技术来模拟post-bridge世界:先使用tracing调用发现token余额的存储槽,再构造override map,使模拟器能准确预测跨链交易的gas、输出和潜在失败。该技术使predicate-gated交易从“凭希望签名”变为“基于预报签名”,显著改善用户体验和可靠性。 ERC-8211 predicate 跨链模拟 state override 存储槽检测 存储布局 Biconomy 发布于 2026-05-14 134 0 0
跨区块链的可升级性模式分析 – ImmuneBytes 本文深入探讨了智能合约可升级性在不同区块链生态系统(如以太坊、Solana、Cosmos和Substrate)中的实现模式、权衡、安全风险及防范措施。文章分析了代理模式、存储布局、升级权限等关键技术细节,并提供了设计更安全升级的建议,强调了可升级性在带来灵活性的同时,也带来了巨大的安全责任。 智能合约 可升级性 代理模式 存储布局 安全风险 区块链 ImmuneBytes 发布于 2026-03-03 725 0 0
合约私有数据泄漏的安全问题分析及演示 所有存储在区块链上都是公开可见的,包括合约的私有状态变量!所以不要在区块链上存储密码和私钥,而且对于确实需要存储的敏感数据尽量使用hash比对的存储密文hash。通过本文可以理解合约[数据的存储](https://learnblockchain.cn/2019/10/05/evm-data),并学会访问合约的状态变量数据。 智能合约安全 存储布局 小驹 发布于 2022-06-09 6513 3 10
Stylus Rust SDK 审计 本次审计对 OffchainLabs/stylus-sdk-rs 仓库在特定 commit 进行了安全审计,发现了 36 个问题,包括严重、高、中、低风险问题。审计范围涵盖 stylus-proc, stylus-sdk, examples, mini-alloc 目录下的多个文件。审计结果表明该项目尚处于开发阶段,但团队积极解决问题,建议在问题解决和项目成熟后进行后续审计。 Rust 智能合约 安全审计 WASM Stylus SDK 存储布局 OpenZeppelin 发布于 2024-09-10 1845 0 0
编写可升级合约 - OpenZeppelin 文档 本文介绍了在使用 OpenZeppelin Upgrades 编写可升级合约时需要注意的关键事项,包括使用 initializer 代替 constructor,避免在字段声明中定义初始值,以及如何安全地修改合约存储结构。 可升级合约 OpenZeppelin Upgrades initializer 存储布局 storage gaps Namespaced Storage Layout OpenZeppelin 发布于 2025-03-16 1868 0 0
OpenZeppelin Upgrades Core & CLI - OpenZeppelin 文档 本文档介绍了OpenZeppelin Upgrades Core库和CLI工具,用于检测智能合约的升级安全性及存储布局兼容性。重点介绍了CLI的validate命令,以及High-Level API和Low-Level API的使用方法,包括环境配置、参数说明和返回结果,方便开发者在开发流程中尽早发现和解决潜在的升级问题。 OpenZeppelin 升级 智能合约 安全性 存储布局 validate命令 OpenZeppelin 发布于 2025-02-12 1863 0 0
自底向上学习以太坊(三):智能合约开发中的构造器、函数定义与存储布局 本文介绍了使用Foundry进行Solidity项目初始化、代码编译、测试和部署的方法,包括构造器的执行原理、函数定义与修饰符、存储变量定义与存储布局等内容,并给出了详细的代码示例和测试用例,同时还介绍了Soldeer包管理工具的使用,以及如何通过内联汇编和读取本地二进制文件部署合约。 Foundry Solidity 智能合约 测试 部署 存储布局 4seasstack 发布于 2025-11-04 877 0 0
Solidity 0.8.31 发布公告 Solidity 编译器 v0.8.31 正式发布,默认 EVM 版本升级为 Fusaka (osaka),新增对 CLZ 操作码(EIP-7939)的支持,并扩展了存储布局规范器,允许使用常量变量作为基槽表达式。 Solidity v0.8.31 Fusaka CLZ 操作码 存储布局 弃用特性 ARM Linux 支持 SolidityLang 发布于 2025-12-04 175 0 0
网络文件 - OpenZeppelin 文档 本文介绍了OpenZeppelin Hardhat Upgrades插件如何通过`.openzeppelin`文件夹中的网络文件来跟踪已部署的合约版本。 OpenZeppelin Hardhat 升级 合约版本 存储布局 网络文件 OpenZeppelin 发布于 2025-03-27 1566 0 0
向后兼容性 - OpenZeppelin 文档 本文档介绍了OpenZeppelin Contracts库在不同版本之间的向后兼容性保证,包括API和存储布局的兼容性。文章解释了在patch和minor版本更新中通常会保持向后兼容,但某些情况下可能会有例外,特别是涉及到安全问题或draft状态的ERC标准时。同时提醒了override函数、struct结构体以及错误处理等方面需要注意的问题,并强调了major版本更新通常不保证兼容性。 向后兼容性 OpenZeppelin Contracts API 存储布局 语义化版本控制 Solidity OpenZeppelin 发布于 2025-05-28 1865 0 0