EVM虚拟机是什么?

Image

以太坊协议本身的存在仅仅是为了保持这种特殊状态机的连续,不间断和不变的运行。这是所有以太坊账户和智能合约赖以生存的环境。在链中任何给定的区块上,以太坊只有一个“规范”状态,而EVM定义了计算区块之间新的有效状态的规则。
 
先决条件
必须具备一些计算机科学通用术语的基本知识,例如字节,内存和堆栈,才能理解EVM。熟悉诸如哈希函数,工作量证明和Merkle树之类的密码学/区块链概念也将有所帮助。
 
从账本到状态机
通常使用“分布式分类帐”的类比来描述像比特币这样的区块链,它使用密码学的基本工具来实现去中心化的货币。加密货币的行为类似于“正常”货币,这是因为规则支配着人们可以做什么和不可以做什么来修改分类账。例如,比特币地址不能花费比以前更多的比特币。这些规则是比特币和许多其他区块链上所有交易的基础。
 
以太坊拥有自己的本机加密货币(Ether),几乎遵循完全相同的直观规则,但它还启用了更强大的功能:智能合约。对于此更复杂的功能,需要一个更复杂的类比。以太坊不是分布式账本,而是分布式状态机。以太坊的状态是一个大型数据结构,不仅拥有所有账户和余额,而且拥有机器状态,它可以根据一组预定义的规则在不同的块之间变化,并且可以执行任意机器代码。EVM定义在块之间更改状态的特定规则。
 
该图显示了EVM的组成
从以太坊EVM改编的图表
 
以太坊状态转换函数
EVM的行为就像一个数学函数:在给定输入的情况下,它会产生确定性的输出。因此,更正式地将以太坊描述为具有状态转换功能非常有帮助:
 
Y(S,T)= S'
给定旧的有效状态(S)和一组新的有效交易(T),以太坊状态转换函数Y(S, T)会产生新的有效输出状态S'
 
状态
在以太坊的上下文中,状态是一个巨大的数据结构,称为修改后的Merkle Patricia Trie,该结构使所有帐户都通过哈希链接并可以还原为存储在区块链上的单个根哈希。
 
交易次数
交易是来自帐户的加密签名指令。有两种类型的交易:导致消息呼叫的交易和导致合同创建的交易。
 
合同创建会导致创建一个新的合同帐户,其中包含已编译的智能合同字节码。每当另一个帐户对该合同进行消息调用时,它将执行其字节码。
 
EVM说明
EVM作为具有1024个项目深度的堆栈机执行。每个项目都是一个256位字,选择该字是为了易于使用256位密码(例如Keccak-256哈希或secp256k1签名)。
 
在执行期间,EVM维护一个瞬态内存(作为字寻址的字节数组),该内存在事务之间不持久。
 
但是,合同确实包含Merkle Patricia存储Trie(作为可字寻址的字数组),与所讨论的帐户相关联,并且是全局状态的一部分。

最新评论(4)

  1. comment-author
    高重建的区块链社会学|DeFi 上「不会

    我不懂得说笑话,甚至不苟言笑到一个极致,同事都说我面瘫。但有那么一次,约一年前,我午饭时跟会计小姐说了几句话,让她狂笑不止,人仰马翻。我说的是: 幸好我已不是心灵脆

  2. comment-author
    非法挪用 Tether 资金调查案落幕!Bi

    2019 年,美国纽约司法部指控 Bitfinex 交易所从关係公司 Tether 的 USDT 库存非法挪用了 8.5 亿美元的 USDT 来弥补损失。如今,这个加密货币产业备受关注的案件,已经和解落幕。 纽约总检

  3. comment-author
    什么是ETH以太坊?

    以太坊新手? 你找对地方啦! 让我们从总览开始。 以太坊是互联网新时代的基础: 内建货币与支付。 用户拥有个人数据主权,且不会被各类应用监听或窃取数据。 人人都有权使用开

评论