登录 后可观看高清视频

EVM 编程课程 #2 - 链上数据位置

215次播放
2025-07-31

视频 AI 总结: 该视频主要讲解了以太坊虚拟机(EVM)中的数据存储位置,包括 Stack(栈)、Memory(内存)、Storage(存储)、Calldata(调用数据)和 Code(代码)。EVM 作为栈机器,通过这些数据位置来存储和管理智能合约运行过程中的数据。理解这些数据位置的特性和使用方式,对于编写高效且安全的智能合约至关重要。

关键信息:

  • Stack(栈):LIFO(后进先出)结构,用于存储操作数和中间值,容量有限(1024个元素),操作成本较低,但访问深度受限。
  • Memory(内存):线性数据分配,临时存储区域,可扩展,用于存储外部调用返回的数据、创建合约等,有内存扩展成本(二次方级别),断电后数据丢失。
  • Storage(存储):持久化存储,键值对存储,用于保存合约状态,成本最高,数据在链上永久保存。
  • Calldata(调用数据):只读数据,存储外部调用合约时传入的参数,成本较低。
  • Code(代码):存储智能合约的字节码,不可变,最大尺寸为 24KB。
  • EVM 通过 Stack 管理智能合约运行中的操作数,Memory 用于临时数据存储,Storage 用于持久化数据,Calldata 传递输入参数,Code 存储合约代码。
  • EVM 有保护机制,防止过度使用 Memory 导致崩溃。
  • 理解不同数据位置的特性,有助于优化智能合约的 Gas 消耗。