登录 后可观看高清视频
EVM 编程课程 #10 - EVM 特性和怪异之处
228次播放
2025-08-01
视频 AI 总结: 该视频主要讲解了以太坊虚拟机(EVM)的一些特性和怪异之处,以及这些特性背后的设计原因。视频解释了 EVM 中存在的静默下溢和溢出、没有浮点数、构造函数返回要部署的代码等问题,并阐述了这些设计选择的原因,例如为了简化实现、保证金融系统的精度、以及 EVM 的底层工作方式。此外,视频还强调了 Solidity 的确定性执行的重要性,以及为什么 Solidity 与外部系统隔离,以避免链分裂。
关键信息:
- 静默下溢和溢出: EVM 中的算术运算在溢出或下溢时不会报错,而是会回绕,这是为了简化实现,并模拟底层处理器的行为。
- 没有浮点数: Solidity 不支持浮点数,而是使用固定精度的十进制数(如 WAD 和 Ray)来保证金融计算的精度和一致性。
- 构造函数返回代码: Solidity 构造函数会返回要部署到链上的字节码,包括函数选择器和函数代码。
- 确定性执行: Solidity 必须保证确定性执行,即所有节点在相同输入下必须得到相同的结果,这是保证区块链一致性的关键。
- 与外部系统隔离: Solidity 与外部系统隔离,不能直接访问外部数据,以避免因外部数据变化导致链分裂。需要通过 Oracle 来获取外部数据。
- 存储成本高昂: EVM 中存储操作成本很高,因为需要从磁盘读取数据,这比从内存读取数据慢得多。
- 栈、内存和调用栈限制: EVM 对栈、内存和调用栈都有大小限制,以防止拒绝服务攻击。