登录 后可观看高清视频
通过面试题深入理解 EVM 存储布局
21次播放
1天前
视频 AI 总结: 该视频讲解了以太坊虚拟机(EVM)中存储布局,特别是关于可升级合约中结构体和映射(mapping)的存储方式。核心问题是:在可升级合约中,如果mapping的value类型是结构体,升级后的版本是否可以在结构体中添加变量?视频通过分析结构体和mapping在EVM中的存储方式,解释了添加变量的安全性和潜在问题。
关键信息:
- 结构体存储: 结构体中的变量在存储槽中是连续存储的。
- Mapping存储: Mapping的value存储位置是通过key的哈希值计算出来的,每个元素的存储位置是离散的。
- 升级合约添加变量: 在结构体中添加变量时,只能在结构体的末尾添加,避免覆盖原有数据。
- 数组存储: 数组在存储中是连续的,因此在数组的结构体中添加变量可能会覆盖后面的数据,除非新添加的变量可以和现有变量合并到一个存储槽中。
- 存储槽共享: 如果两个变量的总大小不超过256位,它们可以合并共用一个存储槽。