区块链知识系列 - 系统学习EVM(一)-架构与执行流程

EVM有一个基于栈的架构,在一个栈中保存了所有内存数值。EVM的数据处理单位被定义为256位的“字”(这主要是为了方便处理哈希运算和椭圆曲线运算操作

这里所说的内存数值是指那些EVM字节码运行所需要的输入、输出参数数据和智能合约程序运行中所需要的局部变量等数据,而不是指下文中所提到的“内存”数据;下文中的“内存”是一个与栈共同存在的、独立的临时存储空间。

以太坊EVM的架构和执行上下文
在这里插入图片描述

虚拟机引擎

目前市面上比较主流的是BTC脚本引擎和以太坊虚拟机(Ethereum Virtual Machine, EVM)。

  • BTC事务由一套脚本引擎(Script)处理,Script是一种类Forth的、基于栈式模型的、无状态的、非图灵完备的语言。
  • EVM基于Account模型将智能合约代码以对外完全隔离的方式内部运行,实现了图灵完备的智能合约体系。
    • EVM类似于Java虚拟机(JVM),编译后基于字节码运行,开发时则可以使用高级语言实现,编译器会自动转化为字节码。
    • EVM。以太坊虚拟机是以太坊中智能合约的运行环境,并且是一个沙盒,与外界隔离。
    • 智能合约代码在EVM内部运行时,是不能进行网络操作、文件I/O或执行其他进程的。智能合约之间也只能进行有限的调用,这样保证了合约运行的独立性,并尽可能提高了运行时的安全性。

图灵完备

图灵完备的计算环境——以太坊虚拟机(EVM)。这就意味着在EVM上可以做所有的能想得到计算,包括无限循环。EVM指令包括一个JUMP的跳转指令,可让程序跳回前面的程序代码,也可以像条件判断语句那样

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

搬砖魁首

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值