区块链知识分享——虚拟机(1)

虚拟机是什么?

这个图是以太坊的智能合约的部署和调用结构,EVM 就是虚拟机。简单来说,以太坊虚拟机是建立在以太坊区块链上的一个代码运行环境,但虚拟机本身并没有存储在区块链内,而是和区块链一样同时存储于各个节点计算机上。每个参与以太坊网络中的校验节点都会运行虚拟机,并将其作为区块有效性校验协议的一部分。每个节点都会对合约的部署和调用进行相同的计算,并存储相同的数据,以确保将最权威(最真实)的结果记录在区块链内。

以太坊虚拟机是一个图灵完备的 256 位虚拟机,这说明以太坊虚拟机可以进行任何种类的计算。但为了防止恶意用户设计无限循环代码使虚拟机的运行瘫痪,以太坊虚拟机中执行的代码严格受到一个参数的制约,这个参数就是 Gas。

这规定了可运行的计算指令的数量上限,从而不会产生无限循环(无限循环最终会因耗尽 Gas 而中止)。以太坊虚拟机的构架实际上是一个简单的堆栈式结构,每个堆栈项目为 256 位,即虚拟机的位宽为 256 位,其目的是使之能够方便地应用于256位的Keccak散列算法和椭圆曲线计算。堆栈的存储(storage)是一个基于字段地址的数组,其最大包含 1024 个元素。此外,虚拟机还包含一个独立的基于字段地址的内存,但不同于普通的内存模型,这个独立的内存是一个非易失性内存(non-volatile memory),即当虚拟机不运行时,其所存储的数据不会丢失。该内存中的记录作为整个以太坊系统状态记录的一部分。虚拟机的存储和内存在初始时都被设置为 0。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值