21 以太坊虚拟机(EVM)

一、以太坊虚拟机(EVM)简介
1、以太坊虚拟机(EVM)

  • 以太坊虚拟机 EVM 是智能合约的运行环境
  • 作为区块验证协议的一部分,参与网络的每个节点都会运行EVM。他们会检查正在验证的块中列出的交易,并运行由EVM中的交易触发的代码
  • EVM不仅是沙盒封装的,而且是完全隔离的,也就是说在 EVM 中运行的代码是无法访问网络、文件系统和其他进程的,甚至智能合约之间的访问也是受限的
  • 合约以字节码的格式(EVM bytecode)存在于区块链上
  • 合约通常以高级语言(solidity)编写,通过EVM编译器编译为字节码,最终通过客户端上载部署到区块链网络中

2、EVM和账户

  • 以太坊中有两类账户: 外部账户和合约账户,它们共用EVM中同一个地址空间
  • 无论帐户是否存储代码,这两类账户对 EVM 来说处理方式是完全一样的
  • 每个账户在EVM中都有一个键值对形式的持久化存储。其中 key 和 value 的长度都是256位,称之为存储空间(storage)

3、EVM和交易

  • 交易可以看作是从一个帐户发送到另一个帐户的消息,它可以包含二进制数据(payload)和以太币
  • 如果目标账户含有代码,此代码会在EVM中执行,并以 payload 作为入参,这就是合约的调用
  • 如果目标账户是零账户(账户地址为 0 ),此交易就将创建一个 新合约 ,这个用来创建合约的交易的 payload 会被转换为 EVM 字节码并执行,执行的输出作为合约代码永久存储

4、EVM和gas

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值